author | ddehaven |
Tue, 19 Aug 2014 10:32:16 -0700 | |
changeset 26037 | 508779ce6619 |
parent 26035 | jdk/src/share/classes/javax/swing/CellEditor.java@250f55e44bea |
parent 25859 | jdk/src/share/classes/javax/swing/CellEditor.java@3317bb8137f4 |
permissions | -rw-r--r-- |
2 | 1 |
/* |
26035 | 2 |
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. |
2 | 3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 |
* |
|
5 |
* This code is free software; you can redistribute it and/or modify it |
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
|
5506 | 7 |
* published by the Free Software Foundation. Oracle designates this |
2 | 8 |
* particular file as subject to the "Classpath" exception as provided |
5506 | 9 |
* by Oracle in the LICENSE file that accompanied this code. |
2 | 10 |
* |
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
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 |
* |
|
5506 | 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. |
|
2 | 24 |
*/ |
25 |
||
26 |
package javax.swing; |
|
27 |
||
28 |
import java.util.EventObject; |
|
29 |
import javax.swing.event.*; |
|
30 |
||
31 |
/** |
|
32 |
* This interface defines the methods any general editor should be able |
|
33 |
* to implement. <p> |
|
34 |
* |
|
35 |
* Having this interface enables complex components (the client of the |
|
36 |
* editor) such as <code>JTree</code> and |
|
37 |
* <code>JTable</code> to allow any generic editor to |
|
38 |
* edit values in a table cell, or tree cell, etc. Without this generic |
|
39 |
* editor interface, <code>JTable</code> would have to know about specific editors, |
|
40 |
* such as <code>JTextField</code>, <code>JCheckBox</code>, <code>JComboBox</code>, |
|
41 |
* etc. In addition, without this interface, clients of editors such as |
|
42 |
* <code>JTable</code> would not be able |
|
43 |
* to work with any editors developed in the future by the user |
|
44 |
* or a 3rd party ISV. <p> |
|
45 |
* |
|
46 |
* To use this interface, a developer creating a new editor can have the |
|
47 |
* new component implement the interface. Or the developer can |
|
48 |
* choose a wrapper based approach and provide a companion object which |
|
49 |
* implements the <code>CellEditor</code> interface (See |
|
26035 | 50 |
* <code>DefaultCellEditor</code> for example). The wrapper approach |
2 | 51 |
* is particularly useful if the user want to use a 3rd party ISV |
52 |
* editor with <code>JTable</code>, but the ISV didn't implement the |
|
53 |
* <code>CellEditor</code> interface. The user can simply create an object |
|
54 |
* that contains an instance of the 3rd party editor object and "translate" |
|
55 |
* the <code>CellEditor</code> API into the 3rd party editor's API. |
|
56 |
* |
|
57 |
* @see javax.swing.event.CellEditorListener |
|
58 |
* |
|
59 |
* @author Alan Chung |
|
25201
4adc75e0c4e5
8046485: Add missing @since tag under javax.swing.*
henryjen
parents:
5506
diff
changeset
|
60 |
* @since 1.2 |
2 | 61 |
*/ |
62 |
public interface CellEditor { |
|
63 |
||
64 |
/** |
|
65 |
* Returns the value contained in the editor. |
|
66 |
* @return the value contained in the editor |
|
67 |
*/ |
|
68 |
public Object getCellEditorValue(); |
|
69 |
||
70 |
/** |
|
71 |
* Asks the editor if it can start editing using <code>anEvent</code>. |
|
72 |
* <code>anEvent</code> is in the invoking component coordinate system. |
|
73 |
* The editor can not assume the Component returned by |
|
74 |
* <code>getCellEditorComponent</code> is installed. This method |
|
75 |
* is intended for the use of client to avoid the cost of setting up |
|
76 |
* and installing the editor component if editing is not possible. |
|
77 |
* If editing can be started this method returns true. |
|
78 |
* |
|
79 |
* @param anEvent the event the editor should use to consider |
|
80 |
* whether to begin editing or not |
|
81 |
* @return true if editing can be started |
|
82 |
* @see #shouldSelectCell |
|
83 |
*/ |
|
84 |
public boolean isCellEditable(EventObject anEvent); |
|
85 |
||
86 |
/** |
|
87 |
* Returns true if the editing cell should be selected, false otherwise. |
|
88 |
* Typically, the return value is true, because is most cases the editing |
|
89 |
* cell should be selected. However, it is useful to return false to |
|
90 |
* keep the selection from changing for some types of edits. |
|
91 |
* eg. A table that contains a column of check boxes, the user might |
|
92 |
* want to be able to change those checkboxes without altering the |
|
93 |
* selection. (See Netscape Communicator for just such an example) |
|
94 |
* Of course, it is up to the client of the editor to use the return |
|
95 |
* value, but it doesn't need to if it doesn't want to. |
|
96 |
* |
|
97 |
* @param anEvent the event the editor should use to start |
|
98 |
* editing |
|
99 |
* @return true if the editor would like the editing cell to be selected; |
|
100 |
* otherwise returns false |
|
101 |
* @see #isCellEditable |
|
102 |
*/ |
|
103 |
public boolean shouldSelectCell(EventObject anEvent); |
|
104 |
||
105 |
/** |
|
106 |
* Tells the editor to stop editing and accept any partially edited |
|
107 |
* value as the value of the editor. The editor returns false if |
|
108 |
* editing was not stopped; this is useful for editors that validate |
|
109 |
* and can not accept invalid entries. |
|
110 |
* |
|
111 |
* @return true if editing was stopped; false otherwise |
|
112 |
*/ |
|
113 |
public boolean stopCellEditing(); |
|
114 |
||
115 |
/** |
|
116 |
* Tells the editor to cancel editing and not accept any partially |
|
117 |
* edited value. |
|
118 |
*/ |
|
119 |
public void cancelCellEditing(); |
|
120 |
||
121 |
/** |
|
122 |
* Adds a listener to the list that's notified when the editor |
|
123 |
* stops, or cancels editing. |
|
124 |
* |
|
125 |
* @param l the CellEditorListener |
|
126 |
*/ |
|
127 |
public void addCellEditorListener(CellEditorListener l); |
|
128 |
||
129 |
/** |
|
130 |
* Removes a listener from the list that's notified |
|
131 |
* |
|
132 |
* @param l the CellEditorListener |
|
133 |
*/ |
|
134 |
public void removeCellEditorListener(CellEditorListener l); |
|
135 |
} |