History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/javax/swing/AbstractCellEditor.java (1 of 18352 files). Show all

Unified · Split

java/pkg/javax/swing/AbstractCellEditor.java+167−0
@@ -0,0 +1,167 @@
1/*
2 * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
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
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
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 *
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
26package javax.swing;
27
28import javax.swing.event.*;
29import java.util.EventObject;
30import java.io.Serializable;
31
32/**
33 *
34 * A base class for <code>CellEditors</code>, providing default
35 * implementations for the methods in the <code>CellEditor</code>
36 * interface except <code>getCellEditorValue()</code>.
37 * Like the other abstract implementations in Swing, also manages a list
38 * of listeners.
39 *
40 * <p>
41 * <strong>Warning:</strong>
42 * Serialized objects of this class will not be compatible with
43 * future Swing releases. The current serialization support is
44 * appropriate for short term storage or RMI between applications running
45 * the same version of Swing. As of 1.4, support for long term storage
46 * of all JavaBeans<sup><font size="-2">TM</font></sup>
47 * has been added to the <code>java.beans</code> package.
48 * Please see {@link java.beans.XMLEncoder}.
49 *
50 * @author Philip Milne
51 * @since 1.3
52 */
53
54public abstract class AbstractCellEditor implements CellEditor, Serializable {
55
56 protected EventListenerList listenerList = new EventListenerList();
57 transient protected ChangeEvent changeEvent = null;
58
59 // Force this to be implemented.
60 // public Object getCellEditorValue()
61
62 /**
63 * Returns true.
64 * @param e an event object
65 * @return true
66 */
67 public boolean isCellEditable(EventObject e) {
68 return true;
69 }
70
71 /**
72 * Returns true.
73 * @param anEvent an event object
74 * @return true
75 */
76 public boolean shouldSelectCell(EventObject anEvent) {
77 return true;
78 }
79
80 /**
81 * Calls <code>fireEditingStopped</code> and returns true.
82 * @return true
83 */
84 public boolean stopCellEditing() {
85 fireEditingStopped();
86 return true;
87 }
88
89 /**
90 * Calls <code>fireEditingCanceled</code>.
91 */
92 public void cancelCellEditing() {
93 fireEditingCanceled();
94 }
95
96 /**
97 * Adds a <code>CellEditorListener</code> to the listener list.
98 * @param l the new listener to be added
99 */
100 public void addCellEditorListener(CellEditorListener l) {
101 listenerList.add(CellEditorListener.class, l);
102 }
103
104 /**
105 * Removes a <code>CellEditorListener</code> from the listener list.
106 * @param l the listener to be removed
107 */
108 public void removeCellEditorListener(CellEditorListener l) {
109 listenerList.remove(CellEditorListener.class, l);
110 }
111
112 /**
113 * Returns an array of all the <code>CellEditorListener</code>s added
114 * to this AbstractCellEditor with addCellEditorListener().
115 *
116 * @return all of the <code>CellEditorListener</code>s added or an empty
117 * array if no listeners have been added
118 * @since 1.4
119 */
120 public CellEditorListener[] getCellEditorListeners() {
121 return listenerList.getListeners(CellEditorListener.class);
122 }
123
124 /**
125 * Notifies all listeners that have registered interest for
126 * notification on this event type. The event instance
127 * is created lazily.
128 *
129 * @see EventListenerList
130 */
131 protected void fireEditingStopped() {
132 // Guaranteed to return a non-null array
133 Object[] listeners = listenerList.getListenerList();
134 // Process the listeners last to first, notifying
135 // those that are interested in this event
136 for (int i = listeners.length-2; i>=0; i-=2) {
137 if (listeners[i]==CellEditorListener.class) {
138 // Lazily create the event:
139 if (changeEvent == null)
140 changeEvent = new ChangeEvent(this);
141 ((CellEditorListener)listeners[i+1]).editingStopped(changeEvent);
142 }
143 }
144 }
145
146 /**
147 * Notifies all listeners that have registered interest for
148 * notification on this event type. The event instance
149 * is created lazily.
150 *
151 * @see EventListenerList
152 */
153 protected void fireEditingCanceled() {
154 // Guaranteed to return a non-null array
155 Object[] listeners = listenerList.getListenerList();
156 // Process the listeners last to first, notifying
157 // those that are interested in this event
158 for (int i = listeners.length-2; i>=0; i-=2) {
159 if (listeners[i]==CellEditorListener.class) {
160 // Lazily create the event:
161 if (changeEvent == null)
162 changeEvent = new ChangeEvent(this);
163 ((CellEditorListener)listeners[i+1]).editingCanceled(changeEvent);
164 }
165 }
166 }
167}