从 Eclipse 3.1 RC2 开始,JFace 和工作台都全面支持双向。双向语言是可以根据上下文从右到左和从左到右书写的语言。缺省情况下,Eclipse 认为希伯莱语、阿拉伯语、波斯语和乌尔都语是双向语言。
工作台的方向通过下列其中一种方式反转(按优先顺序排列)
这些值将被用来调用 org.eclipse.jface.Window#setDefaultOrientation()。Window 的所有子类以及那些窗口的子代将具有指定的方向。缺省方向是 SWT#NONE。
缺省情况下,视图和编辑器继承父代的窗口方向。在通过调用 super#getShellStyle 设置自己的方向时,对话框应当通过使用它们父代的 shellStyle 来继承方向。
图 1 - 资源透视图从右到左方向的屏幕快照
在许多情况下,图标在从右到左方式下是没有任何意义的。特别是,任何要编辑的图标均有此问题。为了能够查找段中的图像,您只需要在路径中指定 $nl$ 并使用平台 bundle 支持来查找图标文件。
例如
String iconPath = "$nl$/icons/myicon.gif";
URL url = Platform.find( Platform.getBundle(MyPluginId), new Path(iconPath));
Image Descriptor descriptor = ImageDescriptor.createFromURL(url);
如果图标引用是在 plugin.xml 中进行的,则您只需确保路径包含 $nl$ 前缀。如果它是工作台定义的扩展点,则会相应地处理查找操作。如果您创建自己的扩展点,则只需确保它以此方式装入 ImageDescriptors。
对于选择要覆盖哪些图标,并没有硬性规则,但是,您通常应该侧重于那些通过水平箭头暗示文本方向的图标。