OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [java/] [awt/] [TextField.java] - Blame information for rev 771

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 771 jeremybenn
/* TextField.java -- A one line text entry field
2
   Copyright (C) 1999, 2002, 2004, 2006,  Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
 
39
package java.awt;
40
 
41
import java.awt.event.ActionEvent;
42
import java.awt.event.ActionListener;
43
import java.awt.peer.ComponentPeer;
44
import java.awt.peer.TextFieldPeer;
45
import java.util.EventListener;
46
 
47
import javax.accessibility.AccessibleContext;
48
import javax.accessibility.AccessibleStateSet;
49
 
50
/**
51
 * This class implements a single line text entry field widget
52
 *
53
 * @author Aaron M. Renn (arenn@urbanophile.com)
54
 */
55
public class TextField extends TextComponent
56
{
57
 
58
  /**
59
   * The number used to generate the name returned by getName.
60
   */
61
  private static transient long next_textfield_number;
62
 
63
 
64
  private static final long serialVersionUID = -2966288784432217853L;
65
 
66
 
67
  /**
68
   * @serial The number of columns in the text entry field.
69
   */
70
  private int columns;
71
 
72
  /**
73
   * @serial The character that is echoed when doing protected input
74
   */
75
  private char echoChar;
76
 
77
  // List of registered ActionListener's for this object.
78
  private ActionListener action_listeners;
79
 
80
  /**
81
   * Initializes a new instance of <code>TextField</code> that is empty
82
   * and has one column.
83
   *
84
   * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
85
   */
86
  public TextField()
87
  {
88
    this("", 0);
89
  }
90
 
91
  /**
92
   * Initializes a new instance of <code>TextField</code> containing
93
   * the specified text.  The number of columns will be equal to the
94
   * length of the text string.
95
   *
96
   * @param text The text to display in the field.
97
   *
98
   * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
99
   */
100
  public TextField(String text)
101
  {
102
    this(text, (text == null) ? 0 : text.length());
103
  }
104
 
105
  /**
106
   * Initializes a new instance of <code>TextField</code> that is empty
107
   * and has the specified number of columns.
108
   *
109
   * @param columns The number of columns in the text field.
110
   *
111
   * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
112
   */
113
  public TextField(int columns)
114
  {
115
    this("", columns);
116
  }
117
 
118
  /**
119
   * Initializes a new instance of <code>TextField</code> with the
120
   * specified text and number of columns.
121
   *
122
   * @param text The text to display in the field.
123
   * @param columns The number of columns in the field.
124
   *
125
   * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true,
126
   */
127
  public TextField(String text, int columns)
128
  {
129
    super(text);
130
 
131
    if (columns < 0)
132
      this.columns = 0;
133
    else
134
      this.columns = columns;
135
 
136
    if (GraphicsEnvironment.isHeadless())
137
      throw new HeadlessException ();
138
  }
139
 
140
  /**
141
   * Returns the number of columns in the field.
142
   *
143
   * @return The number of columns in the field.
144
   */
145
  public int getColumns()
146
  {
147
    return(columns);
148
  }
149
 
150
  /**
151
   * Sets the number of columns in this field to the specified value.
152
   *
153
   * @param columns The new number of columns in the field.
154
   *
155
   * @exception IllegalArgumentException If columns is less than zero.
156
   */
157
  public synchronized void setColumns(int columns)
158
  {
159
    if (columns < 0)
160
      throw new IllegalArgumentException("Value is less than zero: " +
161
                                         columns);
162
 
163
    this.columns = columns;
164
    // FIXME: How to we communicate this to our peer?
165
  }
166
 
167
  /**
168
   * Returns the character that is echoed to the screen when a text
169
   * field is protected (such as when a password is being entered).
170
   *
171
   * @return The echo character for this text field.
172
   */
173
  public char getEchoChar()
174
  {
175
    return(echoChar);
176
  }
177
 
178
  /**
179
   * Sets the character that is echoed when protected input such as
180
   * a password is displayed.
181
   *
182
   * @param echoChar The new echo character.
183
   */
184
  public void setEchoChar(char echoChar)
185
  {
186
    setEchoCharacter(echoChar);
187
  }
188
 
189
  /**
190
   * Sets the character that is echoed when protected input such as
191
   * a password is displayed.
192
   *
193
   * @param echoChar The new echo character.
194
   *
195
   * @deprecated This method is deprecated in favor of
196
   * <code>setEchoChar()</code>
197
   */
198
  public void setEchoCharacter(char echoChar)
199
  {
200
    this.echoChar = echoChar;
201
 
202
    TextFieldPeer peer = (TextFieldPeer) getPeer ();
203
    if (peer != null)
204
      peer.setEchoChar (echoChar);
205
  }
206
 
207
  /**
208
   * Tests whether or not this text field has an echo character set
209
   * so that characters the user type are not echoed to the screen.
210
   *
211
   * @return <code>true</code> if an echo character is set,
212
   * <code>false</code> otherwise.
213
   */
214
  public boolean echoCharIsSet()
215
  {
216
    if (echoChar == '\u0000')
217
      return(false);
218
    else
219
      return(true);
220
  }
221
 
222
  /**
223
   * Returns the minimum size for this text field.
224
   *
225
   * @return The minimum size for this text field.
226
   */
227
  public Dimension getMinimumSize()
228
  {
229
    return getMinimumSize (getColumns ());
230
  }
231
 
232
  /**
233
   * Returns the minimum size of a text field with the specified number
234
   * of columns.
235
   *
236
   * @param columns The number of columns to get the minimum size for.
237
   */
238
  public Dimension getMinimumSize(int columns)
239
  {
240
    return minimumSize(columns);
241
  }
242
 
243
  /**
244
   * Returns the minimum size for this text field.
245
   *
246
   * @return The minimum size for this text field.
247
   *
248
   * @deprecated This method is deprecated in favor of
249
   * <code>getMinimumSize()</code>.
250
   */
251
  public Dimension minimumSize()
252
  {
253
    return minimumSize(getColumns ());
254
  }
255
 
256
  /**
257
   * Returns the minimum size of a text field with the specified number
258
   * of columns.
259
   *
260
   * @param columns The number of columns to get the minimum size for.
261
   *
262
   * @deprecated This method is deprecated in favor of
263
   * <code>getMinimumSize(int)</code>.
264
   */
265
  public Dimension minimumSize(int columns)
266
  {
267
    if (isMinimumSizeSet())
268
      return new Dimension(minSize);
269
 
270
    TextFieldPeer peer = (TextFieldPeer) getPeer ();
271
    if (peer == null)
272
      return new Dimension(getWidth(), getHeight());
273
 
274
    return peer.getMinimumSize (columns);
275
  }
276
 
277
  /**
278
   * Returns the preferred size for this text field.
279
   *
280
   * @return The preferred size for this text field.
281
   */
282
  public Dimension getPreferredSize()
283
  {
284
    return getPreferredSize(getColumns ());
285
  }
286
 
287
  /**
288
   * Returns the preferred size of a text field with the specified number
289
   * of columns.
290
   *
291
   * @param columns The number of columns to get the preferred size for.
292
   */
293
  public Dimension getPreferredSize(int columns)
294
  {
295
    return preferredSize(columns);
296
  }
297
 
298
  /**
299
   * Returns the preferred size for this text field.
300
   *
301
   * @return The preferred size for this text field.
302
   *
303
   * @deprecated This method is deprecated in favor of
304
   * <code>getPreferredSize()</code>.
305
   */
306
  public Dimension preferredSize()
307
  {
308
    return preferredSize(getColumns ());
309
  }
310
 
311
  /**
312
   * Returns the preferred size of a text field with the specified number
313
   * of columns.
314
   *
315
   * @param columns The number of columns to get the preferred size for.
316
   *
317
   * @deprecated This method is deprecated in favor of
318
   * <code>getPreferredSize(int)</code>.
319
   */
320
  public Dimension preferredSize(int columns)
321
  {
322
    if (isPreferredSizeSet())
323
      return new Dimension(prefSize);
324
 
325
    TextFieldPeer peer = (TextFieldPeer) getPeer ();
326
    if (peer == null)
327
      return new Dimension (getWidth(), getHeight());
328
 
329
    return peer.getPreferredSize (columns);
330
  }
331
 
332
  /**
333
   * Notifies this object that it should create its native peer.
334
   */
335
  public void addNotify()
336
  {
337
    if (getPeer() != null)
338
      return;
339
 
340
    setPeer((ComponentPeer)getToolkit().createTextField(this));
341
    super.addNotify();
342
  }
343
 
344
  /**
345
   * Addes a new listener to the list of action listeners for this
346
   * object.
347
   *
348
   * @param listener The listener to add to the list.
349
   */
350
  public synchronized void addActionListener(ActionListener listener)
351
  {
352
    action_listeners = AWTEventMulticaster.add(action_listeners, listener);
353
 
354
    enableEvents(AWTEvent.ACTION_EVENT_MASK);
355
  }
356
 
357
  /**
358
   * Removes the specified listener from the list of action listeners
359
   * for this object.
360
   *
361
   * @param listener The listener to remove from the list.
362
   */
363
  public synchronized void removeActionListener(ActionListener listener)
364
  {
365
    action_listeners = AWTEventMulticaster.remove(action_listeners, listener);
366
  }
367
 
368
  /**
369
   * Processes the specified event.  If the event is an instance of
370
   * <code>ActionEvent</code> then <code>processActionEvent()</code> is
371
   * called to process it, otherwise the event is sent to the
372
   * superclass.
373
   *
374
   * @param event The event to process.
375
   */
376
  protected void processEvent(AWTEvent event)
377
  {
378
    if (event instanceof ActionEvent)
379
      processActionEvent((ActionEvent)event);
380
    else
381
      super.processEvent(event);
382
  }
383
 
384
  /**
385
   * Processes an action event by calling any registered listeners.
386
   * Note to subclasses: This method is not called unless action events
387
   * are enabled on this object.  This will be true if any listeners
388
   * are registered, or if action events were specifically enabled
389
   * using <code>enableEvents()</code>.
390
   *
391
   * @param event The event to process.
392
   */
393
  protected void processActionEvent(ActionEvent event)
394
  {
395
    if (action_listeners != null)
396
      action_listeners.actionPerformed(event);
397
  }
398
 
399
  void dispatchEventImpl(AWTEvent e)
400
  {
401
    if (e.id <= ActionEvent.ACTION_LAST
402
        && e.id >= ActionEvent.ACTION_FIRST
403
        && (action_listeners != null
404
            || (eventMask & AWTEvent.ACTION_EVENT_MASK) != 0))
405
      processEvent(e);
406
    else
407
      super.dispatchEventImpl(e);
408
  }
409
 
410
 /**
411
  * Returns a debug string for this object.
412
  *
413
  * @return A debug string for this object.
414
  */
415
  protected String paramString()
416
  {
417
    return(getClass().getName() + "(columns=" + getColumns() + ",echoChar=" +
418
           getEchoChar());
419
  }
420
 
421
  /**
422
   * Returns an array of all the objects currently registered as FooListeners
423
   * upon this <code>TextField</code>. FooListeners are registered using the
424
   * addFooListener method.
425
   *
426
   * @exception ClassCastException If listenerType doesn't specify a class or
427
   * interface that implements java.util.EventListener.
428
   *
429
   * @since 1.3
430
   */
431
  public <T extends EventListener> T[] getListeners (Class<T> listenerType)
432
  {
433
    if (listenerType == ActionListener.class)
434
      return AWTEventMulticaster.getListeners (action_listeners, listenerType);
435
 
436
    return super.getListeners (listenerType);
437
  }
438
 
439
  /**
440
   * Return all ActionListeners register to this <code>TextField</code> object
441
   * as an array.
442
   *
443
   * @since 1.4
444
   */
445
  public ActionListener[] getActionListeners ()
446
  {
447
    return (ActionListener[]) getListeners (ActionListener.class);
448
  }
449
 
450
  /**
451
   * Generate a unique name for this <code>TextField</code>.
452
   *
453
   * @return A unique name for this <code>TextField</code>.
454
   */
455
  String generateName()
456
  {
457
    return "textfield" + getUniqueLong();
458
  }
459
 
460
  private static synchronized long getUniqueLong()
461
  {
462
    return next_textfield_number++;
463
  }
464
 
465
  protected class AccessibleAWTTextField extends AccessibleAWTTextComponent
466
  {
467
    private static final long serialVersionUID = 6219164359235943158L;
468
 
469
    protected AccessibleAWTTextField()
470
    {
471
    }
472
 
473
    public AccessibleStateSet getAccessibleStateSet()
474
    {
475
      return super.getAccessibleStateSet();
476
    }
477
  }
478
 
479
  public AccessibleContext getAccessibleContext()
480
  {
481
    return new AccessibleAWTTextField();
482
  }
483
 
484
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.