| 
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-2002 Sun
 * Microsystems, Inc. All Rights Reserved.
 */
package org.netbeans.modules.xml.tree.lib;
import java.beans.*;
import java.beans.beancontext.*;
import org.openide.nodes.*;
import org.openide.cookies.InstanceCookie;
/**
 * A BeanNode featuring with ordered children.
 * 
 * @author  Petr Kuzel
 * @version 1.0
 */
public class OrderedBeanNode extends BeanNode {
    /** Creates new OrderedBeanNode */
    public OrderedBeanNode(Object bean) throws IntrospectionException {
        this(bean, null);
    }
    public OrderedBeanNode(Object bean, Children kids) throws IntrospectionException {
        super(bean, kids == null ? getChildren(bean) : kids); 
        
        //??? BeanNode & TMUtil workaround
        // remove cookie that hard references us, it is attached to node
        // and block tree document garbage collecting 
        Node.Cookie cake = (Node.Cookie) getCookieSet().getCookie(InstanceCookie.class);
        if (cake != null) {
            getCookieSet().remove(cake);
        }
    }
    
    private static Children getChildren (Object bean) {
        if (bean instanceof BeanContext)
            return new OrderedBeanChildren ((BeanContext)bean);
        if (bean instanceof BeanContextProxy) {
            BeanContextChild bch = ((BeanContextProxy)bean).getBeanContextProxy();
            if (bch instanceof BeanContext)
                return new OrderedBeanChildren ((BeanContext)bch);
        }
        return Children.LEAF;
    }
    
}
 | 
| ... 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.