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