package org.fandev.runner; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.fileChooser.FileChooserDescriptor; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.module.Module; import com.intellij.ide.util.BrowseFilesListener; import com.intellij.ui.FieldPanel; import com.intellij.ui.RawCommandLineEditor; import org.jetbrains.annotations.NotNull; import org.fandev.lang.fan.FanFileType; import javax.swing.*; import java.awt.*; /** * @author Dror Bereznitsky * @date Jan 20, 2009 8:59:49 PM */ public class FanScriptRunConfigurationEditor extends FanRunConfigurationEditor { protected JPanel scriptPathPanel; protected JTextField scriptPathField; public FanScriptRunConfigurationEditor() { super(); } protected void addExecutablePanel(final JPanel mainPanel) { // Script path scriptPathPanel = new JPanel(new GridLayout(0,1)); scriptPathField = new JTextField(); final BrowseFilesListener scriptBrowseListener = new BrowseFilesListener(scriptPathField, "Script Path", "Specify path to script", new FileChooserDescriptor(true, false, false, false, false, false) { public boolean isFileSelectable(final VirtualFile file) { return file.getFileType() instanceof FanFileType; } }); final FieldPanel scriptFieldPanel = new FieldPanel(scriptPathField, "Script path:", null, scriptBrowseListener, null); scriptPathPanel.add(scriptFieldPanel); mainPanel.add(scriptPathPanel, BorderLayout.CENTER); } @Override protected void resetEditorFrom(final FanRunConfiguration configuration) { super.resetEditorFrom(configuration); scriptPathField.setText(((FanScriptRunConfiguration)configuration).getScriptPath()); } @Override protected void applyEditorTo(final FanRunConfiguration configuration) throws ConfigurationException { super.applyEditorTo(configuration); ((FanScriptRunConfiguration)configuration).setScriptPath(scriptPathField.getText()); } }