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 35499
Collapse All | Expand All

(-)src/org/openide/windows/DefaultTopComponentLookup.java (-13 / +6 lines)
Lines 38-44 Link Here
38
 * @author Jaroslav Tulach
38
 * @author Jaroslav Tulach
39
 */
39
 */
40
final class DefaultTopComponentLookup extends ProxyLookup 
40
final class DefaultTopComponentLookup extends ProxyLookup 
41
implements java.beans.PropertyChangeListener, InstanceContent.Convertor, LookupListener {
41
implements InstanceContent.Convertor, LookupListener {
42
    /** component to work with */
42
    /** component to work with */
43
    private TopComponent tc;
43
    private TopComponent tc;
44
    /** lookup listener that is attached to all subnodes */
44
    /** lookup listener that is attached to all subnodes */
Lines 55-75 Link Here
55
        this.tc = tc;
55
        this.tc = tc;
56
        this.listener = (LookupListener)org.openide.util.WeakListeners.create (LookupListener.class, this, null);
56
        this.listener = (LookupListener)org.openide.util.WeakListeners.create (LookupListener.class, this, null);
57
        
57
        
58
        updateLookups ();
58
        updateLookups (tc.getActivatedNodes ());
59
        
59
        /*
60
        tc.addPropertyChangeListener(
60
        tc.addPropertyChangeListener(
61
            "activatedNodes", // NOI18N
61
            "activatedNodes", // NOI18N
62
            org.openide.util.WeakListeners.propertyChange (this, tc)
62
            org.openide.util.WeakListeners.propertyChange (this, tc)
63
        );
63
        );
64
        
64
        */
65
    }
65
    }
66
    
66
    
67
    private static Lookup[] EMPTY_ARRAY = new Lookup[0];
67
    private static Lookup[] EMPTY_ARRAY = new Lookup[0];
68
    /** Extracts activated nodes from a top component and
68
    /** Extracts activated nodes from a top component and
69
     * returns their lookups.
69
     * returns their lookups.
70
     */
70
     */
71
    private void updateLookups () {
71
    public void updateLookups (Node[] arr) {
72
        Node[] arr = tc.getActivatedNodes();
73
        if (arr == null) {
72
        if (arr == null) {
74
            org.openide.util.lookup.AbstractLookup.Content c = new org.openide.util.lookup.AbstractLookup.Content ();
73
            org.openide.util.lookup.AbstractLookup.Content c = new org.openide.util.lookup.AbstractLookup.Content ();
75
            org.openide.util.lookup.AbstractLookup l = new org.openide.util.lookup.AbstractLookup (c);
74
            org.openide.util.lookup.AbstractLookup l = new org.openide.util.lookup.AbstractLookup (c);
Lines 110-124 Link Here
110
        setLookups (lookups);
109
        setLookups (lookups);
111
    }
110
    }
112
111
113
    /** Updates the lookup if necessary */
114
    public void propertyChange(java.beans.PropertyChangeEvent ev) {
115
        updateLookups ();
116
    }    
117
118
    
119
    /** Change in one of the lookups we delegate to */
112
    /** Change in one of the lookups we delegate to */
120
    public void resultChanged(org.openide.util.LookupEvent ev) {
113
    public void resultChanged(org.openide.util.LookupEvent ev) {
121
        updateLookups ();
114
        updateLookups (tc.getActivatedNodes ());
122
    }
115
    }
123
    
116
    
124
    /** Finds out whether a query for a class can be influenced 
117
    /** Finds out whether a query for a class can be influenced 
(-)src/org/openide/windows/TopComponent.java (+4 lines)
Lines 181-186 Link Here
181
    * @param nodes activated nodes for this component
181
    * @param nodes activated nodes for this component
182
    */
182
    */
183
    public final void setActivatedNodes (Node[] nodes) {
183
    public final void setActivatedNodes (Node[] nodes) {
184
        Object lookup = defaultLookupRef.get ();
185
        if (lookup instanceof DefaultTopComponentLookup) {
186
            ((DefaultTopComponentLookup)lookup).updateLookups (nodes);
187
        }
184
        getManager ().setActivatedNodes (nodes);
188
        getManager ().setActivatedNodes (nodes);
185
        firePropertyChange ("activatedNodes", null, null); // NOI18N
189
        firePropertyChange ("activatedNodes", null, null); // NOI18N
186
    }
190
    }

Return to bug 35499