19a9cd6fbaeeee8b1304ba56a9af449f0a8f71e5
[jalviewjs.git] / site / swingjs / j2s / javax / swing / table / DefaultTableColumnModel.js
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;
6 this.columnMargin = 0;
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 ();
15 });
16 Clazz.makeConstructor (c$, 
17 function () {
18 this.tableColumns =  new java.util.Vector ();
19 this.setSelectionModel (this.createSelectionModel ());
20 this.setColumnMargin (1);
21 this.invalidateWidthCache ();
22 this.setColumnSelectionAllowed (false);
23 });
24 Clazz.overrideMethod (c$, "addColumn", 
25 function (aColumn) {
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", 
34 function (column) {
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");
47 var aColumn;
48 if (columnIndex == newIndex) {
49 this.fireColumnMoved ( new javax.swing.event.TableColumnModelEvent (this, columnIndex, newIndex));
50 return;
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);
57 if (selected) {
58 this.selectionModel.addSelectionInterval (newIndex, newIndex);
59 } else {
60 this.selectionModel.removeSelectionInterval (newIndex, newIndex);
61 }this.fireColumnMoved ( new javax.swing.event.TableColumnModelEvent (this, columnIndex, newIndex));
62 }, "~N,~N");
63 Clazz.overrideMethod (c$, "setColumnMargin", 
64 function (newMargin) {
65 if (newMargin != this.columnMargin) {
66 this.columnMargin = newMargin;
67 this.fireColumnMarginChanged ();
68 }}, "~N");
69 Clazz.overrideMethod (c$, "getColumnCount", 
70 function () {
71 return this.tableColumns.size ();
72 });
73 Clazz.overrideMethod (c$, "getColumns", 
74 function () {
75 return this.tableColumns.elements ();
76 });
77 Clazz.overrideMethod (c$, "getColumnIndex", 
78 function (identifier) {
79 if (identifier == null) {
80 throw  new IllegalArgumentException ("Identifier is null");
81 }var enumeration = this.getColumns ();
82 var aColumn;
83 var index = 0;
84 while (enumeration.hasMoreElements ()) {
85 aColumn = enumeration.nextElement ();
86 if (identifier.equals (aColumn.getIdentifier ())) return index;
87 index++;
88 }
89 throw  new IllegalArgumentException ("Identifier not found");
90 }, "~O");
91 Clazz.overrideMethod (c$, "getColumn", 
92 function (columnIndex) {
93 return this.tableColumns.elementAt (columnIndex);
94 }, "~N");
95 Clazz.overrideMethod (c$, "getColumnMargin", 
96 function () {
97 return this.columnMargin;
98 });
99 Clazz.overrideMethod (c$, "getColumnIndexAtX", 
100 function (x) {
101 if (x < 0) {
102 return -1;
103 }var cc = this.getColumnCount ();
104 for (var column = 0; column < cc; column++) {
105 x = x - this.getColumn (column).getWidth ();
106 if (x < 0) {
107 return column;
108 }}
109 return -1;
110 }, "~N");
111 Clazz.overrideMethod (c$, "getTotalColumnWidth", 
112 function () {
113 if (this.totalColumnWidth == -1) {
114 this.recalcWidthCache ();
115 }return this.totalColumnWidth;
116 });
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", 
129 function () {
130 return this.selectionModel;
131 });
132 Clazz.overrideMethod (c$, "setColumnSelectionAllowed", 
133 function (flag) {
134 this.columnSelectionAllowed = flag;
135 }, "~B");
136 Clazz.overrideMethod (c$, "getColumnSelectionAllowed", 
137 function () {
138 return this.columnSelectionAllowed;
139 });
140 Clazz.overrideMethod (c$, "getSelectedColumns", 
141 function () {
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);
148 var n = 0;
149 for (var i = iMin; i <= iMax; i++) {
150 if (this.selectionModel.isSelectedIndex (i)) {
151 rvTmp[n++] = i;
152 }}
153 var rv =  Clazz.newIntArray (n, 0);
154 System.arraycopy (rvTmp, 0, rv, 0, n);
155 return rv;
156 }return  Clazz.newIntArray (0, 0);
157 });
158 Clazz.overrideMethod (c$, "getSelectedColumnCount", 
159 function () {
160 if (this.selectionModel != null) {
161 var iMin = this.selectionModel.getMinSelectionIndex ();
162 var iMax = this.selectionModel.getMaxSelectionIndex ();
163 var count = 0;
164 for (var i = iMin; i <= iMax; i++) {
165 if (this.selectionModel.isSelectedIndex (i)) {
166 count++;
167 }}
168 return count;
169 }return 0;
170 });
171 Clazz.overrideMethod (c$, "addColumnModelListener", 
172 function (x) {
173 this.listenerList.add (javax.swing.event.TableColumnModelListener, x);
174 }, "javax.swing.event.TableColumnModelListener");
175 Clazz.overrideMethod (c$, "removeColumnModelListener", 
176 function (x) {
177 this.listenerList.remove (javax.swing.event.TableColumnModelListener, x);
178 }, "javax.swing.event.TableColumnModelListener");
179 Clazz.defineMethod (c$, "getColumnModelListeners", 
180 function () {
181 return this.listenerList.getListeners (javax.swing.event.TableColumnModelListener);
182 });
183 Clazz.defineMethod (c$, "fireColumnAdded", 
184 function (e) {
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);
189 }}
190 }, "javax.swing.event.TableColumnModelEvent");
191 Clazz.defineMethod (c$, "fireColumnRemoved", 
192 function (e) {
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);
197 }}
198 }, "javax.swing.event.TableColumnModelEvent");
199 Clazz.defineMethod (c$, "fireColumnMoved", 
200 function (e) {
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);
205 }}
206 }, "javax.swing.event.TableColumnModelEvent");
207 Clazz.defineMethod (c$, "fireColumnSelectionChanged", 
208 function (e) {
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);
213 }}
214 }, "javax.swing.event.ListSelectionEvent");
215 Clazz.defineMethod (c$, "fireColumnMarginChanged", 
216 function () {
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);
222 }}
223 });
224 Clazz.defineMethod (c$, "getListeners", 
225 function (listenerType) {
226 return this.listenerList.getListeners (listenerType);
227 }, "Class");
228 Clazz.overrideMethod (c$, "propertyChange", 
229 function (evt) {
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", 
236 function (e) {
237 this.fireColumnSelectionChanged (e);
238 }, "javax.swing.event.ListSelectionEvent");
239 Clazz.defineMethod (c$, "createSelectionModel", 
240 function () {
241 return  new javax.swing.DefaultListSelectionModel ();
242 });
243 Clazz.defineMethod (c$, "recalcWidthCache", 
244 function () {
245 var enumeration = this.getColumns ();
246 this.totalColumnWidth = 0;
247 while (enumeration.hasMoreElements ()) {
248 this.totalColumnWidth += (enumeration.nextElement ()).getWidth ();
249 }
250 });
251 Clazz.defineMethod (c$, "invalidateWidthCache", 
252  function () {
253 this.totalColumnWidth = -1;
254 });
255 });