読者です 読者をやめる 読者になる 読者になる

ダイアログの変更

ダイアログに表示する項目も変更しなくてはいけません。

といっても JAR ファイル名を選択するところをなくすだけですが。

結局、こんな感じになっています。

    public Control createDialogArea(Composite parent) {
        setTitle("Create Manifest File.");
        setMessage("Fill in the form.", IMessageProvider.NONE);

        Composite composite = (Composite)super.createDialogArea(parent);

        GridData data = new GridData();
        data.horizontalAlignment = SWT.FILL;
        data.grabExcessHorizontalSpace = true;
        data.verticalAlignment = GridData.CENTER;
        data.horizontalSpan = 1;
        
        Composite home = new Composite(composite, SWT.NONE);
        home.setLayoutData(data);
        
        GridLayout layout = new GridLayout();
        layout.numColumns = 3;
        home.setLayout(layout);
      
        Label titleLabel = new Label(home, SWT.LEFT);
        titleLabel.setText("Application Title:");
        titleText = new Text(home, SWT.BORDER);
        titleText.setLayoutData(data);
        Label dummyLabel = new Label(home, SWT.NONE);

        Label mainClassLabel = new Label(home, SWT.LEFT);
        mainClassLabel.setText("Main Class:");
        mainClassText = new Text(home, SWT.BORDER);
        mainClassText.setLayoutData(data);
        Button mainClassSearchButton = new Button(home, SWT.LEFT);
        mainClassSearchButton.setText("Search...");
        mainClassSearchButton.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                handleSearchButtonSelected();
            }
        });

        Label iconFilenameLabel = new Label(home, SWT.LEFT);
        iconFilenameLabel.setText("Icon Filename:");
        iconFilenameText = new Text(home, SWT.BORDER);
        iconFilenameText.setLayoutData(data);
        Button iconFilenameBrowseButton = new Button(home, SWT.LEFT);
        iconFilenameBrowseButton.setText("Browse...");
        iconFilenameBrowseButton.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                String filename = handleBrowseButtonSelected(new String[]{"PNG Files", "GIF Files", "JPEG Files", "All Files"},
                        new String[]{"*.png", "*.gif", "*.jpg", "*.*"});
                iconFilenameText.setText(filename);
            }
        });

        Label configFilenameLabel = new Label(home, SWT.LEFT);
        configFilenameLabel.setText("Config Filename:");
        configFilenameText = new Text(home, SWT.BORDER);
        configFilenameText.setLayoutData(data);
        Button configFilenameBrowseButton = new Button(home, SWT.LEFT);
        configFilenameBrowseButton.setText("Browse...");
        configFilenameBrowseButton.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                String filename = handleBrowseButtonSelected(new String[]{"LG3D Config Files", "All Files"},
                                                             new String[]{"*.lgcfg", "*.*"});
                configFilenameText.setText(filename);
            }
        });

        return composite;
    }

ところで、FileDialog で拡張子でフィルタするときに OR をとるときにはどうすればいいのでしょう?

今の実装だと PNG と GIF と JPG がばらばらになってしまうのです。そうでなくて、*.png, *.gif, *.jpg のいずれでもいいというようにしたいのですが...

それにしても、Swing の JFileChooser が使えれば楽チンなんですけどね。