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