blob: 5019512abbf2e62e48e834a2d43f63a534d55a10 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
<head>
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link REL="STYLESHEET" HREF="../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
<title>Bidirectional Support in Eclipse</title>
</head>
<BODY BGCOLOR="#ffffff">
<h1>Bidirectional Support in the Eclipse Workbench</h1>
<p>As of Eclipse 3.1 RC2 bidirectional support will be complete are supported
in JFace and the Workbench. A bidirectional language is one that can write both
right to left and left to right based on context. Eclipse will recognize Hebrew,
Arabic, Farsi and Urdu as bidirectional by default.</p>
<h2>Enabling Bidirectional Support in the SDK</h2>
<p>The orientation of the workbench will be flipped if one of the following ways
(in order of priority)</p>
<ul>
<li><strong>-dir command line parameter</strong>. If the -dir command line option
is used this will be the default orientation. Valid values are -dir rtl or
-dir ltr.</li>
<li><strong>system properties</strong>. If the system property eclipse.orientation
is set this will be used. The value is of the same format as -dir.</li>
<li><strong>-nl command line parameter</strong>. If the -nl option is used and
the language is Hebrew, Arabic, Farsi or Urdu the orientation will be right
to left, otherwise it will be left to right.</li>
</ul>
<p>These values will be used to call org.eclipse.jface.Window#setDefaultOrientation().
All subclasses of Window and the children of those windows will get the orientation
specified. The default orientation is SWT#NONE.</p>
<p>Views and editors will by default inherit the window orientation from their
parent. Dialogs should inherit orientation by using the shellStyle of their
parent when setting their own by calling super#getShellStyle.</p>
<p><img src="bidi.png" alt="bidi image"></p>
<p><strong>Figure 1 - Screen shot of right to left orientation of the resource
perspective</strong></p>
<h2>Enabling your plug-in for looking up alternate icons</h2>
<p>In many cases your icons will not make any sense in right to left mode. In
particular any icon to do with editing will have this issue.To enable lookup
of images in a fragment all you need to do to nl enable $nl$ in your path and
use the Platform bundle support to lookup the icons file.</p>
<p>For example</p>
<p>String iconPath = &quot;$nl$/icons/myicon.gif&quot;;</p>
<p>URL url = Platform.find( Platform.getBundle(MyPluginId), new Path(iconPath));</p>
<p>Image Descriptor descriptor = ImageDescriptor.createFromURL(url);</p>
<p>If the icon reference is in your plugin.xml just make sure you have the $nl$
prefix on your path. If it is an extension point defined by the workbench the
lookup will be handled for you. Just make sure if you create your own extension
point that it loads ImageDescriptors this way.</p>
<h2>How to choose icons to override</h2>
<p>There is no hard and fast rules for choosing which icons to override but in
general you should focus on the icons that imply a textual direction with a
horizontal arrow.</p>
</BODY></HTML>