14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26
27 package sun.lwawt;
28
29 import java.awt.Dimension;
30 import java.awt.Point;
31 import java.awt.TextField;
32 import java.awt.event.ActionEvent;
33 import java.awt.event.ActionListener;
34 import java.awt.peer.TextFieldPeer;
35
36 import javax.swing.JPasswordField;
37 import javax.swing.text.JTextComponent;
38
39 final class LWTextFieldPeer
40 extends LWTextComponentPeer<TextField, JPasswordField>
41 implements TextFieldPeer, ActionListener {
42
43 private static final int DEFAULT_COLUMNS = 1;
44
45 LWTextFieldPeer(final TextField target,
46 final PlatformComponent platformComponent) {
47 super(target, platformComponent);
48 }
49
50 @Override
51 protected JPasswordField createDelegate() {
52 return new JTextAreaDelegate();
53 }
78
79 @Override
80 public Dimension getPreferredSize(final int columns) {
81 return getPreferredSize(1, columns);
82 }
83
84 @Override
85 public Dimension getMinimumSize(final int columns) {
86 return getPreferredSize(columns);
87 }
88
89 @Override
90 public Dimension getMinimumSize() {
91 return getMinimumSize(DEFAULT_COLUMNS);
92 }
93
94 @Override
95 public void actionPerformed(final ActionEvent e) {
96 postEvent(new ActionEvent(getTarget(), ActionEvent.ACTION_PERFORMED,
97 getText(), e.getWhen(), e.getModifiers()));
98 }
99
100 private final class JTextAreaDelegate extends JPasswordField {
101
102 // Empty non private constructor was added because access to this
103 // class shouldn't be emulated by a synthetic accessor method.
104 JTextAreaDelegate() {
105 super();
106 }
107
108 @Override
109 public boolean hasFocus() {
110 return getTarget().hasFocus();
111 }
112
113 @Override
114 public Point getLocationOnScreen() {
115 return LWTextFieldPeer.this.getLocationOnScreen();
116 }
117 }
|
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26
27 package sun.lwawt;
28
29 import java.awt.Dimension;
30 import java.awt.Point;
31 import java.awt.TextField;
32 import java.awt.event.ActionEvent;
33 import java.awt.event.ActionListener;
34 import java.awt.event.FocusEvent;
35 import java.awt.peer.TextFieldPeer;
36
37 import javax.swing.JPasswordField;
38 import javax.swing.text.JTextComponent;
39
40 final class LWTextFieldPeer
41 extends LWTextComponentPeer<TextField, JPasswordField>
42 implements TextFieldPeer, ActionListener {
43
44 private static final int DEFAULT_COLUMNS = 1;
45
46 LWTextFieldPeer(final TextField target,
47 final PlatformComponent platformComponent) {
48 super(target, platformComponent);
49 }
50
51 @Override
52 protected JPasswordField createDelegate() {
53 return new JTextAreaDelegate();
54 }
79
80 @Override
81 public Dimension getPreferredSize(final int columns) {
82 return getPreferredSize(1, columns);
83 }
84
85 @Override
86 public Dimension getMinimumSize(final int columns) {
87 return getPreferredSize(columns);
88 }
89
90 @Override
91 public Dimension getMinimumSize() {
92 return getMinimumSize(DEFAULT_COLUMNS);
93 }
94
95 @Override
96 public void actionPerformed(final ActionEvent e) {
97 postEvent(new ActionEvent(getTarget(), ActionEvent.ACTION_PERFORMED,
98 getText(), e.getWhen(), e.getModifiers()));
99 }
100
101 /**
102 * Restoring native behavior. We should sets the selection range to zero,
103 * when component lost its focus.
104 *
105 * @param e the focus event
106 */
107 @Override
108 protected void handleJavaFocusEvent(final FocusEvent e) {
109 if (e.getID() == FocusEvent.FOCUS_LOST) {
110 // In order to de-select the selection
111 setCaretPosition(0);
112 }
113 super.handleJavaFocusEvent(e);
114 }
115
116 private final class JTextAreaDelegate extends JPasswordField {
117
118 // Empty non private constructor was added because access to this
119 // class shouldn't be emulated by a synthetic accessor method.
120 JTextAreaDelegate() {
121 super();
122 }
123
124 @Override
125 public boolean hasFocus() {
126 return getTarget().hasFocus();
127 }
128
129 @Override
130 public Point getLocationOnScreen() {
131 return LWTextFieldPeer.this.getLocationOnScreen();
132 }
133 }
|