Author: rwhitcomb Date: Wed Feb 13 01:17:02 2013 New Revision: 1445449 URL: http://svn.apache.org/r1445449 Log: PIVOT-696 (part): More work with TAB characters in TextArea.
Add a style "acceptsTab" that changes the behavior of TAB and Ctrl-TAB (actually reversing them). The default (false) means Ctrl-TAB inserts spaces, while TAB shifts focus to next component. Setting the style true means TAB does the insert while Ctrl-TAB shifts focus. The latter is more in line with other applications. Modified: pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java Modified: pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java URL: http://svn.apache.org/viewvc/pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java?rev=1445449&r1=1445448&r2=1445449&view=diff ============================================================================== --- pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java (original) +++ pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java Wed Feb 13 01:17:02 2013 @@ -135,6 +135,7 @@ public class TextAreaSkin extends Compon private int tabWidth; private int lineWidth; private boolean acceptsEnter = true; + private boolean acceptsTab = false; private Dimensions averageCharacterSize; @@ -771,6 +772,34 @@ public class TextAreaSkin extends Compon this.acceptsEnter = acceptsEnter; } + /** + * Gets current value of style that determines the + * behavior of <tt>TAB</tt> and <tt>Ctrl-TAB</tt> + * characters. + * @return <tt>true</tt> if <tt>TAB</tt> inserts an + * appropriate number of spaces, while <tt>Ctrl-TAB</tt> + * shifts focus to next component. <tt>false</tt> (default) + * means <tt>TAB</tt> shifts focus and <tt>Ctrl-TAB</tt> + * inserts spaces. + */ + public boolean getAcceptsTab() { + return acceptsTab; + } + + /** + * Sets current value of style that determines the + * behavior of <tt>TAB</tt> and <tt>Ctrl-TAB</tt> + * characters. + * @param acceptsTab <tt>true</tt> if <tt>TAB</tt> inserts an + * appropriate number of spaces, while <tt>Ctrl-TAB</tt> + * shifts focus to next component. <tt>false</tt> (default) + * means <tt>TAB</tt> shifts focus and <tt>Ctrl-TAB</tt> + * inserts spaces. + */ + public void setAcceptsTab(boolean acceptsTab) { + this.acceptsTab = acceptsTab; + } + @Override public int getTabWidth() { return tabWidth; @@ -995,7 +1024,7 @@ public class TextAreaSkin extends Compon consumed = true; } } else if (keyCode == Keyboard.KeyCode.TAB - && Keyboard.isPressed(Keyboard.Modifier.CTRL) + && (acceptsTab != Keyboard.isPressed(Keyboard.Modifier.CTRL)) && textArea.isEditable()) { int selectionLength = textArea.getSelectionLength();