001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041: package org.netbeans.modules.vmd.midp.actions;
042:
043: import java.util.List;
044:
045: import org.netbeans.modules.vmd.api.inspector.common.RenameAction;
046: import org.netbeans.modules.vmd.api.model.Presenter;
047: import org.netbeans.modules.vmd.api.model.TypeID;
048: import org.netbeans.modules.vmd.api.model.presenters.actions.MoveAction;
049: import org.netbeans.modules.vmd.api.model.presenters.actions.ActionsPresenter;
050: import org.netbeans.modules.vmd.api.model.presenters.actions.AddAction;
051: import org.netbeans.modules.vmd.api.model.presenters.actions.AddActionPresenter;
052: import org.netbeans.modules.vmd.api.model.presenters.actions.DeleteAction;
053: import org.netbeans.modules.vmd.api.screen.actions.DesignerEditAction;
054: import org.netbeans.modules.vmd.api.screen.actions.DesignerEditParentAction;
055: import org.openide.actions.PropertiesAction;
056:
057: import org.openide.util.actions.SystemAction;
058:
059: /**
060: * @author David Kaspar
061: */
062: public final class MidpActionsSupport {
063:
064: public static void addCommonActionsPresenters(
065: List<Presenter> presenters, boolean allowEdit,
066: boolean allowGoToSource, boolean allowRename,
067: boolean allowDelete, boolean allowProperties) {
068: if (allowEdit)
069: presenters.add(ActionsPresenter.create(20, SystemAction
070: .get(DesignerEditAction.class)));
071: if (allowGoToSource)
072: presenters.add(ActionsPresenter.create(20, SystemAction
073: .get(GoToSourceAction.class)));
074: if (allowRename)
075: presenters.add(ActionsPresenter.create(30, SystemAction
076: .get(RenameAction.class)));
077: if (allowDelete)
078: presenters.add(ActionsPresenter.create(40, SystemAction
079: .get(DeleteAction.class)));
080: if (allowProperties)
081: presenters.add(ActionsPresenter.create(60, SystemAction
082: .get(PropertiesAction.class)));
083: }
084:
085: public static void addCommonActionsPresentersParentEditAction(
086: List<Presenter> presenters, boolean allowEdit,
087: boolean allowGoToSource, boolean allowRename,
088: boolean allowDelete, boolean allowProperties) {
089: if (allowEdit)
090: presenters.add(ActionsPresenter.create(20, SystemAction
091: .get(DesignerEditParentAction.class)));
092: if (allowGoToSource)
093: presenters.add(ActionsPresenter.create(20, SystemAction
094: .get(GoToSourceAction.class)));
095: if (allowRename)
096: presenters.add(ActionsPresenter.create(30, SystemAction
097: .get(RenameAction.class)));
098: if (allowDelete)
099: presenters.add(ActionsPresenter.create(40, SystemAction
100: .get(DeleteAction.class)));
101: if (allowProperties)
102: presenters.add(ActionsPresenter.create(60, SystemAction
103: .get(PropertiesAction.class)));
104: }
105:
106: public static void addMoveActionPresenter(
107: List<Presenter> presenters, String propertyName) {
108: presenters.add(ActionsPresenter.create(50, MoveAction
109: .createMoveUpAction(propertyName), MoveAction
110: .createMoveDownAction(propertyName)));
111: }
112:
113: public static void addNewActionPresenter(
114: List<Presenter> presenters, TypeID... types) {
115: presenters.add(ActionsPresenter.create(10, AddAction
116: .getInstance()));
117: presenters.add(AddActionPresenter.create(
118: AddActionPresenter.ADD_ACTION, 10, types));
119: }
120:
121: public static void addUnusedCommandsAddActionForDisplayable(
122: List<Presenter> presenters) {
123: presenters
124: .add(UnusedCommandsAddActionPresenter
125: .createForDisplayable(
126: UnusedCommandsAddActionPresenter.DISPLAY_NAME_ADD,
127: 20));
128: }
129:
130: public static void addUnusedCommandsAddActionForItem(
131: List<Presenter> presenters) {
132: presenters.add(UnusedCommandsAddActionPresenter.createForItem(
133: UnusedCommandsAddActionPresenter.DISPLAY_NAME_ADD, 20));
134: }
135:
136: public static void addPropertiesActionPresenter(
137: List<Presenter> presenters) {
138: presenters.add(ActionsPresenter.create(Integer.MAX_VALUE,
139: SystemAction.get(PropertiesAction.class)));
140: }
141:
142: }
|