fixed duplicated entries for project structure dialog in workspace.xml

This commit is contained in:
nik
2010-09-24 14:52:30 +04:00
parent 3103e6633d
commit 8cc0438d30
14 changed files with 211 additions and 180 deletions
@@ -78,6 +78,7 @@ public class ArtifactEditorSettings implements PersistentStateComponent<Artifact
myTypesToShowContent.addAll(typesToShowContent);
}
@Tag("artifact-editor")
public static class ArtifactEditorSettingsState {
@Tag("show-sorted")
public boolean mySortElements = true;
@@ -0,0 +1,35 @@
/*
* Copyright 2000-2010 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.openapi.roots.ui.configuration.artifacts;
import com.intellij.openapi.ui.MasterDetailsState;
import com.intellij.util.xmlb.annotations.Property;
/**
* @author nik
*/
public class ArtifactStructureConfigurableState extends MasterDetailsState {
private ArtifactEditorSettings.ArtifactEditorSettingsState myDefaultArtifactSettings = new ArtifactEditorSettings.ArtifactEditorSettingsState();
@Property(surroundWithTag = false)
public ArtifactEditorSettings.ArtifactEditorSettingsState getDefaultArtifactSettings() {
return myDefaultArtifactSettings;
}
public void setDefaultArtifactSettings(ArtifactEditorSettings.ArtifactEditorSettingsState defaultArtifactSettings) {
myDefaultArtifactSettings = defaultArtifactSettings;
}
}
@@ -20,9 +20,6 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.application.Result;
import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.DumbAwareAction;
@@ -36,6 +33,7 @@ import com.intellij.openapi.roots.ui.configuration.ModuleEditor;
import com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditorListener;
import com.intellij.openapi.roots.ui.configuration.projectRoot.*;
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
import com.intellij.openapi.ui.MasterDetailsState;
import com.intellij.openapi.ui.MasterDetailsStateService;
import com.intellij.packaging.artifacts.*;
import com.intellij.packaging.impl.artifacts.ArtifactUtil;
@@ -55,16 +53,12 @@ import java.util.List;
/**
* @author nik
*/
@State(
name = "ArtifactsStructureConfigurable.UI",
storages = {@Storage(id = "other", file = "$WORKSPACE_FILE$")}
)
public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
private ArtifactsStructureConfigurableContextImpl myPackagingEditorContext;
private final ArtifactEditorSettings myDefaultSettings = new ArtifactEditorSettings();
public ArtifactsStructureConfigurable(@NotNull Project project) {
super(project);
super(project, new ArtifactStructureConfigurableState());
MasterDetailsStateService.getInstance(project).register("ArtifactsStructureConfigurable.UI", this);
}
@@ -163,6 +157,18 @@ public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
}
}
@Override
public MasterDetailsState getState() {
((ArtifactStructureConfigurableState)myState).setDefaultArtifactSettings(myDefaultSettings.getState());
return super.getState();
}
@Override
public void loadState(MasterDetailsState object) {
super.loadState(object);
myDefaultSettings.loadState(((ArtifactStructureConfigurableState)myState).getDefaultArtifactSettings());
}
@Nls
public String getDisplayName() {
return ProjectBundle.message("display.name.artifacts");
@@ -192,11 +198,6 @@ public class ArtifactsStructureConfigurable extends BaseStructureConfigurable {
return node;
}
@Override
protected PersistentStateComponent<?> getAdditionalSettings() {
return myDefaultSettings;
}
@Override
public void reset() {
myPackagingEditorContext.resetModifiableModel();
@@ -31,6 +31,7 @@ import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.roots.libraries.LibraryTable;
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.*;
import com.intellij.openapi.ui.MasterDetailsComponent;
import com.intellij.openapi.ui.MasterDetailsState;
import com.intellij.openapi.ui.NamedConfigurable;
import com.intellij.openapi.util.ActionCallback;
import com.intellij.openapi.util.Condition;
@@ -66,6 +67,11 @@ public abstract class BaseStructureConfigurable extends MasterDetailsComponent i
protected boolean myAutoScrollEnabled = true;
protected BaseStructureConfigurable(Project project, MasterDetailsState state) {
super(state);
myProject = project;
}
protected BaseStructureConfigurable(final Project project) {
myProject = project;
}
@@ -27,8 +27,6 @@ import com.intellij.facet.ui.MultipleFacetSettingsEditor;
import com.intellij.ide.DataManager;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.options.ConfigurationException;
@@ -37,6 +35,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
import com.intellij.openapi.ui.DetailsComponent;
import com.intellij.openapi.ui.MasterDetailsStateService;
import com.intellij.openapi.ui.NamedConfigurable;
import com.intellij.openapi.util.IconLoader;
import org.jetbrains.annotations.NotNull;
@@ -50,15 +49,6 @@ import java.util.List;
/**
* @author nik
*/
@State(
name = "FacetStructureConfigurable.UI",
storages = {
@Storage(
id = "other",
file = "$WORKSPACE_FILE$"
)
}
)
public class FacetStructureConfigurable extends BaseStructureConfigurable {
private static final Icon ICON = IconLoader.getIcon("/modules/modules.png");//todo[nik] use facets icon
private final ModuleManager myModuleManager;
@@ -67,6 +57,7 @@ public class FacetStructureConfigurable extends BaseStructureConfigurable {
public FacetStructureConfigurable(final Project project, ModuleManager moduleManager) {
super(project);
MasterDetailsStateService.getInstance(project).register("FacetStructureConfigurable.UI", this);
myModuleManager = moduleManager;
}
@@ -16,29 +16,21 @@
package com.intellij.openapi.roots.ui.configuration.projectRoot;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
import com.intellij.openapi.ui.MasterDetailsStateService;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
@State(
name = "GlobalLibrariesConfigurable.UI",
storages = {
@Storage(
id ="other",
file = "$WORKSPACE_FILE$"
)}
)
public class GlobalLibrariesConfigurable extends BaseLibrariesConfigurable {
public GlobalLibrariesConfigurable(final Project project) {
super(project);
MasterDetailsStateService.getInstance(project).register("GlobalLibrariesConfigurable.UI", this);
myLevel = LibraryTablesRegistrar.APPLICATION_LEVEL;
}
@@ -19,8 +19,6 @@ import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectBundle;
@@ -32,6 +30,7 @@ import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.SdkProjectStructureElement;
import com.intellij.openapi.ui.MasterDetailsComponent;
import com.intellij.openapi.ui.MasterDetailsStateService;
import com.intellij.openapi.ui.NamedConfigurable;
import com.intellij.util.Consumer;
import org.jetbrains.annotations.Nls;
@@ -46,20 +45,9 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@State(
name = "JdkListConfigurable.UI",
storages = {
@Storage(
id ="other",
file = "$WORKSPACE_FILE$"
)}
)
public class JdkListConfigurable extends BaseStructureConfigurable {
private final ProjectSdksModel myJdksTreeModel;
SdkModel.Listener myListener = new SdkModel.Listener() {
private final SdkModel.Listener myListener = new SdkModel.Listener() {
public void sdkAdded(Sdk sdk) {
}
@@ -87,6 +75,7 @@ public class JdkListConfigurable extends BaseStructureConfigurable {
public JdkListConfigurable(final Project project, ProjectStructureConfigurable root) {
super(project);
MasterDetailsStateService.getInstance(project).register("JdkListConfigurable.UI", this);
myJdksTreeModel = root.getProjectJdksModel();
myJdksTreeModel.addListener(myListener);
}
@@ -30,8 +30,6 @@ import com.intellij.ide.util.projectWizard.ProjectWizardUtil;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.module.*;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.DumbAware;
@@ -52,6 +50,7 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ModuleProj
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureDaemonAnalyzer;
import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.MasterDetailsStateService;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.ui.NamedConfigurable;
import com.intellij.openapi.util.Comparing;
@@ -83,14 +82,6 @@ import java.util.List;
* User: anna
* Date: 02-Jun-2006
*/
@State(
name = "ModuleStructureConfigurable.UI",
storages = {
@Storage(
id ="other",
file = "$WORKSPACE_FILE$"
)}
)
public class ModuleStructureConfigurable extends BaseStructureConfigurable implements Place.Navigator {
private static final Icon COMPACT_EMPTY_MIDDLE_PACKAGES_ICON = IconLoader.getIcon("/objectBrowser/compactEmptyPackages.png");
@@ -105,6 +96,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
public ModuleStructureConfigurable(Project project, ModuleManager manager) {
super(project);
MasterDetailsStateService.getInstance(project).register("ModuleStructureConfigurable.UI", this);
myModuleManager = manager;
}
@@ -16,30 +16,20 @@
package com.intellij.openapi.roots.ui.configuration.projectRoot;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectBundle;
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
import com.intellij.openapi.roots.ui.configuration.LibraryTableModifiableModelProvider;
import com.intellij.openapi.ui.MasterDetailsStateService;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
@State(
name = "ProjectLibrariesConfigurable.UI",
storages = {
@Storage(
id ="other",
file = "$WORKSPACE_FILE$"
)}
)
public class ProjectLibrariesConfigurable extends BaseLibrariesConfigurable {
public ProjectLibrariesConfigurable(final Project project) {
super(project);
MasterDetailsStateService.getInstance(project).register("ProjectLibrariesConfigurable.UI", this);
myLevel = LibraryTablesRegistrar.PROJECT_LEVEL;
}