diff -r b5ab4dc9c729 openide.nodes/apichanges.xml --- a/openide.nodes/apichanges.xml Tue Apr 06 22:00:14 2010 +0200 +++ b/openide.nodes/apichanges.xml Wed Apr 07 06:29:08 2010 +0200 @@ -46,6 +46,22 @@ Nodes API + + + New constructor of IndexedNode + + + + + +

+ IndexedNode has + new constructor that accepts Lookup. +

+
+ + +
Support for declarative Node registrations @@ -56,7 +72,7 @@

NodeOp.factory - is new + is new layer based factory method to allow declarative definition of a root node into the UI. diff -r b5ab4dc9c729 openide.nodes/manifest.mf --- a/openide.nodes/manifest.mf Tue Apr 06 22:00:14 2010 +0200 +++ b/openide.nodes/manifest.mf Wed Apr 07 06:29:08 2010 +0200 @@ -2,5 +2,5 @@ OpenIDE-Module: org.openide.nodes OpenIDE-Module-Localizing-Bundle: org/openide/nodes/Bundle.properties AutoUpdate-Essential-Module: true -OpenIDE-Module-Specification-Version: 7.14 +OpenIDE-Module-Specification-Version: 7.15 diff -r b5ab4dc9c729 openide.nodes/src/org/openide/nodes/IndexedNode.java --- a/openide.nodes/src/org/openide/nodes/IndexedNode.java Tue Apr 06 22:00:14 2010 +0200 +++ b/openide.nodes/src/org/openide/nodes/IndexedNode.java Wed Apr 07 06:29:08 2010 +0200 @@ -41,6 +41,7 @@ package org.openide.nodes; import javax.swing.JPanel; +import org.openide.util.Lookup; /** An implementation of a node that has children and @@ -72,6 +73,18 @@ this.indexImpl = indexImpl; } + /** Allows subclasses to provide their own children and + * index handling as well as {@link Lookup}. + * @param children the children implementation + * @param indexImpl the index implementation + * @param lookup lookup the node shall use + * @since 7.15 + */ + protected IndexedNode(Children children, Index indexImpl, Lookup lookup) { + super(children, lookup); + this.indexImpl = indexImpl; + } + /* * @return false to signal that the customizer should not be used. * Subclasses can override this method to enable customize action diff -r b5ab4dc9c729 openide.nodes/test/unit/src/org/openide/nodes/IndexedNodeTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/openide.nodes/test/unit/src/org/openide/nodes/IndexedNodeTest.java Wed Apr 07 06:29:08 2010 +0200 @@ -0,0 +1,120 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2010 Sun Microsystems, Inc. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + * + * Portions Copyrighted 2010 Sun Microsystems, Inc. + */ + +package org.openide.nodes; + +import javax.swing.event.ChangeListener; +import org.openide.util.lookup.Lookups; +import org.openide.util.Lookup; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * + * @author Jaroslav Tulach + */ +public class IndexedNodeTest implements Index { + + public IndexedNodeTest() { + } + + + @Test + public void testConstructorWithLookup() { + Lookup lkp = Lookups.singleton(55); + Node n = new IndexedNode(Children.LEAF, this, lkp) {}; + assertEquals(Integer.valueOf(55), n.getLookup().lookup(Integer.class)); + } + + @Override + public int getNodesCount() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Node[] getNodes() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public int indexOf(Node node) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void reorder() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void reorder(int[] perm) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void move(int x, int y) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void exchange(int x, int y) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void moveUp(int x) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void moveDown(int x) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void addChangeListener(ChangeListener chl) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void removeChangeListener(ChangeListener chl) { + throw new UnsupportedOperationException("Not supported yet."); + } + +} \ No newline at end of file