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:
042: package org.openide.filesystems.data;
043:
044: import java.awt.Image;
045: import java.awt.Toolkit;
046: import java.awt.datatransfer.Transferable;
047: import java.util.List;
048: import java.util.ResourceBundle;
049:
050: import org.openide.nodes.*;
051: import org.openide.actions.*;
052: import org.openide.loaders.DataFolder;
053: import org.openide.util.datatransfer.NewType;
054: import org.openide.util.actions.SystemAction;
055: import org.openide.util.HelpCtx;
056: import org.openide.util.NbBundle;
057:
058: /** Dummy class, serves as a template for generating java files.
059: */
060: public final class JavaSrc {
061:
062: /** Actions which this node supports */
063: static SystemAction[] staticActions;
064: /** Actions of this node when it is top level actions node */
065: static SystemAction[] topStaticActions;
066:
067: private static final Node.PropertySet[] NO_PROPERTIES = new Node.PropertySet[0];
068:
069: public JavaSrc() {
070: }
071:
072: /** Constructs this node with given node to filter.
073: */
074: JavaSrc(DataFolder folder) {
075: }
076:
077: public HelpCtx getHelpCtx() {
078: return new HelpCtx(Object.class);
079: }
080:
081: /** Support for new types that can be created in this node.
082: * @return array of new type operations that are allowed
083: */
084: public NewType[] getNewTypes() {
085: return new NewType[0];
086: }
087:
088: protected void createPasteTypes(Transferable t, List s) {
089: s.clear();
090: }
091:
092: /** Actions.
093: * @return array of actions for this node
094: */
095: public SystemAction[] getActions() {
096: if (staticActions == null)
097: topStaticActions = new SystemAction[] {
098: SystemAction.get(FileSystemAction.class), null,
099: SystemAction.get(ToolsAction.class),
100: SystemAction.get(PropertiesAction.class), };
101: return topStaticActions;
102: }
103:
104: /** Creates properties for this node */
105: public Node.PropertySet[] getPropertySets() {
106: return NO_PROPERTIES;
107: }
108:
109: public boolean canDestroy() {
110: return false;
111: }
112:
113: public boolean canCut() {
114: return false;
115: }
116:
117: public boolean canRename() {
118: return false;
119: }
120:
121: /** Children for the JavaSrc. Creates JavaSrcs or
122: * ItemNodes as filter subnodes...
123: */
124: static final class ActionsPoolChildren extends FilterNode.Children {
125:
126: /** @param or original node to take children from */
127: public ActionsPoolChildren(DataFolder folder) {
128: super (folder.getNodeDelegate());
129: }
130:
131: /** Overriden, returns JavaSrc filters of original nodes.
132: *
133: * @param node node to create copy of
134: * @return JavaSrc filter of the original node
135: */
136: protected Node copyNode(Node node) {
137: DataFolder df = (DataFolder) node
138: .getCookie(DataFolder.class);
139: if (df != null) {
140: return null;
141: }
142: return new ActionItemNode(node);
143: }
144:
145: }
146:
147: static final class ActionItemNode extends FilterNode {
148: /** Icons for this node */
149: static Image itemIcon;
150: static Image itemIcon32;
151:
152: /** Actions which this node supports */
153: static SystemAction[] staticActions;
154:
155: /** Constructs new filter node for Action item */
156: ActionItemNode(Node filter) {
157: super (filter, Children.LEAF);
158: }
159:
160: /*
161: public Image getIcon (int type) {
162: if ((type == java.beans.BeanInfo.ICON_COLOR_16x16) ||
163: (type == java.beans.BeanInfo.ICON_MONO_16x16)) {
164: if (itemIcon == null)
165: itemIcon = Toolkit.getDefaultToolkit ().getImage (
166: getClass ().getResource ("/org/netbeans/core/resources/action.gif")); // NOI18N
167: return itemIcon;
168: } else {
169: if (itemIcon32 == null)
170: itemIcon32 = Toolkit.getDefaultToolkit ().getImage (
171: getClass ().getResource ("/org/netbeans/core/resources/action32.gif")); // NOI18N
172: return itemIcon32;
173: }
174: }
175:
176: public Image getOpenedIcon (int type) {
177: return getIcon (type);
178: }
179: */
180:
181: /** Actions.
182: * @return array of actions for this node
183: */
184: public SystemAction[] getActions() {
185: if (staticActions == null) {
186: staticActions = new SystemAction[] {
187: SystemAction.get(CopyAction.class), null,
188: SystemAction.get(ToolsAction.class),
189: SystemAction.get(PropertiesAction.class), };
190: }
191: return staticActions;
192: }
193:
194: /** Disallows renaming.
195: */
196: public boolean canRename() {
197: return false;
198: }
199:
200: public boolean canDestroy() {
201: return false;
202: }
203:
204: public boolean canCut() {
205: return false;
206: }
207:
208: /** Creates properties for this node */
209: public Node.PropertySet[] getPropertySets() {
210: /*
211: ResourceBundle bundle = NbBundle.getBundle(Object.class);
212: // default sheet with "properties" property set // NOI18N
213: Sheet sheet = Sheet.createDefault();
214: sheet.get(Sheet.PROPERTIES).put(
215: new PropertySupport.Name(
216: this,
217: bundle.getString("PROP_ActionItemName"),
218: bundle.getString("HINT_ActionItemName")
219: )
220: );
221: return sheet.toArray();
222: */
223: return new Node.PropertySet[] {};
224: }
225:
226: } // end of ActionItemNode
227:
228: }
|