Java Desktop System 发行版 3 管理指南

第 2 章 定制菜单

本章描述 Java Desktop System 如何实现菜单以及您如何定制菜单。

菜单简介

Java Desktop System 实现菜单的方式允许您进行以下操作:

Java Desktop System 中的菜单使用下列组件:

文件抽象层

gnome-vfs 文件抽象层为应用程序与文件进行交互提供了一个简单、通用的方法。文件抽象层还提供映射到特定菜单配置文件的统一资源标识符 (URI) 位置。

要为所有用户添加菜单或菜单项,必须将菜单或菜单项添加到某个 URI 位置。表 2–1 列出了可以添加菜单项的菜单以及与菜单相对应的 URI 位置。

表 2–1 系统管理员的菜单和 URI 位置

菜单 

URI 位置 

所有用户的应用程序菜单

applications-all-users:///

所有用户的“首选项”菜单

preferences-all-users:///

如果用户仅要将菜单或菜单项添加到自己的系统,则用户必须将菜单或菜单项添加到其他 URI 位置。表 2–2 列出了用户可添加项的菜单,以及与菜单对应的 URI 位置。

表 2–2 用户的菜单和 URI 位置

菜单 

URI 位置 

“应用程序”菜单

applications:///

首选项菜单

preferences:///

有关用户可以如何定制菜单的更多信息,参阅《Java Desktop System 发行版 3 用户指南》

虚拟文件夹和菜单

一般而言,vfolder 是系统上一个或多个实际位置的菜单项的虚拟表示形式。例如,一个 vfolder 可以表示几个目录的内容。vfolder 是一个或多个物理位置的抽象表示。就 Java Desktop System 中的菜单而言,vfolder 表示实际可能位于几个目录中的属于同一个菜单的菜单项。

vfolder 信息文件是描述 vfolder 的一个 XML 文件。Vfolder 信息文件指定菜单结构。它指定菜单名称及应用程序在菜单中出现的顺序。Vfolder 信息文件的扩展名为 .vfolder-info

以下是取自一个 vfolder 信息文件的范例:

<VFolderInfo>
.
.
.
  <Folder>
    <Name>Applications</Name>
    <Desktop>Applications.directory</Desktop>
    <Folder>
      <Name>Accessories</Name>
      <Desktop>Accessories.directory</Desktop>
      <Query>
        <And>
          <Keyword>Application</Keyword>
          <Keyword>Utility</Keyword>
        </And>
      </Query>
      <DontShowIfEmpty/>
    </Folder>
.
.
.
  </Folder>
</VFolderInfo>

表 2–3 介绍了 vfolder 信息文件中的某些元素。

表 2–3 Vfolder 信息文件元素

元素 

说明 

<Folder>

包含定义菜单的名称、内容和结构的元素。 

<Name>

指定该菜单的名称。 

<Desktop>

指定一个目录项文件的名称,该文件指定菜单的名称、注释和图标。 

<Query>

指定要对桌面项文件运行的查询。如果桌面项文件与查询要求相匹配,相应的菜单项将显示在菜单中。 

节录中的查询搜索在 Categories 键中包含关键字 ApplicationUtility 的桌面项文件。匹配的桌面项文件显示在“应用程序” 菜单中。

此元素是可选的。 

<DontShowIfEmpty/>

如果指定了此元素,而且菜单不包含任何菜单项,则不显示菜单。 

此元素是可选的。 

桌面项文件

桌面项文件是提供菜单项信息的数据文件。桌面项文件指定菜单项的详细信息,如名称、执行的命令、图标等。桌面项文件还包含确定菜单项在菜单分级结构中的位置的关键字。桌面项文件的扩展名为 .desktop

下面是桌面项文件的一个示例:

[Desktop Entry]
Encoding=UTF-8
Name=Calculator
Comment=Perform calculations
Exec=gcalctool
Icon=gcalctool.png
Terminal=false
Type=Application
Categories=GNOME;Application;Utility;

表 2–4介绍了桌面项文件中最重要的键。

表 2–4 桌面项键

桌面项键 

说明 

Encoding

指定桌面项文件的编码。 

Name

指定该菜单项的名称。此名称显示在该菜单项上。 

Comment

指定关于该菜单项的简短说明。当您指向该菜单项时,此注释显示为工具提示。 

Exec

指定从菜单中选择该菜单项时执行的命令。 

Icon

指定表示该菜单项的图标的文件名。不指定文件名的路径或文件扩展名。 

Terminal

指定 Exec 键中的命令是否在终端窗口中运行。如果此值为 true,则该命令在终端窗口中运行。

对于并不创建窗口以在其中运行的命令,此键的值必须为 true

Type

指定菜单项的类型。此值应为以下选项之一: 

  • Application:对于启动应用程序的菜单项,应输入此选项。

  • Link: 对于链接到文件、文件夹或 URI 的菜单项,应输入此选项。

Categories

指定描述该菜单项的关键字。各个关键字之间用分号 (;) 分隔。要查看标准类目关键字的列表,请参阅以下 URL 的桌面菜单指标: 

http://www.freedesktop.org

vfolder 信息文件将这些关键字映射到菜单。 

有关桌面项文件中的键的更多信息,参见以下 URL 中的桌面项规范:

http://www.freedesktop.org

注意 –

面板启动程序和桌面对象也使用桌面项文件。启动程序和桌面对象的桌面项文件所提供的信息与菜单项信息相同。例如,桌面项文件提供用户选择启动程序或对象时要运行的命令。


目录项文件

目录项文件是提供菜单信息的数据文件。目录目文件指定菜单的详细信息,如名称、工具提示、图标等。目录项文件的扩展名为 .directory

下面是目录项文件的一个示例:

[Desktop Entry]
Name=Accessories
Comment=Accessories menu
Icon=gnome-util.png
Type=Directory

表 2–5介绍了目录项文件中最重要的键。

表 2–5 目录项键

目录项键 

说明 

Name

指定该菜单的名称。此名称显示在该菜单上。 

Comment

指定关于该菜单的简短说明。当您指向该菜单时,此注释显示为工具提示。 

Icon

指定表示该菜单的图标的文件名。不指定文件名的路径或文件扩展名。 

Type

指定菜单的类型。此键的值总是 Directory

编辑菜单

您可以使用以下 Java Desktop System 组件来编辑菜单:

使用文件管理器为所有用户添加菜单或菜单项时,必须将菜单或菜单项添加到 URI 位置。表 2–1 列出了可以添加菜单项的菜单以及与菜单相对应的 URI 位置。

使用面板为所有用户定制菜单时,应使用菜单项弹出菜单。有关更多信息,参见《Java Desktop System 发行版 3 用户指南》

也可以使用菜单配置文件和菜单数据文件来定制菜单。

添加菜单

可以使用以下方法为所有用户添加菜单:

使用文件管理器添加菜单

要为所有用户添加菜单,请执行以下步骤:

  1. 在文件管理器窗口中,转到要将菜单添加到的位置。例如,要将菜单添加到“应用程序”菜单,请在“位置”字段中键入 applications-all-users:///,然后按回车键。

  2. 选择“文件”->“新建文件夹”。系统会在视图窗格中添加一个未命名的文件夹。该文件夹的名称已被选中。


    注意 –

    在 Solaris 平台上,您可能要重新装入文件管理器窗口的显示才能键入文件夹的名称。


  3. 键入该文件夹的名称,然后按下回车键。您在第 1 步中转到的位置的 vfolder 信息文件将使用新菜单的详细信息自动更新。该文件夹的名称显示为菜单名称。

用户下次登录时,该菜单将位于指定的位置。

使用菜单文件添加菜单

要为所有用户添加菜单,请执行以下步骤:

  1. 为要添加的菜单创建目录项文件。在 /usr/share/gnome/vfolders 目录中创建目录项文件。有关目录项文件的更多信息,参见目录项文件

  2. 找到要将菜单添加到的位置的 vfolder 信息文件。例如,要把菜单添加到“应用程序”菜单,请找到文件 /etc/gnome-vfs-2.0/vfolders/applications-all-users.vfolder-info

  3. 在 vfolder 信息文件中,为新菜单添加 <Folder> 元素。有关 vfolder 信息文件的更多信息,参见虚拟文件夹和菜单

用户下次登录时,该菜单将位于指定的位置。

将菜单项添加到菜单中

要为所有用户将菜单项添加到菜单中,请执行以下步骤:

  1. 为要添加的菜单项创建桌面项文件。有关桌面项文件的更多信息,参见桌面项文件

  2. 打开文件管理器窗口。选择“文件”->“新建窗口”打开另一个文件管理器窗口。

  3. 在一个窗口中,转到要将菜单项添加到的位置。例如,要将菜单项添加到“首选项”菜单中,请在 “位置”字段中键入 preferences-all-users:///,然后按回车键。

  4. 在另一个窗口中,选择为菜单项创建的桌面项文件。将桌面项文件拖动到要将菜单项添加到的位置。

    或者,也可以复制桌面项文件,然后将该文件粘贴到要将菜单项添加到的位置。

用户下次登录时,该菜单项将位于指定的位置。

编辑菜单属性

要为所有用户编辑菜单的属性,请执行以下步骤:

  1. 从面板中,打开要编辑的菜单。在菜单中右击任意菜单项。

  2. 选择“整个菜单”-> “属性”。即可显示“启动程序属性”对话框。

  3. 在“启动程序属性”对话框中修改该菜单的属性。有关“启动程序属性”对话框中元素的更多信息,参见《Java Desktop System 发行版 3 用户指南》

  4. 单击“确定”。

编辑菜单项

要编辑菜单项,请执行以下步骤:

  1. 从面板中,打开包含要编辑的菜单项的菜单。右击要编辑的菜单项。

  2. 选择属性。即可显示“启动程序属性”对话框。

  3. 在启动程序属性对话框中修改菜单项的属性。有关“启动程序属性”对话框中元素的更多信息,参见《Java Desktop System 发行版 3 用户指南》

  4. 单击“确定”。

从菜单删除菜单项

请执行以下步骤:

  1. 从面板中,打开包含要删除的菜单项的菜单。

  2. 右击要删除的项,然后选择“删除此项”。

用户下次登录时,菜单中将不显示该菜单项。

配置用户无法修改的菜单

如果满足以下条件,用户将无法修改菜单:

要配置菜单使用户无法修改它,请执行以下步骤:

  1. /etc/gnome-vfs-2.0/vfolders 目录中,为要配置的菜单创建 vfolder 信息文件。

  2. 为 vfolder 信息文件指定与要配置的菜单相对应的 URI 位置相同的名称。例如,要配置“应用程序”菜单,请在 /etc/gnome-vfs-2.0/vfolders 目录中创建名为 applications.vfolder-info 的 vfolder 信息。