package jetbrains.mps.ide.java.sourceStubsUI; /*Generated by MPS */ import jetbrains.mps.ide.persistence.ModelRootSettingsEditor; import jetbrains.mps.project.Project; import org.jetbrains.mps.openapi.persistence.ModelRoot; import jetbrains.mps.ide.java.sourceStubs.JavaSourceStubModelRoot; import javax.swing.JComponent; import javax.swing.JButton; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; import jetbrains.mps.ide.ui.filechoosers.treefilechooser.TreeFileChooser; import jetbrains.mps.vfs.FileSystem; import jetbrains.mps.vfs.IFile; public class JavaSourceStubModelRootSettingsEditor implements ModelRootSettingsEditor { private Project myProject; private String myPath; public JavaSourceStubModelRootSettingsEditor() { } @Override public void reset(Project project, ModelRoot root) { assert root instanceof JavaSourceStubModelRoot; this.myProject = project; this.myPath = ((JavaSourceStubModelRoot) root).getContentRoot(); } @Override public void apply(ModelRoot root) { assert root instanceof JavaSourceStubModelRoot; ((JavaSourceStubModelRoot) root).setContentRoot(myPath); } @Override public JComponent getComponent() { return new JButton(new AbstractAction("path") { @Override public void actionPerformed(ActionEvent p0) { TreeFileChooser chooser = new TreeFileChooser(); chooser.setInitialFile(FileSystem.getInstance().getFileByPath(myPath)); chooser.setMode(TreeFileChooser.MODE_FILES_AND_DIRECTORIES); IFile dir = chooser.showDialog(); if (dir == null) { return; } myPath = dir.getPath(); } }); } }