[autocomplete] 22/143: Better RTL support for AutoComplete.
Benjamin Mesing
ben at alioth.debian.org
Sat Oct 19 12:53:11 UTC 2013
This is an automated email from the git hooks/post-receive script.
ben pushed a commit to branch master
in repository autocomplete.
commit 456d1867bd541be670ab20d61211454ad93d8417
Author: bobbylight <robert at fifesoft.com>
Date: Wed Jun 17 13:21:15 2009 +0000
Better RTL support for AutoComplete.
---
.../ui/autocomplete/AutoCompleteDescWindow.java | 19 +++++++++++++------
.../ui/autocomplete/AutoCompletePopupWindow.java | 7 ++++---
src/org/fife/ui/autocomplete/AutoCompletion.java | 17 +++++++++++++++++
src/org/fife/ui/autocomplete/SizeGrip.java | 9 ++++-----
4 files changed, 38 insertions(+), 14 deletions(-)
diff --git a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
index 022a7fa..e90d59c 100644
--- a/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
+++ b/src/org/fife/ui/autocomplete/AutoCompleteDescWindow.java
@@ -25,6 +25,7 @@ package org.fife.ui.autocomplete;
import java.awt.BorderLayout;
import java.awt.Color;
+import java.awt.ComponentOrientation;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.Window;
@@ -132,6 +133,8 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener {
super(owner);
this.ac = ac;
+ ComponentOrientation o = ac.getTextComponentOrientation();
+
JPanel cp = new JPanel(new BorderLayout());
// cp.setBorder(BorderFactory.createLineBorder(Color.BLACK));
@@ -145,8 +148,8 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener {
cp.add(scrollPane);
descWindowNavBar = new JToolBar();
- backAction = new ToolBarBackAction();
- forwardAction = new ToolBarForwardAction();
+ backAction = new ToolBarBackAction(o.isLeftToRight());
+ forwardAction = new ToolBarForwardAction(o.isLeftToRight());
descWindowNavBar.setFloatable(false);
descWindowNavBar.add(new JButton(backAction));
descWindowNavBar.add(new JButton(forwardAction));
@@ -404,9 +407,11 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener {
*/
class ToolBarBackAction extends AbstractAction {
- public ToolBarBackAction() {
+ public ToolBarBackAction(boolean ltr) {
+ String img = "org/fife/ui/autocomplete/arrow_" +
+ (ltr ? "left.png" : "right.png");
ClassLoader cl = getClass().getClassLoader();
- URL url = cl.getResource("org/fife/ui/autocomplete/arrow_left.png");
+ URL url = cl.getResource(img);
try {
Icon icon = new ImageIcon(ImageIO.read(url));
putValue(Action.SMALL_ICON, icon);
@@ -432,9 +437,11 @@ class AutoCompleteDescWindow extends JWindow implements HyperlinkListener {
*/
class ToolBarForwardAction extends AbstractAction {
- public ToolBarForwardAction() {
+ public ToolBarForwardAction(boolean ltr) {
+ String img = "org/fife/ui/autocomplete/arrow_" +
+ (ltr ? "right.png" : "left.png");
ClassLoader cl = getClass().getClassLoader();
- URL url = cl.getResource("org/fife/ui/autocomplete/arrow_right.png");
+ URL url = cl.getResource(img);
try {
Icon icon = new ImageIcon(ImageIO.read(url));
putValue(Action.SMALL_ICON, icon);
diff --git a/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java b/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java
index 3cd33b4..a758582 100644
--- a/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java
+++ b/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java
@@ -136,7 +136,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener,
public AutoCompletePopupWindow(Window parent, AutoCompletion ac) {
super(parent);
- ComponentOrientation o = parent.getComponentOrientation();
+ ComponentOrientation o = ac.getTextComponentOrientation();
this.ac = ac;
model = new CompletionListModel();
@@ -197,6 +197,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener,
*/
private AutoCompleteDescWindow createDescriptionWindow() {
AutoCompleteDescWindow dw = new AutoCompleteDescWindow(this, ac);
+ dw.applyComponentOrientation(ac.getTextComponentOrientation());
Dimension size = preferredDescWindowSize;
if (size==null) {
size = getSize();
@@ -385,7 +386,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener,
// Try to position to the right first (LTR)
int x;
- if (getComponentOrientation().isLeftToRight()) {
+ if (ac.getTextComponentOrientation().isLeftToRight()) {
x = getX() + getWidth() + 5;
if (x+descWindow.getWidth()>screenSize.width) { // doesn't fit
x = getX() - 5 - descWindow.getWidth();
@@ -616,7 +617,7 @@ class AutoCompletePopupWindow extends JWindow implements CaretListener,
// Get x-coordinate of completions. Try to align left edge with the
// caret first.
int x = r.x;
- if (!getComponentOrientation().isLeftToRight()) {
+ if (!ac.getTextComponentOrientation().isLeftToRight()) {
x -= getWidth(); // RTL => align right edge
}
if (x<0) {
diff --git a/src/org/fife/ui/autocomplete/AutoCompletion.java b/src/org/fife/ui/autocomplete/AutoCompletion.java
index 65d0684..33dea51 100644
--- a/src/org/fife/ui/autocomplete/AutoCompletion.java
+++ b/src/org/fife/ui/autocomplete/AutoCompletion.java
@@ -368,6 +368,18 @@ public class AutoCompletion implements HierarchyListener {
/**
+ * Returns the orientation of the text component we're installed to.
+ *
+ * @return The orientation of the text component, or <code>null</code> if
+ * we are not installed on one.
+ */
+ ComponentOrientation getTextComponentOrientation() {
+ return textComponent==null ? null :
+ textComponent.getComponentOrientation();
+ }
+
+
+ /**
* Returns the "trigger key" used for autocomplete.
*
* @return The trigger key.
@@ -613,6 +625,11 @@ try {
if (popupWindow==null) {
popupWindow = new AutoCompletePopupWindow(parentWindow, this);
+ // Completion is usually done for code, which is always done
+ // LTR, so make completion stuff RTL only if text component is
+ // also RTL.
+ popupWindow.applyComponentOrientation(
+ getTextComponentOrientation());
if (renderer!=null) {
popupWindow.setListCellRenderer(renderer);
}
diff --git a/src/org/fife/ui/autocomplete/SizeGrip.java b/src/org/fife/ui/autocomplete/SizeGrip.java
index df2ddd6..637268d 100644
--- a/src/org/fife/ui/autocomplete/SizeGrip.java
+++ b/src/org/fife/ui/autocomplete/SizeGrip.java
@@ -62,7 +62,6 @@ class SizeGrip extends JPanel {
MouseHandler adapter = new MouseHandler();
addMouseListener(adapter);
addMouseMotionListener(adapter);
- possiblyFixCursor(ComponentOrientation.getOrientation(getLocale()));
setPreferredSize(new Dimension(16, 16));
}
@@ -74,7 +73,7 @@ class SizeGrip extends JPanel {
* @param o The new orientation.
*/
public void applyComponentOrientation(ComponentOrientation o) {
- possiblyFixCursor(o);
+ possiblyFixCursor(o.isLeftToRight());
super.applyComponentOrientation(o);
}
@@ -176,11 +175,11 @@ class SizeGrip extends JPanel {
* Ensures that the cursor for this component is appropriate for the
* orientation.
*
- * @param o The new orientation.
+ * @param ltr Whether the current component orientation is LTR.
*/
- protected void possiblyFixCursor(ComponentOrientation o) {
+ protected void possiblyFixCursor(boolean ltr) {
int cursor = Cursor.NE_RESIZE_CURSOR;
- if (o.isLeftToRight()) {
+ if (ltr) {
cursor = Cursor.NW_RESIZE_CURSOR;
}
if (cursor!=getCursor().getType()) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/autocomplete.git
More information about the pkg-java-commits
mailing list