ダイアログの変更
ダイアログに表示する項目も変更しなくてはいけません。
といっても 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 が使えれば楽チンなんですけどね。