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

(-)openide.loaders/apichanges.xml (+16 lines)
Lines 109-114 Link Here
109
<!-- ACTUAL CHANGES BEGIN HERE: -->
109
<!-- ACTUAL CHANGES BEGIN HERE: -->
110
110
111
  <changes>
111
  <changes>
112
      <change id="FileSystemAction.no.nodes">
113
          <api name="actions"/>
114
          <summary>lookup(DataObject.class) fallback</summary>
115
          <version major="7" minor="24"/>
116
          <date day="10" month="6" year="2011"/>
117
          <author login="tstupka"/>
118
          <compatibility semantic="compatible" addition="yes"/>
119
          <description>
120
              <p>
121
                  In FileSystemAction.createMenu(boolean popUp, Lookup lookup) 
122
                  fallback on .lookup(DataObject.class) in case the given lookup 
123
                  contains no nodes. 
124
              </p>
125
          </description>
126
          <class package="org.openide.actions" name="FileSystemAction"/>
127
      </change>
112
      <change id="DataEditorSupport.create-callable">
128
      <change id="DataEditorSupport.create-callable">
113
          <api name="editor"/>
129
          <api name="editor"/>
114
          <summary>DataEditorSupport.create(...., Callable&lt;Pane&gt;)</summary>
130
          <summary>DataEditorSupport.create(...., Callable&lt;Pane&gt;)</summary>
(-)openide.loaders/manifest.mf (-1 / +1 lines)
Lines 1-6 Link Here
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.openide.loaders
2
OpenIDE-Module: org.openide.loaders
3
OpenIDE-Module-Specification-Version: 7.23
3
OpenIDE-Module-Specification-Version: 7.24
4
OpenIDE-Module-Localizing-Bundle: org/openide/loaders/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/openide/loaders/Bundle.properties
5
OpenIDE-Module-Provides: org.netbeans.modules.templates.v1_0
5
OpenIDE-Module-Provides: org.netbeans.modules.templates.v1_0
6
OpenIDE-Module-Layer: org/netbeans/modules/openide/loaders/layer.xml
6
OpenIDE-Module-Layer: org/netbeans/modules/openide/loaders/layer.xml
(-)openide.loaders/src/org/openide/actions/FileSystemAction.java (-4 / +13 lines)
Lines 95-106 Link Here
95
            n = WindowManager.getDefault ().getRegistry ().getActivatedNodes ();
95
            n = WindowManager.getDefault ().getRegistry ().getActivatedNodes ();
96
        }
96
        }
97
        
97
        
98
        
99
        Map<FileSystem,Set<FileObject>> fsSet = new HashMap<FileSystem,Set<FileObject>>();
98
        Map<FileSystem,Set<FileObject>> fsSet = new HashMap<FileSystem,Set<FileObject>>();
100
99
        List<DataObject> l = new LinkedList<DataObject>();
101
        if (n != null) {
100
        if(n == null || n.length == 0) {
102
            for (Node node : n) {
101
            l.addAll(lookup.lookupAll(DataObject.class));
102
        } else {
103
            for(Node node : n) {
103
                DataObject obj = node.getCookie(DataObject.class);
104
                DataObject obj = node.getCookie(DataObject.class);
105
                if(obj != null) {
106
                    l.add(obj);
107
                }
108
            }
109
        }
110
111
        if (!l.isEmpty()) {
112
            for (DataObject obj : l) {
104
                 while (obj instanceof DataShadow)
113
                 while (obj instanceof DataShadow)
105
                     obj = ((DataShadow) obj).getOriginal();
114
                     obj = ((DataShadow) obj).getOriginal();
106
                 if (obj != null) {
115
                 if (obj != null) {
(-)openide.loaders/test/unit/src/org/openide/actions/FileSystemActionTest.java (-1 / +36 lines)
Lines 42-59 Link Here
42
42
43
package org.openide.actions;
43
package org.openide.actions;
44
44
45
import java.awt.event.ActionEvent;
45
import java.io.IOException;
46
import java.io.IOException;
46
import java.util.prefs.Preferences;
47
import java.util.prefs.Preferences;
47
import javax.swing.Action;
48
import javax.swing.Action;
48
import javax.swing.JComponent;
49
import javax.swing.JMenuItem;
49
import org.netbeans.junit.NbTestCase;
50
import org.netbeans.junit.NbTestCase;
50
import org.openide.awt.DynamicMenuContent;
51
import org.openide.awt.DynamicMenuContent;
51
import org.openide.filesystems.FileObject;
52
import org.openide.filesystems.FileObject;
52
import org.openide.filesystems.FileUtil;
53
import org.openide.filesystems.FileUtil;
54
import org.openide.filesystems.LocalFileSystem;
53
import org.openide.loaders.DataFolder;
55
import org.openide.loaders.DataFolder;
56
import org.openide.util.HelpCtx;
54
import org.openide.util.Lookup;
57
import org.openide.util.Lookup;
55
import org.openide.util.NbPreferences;
58
import org.openide.util.NbPreferences;
56
import org.openide.util.actions.Presenter;
59
import org.openide.util.actions.Presenter;
60
import org.openide.util.actions.SystemAction;
57
import org.openide.util.lookup.Lookups;
61
import org.openide.util.lookup.Lookups;
58
62
59
/**
63
/**
Lines 87-90 Link Here
87
        DynamicMenuContent submenu2 = (DynamicMenuContent)pm.getMenuPresenter();
91
        DynamicMenuContent submenu2 = (DynamicMenuContent)pm.getMenuPresenter();
88
        assertEquals("One action", 1, submenu2.getMenuPresenters().length);
92
        assertEquals("One action", 1, submenu2.getMenuPresenters().length);
89
    }
93
    }
94
    
95
    public void testCreateMenu() throws IOException {
96
        TestFS fs = new TestFS();
97
        FileObject fo = fs.getRoot();
98
     
99
        // create menu for a lookup containg a node
100
        Lookup lkp = Lookups.singleton(DataFolder.findFolder(fo).getNodeDelegate());
101
        JMenuItem[] item = FileSystemAction.createMenu(true, lkp);
102
        assertTrue(item.length > 0);
103
        
104
        // create menu for a lookup containg a DataObject
105
        lkp = Lookups.singleton(DataFolder.findFolder(fo));
106
        item = FileSystemAction.createMenu(true, lkp);
107
        assertTrue(item.length > 0);
90
}
108
}
109
    
110
    private class TestFS extends LocalFileSystem {
111
        @Override
112
        public SystemAction[] getActions() {
113
            return new SystemAction[] {
114
                new testFSAction()
115
            }; 
116
        }
117
        private class testFSAction extends SystemAction implements Presenter.Menu, Presenter.Popup {
118
            @Override public String getName() { return ""; }
119
            @Override public HelpCtx getHelpCtx() { return null; }
120
            @Override public void actionPerformed(ActionEvent ev) { }
121
            @Override public JMenuItem getMenuPresenter() { return new JMenuItem(); }
122
            @Override public JMenuItem getPopupPresenter() { return new JMenuItem(); }
123
        }
124
    }
125
}

Return to bug 199343