1 Clazz.declarePackage ("javax.swing.table");
\r
2 Clazz.load (["java.beans.PropertyChangeListener", "javax.swing.event.ListSelectionListener", "javax.swing.table.TableColumnModel", "javax.swing.event.EventListenerList"], "javax.swing.table.DefaultTableColumnModel", ["java.lang.IllegalArgumentException", "java.util.Vector", "javax.swing.DefaultListSelectionModel", "javax.swing.event.ChangeEvent", "$.TableColumnModelEvent", "$.TableColumnModelListener"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.tableColumns = null;
\r
5 this.selectionModel = null;
\r
6 this.columnMargin = 0;
\r
7 this.listenerList = null;
\r
8 this.changeEvent = null;
\r
9 this.columnSelectionAllowed = false;
\r
10 this.totalColumnWidth = 0;
\r
11 Clazz.instantialize (this, arguments);
\r
12 }, javax.swing.table, "DefaultTableColumnModel", null, [javax.swing.table.TableColumnModel, java.beans.PropertyChangeListener, javax.swing.event.ListSelectionListener]);
\r
13 Clazz.prepareFields (c$, function () {
\r
14 this.listenerList = new javax.swing.event.EventListenerList ();
\r
16 Clazz.makeConstructor (c$,
\r
18 this.tableColumns = new java.util.Vector ();
\r
19 this.setSelectionModel (this.createSelectionModel ());
\r
20 this.setColumnMargin (1);
\r
21 this.invalidateWidthCache ();
\r
22 this.setColumnSelectionAllowed (false);
\r
24 Clazz.overrideMethod (c$, "addColumn",
\r
25 function (aColumn) {
\r
26 if (aColumn == null) {
\r
27 throw new IllegalArgumentException ("Object is null");
\r
28 }this.tableColumns.addElement (aColumn);
\r
29 aColumn.addPropertyChangeListener (this);
\r
30 this.invalidateWidthCache ();
\r
31 this.fireColumnAdded ( new javax.swing.event.TableColumnModelEvent (this, 0, this.getColumnCount () - 1));
\r
32 }, "javax.swing.table.TableColumn");
\r
33 Clazz.overrideMethod (c$, "removeColumn",
\r
35 var columnIndex = this.tableColumns.indexOf (column);
\r
36 if (columnIndex != -1) {
\r
37 if (this.selectionModel != null) {
\r
38 this.selectionModel.removeIndexInterval (columnIndex, columnIndex);
\r
39 }column.removePropertyChangeListener (this);
\r
40 this.tableColumns.removeElementAt (columnIndex);
\r
41 this.invalidateWidthCache ();
\r
42 this.fireColumnRemoved ( new javax.swing.event.TableColumnModelEvent (this, columnIndex, 0));
\r
43 }}, "javax.swing.table.TableColumn");
\r
44 Clazz.overrideMethod (c$, "moveColumn",
\r
45 function (columnIndex, newIndex) {
\r
46 if ((columnIndex < 0) || (columnIndex >= this.getColumnCount ()) || (newIndex < 0) || (newIndex >= this.getColumnCount ())) throw new IllegalArgumentException ("moveColumn() - Index out of range");
\r
48 if (columnIndex == newIndex) {
\r
49 this.fireColumnMoved ( new javax.swing.event.TableColumnModelEvent (this, columnIndex, newIndex));
\r
51 }aColumn = this.tableColumns.elementAt (columnIndex);
\r
52 this.tableColumns.removeElementAt (columnIndex);
\r
53 var selected = this.selectionModel.isSelectedIndex (columnIndex);
\r
54 this.selectionModel.removeIndexInterval (columnIndex, columnIndex);
\r
55 this.tableColumns.insertElementAt (aColumn, newIndex);
\r
56 this.selectionModel.insertIndexInterval (newIndex, 1, true);
\r
58 this.selectionModel.addSelectionInterval (newIndex, newIndex);
\r
60 this.selectionModel.removeSelectionInterval (newIndex, newIndex);
\r
61 }this.fireColumnMoved ( new javax.swing.event.TableColumnModelEvent (this, columnIndex, newIndex));
\r
63 Clazz.overrideMethod (c$, "setColumnMargin",
\r
64 function (newMargin) {
\r
65 if (newMargin != this.columnMargin) {
\r
66 this.columnMargin = newMargin;
\r
67 this.fireColumnMarginChanged ();
\r
69 Clazz.overrideMethod (c$, "getColumnCount",
\r
71 return this.tableColumns.size ();
\r
73 Clazz.overrideMethod (c$, "getColumns",
\r
75 return this.tableColumns.elements ();
\r
77 Clazz.overrideMethod (c$, "getColumnIndex",
\r
78 function (identifier) {
\r
79 if (identifier == null) {
\r
80 throw new IllegalArgumentException ("Identifier is null");
\r
81 }var enumeration = this.getColumns ();
\r
84 while (enumeration.hasMoreElements ()) {
\r
85 aColumn = enumeration.nextElement ();
\r
86 if (identifier.equals (aColumn.getIdentifier ())) return index;
\r
89 throw new IllegalArgumentException ("Identifier not found");
\r
91 Clazz.overrideMethod (c$, "getColumn",
\r
92 function (columnIndex) {
\r
93 return this.tableColumns.elementAt (columnIndex);
\r
95 Clazz.overrideMethod (c$, "getColumnMargin",
\r
97 return this.columnMargin;
\r
99 Clazz.overrideMethod (c$, "getColumnIndexAtX",
\r
103 }var cc = this.getColumnCount ();
\r
104 for (var column = 0; column < cc; column++) {
\r
105 x = x - this.getColumn (column).getWidth ();
\r
111 Clazz.overrideMethod (c$, "getTotalColumnWidth",
\r
113 if (this.totalColumnWidth == -1) {
\r
114 this.recalcWidthCache ();
\r
115 }return this.totalColumnWidth;
\r
117 Clazz.overrideMethod (c$, "setSelectionModel",
\r
118 function (newModel) {
\r
119 if (newModel == null) {
\r
120 throw new IllegalArgumentException ("Cannot set a null SelectionModel");
\r
121 }var oldModel = this.selectionModel;
\r
122 if (newModel !== oldModel) {
\r
123 if (oldModel != null) {
\r
124 oldModel.removeListSelectionListener (this);
\r
125 }this.selectionModel = newModel;
\r
126 newModel.addListSelectionListener (this);
\r
127 }}, "javax.swing.ListSelectionModel");
\r
128 Clazz.overrideMethod (c$, "getSelectionModel",
\r
130 return this.selectionModel;
\r
132 Clazz.overrideMethod (c$, "setColumnSelectionAllowed",
\r
134 this.columnSelectionAllowed = flag;
\r
136 Clazz.overrideMethod (c$, "getColumnSelectionAllowed",
\r
138 return this.columnSelectionAllowed;
\r
140 Clazz.overrideMethod (c$, "getSelectedColumns",
\r
142 if (this.selectionModel != null) {
\r
143 var iMin = this.selectionModel.getMinSelectionIndex ();
\r
144 var iMax = this.selectionModel.getMaxSelectionIndex ();
\r
145 if ((iMin == -1) || (iMax == -1)) {
\r
146 return Clazz.newIntArray (0, 0);
\r
147 }var rvTmp = Clazz.newIntArray (1 + (iMax - iMin), 0);
\r
149 for (var i = iMin; i <= iMax; i++) {
\r
150 if (this.selectionModel.isSelectedIndex (i)) {
\r
153 var rv = Clazz.newIntArray (n, 0);
\r
154 System.arraycopy (rvTmp, 0, rv, 0, n);
\r
156 }return Clazz.newIntArray (0, 0);
\r
158 Clazz.overrideMethod (c$, "getSelectedColumnCount",
\r
160 if (this.selectionModel != null) {
\r
161 var iMin = this.selectionModel.getMinSelectionIndex ();
\r
162 var iMax = this.selectionModel.getMaxSelectionIndex ();
\r
164 for (var i = iMin; i <= iMax; i++) {
\r
165 if (this.selectionModel.isSelectedIndex (i)) {
\r
171 Clazz.overrideMethod (c$, "addColumnModelListener",
\r
173 this.listenerList.add (javax.swing.event.TableColumnModelListener, x);
\r
174 }, "javax.swing.event.TableColumnModelListener");
\r
175 Clazz.overrideMethod (c$, "removeColumnModelListener",
\r
177 this.listenerList.remove (javax.swing.event.TableColumnModelListener, x);
\r
178 }, "javax.swing.event.TableColumnModelListener");
\r
179 Clazz.defineMethod (c$, "getColumnModelListeners",
\r
181 return this.listenerList.getListeners (javax.swing.event.TableColumnModelListener);
\r
183 Clazz.defineMethod (c$, "fireColumnAdded",
\r
185 var listeners = this.listenerList.getListenerList ();
\r
186 for (var i = listeners.length - 2; i >= 0; i -= 2) {
\r
187 if (listeners[i] === javax.swing.event.TableColumnModelListener) {
\r
188 (listeners[i + 1]).columnAdded (e);
\r
190 }, "javax.swing.event.TableColumnModelEvent");
\r
191 Clazz.defineMethod (c$, "fireColumnRemoved",
\r
193 var listeners = this.listenerList.getListenerList ();
\r
194 for (var i = listeners.length - 2; i >= 0; i -= 2) {
\r
195 if (listeners[i] === javax.swing.event.TableColumnModelListener) {
\r
196 (listeners[i + 1]).columnRemoved (e);
\r
198 }, "javax.swing.event.TableColumnModelEvent");
\r
199 Clazz.defineMethod (c$, "fireColumnMoved",
\r
201 var listeners = this.listenerList.getListenerList ();
\r
202 for (var i = listeners.length - 2; i >= 0; i -= 2) {
\r
203 if (listeners[i] === javax.swing.event.TableColumnModelListener) {
\r
204 (listeners[i + 1]).columnMoved (e);
\r
206 }, "javax.swing.event.TableColumnModelEvent");
\r
207 Clazz.defineMethod (c$, "fireColumnSelectionChanged",
\r
209 var listeners = this.listenerList.getListenerList ();
\r
210 for (var i = listeners.length - 2; i >= 0; i -= 2) {
\r
211 if (listeners[i] === javax.swing.event.TableColumnModelListener) {
\r
212 (listeners[i + 1]).columnSelectionChanged (e);
\r
214 }, "javax.swing.event.ListSelectionEvent");
\r
215 Clazz.defineMethod (c$, "fireColumnMarginChanged",
\r
217 var listeners = this.listenerList.getListenerList ();
\r
218 for (var i = listeners.length - 2; i >= 0; i -= 2) {
\r
219 if (listeners[i] === javax.swing.event.TableColumnModelListener) {
\r
220 if (this.changeEvent == null) this.changeEvent = new javax.swing.event.ChangeEvent (this);
\r
221 (listeners[i + 1]).columnMarginChanged (this.changeEvent);
\r
224 Clazz.defineMethod (c$, "getListeners",
\r
225 function (listenerType) {
\r
226 return this.listenerList.getListeners (listenerType);
\r
228 Clazz.overrideMethod (c$, "propertyChange",
\r
230 var name = evt.getPropertyName ();
\r
231 if (name === "width" || name === "preferredWidth") {
\r
232 this.invalidateWidthCache ();
\r
233 this.fireColumnMarginChanged ();
\r
234 }}, "java.beans.PropertyChangeEvent");
\r
235 Clazz.overrideMethod (c$, "valueChanged",
\r
237 this.fireColumnSelectionChanged (e);
\r
238 }, "javax.swing.event.ListSelectionEvent");
\r
239 Clazz.defineMethod (c$, "createSelectionModel",
\r
241 return new javax.swing.DefaultListSelectionModel ();
\r
243 Clazz.defineMethod (c$, "recalcWidthCache",
\r
245 var enumeration = this.getColumns ();
\r
246 this.totalColumnWidth = 0;
\r
247 while (enumeration.hasMoreElements ()) {
\r
248 this.totalColumnWidth += (enumeration.nextElement ()).getWidth ();
\r
251 Clazz.defineMethod (c$, "invalidateWidthCache",
\r
253 this.totalColumnWidth = -1;
\r