From 8508ff1a867bd171fb70b4de8ca11eeef4d24944 Mon Sep 17 00:00:00 2001 From: nik Date: Thu, 29 Sep 2011 12:55:47 +0400 Subject: [PATCH] project structure dialog: create artifact editor only when needed --- .../artifacts/ArtifactConfigurable.java | 18 ++++++++++-------- .../artifacts/ArtifactConfigurableBase.java | 12 ++++++------ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurable.java index 6474b9e660f6..f02eaf11483d 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurable.java @@ -30,19 +30,17 @@ import java.awt.event.ActionListener; * @author nik */ public class ArtifactConfigurable extends ArtifactConfigurableBase { - private final ArtifactEditorImpl myEditor; private boolean myIsInUpdateName; public ArtifactConfigurable(Artifact originalArtifact, ArtifactsStructureConfigurableContextImpl artifactsStructureContext, final Runnable updateTree) { super(originalArtifact, artifactsStructureContext, updateTree, true); - myEditor = artifactsStructureContext.getOrCreateEditor(originalArtifact); } public void setDisplayName(String name) { final String oldName = getArtifact().getName(); if (name != null && !name.equals(oldName) && !myIsInUpdateName) { myArtifactsStructureContext.getOrCreateModifiableArtifactModel().getOrCreateModifiableArtifact(myOriginalArtifact).setName(name); - myEditor.updateOutputPath(oldName, name); + getEditor().updateOutputPath(oldName, name); } } @@ -58,7 +56,7 @@ public class ArtifactConfigurable extends ArtifactConfigurableBase { } public JComponent createOptionsPanel() { - return myEditor.createMainComponent(); + return getEditor().createMainComponent(); } @Override @@ -75,7 +73,7 @@ public class ArtifactConfigurable extends ArtifactConfigurableBase { public void actionPerformed(ActionEvent e) { final ArtifactType selected = (ArtifactType)artifactTypeBox.getSelectedItem(); if (selected != null && !Comparing.equal(selected, getArtifact().getArtifactType())) { - myEditor.setArtifactType(selected); + getEditor().setArtifactType(selected); } } }); @@ -87,17 +85,21 @@ public class ArtifactConfigurable extends ArtifactConfigurableBase { } public boolean isModified() { - return myEditor.isModified(); + return getEditor().isModified(); } public void apply() throws ConfigurationException { - myEditor.apply(); + getEditor().apply(); } public void reset() { } public String getHelpTopic() { - return myEditor.getHelpTopic(); + return getEditor().getHelpTopic(); + } + + private ArtifactEditorImpl getEditor() { + return myArtifactsStructureContext.getOrCreateEditor(myOriginalArtifact); } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurableBase.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurableBase.java index 42a3ba7564df..2e02277e7d39 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurableBase.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactConfigurableBase.java @@ -28,13 +28,13 @@ import javax.swing.*; */ public abstract class ArtifactConfigurableBase extends ProjectStructureElementConfigurable { protected final Artifact myOriginalArtifact; - protected final ArtifactsStructureConfigurableContext myArtifactsStructureContext; - protected final ProjectStructureElement myProjectStructureElement; + protected final ArtifactsStructureConfigurableContextImpl myArtifactsStructureContext; + private final ProjectStructureElement myProjectStructureElement; - public ArtifactConfigurableBase(Artifact originalArtifact, - ArtifactsStructureConfigurableContextImpl artifactsStructureContext, - Runnable updateTree, - final boolean nameEditable) { + protected ArtifactConfigurableBase(Artifact originalArtifact, + ArtifactsStructureConfigurableContextImpl artifactsStructureContext, + Runnable updateTree, + final boolean nameEditable) { super(nameEditable, updateTree); myOriginalArtifact = originalArtifact; myArtifactsStructureContext = artifactsStructureContext;