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();
}
});
}
}