mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Flex IDE: move SDK chooser to Dependencies page, fix bugs
This commit is contained in:
@@ -130,7 +130,7 @@ public class SdkEditor implements Configurable, Place.Navigator {
|
||||
|
||||
myTabbedPane = new TabbedPaneWrapper(myDisposable);
|
||||
for (OrderRootType type : OrderRootType.getAllTypes()) {
|
||||
if (mySdk == null || mySdk.getSdkType().isRootTypeApplicable(type)) {
|
||||
if (mySdk == null || showTabForType(type)) {
|
||||
final PathEditor pathEditor = OrderRootTypeUIFactory.FACTORY.getByKey(type).createPathEditor(mySdk);
|
||||
if (pathEditor != null) {
|
||||
myTabbedPane.addTab(pathEditor.getDisplayName(), pathEditor.createComponent());
|
||||
@@ -145,11 +145,7 @@ public class SdkEditor implements Configurable, Place.Navigator {
|
||||
}
|
||||
});
|
||||
|
||||
myHomeComponent = new TextFieldWithBrowseButton(new ActionListener(){
|
||||
public void actionPerformed(ActionEvent e){
|
||||
doSelectHomePath();
|
||||
}
|
||||
});
|
||||
myHomeComponent = createHomeComponent();
|
||||
myHomeComponent.getTextField().setEditable(false);
|
||||
|
||||
myHomeFieldLabel = new JLabel(getHomeFieldLabelValue());
|
||||
@@ -162,6 +158,18 @@ public class SdkEditor implements Configurable, Place.Navigator {
|
||||
myMainPanel.add(myTabbedPane.getComponent(), new GridBagConstraints(0, GridBagConstraints.RELATIVE, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2, 0, 0, 0), 0, 0));
|
||||
}
|
||||
|
||||
protected TextFieldWithBrowseButton createHomeComponent() {
|
||||
return new TextFieldWithBrowseButton(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
doSelectHomePath();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected boolean showTabForType(OrderRootType type) {
|
||||
return mySdk.getSdkType().isRootTypeApplicable(type);
|
||||
}
|
||||
|
||||
private String getHomeFieldLabelValue() {
|
||||
if (mySdk != null) {
|
||||
return mySdk.getSdkType().getHomeFieldLabel();
|
||||
|
||||
+6
-2
@@ -43,15 +43,19 @@ public class JdkConfigurable extends ProjectStructureElementConfigurable<Sdk> im
|
||||
private final SdkProjectStructureElement myProjectStructureElement;
|
||||
|
||||
public JdkConfigurable(final ProjectJdkImpl projectJdk,
|
||||
final ProjectSdksModel configurable,
|
||||
final ProjectSdksModel sdksModel,
|
||||
final Runnable updateTree, @NotNull History history, Project project) {
|
||||
super(true, updateTree);
|
||||
myProjectJdk = projectJdk;
|
||||
mySdkEditor = new SdkEditor(configurable, history, myProjectJdk);
|
||||
mySdkEditor = createSdkEditor(sdksModel, history, myProjectJdk);
|
||||
final StructureConfigurableContext context = ModuleStructureConfigurable.getInstance(project).getContext();
|
||||
myProjectStructureElement = new SdkProjectStructureElement(context, myProjectJdk);
|
||||
}
|
||||
|
||||
protected SdkEditor createSdkEditor(ProjectSdksModel sdksModel, History history, ProjectJdkImpl projectJdk) {
|
||||
return new SdkEditor(sdksModel, history, projectJdk);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectStructureElement getProjectStructureElement() {
|
||||
return myProjectStructureElement;
|
||||
|
||||
+18
-10
@@ -215,7 +215,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
|
||||
ModuleConfigurable configurable = new ModuleConfigurable(myContext.myModulesConfigurator, module, TREE_UPDATER);
|
||||
final MyNode moduleNode = new MyNode(configurable);
|
||||
boolean nodesAdded = myFacetEditorFacade.addFacetsNodes(module, moduleNode);
|
||||
nodesAdded |= addNodesFromExtensions(module, moduleNode);
|
||||
nodesAdded |= addNodesFromExtensions(module, moduleNode, myContext.myModulesConfigurator.getModuleEditor(module).getModifiableRootModel());
|
||||
if (nodesAdded) {
|
||||
myTree.setShowsRootHandles(true);
|
||||
}
|
||||
@@ -251,10 +251,10 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
|
||||
//myProjectNode.add(myLevel2Nodes.get(LibraryTablesRegistrar.PROJECT_LEVEL));
|
||||
}
|
||||
|
||||
private boolean addNodesFromExtensions(final Module module, final MyNode moduleNode) {
|
||||
private boolean addNodesFromExtensions(final Module module, final MyNode moduleNode, ModifiableRootModel modifiableRootModel) {
|
||||
boolean nodesAdded= false;
|
||||
for (final ModuleStructureExtension extension : ModuleStructureExtension.EP_NAME.getExtensions()) {
|
||||
nodesAdded |= extension.addModuleNodeChildren(module, moduleNode, TREE_UPDATER);
|
||||
nodesAdded |= extension.addModuleNodeChildren(module, moduleNode, modifiableRootModel, TREE_UPDATER);
|
||||
}
|
||||
return nodesAdded;
|
||||
}
|
||||
@@ -294,8 +294,9 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
|
||||
});
|
||||
addNode(moduleNode, moduleGroupNode);
|
||||
}
|
||||
myFacetEditorFacade.addFacetsNodes((Module)moduleNode.getConfigurable().getEditableObject(), moduleNode);
|
||||
addNodesFromExtensions((Module)moduleNode.getConfigurable().getEditableObject(), moduleNode);
|
||||
Module module = (Module)moduleNode.getConfigurable().getEditableObject();
|
||||
myFacetEditorFacade.addFacetsNodes(module, moduleNode);
|
||||
addNodesFromExtensions(module, moduleNode, myContext.myModulesConfigurator.getModuleEditor(module).getModifiableRootModel());
|
||||
}
|
||||
((DefaultTreeModel)myTree.getModel()).reload(myRoot);
|
||||
return true;
|
||||
@@ -343,10 +344,17 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
|
||||
roots.add(myRoot);
|
||||
checkApply(roots, ProjectBundle.message("rename.message.prefix.module"), ProjectBundle.message("rename.module.title"));
|
||||
|
||||
if (myContext.myModulesConfigurator.isModified()) myContext.myModulesConfigurator.apply();
|
||||
|
||||
// extensions should be applied first, since some can write to modifiable model that is committed later by myModulesConfigurator.apply()
|
||||
boolean isModulesConfiguratorModifiedByExtension = false;
|
||||
for (final ModuleStructureExtension extension : ModuleStructureExtension.EP_NAME.getExtensions()) {
|
||||
extension.apply();
|
||||
if (extension.isModified()) {
|
||||
isModulesConfiguratorModifiedByExtension |= extension.isModulesConfiguratorModified();
|
||||
extension.apply();
|
||||
}
|
||||
}
|
||||
|
||||
if (isModulesConfiguratorModifiedByExtension || myContext.myModulesConfigurator.isModified()) {
|
||||
myContext.myModulesConfigurator.apply();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -521,7 +529,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
|
||||
if (parent == null) parent = myRoot;
|
||||
addNode(node, parent);
|
||||
myFacetEditorFacade.addFacetsNodes(module, node);
|
||||
addNodesFromExtensions(module, node);
|
||||
addNodesFromExtensions(module, node, myContext.myModulesConfigurator.getModuleEditor(module).getModifiableRootModel());
|
||||
((DefaultTreeModel)myTree.getModel()).reload(parent);
|
||||
selectNodeInTree(node);
|
||||
final ProjectStructureDaemonAnalyzer daemonAnalyzer = myContext.getDaemonAnalyzer();
|
||||
@@ -730,7 +738,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
|
||||
}
|
||||
};
|
||||
for (final ModuleStructureExtension extension : ModuleStructureExtension.EP_NAME.getExtensions()) {
|
||||
result.addAll(extension.createAddActions(selectedObjectRetriever, TREE_UPDATER));
|
||||
result.addAll(extension.createAddActions(selectedObjectRetriever, TREE_UPDATER, myContext.myModulesConfigurator));
|
||||
}
|
||||
|
||||
return result.toArray(new AnAction[result.size()]);
|
||||
|
||||
+13
-2
@@ -4,6 +4,8 @@ import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesConfigurator;
|
||||
import com.intellij.openapi.ui.MasterDetailsComponent;
|
||||
import com.intellij.openapi.ui.NamedConfigurable;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
@@ -19,7 +21,10 @@ public abstract class ModuleStructureExtension {
|
||||
public void reset() {
|
||||
}
|
||||
|
||||
public boolean addModuleNodeChildren(Module module, MasterDetailsComponent.MyNode moduleNode, Runnable treeNodeNameUpdater) {
|
||||
public boolean addModuleNodeChildren(Module module,
|
||||
MasterDetailsComponent.MyNode moduleNode,
|
||||
ModifiableRootModel modifiableRootModel,
|
||||
Runnable treeNodeNameUpdater) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -29,6 +34,10 @@ public abstract class ModuleStructureExtension {
|
||||
public void moduleRemoved(final Module module) {
|
||||
}
|
||||
|
||||
public boolean isModulesConfiguratorModified() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isModified() {
|
||||
return false;
|
||||
}
|
||||
@@ -47,7 +56,9 @@ public abstract class ModuleStructureExtension {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Collection<AnAction> createAddActions(final Computable<Object> selectedObjectRetriever, final Runnable treeNodeNameUpdater) {
|
||||
public Collection<AnAction> createAddActions(final Computable<Object> selectedObjectRetriever,
|
||||
final Runnable treeNodeNameUpdater,
|
||||
ModulesConfigurator modulesConfigurator) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user