/*
* Copyright 2003-2011 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 jetbrains.mps.ide.projectPane;
import com.intellij.openapi.actionSystem.ActionGroup;
import jetbrains.mps.ide.actions.AbstractFileActions_ActionGroup;
import jetbrains.mps.ide.actions.CreateRootNode_ActionGroup;
import jetbrains.mps.ide.actions.DevkitActions_ActionGroup;
import jetbrains.mps.ide.actions.FileActions_ActionGroup;
import jetbrains.mps.ide.actions.FolderActions_ActionGroup;
import jetbrains.mps.ide.actions.GeneratorActions_ActionGroup;
import jetbrains.mps.ide.actions.LanguageActions_ActionGroup;
import jetbrains.mps.ide.actions.ModelActions_ActionGroup;
import jetbrains.mps.ide.actions.ModuleActions_ActionGroup;
import jetbrains.mps.ide.actions.NamespaceActions_ActionGroup;
import jetbrains.mps.ide.actions.NodeActions_ActionGroup;
import jetbrains.mps.ide.actions.PackageActions_ActionGroup;
import jetbrains.mps.ide.actions.ProjectActions_ActionGroup;
import jetbrains.mps.ide.actions.ProjectNewActions_ActionGroup;
import jetbrains.mps.ide.actions.PropertyNodeActions_ActionGroup;
import jetbrains.mps.ide.actions.ReferenceNodeActions_ActionGroup;
import jetbrains.mps.ide.actions.RuntimeFolderActions_ActionGroup;
import jetbrains.mps.ide.actions.SolutionActions_ActionGroup;
import jetbrains.mps.ide.actions.SolutionNewActions_ActionGroup;
import jetbrains.mps.ide.actions.TransientModulesActions_ActionGroup;
import jetbrains.mps.ide.projectPane.fileSystem.nodes.AbstractFileTreeNode;
import jetbrains.mps.ide.projectPane.fileSystem.nodes.FileTreeNode;
import jetbrains.mps.ide.projectPane.fileSystem.nodes.FolderTreeNode;
import jetbrains.mps.ide.projectPane.fileSystem.nodes.ModuleTreeNode;
import jetbrains.mps.ide.ui.smodel.PropertyTreeNode;
import jetbrains.mps.ide.ui.smodel.ReferenceTreeNode;
import jetbrains.mps.ide.ui.tree.MPSTreeNode;
import jetbrains.mps.ide.ui.tree.TextTreeNode;
import jetbrains.mps.ide.ui.tree.module.AccessoriesModelTreeNode;
import jetbrains.mps.ide.ui.tree.module.GeneratorTreeNode;
import jetbrains.mps.ide.ui.tree.module.NamespaceTextNode;
import jetbrains.mps.ide.ui.tree.module.ProjectDevKitTreeNode;
import jetbrains.mps.ide.ui.tree.module.ProjectLanguageTreeNode;
import jetbrains.mps.ide.ui.tree.module.ProjectModuleTreeNode;
import jetbrains.mps.ide.ui.tree.module.ProjectSolutionTreeNode;
import jetbrains.mps.ide.ui.tree.module.ProjectTreeNode;
import jetbrains.mps.ide.ui.tree.module.RuntimeModulesTreeNode;
import jetbrains.mps.ide.ui.tree.module.TransientModelsTreeNode;
import jetbrains.mps.ide.ui.tree.smodel.PackageNode;
import jetbrains.mps.ide.ui.tree.smodel.SModelTreeNode;
import jetbrains.mps.ide.ui.tree.smodel.SNodeTreeNode;
import jetbrains.mps.workbench.action.ActionUtils;
public class ProjectPaneActionGroups {
private ProjectPaneActionGroups() {
}
public static final String PROJECT_PANE_MODULE_ACTIONS = ModuleActions_ActionGroup.ID;
public static final String PROJECT_PANE_LANGUAGE_ACTIONS = LanguageActions_ActionGroup.ID;
public static final String PROJECT_PANE_DEVKIT_ACTIONS = DevkitActions_ActionGroup.ID;
public static final String PROJECT_PANE_PROJECT_ACTIONS = ProjectActions_ActionGroup.ID;
public static final String PROJECT_PANE_SOLUTION_ACTIONS = SolutionActions_ActionGroup.ID;
public static final String PROJECT_PANE_GENERATOR_ACTIONS = GeneratorActions_ActionGroup.ID;
public static final String PROJECT_PANE_TRANSIENT_MODULES_ACTIONS = TransientModulesActions_ActionGroup.ID;
public static final String PROJECT_PANE_RUNTIME_FOLDER_ACTIONS = RuntimeFolderActions_ActionGroup.ID;
public static final String NODE_ACTIONS = NodeActions_ActionGroup.ID;
public static final String MODEL_ACTIONS = ModelActions_ActionGroup.ID;
public static final String PACKAGE_ACTIONS = PackageActions_ActionGroup.ID;
public static final String NAMESPACE_ACTIONS = NamespaceActions_ActionGroup.ID;
// FIXME hardcoded action ID
public static final String PROJECT_PANE_ACCESSORIES_ACTIONS = "jetbrains.mps.ide.devkit.actions.AccessoriesGroupActions_ActionGroup";
public static final String PROJECT_PANE_FILE_ACTIONS = FileActions_ActionGroup.ID;
public static final String PROJECT_PANE_FOLDER_ACTIONS = FolderActions_ActionGroup.ID;
public static final String PROJECT_NEW_ACTIONS = ProjectNewActions_ActionGroup.ID;
public static final String SOLUTION_NEW_ACTIONS = SolutionNewActions_ActionGroup.ID;
// FIXME hardcoded action ID
public static final String LANGUAGE_NEW_ACTIONS = "jetbrains.mps.ide.devkit.actions.LanguageNewActions_ActionGroup";
// FIXME hardcoded action ID
public static final String GENERATOR_NEW_ACTIONS = "jetbrains.mps.ide.devkit.actions.GeneratorNewActions_ActionGroup";
public static final String CREATE_ROOT_ACTIONS = CreateRootNode_ActionGroup.ID;
public static ActionGroup getActionGroup(MPSTreeNode treeNode) {
if (treeNode instanceof TextTreeNode) {
if (treeNode instanceof RuntimeModulesTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_RUNTIME_FOLDER_ACTIONS);
} else if (treeNode instanceof PropertyTreeNode) {
return ActionUtils.getGroup(PropertyNodeActions_ActionGroup.ID);
} else if (treeNode instanceof ProjectTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_PROJECT_ACTIONS);
} else if (treeNode instanceof ReferenceTreeNode) {
return ActionUtils.getGroup(ReferenceNodeActions_ActionGroup.ID);
} else if (treeNode instanceof NamespaceTextNode) {
return ActionUtils.getGroup(NAMESPACE_ACTIONS);
} else if (treeNode instanceof PackageNode) {
return ActionUtils.getGroup(PACKAGE_ACTIONS);
} else if (treeNode instanceof AccessoriesModelTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_ACCESSORIES_ACTIONS);
}
}
if (treeNode instanceof ProjectModuleTreeNode) {
if (treeNode instanceof ProjectSolutionTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_SOLUTION_ACTIONS);
} else if (treeNode instanceof GeneratorTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_GENERATOR_ACTIONS);
} else if (treeNode instanceof ProjectDevKitTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_DEVKIT_ACTIONS);
} else if (treeNode instanceof ProjectLanguageTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_LANGUAGE_ACTIONS);
} else if (treeNode instanceof TransientModelsTreeNode) {
return ActionUtils.getGroup(PROJECT_PANE_TRANSIENT_MODULES_ACTIONS);
}
}
if (treeNode instanceof SNodeTreeNode) {
return ActionUtils.getGroup(NODE_ACTIONS);
}
if (treeNode instanceof SModelTreeNode) {
return ActionUtils.getGroup(MODEL_ACTIONS);
}
if (treeNode instanceof AbstractFileTreeNode) {
if (treeNode instanceof ModuleTreeNode) {
return ActionUtils.getGroup(ModuleActions_ActionGroup.ID);
} else if (treeNode instanceof FileTreeNode) {
return ActionUtils.getGroup(FileActions_ActionGroup.ID);
} else if (treeNode instanceof FolderTreeNode) {
return ActionUtils.getGroup(FolderActions_ActionGroup.ID);
}
return ActionUtils.getGroup(AbstractFileActions_ActionGroup.ID);
}
return null;
}
public static ActionGroup getQuickCreateGroup(MPSTreeNode treeNode) {
if (treeNode instanceof TextTreeNode) {
if (treeNode instanceof ProjectTreeNode) {
return ActionUtils.getGroup(PROJECT_NEW_ACTIONS);
} else if (treeNode instanceof PackageNode) {
return ActionUtils.getGroup(CREATE_ROOT_ACTIONS);
}
}
if (treeNode instanceof SModelTreeNode) {
return ActionUtils.getGroup(CREATE_ROOT_ACTIONS);
}
if (treeNode instanceof ProjectModuleTreeNode) {
if (treeNode instanceof ProjectSolutionTreeNode) {
return ActionUtils.getGroup(SOLUTION_NEW_ACTIONS);
} else if (treeNode instanceof GeneratorTreeNode) {
return ActionUtils.getGroup(GENERATOR_NEW_ACTIONS);
} else if (treeNode instanceof ProjectLanguageTreeNode) {
return ActionUtils.getGroup(LANGUAGE_NEW_ACTIONS);
}
}
return null;
}
}