当用户调用动作时,系统在数据库中搜索匹配的动作名。如果存在多个动作,系统则利用 优先级规则来决定使用哪个动作。
如果没有其它优先级可用,将使用基于定义位置的优先级。下表按从高到低的 优先级排列:
个人动作 (HomeDirectory/.dt/types)
系统范围的本地动作 (/etc/dt/appconfig/types/language)
系统范围的远程动作 (hostname:/etc/dt/appconfig/types/language)。只搜索在应用程序搜索路径内的远程主 机。
内置动作 (/usr/dt/appconfig/types/language)
在给定的目录内,*.dt文件按字母顺序读取。
受ARG_CLASS、ARG_TYPE、ARG_MODE或ARG_COUNT限定的动作的优先级比没有此类限定的动作高。(上述四种字段的缺省值是*。)
当应用了多个限定时,从高到低的优先顺序是:
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
其中当多个ARG_COUNT限定存在时,从高到低的优先顺序是:
特定整数值n
<n
>n
*
例如,考虑下列动作定义:
ACTION EditGraphics # EditGraphics-1 { ARG_TYPE XWD ... }
ACTION EditGraphics # EditGraphics-2 { ARG_COUNT 0 ... }
ACTION EditGraphics # EditGraphics-3 { ARG_TYPE * ... }
由于没有提供参数,ARG_COUNT0具有优先级,所以双击 EditGraphics 动作图标时会启动 EditGraphics-2; 相反,在提供 XWD 文件参数后使用的是 EditGraphics-1,因为它指定了 XWDARG_TYPE;对于所有其它文件的参数,则使用 EditGraphics-3。