import org.openide.*; import org.openide.actions.*; import org.openide.nodes.*; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; import org.openide.util.actions.SystemAction; import org.openide.explorer.propertysheet.*; import org.openide.explorer.propertysheet.editors.*; import java.beans.*; import java.awt.*; import java.awt.event.*; import java.lang.reflect.*; import javax.swing.*; /** A simple node with no children. * * @author dstrupl */ public class ItalicsTestNode extends AbstractNode { private Object myValue = "one"; public ItalicsTestNode() { super (Children.LEAF); //setIconBase ("/TestNodeIcon"); // Whatever is most relevant to a user: setDefaultAction (SystemAction.get (PropertiesAction.class)); // Set FeatureDescriptor stuff: setName ("preferablyUniqueNameForThisNodeAmongSiblings"); // or, super.setName if needed setDisplayName ("test node"); // setShortDescription (NbBundle.getMessage (TestNode.class, "HINT_node")); } // Create the popup menu: protected SystemAction[] createActions () { return new SystemAction[] { SystemAction.get (ToolsAction.class), null, SystemAction.get (PropertiesAction.class), }; } public HelpCtx getHelpCtx () { return HelpCtx.DEFAULT_HELP; } // Create a property sheet: protected Sheet createSheet () { Sheet sheet = super.createSheet (); // Make sure there is a "Properties" set: Sheet.Set props = sheet.get (Sheet.PROPERTIES); // get by name, not display name if (props == null) { props = Sheet.createPropertiesSet (); sheet.put (props); } props.put (new TestProp ("WHOOOO", true)); return sheet; } private class TestProp extends PropertySupport { public TestProp (String name, boolean isWriteable) { super(name, String.class, name, "my hint", true, isWriteable); } public Object getValue () { return myValue; } public void setValue (Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { System.out.println("SetValue called with value == " + value); Object oldVal = myValue; myValue = value; firePropertyChange (getName(), oldVal, myValue); } } public static void main(String args[]) { TopManager.getDefault().getNodeOperation().explore(new ItalicsTestNode()); } }