Netbeans平台和菜单

时间:2012-05-02 15:15:52

标签: java netbeans-platform

有谁知道如何编辑Netbeans平台创建的骨架中显示的菜单?

提前感谢你花时间去帮助我。

3 个答案:

答案 0 :(得分:11)

序言:编辑平台中存在的菜单项的唯一方法是通过您自己的模块之一。这意味着,要删除或重命名另一个模块中的菜单项,必须先将模块添加到应用程序中。您的应用程序本身不是模块,而是(潜在的)模块集合。

编辑基于NB平台的应用程序的菜单的最简单方法如下:

  1. 在您的某个模块中,展开Important Files节点
  2. 展开XML Layer节点(假设模块有一个图层文件¹)
  3. 展开This layer in context节点
  4. 展开Menu Bar节点
  5. 右键单击任何菜单(文件夹节点)或菜单项(文件节点),然后选择Delete
  6. 这会将必要的条目添加到模块层文件(_hidden条目)中,只要加载此模块,就不会加载这些菜单和菜单项。如果您希望以后还原某个项目,可以从图层文件中删除该条目,也可以右键单击该项目并选择Restore

    修改

    以下是重命名菜单项的方法:

    1. 使用上述技术查找要重命名的条目
    2. 右键单击节点,然后选择“转到声明”
    3. 查找name“SystemFileSystem.localizingBundle”
    4. 的属性
    5. 打开应用程序的品牌界面(右键单击应用程序的节点并选择Branding...
    6. 选择Resource Bundles标签
    7. 查找具有您在步骤3中找到的值的Bundle节点
    8. 菜单项的名称将位于此Bundle的节点中。只需编辑它,它将在您的应用程序中更改。这里的关键是找到菜单项命名的Bundle。

      以下是替换菜单项操作的方法:

      1. 按照上一个大纲中的步骤1和2进行操作
      2. 一旦您收到声明,请搜索(Ctrl + F)originalFile值的相同文件(您只需查找.instance声明)²
      3. 找到操作定义的位置后,将结构复制到图层文件
      4. 使用delegate属性可以重新定义此菜单项使用的操作
      5. 这里的重点是覆盖图层文件中的菜单项操作定义,用您自己的操作替换操作。您也可以使用此技术覆盖操作的显示名称,但如果您不需要替换操作,则Branding技术会更简单。


        ¹如果您的模块没有图层文件,则需要先创建一个图层文件才能使用此技术。这要求您在模块的一个软件包中创建layer.xml文件。然后,您需要使用以下OpenIDE-Module-Layer: com/example/mymodule/layer.xml

        在Module Manifest文件中注册此文件

        ²在此步骤中,您可以突出显示.instance属性值的originalValue名称,然后按Ctrl + F.例如,如果originalValue属性的值为Actions/Window/org-netbeans-core-windows-actions-RecentViewListAction.instance您想要仅突出显示org-netbeans-core-windows-actions-RecentViewListAction.instance部分。这里的要点是找到定义动作的位置(图层文件的这一部分仅将动作添加到菜单中)。

答案 1 :(得分:4)

除了上面已经很好地解释的内容之外,这里有一个简单的技巧来添加你自己的全局菜单项,甚至没有查看XML文件内容:

  1. 在模块树中,找到名为 layers.xml
  2. 的文件
  3. 点击 layers.xml 节点展开其子节点,这些是两个文件夹:
    • 此图层
    • 上下文中的
  4. 展开“此图层在上下文”节点,然后转到子文件夹菜单栏
  5. 右键单击并在菜单栏中添加一个新文件夹(将其命名为历史记录,例如)。此新文件夹的名称将用作主GUI窗口的全局菜单中的类别。
  6. 要在此全局菜单中添加子菜单项,请右键单击您的模块,选择 new->操作 操作,并在系统询问时选择要放置的菜单在此子菜单中,选择历史记录
  7. PS:您还可以像菜单栏一样在工具栏中添加类别。 谢谢

答案 2 :(得分:2)

我不确定你想要做什么,但是layer.xml文件通常是进行此类更改的地方。