/* ****************************************************************************** * Copyright (c) 2006-2012 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and * above are dual-licensed under the Eclipse Public License (EPL), * which is available at http://www.eclipse.org/legal/epl-v10.html * and the GNU Lesser General Public License (LGPL), * which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: * XMind Ltd. - initial API and implementation *******************************************************************************/ package org.xmind.ui.internal.mindmap; import static org.xmind.gef.GEF.TOOL_AREASELECT; import static org.xmind.gef.GEF.TOOL_BROWSE; import static org.xmind.gef.GEF.TOOL_DND; import static org.xmind.gef.GEF.TOOL_EDIT; import static org.xmind.gef.GEF.TOOL_SELECT; import static org.xmind.gef.GEF.TOOL_TRAVERSE; import static org.xmind.ui.mindmap.MindMapUI.REQ_ADD_ATTACHMENT; import static org.xmind.ui.mindmap.MindMapUI.REQ_ADD_IMAGE; import static org.xmind.ui.mindmap.MindMapUI.REQ_ADD_MARKER; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_BEFORE; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_BOUNDARY; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_CALLOUT; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_CHILD; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_FLOAT; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_PARENT; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_RELATIONSHIP; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_SHEET; import static org.xmind.ui.mindmap.MindMapUI.REQ_CREATE_SUMMARY; import static org.xmind.ui.mindmap.MindMapUI.REQ_DUPLICATE_TOPIC; import static org.xmind.ui.mindmap.MindMapUI.REQ_EDIT_LABEL; import static org.xmind.ui.mindmap.MindMapUI.REQ_HIDE_LEGEND; import static org.xmind.ui.mindmap.MindMapUI.REQ_MODIFY_HYPERLINK; import static org.xmind.ui.mindmap.MindMapUI.REQ_MODIFY_LABEL; import static org.xmind.ui.mindmap.MindMapUI.REQ_MODIFY_NUMBERING; import static org.xmind.ui.mindmap.MindMapUI.REQ_MODIFY_RANGE; import static org.xmind.ui.mindmap.MindMapUI.REQ_MODIFY_STYLE; import static org.xmind.ui.mindmap.MindMapUI.REQ_MODIFY_THEME; import static org.xmind.ui.mindmap.MindMapUI.REQ_MOVE_CONTROL_POINT; import static org.xmind.ui.mindmap.MindMapUI.REQ_NAV_CHILD; import static org.xmind.ui.mindmap.MindMapUI.REQ_NAV_SIBLING; import static org.xmind.ui.mindmap.MindMapUI.REQ_REMOVE_ALLSTYLES; import static org.xmind.ui.mindmap.MindMapUI.REQ_REPLACE_ALL; import static org.xmind.ui.mindmap.MindMapUI.REQ_RESET_POSITION; import static org.xmind.ui.mindmap.MindMapUI.REQ_RETARGET_REL; import static org.xmind.ui.mindmap.MindMapUI.REQ_SHOW_LEGEND; import static org.xmind.ui.mindmap.MindMapUI.REQ_TILE; import static org.xmind.ui.mindmap.MindMapUI.TOOL_CREATE_BOUNDARY; import static org.xmind.ui.mindmap.MindMapUI.TOOL_CREATE_FLOAT; import static org.xmind.ui.mindmap.MindMapUI.TOOL_CREATE_LEGEND; import static org.xmind.ui.mindmap.MindMapUI.TOOL_CREATE_RELATIONSHIP; import static org.xmind.ui.mindmap.MindMapUI.TOOL_CREATE_SUMMARY; import static org.xmind.ui.mindmap.MindMapUI.TOOL_EDIT_LABEL; import static org.xmind.ui.mindmap.MindMapUI.TOOL_EDIT_LEGEND_ITEM; import static org.xmind.ui.mindmap.MindMapUI.TOOL_EDIT_TOPIC_TITLE; import static org.xmind.ui.mindmap.MindMapUI.TOOL_MOVE_IMAGE; import static org.xmind.ui.mindmap.MindMapUI.TOOL_MOVE_LEGEND; import static org.xmind.ui.mindmap.MindMapUI.TOOL_MOVE_MARKER; import static org.xmind.ui.mindmap.MindMapUI.TOOL_MOVE_RELATIONSHIP; import static org.xmind.ui.mindmap.MindMapUI.TOOL_MOVE_TOPIC; import static org.xmind.ui.mindmap.MindMapUI.TOOL_RESIZE_IMAGE; import static org.xmind.ui.mindmap.MindMapUI.TOOL_RESIZE_RANGE; import org.xmind.gef.EditDomain; import org.xmind.gef.GEF; import org.xmind.gef.policy.IEditPolicy; import org.xmind.gef.policy.NullEditPolicy; import org.xmind.gef.tool.BrowsingTool; import org.xmind.gef.tool.ITool; import org.xmind.ui.internal.tools.BoundaryCreateTool; import org.xmind.ui.internal.tools.FloatingTopicCreateTool; import org.xmind.ui.internal.tools.ImageMoveTool; import org.xmind.ui.internal.tools.ImageResizeTool; import org.xmind.ui.internal.tools.LabelEditTool; import org.xmind.ui.internal.tools.LegendCreateTool; import org.xmind.ui.internal.tools.LegendItemEditTool; import org.xmind.ui.internal.tools.LegendMoveTool; import org.xmind.ui.internal.tools.MarkerMoveTool; import org.xmind.ui.internal.tools.MindMapDndTool; import org.xmind.ui.internal.tools.MindMapSelectTool; import org.xmind.ui.internal.tools.MindMapTraverseTool; import org.xmind.ui.internal.tools.RangeResizeTool; import org.xmind.ui.internal.tools.RelationshipCreateTool; import org.xmind.ui.internal.tools.RelationshipMoveTool; import org.xmind.ui.internal.tools.SheetTitleEditTool; import org.xmind.ui.internal.tools.SummaryCreateTool; import org.xmind.ui.internal.tools.TopicAreaSelectTool; import org.xmind.ui.internal.tools.TopicMoveTool; import org.xmind.ui.internal.tools.TopicTitleEditTool; import org.xmind.ui.mindmap.MindMapUI; import org.xmind.ui.tools.TitleEditTool; public class MindMapEditDomain extends EditDomain { public MindMapEditDomain() { getPartRoles().setRole(REQ_CREATE_CALLOUT, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_CREATE_CHILD, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_CREATE_BEFORE, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_CREATE_PARENT, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_CREATE_SHEET, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_DUPLICATE_TOPIC, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_CREATE_FLOAT, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_CREATE_BOUNDARY, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_CREATE_SUMMARY, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_ADD_MARKER, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_ADD_ATTACHMENT, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_ADD_IMAGE, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_NAV_SIBLING, GEF.ROLE_NAVIGABLE); getPartRoles().setRole(REQ_NAV_CHILD, GEF.ROLE_NAVIGABLE); getPartRoles().setRole(REQ_EDIT_LABEL, GEF.ROLE_EDITABLE); getPartRoles().setRole(REQ_REPLACE_ALL, GEF.ROLE_EDITABLE); getPartRoles().setRole(REQ_MODIFY_HYPERLINK, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_CREATE_RELATIONSHIP, GEF.ROLE_CREATABLE); getPartRoles().setRole(REQ_MOVE_CONTROL_POINT, GEF.ROLE_MOVABLE); getPartRoles().setRole(REQ_RETARGET_REL, GEF.ROLE_MOVABLE); getPartRoles().setRole(REQ_MODIFY_STYLE, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_MODIFY_RANGE, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_MODIFY_LABEL, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_MODIFY_NUMBERING, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_RESET_POSITION, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_MODIFY_THEME, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_REMOVE_ALLSTYLES, GEF.ROLE_MODIFIABLE); getPartRoles().setRole(REQ_SHOW_LEGEND, MindMapUI.ROLE_MAP); getPartRoles().setRole(REQ_HIDE_LEGEND, MindMapUI.ROLE_MAP); getPartRoles().setRole(REQ_TILE, MindMapUI.ROLE_MAP); installTool(TOOL_SELECT, new MindMapSelectTool()); installTool(TOOL_BROWSE, new BrowsingTool()); installTool(TOOL_EDIT, new TitleEditTool()); installTool(TOOL_AREASELECT, new TopicAreaSelectTool()); installTool(TOOL_TRAVERSE, new MindMapTraverseTool()); installTool(TOOL_DND, new MindMapDndTool()); installTool(TOOL_CREATE_FLOAT, new FloatingTopicCreateTool()); installTool(TOOL_EDIT_TOPIC_TITLE, new TopicTitleEditTool()); installTool(TOOL_CREATE_RELATIONSHIP, new RelationshipCreateTool()); installTool(TOOL_MOVE_RELATIONSHIP, new RelationshipMoveTool()); installTool(TOOL_CREATE_BOUNDARY, new BoundaryCreateTool()); installTool(TOOL_CREATE_SUMMARY, new SummaryCreateTool()); installTool(TOOL_RESIZE_RANGE, new RangeResizeTool()); installTool(TOOL_EDIT_LABEL, new LabelEditTool()); installTool(TOOL_RESIZE_IMAGE, new ImageResizeTool()); installTool(TOOL_MOVE_TOPIC, new TopicMoveTool()); installTool(TOOL_MOVE_IMAGE, new ImageMoveTool()); installTool(TOOL_MOVE_MARKER, new MarkerMoveTool()); installTool(TOOL_MOVE_LEGEND, new LegendMoveTool()); installTool(TOOL_CREATE_LEGEND, new LegendCreateTool()); installTool(TOOL_EDIT_LEGEND_ITEM, new LegendItemEditTool()); installTool(MindMapUI.TOOL_EDIT_SHEET_TITLE, new SheetTitleEditTool()); setDefaultTool(GEF.TOOL_SELECT); } public IEditPolicy getEditPolicy(String role, String id) { IEditPolicy editPolicy = super.getEditPolicy(role, id); if (editPolicy == null || editPolicy == NullEditPolicy.getInstance()) return MindMapUI.getEditPolicyManager().getEditPolicy(id); return editPolicy; } public ITool getTool(String id) { ITool tool = super.getTool(id); if (tool == null) { tool = createToolExtension(id); if (tool != null) { installTool(id, tool); } } return tool; } private ITool createToolExtension(String id) { return ToolExtensionRegistry.getInstance().createTool(id); } }