package net.jangaroo.ide.idea.ui; import net.jangaroo.ide.idea.JoocApplicationComponent; import javax.swing.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.*; import com.intellij.openapi.fileChooser.*; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.ui.TextComponentAccessor; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.Disposable; import com.intellij.openapi.util.Disposer; import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.GridConstraints; /** * */ public class JangarooToolConfiguration implements Disposable { private JLabel jooHomeLabel; private JPanel rootComponent; private TextFieldWithBrowseButton jooHomeTextField; private FileTextField fileTextField; private static final FileChooserDescriptor SINGLE_FOLDER_CHOOSER_DESCRIPTOR = FileChooserDescriptorFactory.createSingleFolderDescriptor(); public JangarooToolConfiguration() { } public JComponent getRootComponent() { return rootComponent; } public void setData(JoocApplicationComponent data) { jooHomeTextField.setText(data.getJangarooHomeDir()); } public void getData(JoocApplicationComponent data) { data.setJangarooHomeDir(jooHomeTextField.getText()); GridConstraints constraints = ((GridLayoutManager)rootComponent.getLayout()).getConstraintsForComponent(fileTextField.getField()); System.out.println("constraints: "+constraints); } public boolean isModified(JoocApplicationComponent data) { return jooHomeTextField.getText() != null ? !jooHomeTextField.getText().equals(data.getJangarooHomeDir()) : data.getJangarooHomeDir() != null; } private void createUIComponents() { fileTextField = FileChooserFactory.getInstance().createFileTextField(SINGLE_FOLDER_CHOOSER_DESCRIPTOR, this); //Disposer.register(this, (Disposable)fileTextField); jooHomeTextField = new TextFieldWithBrowseButton(fileTextField.getField()); jooHomeTextField.addBrowseFolderListener("Choose Jangaroo Home Directory", null, null, SINGLE_FOLDER_CHOOSER_DESCRIPTOR, TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT); } public void dispose() { //Disposer.dispose((Disposable)fileTextField); rootComponent = null; jooHomeLabel = null; fileTextField = null; jooHomeTextField = null; } }