'Show project structure' actions moved to idea-ui module

This commit is contained in:
nik
2010-08-31 12:21:45 +04:00
parent ed987fd906
commit 26f87e1847
5 changed files with 26 additions and 30 deletions
@@ -18,30 +18,20 @@ package com.intellij.ide.actions;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.options.newEditor.OptionsEditorDialog;
import com.intellij.openapi.options.ex.ProjectConfigurablesGroup;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
public class ShowStructureSettingsAction extends AnAction implements DumbAware {
private static final Logger LOG = Logger.getInstance("#com.intellij.ide.actions.ShowStructureSettingsAction");
public void actionPerformed(AnActionEvent e) {
Project project = PlatformDataKeys.PROJECT.getData(e.getDataContext());
if (project == null) {
project = ProjectManager.getInstance().getDefaultProject();
}
final Configurable configurable = ProjectConfigurablesGroup.getProjectStructureConfigurable(project);
if (configurable != null) {
ShowSettingsUtil.getInstance().editConfigurable(project, OptionsEditorDialog.DIMENSION_KEY, configurable);
} else {
LOG.info("No project structure configurable found");
}
ShowSettingsUtil.getInstance().editProjectConfigurable(project, ProjectStructureConfigurable.class, OptionsEditorDialog.DIMENSION_KEY);
}
}
@@ -17,18 +17,16 @@ package com.intellij.ide.actions;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.options.newEditor.OptionsEditorDialog;
import com.intellij.openapi.options.ex.ProjectConfigurablesGroup;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectManagerEx;
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
public class TemplateProjectStructureAction extends AnAction implements DumbAware {
public void actionPerformed(final AnActionEvent e) {
Project defaultProject = ProjectManagerEx.getInstanceEx().getDefaultProject();
final Configurable configurable = ProjectConfigurablesGroup.getProjectStructureConfigurable(defaultProject);
ShowSettingsUtil.getInstance().editConfigurable(defaultProject, OptionsEditorDialog.DIMENSION_KEY, configurable);
ShowSettingsUtil.getInstance().editProjectConfigurable(defaultProject, ProjectStructureConfigurable.class, OptionsEditorDialog.DIMENSION_KEY);
}
}
@@ -46,6 +46,9 @@ public abstract class ShowSettingsUtil {
public abstract boolean editConfigurable(Project project, @NonNls String dimensionServiceKey, Configurable configurable);
public abstract boolean editProjectConfigurable(@NotNull Project project, Class<? extends Configurable> configurableClass,
@NonNls @Nullable String dimensionServiceKey);
public abstract boolean editConfigurable(Component parent, String dimensionServiceKey, Configurable configurable);
public abstract <T extends Configurable> T findProjectConfigurable(Project project, Class<T> confClass);
@@ -17,6 +17,7 @@ package com.intellij.ide.actions;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurableGroup;
import com.intellij.openapi.options.ShowSettingsUtil;
@@ -36,6 +37,7 @@ import java.util.List;
* @author max
*/
public class ShowSettingsUtilImpl extends ShowSettingsUtil {
private static final Logger LOG = Logger.getInstance("#com.intellij.ide.actions.ShowSettingsUtilImpl");
@NonNls
private static final String PREFER_CLASSIC_OPTIONS_EDITOR = "PREFER_CLASSIC_OPTIONS_EDITOR";
@@ -147,6 +149,21 @@ public class ShowSettingsUtilImpl extends ShowSettingsUtil {
return configurableEditor.isOK();
}
@Override
public boolean editProjectConfigurable(@NotNull Project project,
Class<? extends Configurable> configurableClass,
@NonNls String dimensionServiceKey) {
final Configurable configurable = findProjectConfigurable(project, configurableClass);
if (configurable == null) {
LOG.error("Cannot find project configurable for " + configurableClass);
return false;
}
if (dimensionServiceKey == null) {
dimensionServiceKey = createDimensionKey(configurable);
}
return editConfigurable(project, dimensionServiceKey, configurable);
}
public boolean editConfigurable(Component parent, Configurable configurable) {
final SingleConfigurableEditor configurableEditor = new SingleConfigurableEditor(parent, configurable, createDimensionKey(configurable));
configurableEditor.show();
@@ -18,7 +18,6 @@ package com.intellij.openapi.options.ex;
import com.intellij.openapi.options.*;
import com.intellij.openapi.project.Project;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Iterator;
@@ -75,17 +74,6 @@ public class ProjectConfigurablesGroup implements ConfigurableGroup {
return result.toArray(new Configurable[result.size()]);
}
@Nullable
public static Configurable getProjectStructureConfigurable(Project project) {
final Configurable[] configurables = getConfigurables(project, new ConfigurableFilter() {
public boolean isIncluded(final Configurable configurable) {
return PROJECT_STRUCTURE_CLASS_FQ_NAME.equals(configurable.getClass().getName());
}
});
return configurables.length == 1 ? configurables[0] : null;
}
static List<Configurable> buildConfigurablesList(final Configurable[] extensions, final Configurable[] components, ConfigurableFilter filter) {
List<Configurable> result = new ArrayList<Configurable>();
ContainerUtil.addAll(result, extensions);