This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 161286
Collapse All | Expand All

(-)a/bugtracking/nbproject/project.xml (-1 / +1 lines)
Lines 146-152 Link Here
146
                    <build-prerequisite/>
146
                    <build-prerequisite/>
147
                    <compile-dependency/>
147
                    <compile-dependency/>
148
                    <run-dependency>
148
                    <run-dependency>
149
                        <specification-version>7.7</specification-version>
149
                        <specification-version>7.9</specification-version>
150
                    </run-dependency>
150
                    </run-dependency>
151
                </dependency>
151
                </dependency>
152
                <dependency>
152
                <dependency>
(-)a/bugtracking/src/org/netbeans/modules/bugtracking/layer.xml (-2 / +5 lines)
Lines 52-59 Link Here
52
    <folder name="UI">
52
    <folder name="UI">
53
        <folder name="Runtime">
53
        <folder name="Runtime">
54
            <file name="org-netbeans-modules-bugtracking-ui-nodes-BugtrackingRootNode.instance">
54
            <file name="org-netbeans-modules-bugtracking-ui-nodes-BugtrackingRootNode.instance">
55
                <attr name="instanceClass" stringvalue="org.netbeans.modules.bugtracking.ui.nodes.BugtrackingRootNode"/>
55
                <attr name="instanceCreate" methodvalue="org.openide.nodes.NodeOp.factory"/>
56
                <attr name="instanceCreate" methodvalue="org.netbeans.modules.bugtracking.ui.nodes.BugtrackingRootNode.getDefault"/>
56
                <attr name="name" stringvalue="bugtracking"/>
57
                <attr name="displayName" bundlevalue="org.netbeans.modules.bugtracking.ui.nodes.Bundle#LBL_BugtrackingNode"/>
58
                <attr name="iconResource" stringvalue="org/netbeans/modules/bugtracking/ui/resources/bugtracking.png"/>
59
                <attr name="original" methodvalue="org.netbeans.modules.bugtracking.ui.nodes.BugtrackingRootNode.getDefault"/>
57
                <attr name="position" intvalue="588"/>
60
                <attr name="position" intvalue="588"/>
58
            </file>
61
            </file>
59
        </folder>
62
        </folder>
(-)a/db/nbproject/project.xml (-1 / +1 lines)
Lines 151-157 Link Here
151
                    <build-prerequisite/>
151
                    <build-prerequisite/>
152
                    <compile-dependency/>
152
                    <compile-dependency/>
153
                    <run-dependency>
153
                    <run-dependency>
154
                        <specification-version>6.2</specification-version>
154
                        <specification-version>7.9</specification-version>
155
                    </run-dependency>
155
                    </run-dependency>
156
                </dependency>
156
                </dependency>
157
                <dependency>
157
                <dependency>
(-)a/db/src/org/netbeans/modules/db/resources/mf-layer.xml (-3 / +6 lines)
Lines 562-570 Link Here
562
           -->
562
           -->
563
           <!-- uncomment this block to include the new explorer tree -->
563
           <!-- uncomment this block to include the new explorer tree -->
564
           <file name="org-netbeans-modules-db-explorer-node-RootNode.instance">
564
           <file name="org-netbeans-modules-db-explorer-node-RootNode.instance">
565
             <attr name="instanceClass" stringvalue="org.netbeans.modules.db.explorer.node.RootNode"/>
565
                <attr name="instanceCreate" methodvalue="org.openide.nodes.NodeOp.factory"/>
566
             <attr name="instanceCreate" methodvalue="org.netbeans.modules.db.explorer.node.RootNode.instance"/>
566
                <attr name="name" stringvalue="Databases"/>
567
               <attr name="position" intvalue="101"/>
567
                <attr name="displayName" bundlevalue="org/netbeans/modules/db/resources/Bundle#RootNode_DISPLAYNAME"/>
568
                <attr name="iconResource" stringvalue="org/netbeans/modules/db/resources/database.gif"/>
569
                <attr name="original" methodvalue="org.netbeans.modules.db.explorer.node.RootNode.instance"/>
570
                <attr name="position" intvalue="101"/>
568
            </file>
571
            </file>
569
            <!-- -->
572
            <!-- -->
570
        </folder> <!-- Runtime -->
573
        </folder> <!-- Runtime -->
(-)a/hudson/nbproject/project.xml (-1 / +1 lines)
Lines 120-126 Link Here
120
                    <build-prerequisite/>
120
                    <build-prerequisite/>
121
                    <compile-dependency/>
121
                    <compile-dependency/>
122
                    <run-dependency>
122
                    <run-dependency>
123
                        <specification-version>7.1</specification-version>
123
                        <specification-version>7.9</specification-version>
124
                    </run-dependency>
124
                    </run-dependency>
125
                </dependency>
125
                </dependency>
126
                <dependency>
126
                <dependency>
(-)a/hudson/src/org/netbeans/modules/hudson/layer.xml (-2 / +5 lines)
Lines 22-29 Link Here
22
    <folder name="UI">
22
    <folder name="UI">
23
        <folder name="Runtime">
23
        <folder name="Runtime">
24
            <file name="org-netbeans-modules-hudson-ui-nodes-HudsonRootNode.instance">
24
            <file name="org-netbeans-modules-hudson-ui-nodes-HudsonRootNode.instance">
25
                <attr name="instanceClass" stringvalue="org.netbeans.modules.hudson.ui.nodes.HudsonRootNode"/>
25
                <attr name="instanceCreate" methodvalue="org.openide.nodes.NodeOp.factory"/>
26
                <attr name="instanceCreate" methodvalue="org.netbeans.modules.hudson.ui.nodes.HudsonRootNode.getDefault"/>
26
                <attr name="name" stringvalue="hudson"/>
27
                <attr name="displayName" bundlevalue="org.netbeans.modules.hudson.ui.nodes.Bundle#LBL_HudsonNode"/>
28
                <attr name="iconResource" stringvalue="org/netbeans/modules/hudson/ui/resources/hudson.png"/>
29
                <attr name="original" methodvalue="org.netbeans.modules.hudson.ui.nodes.HudsonRootNode.getDefault"/>
27
                <attr name="position" intvalue="488"/>
30
                <attr name="position" intvalue="488"/>
28
            </file>
31
            </file>
29
        </folder>     
32
        </folder>     
(-)a/openide.nodes/apichanges.xml (+18 lines)
Lines 46-51 Link Here
46
<apidef name="nodes">Nodes API</apidef>
46
<apidef name="nodes">Nodes API</apidef>
47
</apidefs>
47
</apidefs>
48
<changes>
48
<changes>
49
    <change id="NodeOp.factory">
50
        <api name="nodes"/>
51
        <summary>Support for declarative Node registrations</summary>
52
        <version major="7" minor="9"/>
53
        <date day="1" month="4" year="2009"/>
54
        <author login="jtulach"/>
55
        <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible"/>
56
        <description>
57
            <p>
58
            <a href="@TOP@/org/openide/nodes/NodeOp.html#factory">NodeOp.factory</a>
59
            is new method, particularly useful from
60
            <a href="@org-openide-modules@/org/openide/modules/doc-files/api.html#how-layer">layers</a>
61
            that allows declarative definition of a root node.
62
            </p>
63
        </description>
64
        <class package="org.openide.nodes" name="NodeOp"/>
65
        <issue number="161286"/>
66
    </change>
49
    <change id="ChildFactory.Detachable">
67
    <change id="ChildFactory.Detachable">
50
        <api name="nodes"/>
68
        <api name="nodes"/>
51
        <summary>Adding ChildFactory.Detachable to allow ChildFactory implementations to
69
        <summary>Adding ChildFactory.Detachable to allow ChildFactory implementations to
(-)a/openide.nodes/nbproject/project.properties (-1 / +1 lines)
Lines 44-47 Link Here
44
javadoc.arch=${basedir}/arch.xml
44
javadoc.arch=${basedir}/arch.xml
45
javadoc.apichanges=${basedir}/apichanges.xml
45
javadoc.apichanges=${basedir}/apichanges.xml
46
46
47
spec.version.base=7.8.0
47
spec.version.base=7.9.0
(-)a/openide.nodes/src/org/openide/nodes/NodeOp.java (+52 lines)
Lines 442-447 Link Here
442
        return WeakListeners.create(NodeListener.class, l, source);
442
        return WeakListeners.create(NodeListener.class, l, source);
443
    }
443
    }
444
444
445
    /** Creates a <q>lazy node</q> - a node that displays basic information
446
     * about the original node behind it, without touching it. As soon as
447
     * the node is expanded, or a pop up menu is invoked on it, it switches
448
     * to the real delegates and since then everything is being bridged to
449
     * the real node.
450
     * <p>
451
     * This method is especially useful when used from 
452
     * <a href="@org-openide-modules@/org/openide/modules/doc-files/api.html#how-layer">layers</a>.
453
     * Use following
454
     * XML snippet to register your node into Services tab:
455
     * <pre>
456
     * &lt;folder name="UI"&gt;
457
     *   &lt;folder name="Runtime"&gt;
458
     *     &lt;file name="org-yourorg-yourpgk-YourNode.instance"&gt;
459
     *       &lt;attr name="instanceCreate" methodvalue="org.openide.nodes.NodeOp.factory"/&gt;
460
     *       &lt;attr name="name" stringvalue="YourNode"/&gt;
461
     *       &lt;attr name="displayName" bundlevalue="org.yourorg.yourpkg.Bundle#NAME-KEY"/&gt;
462
     *       &lt;attr name="shortDescription" bundlevalue="org.yourorg.yourpkg.Bundle#SHORT-KEY"/&gt;
463
     *       &lt;attr name="iconResource" stringvalue="org/yourorg/yourpkg/image.png"/&gt;
464
     *       &lt;attr name="original" newvalue="org.yourorg.yourpkg.YourNode"/&gt;
465
     *     &lt;file/&gt;
466
     *   &lt;folder/&gt;
467
     * &lt;folder/&gt;
468
     * </pre>
469
     *
470
     * @param original the real node behind the one created
471
     * @param name programatic name of the node
472
     * @param displayName human readable name of the node
473
     * @param shortDescription short description for the node
474
     * @param iconResource path to icon to use as in {@link AbstractNode#setIconBaseWithExtension(java.lang.String)}
475
     * @return new node with preset defaults that can delegate to original
476
     *
477
     * @since 7.9
478
     */
479
    public static Node factory(
480
        Node original,
481
        String name, String displayName, String shortDescription,
482
        String iconResource
483
    ) {
484
        Map<Object,Object> map = new HashMap<Object,Object>();
485
        map.put("original", original); // NOI18N
486
        map.put("name", name); // NOI18N
487
        map.put("displayName", displayName); // NOI18N
488
        map.put("shortDescription", shortDescription); // NOI18N
489
        map.put("iconResource", iconResource); // NOI18N
490
        return new LazyNode(map);
491
    }
492
493
    static Node factory(Map<?,?> map) {
494
        return new LazyNode(map);
495
    }
496
445
    /** Utility method to remove dependency of this package on
497
    /** Utility method to remove dependency of this package on
446
     * org.openide.actions. This method takes names of classes from
498
     * org.openide.actions. This method takes names of classes from
447
     * that package and creates their instances.
499
     * that package and creates their instances.
(-)a/server/nbproject/project.xml (-1 / +1 lines)
Lines 100-106 Link Here
100
                    <build-prerequisite/>
100
                    <build-prerequisite/>
101
                    <compile-dependency/>
101
                    <compile-dependency/>
102
                    <run-dependency>
102
                    <run-dependency>
103
                        <specification-version>7.3</specification-version>
103
                        <specification-version>7.9</specification-version>
104
                    </run-dependency>
104
                    </run-dependency>
105
                </dependency>
105
                </dependency>
106
                <dependency>
106
                <dependency>
(-)a/server/src/org/netbeans/modules/server/resources/layer.xml (-2 / +6 lines)
Lines 46-53 Link Here
46
    <folder name="UI">
46
    <folder name="UI">
47
        <folder name="Runtime">
47
        <folder name="Runtime">
48
            <file name="ServerRegistry3.instance">
48
            <file name="ServerRegistry3.instance">
49
                <attr name="instanceCreate" methodvalue="org.netbeans.modules.server.ui.node.RootNode.getInstance"/>
49
                <attr name="instanceCreate" methodvalue="org.openide.nodes.NodeOp.factory"/>
50
                <attr name="instanceClass" stringvalue="org.netbeans.modules.server.ui.node.RootNode"/>
50
                <attr name="name" stringvalue="servers"/>
51
                <attr name="displayName" bundlevalue="org.netbeans.modules.server.ui.node.Bundle#Server_Registry_Node_Name"/>
52
                <attr name="shortDescription" bundlevalue="org.netbeans.modules.server.ui.node.Bundle#Server_Registry_Node_Short_Description"/>
53
                <attr name="iconResource" stringvalue="org/netbeans/modules/server/ui/resources/servers.png"/>
54
                <attr name="original" methodvalue="org.netbeans.modules.server.ui.node.RootNode.getInstance"/>
51
                <attr name="position" intvalue="400"/>
55
                <attr name="position" intvalue="400"/>
52
            </file>
56
            </file>
53
       </folder>
57
       </folder>
(-)a/websvc.saas.ui/nbproject/project.xml (-1 / +10 lines)
Lines 30-35 Link Here
30
                    <run-dependency>
30
                    <run-dependency>
31
                        <release-version>1</release-version>
31
                        <release-version>1</release-version>
32
                        <specification-version>1.6</specification-version>
32
                        <specification-version>1.6</specification-version>
33
                    </run-dependency>
34
                </dependency>
35
                <dependency>
36
                    <code-name-base>org.netbeans.modules.websvc.jaxwsmodelapi</code-name-base>
37
                    <build-prerequisite/>
38
                    <compile-dependency/>
39
                    <run-dependency>
40
                        <release-version>1</release-version>
41
                        <specification-version>1.0</specification-version>
33
                    </run-dependency>
42
                    </run-dependency>
34
                </dependency>
43
                </dependency>
35
                <dependency>
44
                <dependency>
Lines 103-109 Link Here
103
                    <build-prerequisite/>
112
                    <build-prerequisite/>
104
                    <compile-dependency/>
113
                    <compile-dependency/>
105
                    <run-dependency>
114
                    <run-dependency>
106
                        <specification-version>7.3</specification-version>
115
                        <specification-version>7.9</specification-version>
107
                    </run-dependency>
116
                    </run-dependency>
108
                </dependency>
117
                </dependency>
109
                <dependency>
118
                <dependency>
110
            </module-dependencies>
119
            </module-dependencies>
111
            <public-packages/>
120
            <public-packages/>
112
        </data>
121
        </data>
(-)a/websvc.saas.ui/src/org/netbeans/modules/websvc/saas/ui/layer.xml (+6 lines)
Lines 46-51 Link Here
46
    <folder name="UI">
46
    <folder name="UI">
47
        <folder name="Runtime">
47
        <folder name="Runtime">
48
            <file name="org-netbeans-modules-websvc-saas-ui-nodes-SaasServicesRootNode.instance">
48
            <file name="org-netbeans-modules-websvc-saas-ui-nodes-SaasServicesRootNode.instance">
49
                <attr name="instanceCreate" methodvalue="org.openide.nodes.NodeOp.factory"/>
50
                <attr name="name" stringvalue="rootSaasGroup"/>
51
                <attr name="displayName" bundlevalue="org.netbeans.modules.websvc.saas.ui.nodes.Bundle#Web_Services"/>
52
                <attr name="shortDescription" bundlevalue="org.netbeans.modules.websvc.saas.ui.nodes.Bundle#Web_Services_Desc"/>
53
                <attr name="iconResource" stringvalue="org/netbeans/modules/websvc/saas/ui/resources/webservicegroup.png"/>
54
                <attr name="original" newvalue="org.netbeans.modules.websvc.saas.ui.nodes.SaasServicesRootNode"/>
49
                <attr name="position" intvalue="210"/>
55
                <attr name="position" intvalue="210"/>
50
            </file>
56
            </file>
51
        </folder>
57
        </folder>

Return to bug 161286