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+
26+package javax.swing;
27+
28+import javax.swing.event.*;
29+import java.util.EventObject;
30+import 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+
54+public 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+}