|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.form; import java.util.ArrayList; import java.awt.datatransfer.*; import org.openide.nodes.*; import org.openide.cookies.*; import org.openide.actions.*; import org.openide.util.actions.SystemAction; import org.netbeans.modules.form.actions.AddAction; import org.netbeans.modules.form.project.ClassSource; /** * This class represents the root node of "Other Components". * * @author Tomas Pavek */ class FormOthersNode extends FormNode { public FormOthersNode(FormModel formModel) { super(new OthersChildren(formModel), formModel); getCookieSet().add(new OthersIndex((OthersChildren)getChildren())); setIconBase("org/netbeans/modules/form/resources/formNonVisual"); // NOI18N setName("Others Node"); // NOI18N setName(FormUtils.getBundleString("CTL_NonVisualComponents")); // NOI18N } public javax.swing.Action[] getActions(boolean context) { if (systemActions == null) { // from AbstractNode ArrayList actions = new ArrayList(10); if (!getFormModel().isReadOnly()) { actions.add(SystemAction.get(AddAction.class)); actions.add(null); actions.add(SystemAction.get(PasteAction.class)); actions.add(null); actions.add(SystemAction.get(ReorderAction.class)); actions.add(null); } javax.swing.Action[] superActions = super.getActions(context); for (int i=0; i < superActions.length; i++) actions.add(superActions[i]); systemActions = new SystemAction[actions.size()]; actions.toArray(systemActions); } return systemActions; } protected void createPasteTypes(Transferable t, java.util.List s) { FormModel formModel = getFormModel(); if (formModel.isReadOnly()) return; boolean copy = t.isDataFlavorSupported( CopySupport.getComponentCopyFlavor()); boolean cut = t.isDataFlavorSupported( CopySupport.getComponentCutFlavor()); if (copy || cut) { // copy or cut some RADComponent RADComponent transComp = null; try { Object data = t.getTransferData(t.getTransferDataFlavors()[0]); if (data instanceof RADComponent) transComp = (RADComponent) data; } catch (UnsupportedFlavorException e) {} // should not happen catch (java.io.IOException e) {} // should not happen if (transComp != null && (!cut || CopySupport.canPasteCut(transComp, formModel, null))) { s.add(new CopySupport.RADPaste(t, formModel, null)); } } else { // java or class node could be copied ClassSource classSource = CopySupport.getCopiedBeanClassSource(t); if (classSource != null) { s.add(new CopySupport.ClassPaste(t, classSource, formModel, null)); } } } // ------------- static class OthersChildren extends FormNodeChildren { private FormModel formModel; protected OthersChildren(FormModel formModel) { this.formModel = formModel; updateKeys(); } // FormNodeChildren implementation protected void updateKeys() { setKeys(formModel.getOtherComponents(false)); } protected Node[] createNodes(Object key) { Node node = new RADComponentNode((RADComponent)key); node.getChildren().getNodes(); // enforce subnodes creation return new Node[] { node }; } protected final FormModel getFormModel() { return formModel; } } // ------------- static final class OthersIndex extends org.openide.nodes.Index.Support { private OthersChildren children; public OthersIndex(OthersChildren children) { this.children = children; } public Node[] getNodes() { return children.getNodes(); } public int getNodesCount() { return getNodes().length; } public void reorder(int[] perm) { ComponentContainer cont = children.getFormModel().getModelContainer(); cont.reorderSubComponents(perm); children.getFormModel().fireComponentsReordered(cont, perm); // children.updateKeys(); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.