You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ge...@apache.org on 2018/02/20 08:39:54 UTC

[incubator-netbeans] branch master updated: NETBEANS-357: corrected the target folder for toolbar link for action (#409)

This is an automated email from the ASF dual-hosted git repository.

geertjan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new b10076d  NETBEANS-357: corrected the target folder for toolbar link for action (#409)
b10076d is described below

commit b10076d5487b13cca967a5c15cde2e0d9ec51bb3
Author: Svatopluk Dedic <sv...@oracle.com>
AuthorDate: Tue Feb 20 09:39:52 2018 +0100

    NETBEANS-357: corrected the target folder for toolbar link for action (#409)
    
    Thanks.
---
 editor.lib2/nbproject/project.xml                  |  9 +++++
 .../lib2/EditorActionRegistrationProcessor.java    |  3 +-
 .../EditorActionRegistrationTest.java              | 40 ++++++++++++++++++++++
 3 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/editor.lib2/nbproject/project.xml b/editor.lib2/nbproject/project.xml
index 859f2d2..a05fa92 100644
--- a/editor.lib2/nbproject/project.xml
+++ b/editor.lib2/nbproject/project.xml
@@ -170,6 +170,15 @@
                     </test-dependency>
                     <test-dependency>
                         <code-name-base>org.openide.loaders</code-name-base>
+                        <compile-dependency/>
+                    </test-dependency>
+                    <test-dependency>
+                        <code-name-base>org.openide.nodes</code-name-base>
+                        <compile-dependency/>
+                    </test-dependency>
+                    <test-dependency>
+                        <code-name-base>org.netbeans.modules.editor</code-name-base>
+                        <compile-dependency/>
                     </test-dependency>
                     <test-dependency>
                         <code-name-base>org.openide.util.ui</code-name-base>
diff --git a/editor.lib2/src/org/netbeans/modules/editor/lib2/EditorActionRegistrationProcessor.java b/editor.lib2/src/org/netbeans/modules/editor/lib2/EditorActionRegistrationProcessor.java
index e567464..ac999de 100644
--- a/editor.lib2/src/org/netbeans/modules/editor/lib2/EditorActionRegistrationProcessor.java
+++ b/editor.lib2/src/org/netbeans/modules/editor/lib2/EditorActionRegistrationProcessor.java
@@ -257,10 +257,11 @@ public final class EditorActionRegistrationProcessor extends LayerGeneratingProc
         int toolBarPosition = annotation.toolBarPosition();
         if (toolBarPosition != Integer.MAX_VALUE) {
             StringBuilder toolBarPresenterFilePath = new StringBuilder(50);
-            toolBarPresenterFilePath.append("Editors/Toolbar/");
+            toolBarPresenterFilePath.append("Editors/");
             if (mimeType.length() > 0) {
                 toolBarPresenterFilePath.append(mimeType).append("/");
             }
+            toolBarPresenterFilePath.append("Toolbars/Default/");
             toolBarPresenterFilePath.append(actionName).append(".shadow");
             LayerBuilder.File toolBarPresenterShadowFile = layer.file(toolBarPresenterFilePath.toString());
             toolBarPresenterShadowFile.stringvalue("originalFile", actionFilePath);
diff --git a/editor.lib2/test/unit/src/org/netbeans/modules/editor/lib2/testactionsregistration/EditorActionRegistrationTest.java b/editor.lib2/test/unit/src/org/netbeans/modules/editor/lib2/testactionsregistration/EditorActionRegistrationTest.java
index fb6e65b..b410029 100644
--- a/editor.lib2/test/unit/src/org/netbeans/modules/editor/lib2/testactionsregistration/EditorActionRegistrationTest.java
+++ b/editor.lib2/test/unit/src/org/netbeans/modules/editor/lib2/testactionsregistration/EditorActionRegistrationTest.java
@@ -21,10 +21,12 @@ package org.netbeans.modules.editor.lib2.testactionsregistration;
 
 import java.awt.event.ActionEvent;
 import java.io.ByteArrayOutputStream;
+import java.util.List;
 import javax.swing.AbstractAction;
 import javax.swing.Action;
 import org.netbeans.junit.NbTestCase;
 import org.netbeans.api.editor.EditorActionRegistration;
+import org.netbeans.modules.editor.impl.ToolbarActionsProvider;
 import org.netbeans.modules.editor.lib2.actions.EditorActionUtilities;
 import org.netbeans.modules.editor.lib2.actions.SearchableEditorKit;
 import org.netbeans.spi.editor.AbstractEditorAction;
@@ -32,6 +34,8 @@ import org.openide.filesystems.FileObject;
 import org.openide.filesystems.FileUtil;
 import org.openide.util.test.AnnotationProcessorTestUtils;
 
+import org.openide.loaders.DataShadow;
+
 /**
  * Test registration of editor actions through an annotation.
  *
@@ -93,6 +97,29 @@ public class EditorActionRegistrationTest extends NbTestCase {
         assertTrue((Boolean) a.getValue(AbstractEditorAction.NO_ICON_IN_MENU));
         assertTrue((Boolean) a.getValue(AbstractEditorAction.NO_KEY_BINDING));
     }
+    
+    public void testToolbarRegistration() throws Exception {
+        FileObject toolbarDir = FileUtil.getConfigFile("/Editors/text/foo/Toolbars/Default");
+        assertNotNull("text/base toolbar directory is null", toolbarDir);
+        FileObject toolbarLink = toolbarDir.getFileObject(EditorTestActionToolbar.id + ".shadow"); // NOI18N
+        assertNotNull("Action link in toolbar must exist", toolbarLink);
+        FileObject orig = DataShadow.findOriginal(toolbarLink);
+        assertNotNull("Action registration must exist", orig);
+        
+        List items = ToolbarActionsProvider.getToolbarItems("text/foo");
+        assertFalse("At least one registration must be present", items.isEmpty());
+        for (Object o : items) {
+            if (!(o instanceof Action)) {
+                continue;
+            }
+            Action a = (Action)o;
+            String name = (String)a.getValue(Action.NAME);
+            if (EditorTestActionToolbar.id.equals(name)) {
+                return; // OK
+            }
+        }
+        fail("Registered action not found");
+    }
 
     public void testNonPublicClass() throws Exception {
         String nonPublicClassSource =
@@ -201,5 +228,18 @@ public class EditorActionRegistrationTest extends NbTestCase {
         }
 
     }
+    
+    @EditorActionRegistration(name = "ToolbarIcon", shortDescription = "", 
+            mimeType="text/foo", toolBarPosition = 1000)
+    public static final class EditorTestActionToolbar extends AbstractAction {
+        static final String id = "ToolbarIcon";
+        public EditorTestActionToolbar() {
+        }
 
+        @Override
+        public void actionPerformed(ActionEvent evt) {
+        }
+
+    }
+    
 }

-- 
To stop receiving notification emails like this one, please contact
geertjan@apache.org.

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists