public ProviderControl( String key, ProviderProperty property, DiscoveryDescriptor wizardDescriptor, JPanel panel, ChangeListener listener) { this.propertyKey = key; this.property = property; this.panel = panel; this.listener = listener; this.wizardDescriptor = wizardDescriptor; description = property.getDescription(); label = new JLabel(); Mnemonics.setLocalizedText(label, property.getName()); switch (property.getKind()) { case MakeLogFile: field = new EditableComboBox(); field.setEditable(true); chooserMode = JFileChooser.FILES_ONLY; initBuildOrRoot(wizardDescriptor); button = new JButton(); Mnemonics.setLocalizedText(button, getString("ROOT_DIR_BROWSE_BUTTON_TXT")); layout(panel); button.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { rootFolderButtonActionPerformed( evt, ProviderControl.this.property.getKind() == PropertyKind.BinaryFile, getString("LOG_FILE_CHOOSER_TITLE_TXT")); } }); addListeners(); break; case BinaryFile: field = new EditableComboBox(); field.setEditable(true); chooserMode = JFileChooser.FILES_ONLY; initBuildOrRoot(wizardDescriptor); button = new JButton(); Mnemonics.setLocalizedText(button, getString("ROOT_DIR_BROWSE_BUTTON_TXT")); layout(panel); button.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { rootFolderButtonActionPerformed( evt, ProviderControl.this.property.getKind() == PropertyKind.BinaryFile, getString("BINARY_FILE_CHOOSER_TITLE_TXT")); } }); addListeners(); break; case Folder: field = new EditableComboBox(); field.setEditable(true); chooserMode = JFileChooser.DIRECTORIES_ONLY; initRoot(wizardDescriptor); button = new JButton(); Mnemonics.setLocalizedText(button, getString("ROOT_DIR_BROWSE_BUTTON_TXT")); layout(panel); button.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { rootFolderButtonActionPerformed(evt, true, getString("ROOT_DIR_CHOOSER_TITLE_TXT")); } }); addListeners(); break; case BinaryFiles: field = new EditableComboBox(); field.setEditable(true); chooserMode = JFileChooser.FILES_ONLY; initArray(); button = new JButton(); Mnemonics.setLocalizedText(button, getString("ROOT_DIR_EDIT_BUTTON_TXT")); layout(panel); button.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { additionalLibrariesButtonActionPerformed(evt); } }); addListeners(); break; default: // unsuported UI break; } }