35 |
obligated to do so. If you do not wish to do so, delete this |
obligated to do so. If you do not wish to do so, delete this |
36 |
exception statement from your version. */ |
exception statement from your version. */ |
37 |
|
|
|
|
|
38 |
package javax.swing.table; |
package javax.swing.table; |
39 |
|
|
40 |
import java.beans.PropertyChangeListener; |
import java.beans.PropertyChangeListener; |
41 |
import java.io.Serializable; |
import java.io.Serializable; |
42 |
import javax.swing.event.SwingPropertyChangeSupport; |
import javax.swing.event.SwingPropertyChangeSupport; |
43 |
|
|
44 |
|
|
45 |
/** |
/** |
46 |
* TableColumn |
* TableColumn |
47 |
* @author Andrew Selkirk |
* @author Andrew Selkirk |
48 |
* @version 1.0 |
* @version 1.0 |
49 |
*/ |
*/ |
50 |
public class TableColumn implements Serializable |
public class TableColumn |
51 |
|
implements Serializable |
52 |
{ |
{ |
53 |
static final long serialVersionUID = -6113660025878112608L; |
static final long serialVersionUID = -6113660025878112608L; |
54 |
|
|
|
//------------------------------------------------------------- |
|
|
// Variables -------------------------------------------------- |
|
|
//------------------------------------------------------------- |
|
|
|
|
55 |
/** |
/** |
56 |
* COLUMN_WIDTH_PROPERTY |
* COLUMN_WIDTH_PROPERTY |
57 |
*/ |
*/ |
135 |
/** |
/** |
136 |
* changeSupport |
* changeSupport |
137 |
*/ |
*/ |
138 |
private SwingPropertyChangeSupport changeSupport = new SwingPropertyChangeSupport(this); |
private SwingPropertyChangeSupport changeSupport = |
139 |
|
new SwingPropertyChangeSupport(this); |
|
|
|
|
//------------------------------------------------------------- |
|
|
// Initialization --------------------------------------------- |
|
|
//------------------------------------------------------------- |
|
140 |
|
|
141 |
/** |
/** |
142 |
* Constructor TableColumn |
* Constructor TableColumn |
143 |
*/ |
*/ |
144 |
public TableColumn() { |
public TableColumn() |
145 |
|
{ |
146 |
this(0, 75, null, null); |
this(0, 75, null, null); |
147 |
} // TableColumn() |
} |
148 |
|
|
149 |
/** |
/** |
150 |
* Constructor TableColumn |
* Constructor TableColumn |
151 |
* @param modelIndex TODO |
* @param modelIndex TODO |
152 |
*/ |
*/ |
153 |
public TableColumn(int modelIndex) { |
public TableColumn(int modelIndex) |
154 |
|
{ |
155 |
this(modelIndex, 75, null, null); |
this(modelIndex, 75, null, null); |
156 |
} // TableColumn() |
} |
157 |
|
|
158 |
/** |
/** |
159 |
* Constructor TableColumn |
* Constructor TableColumn |
160 |
* @param modelIndex TODO |
* @param modelIndex TODO |
161 |
* @param width TODO |
* @param width TODO |
162 |
*/ |
*/ |
163 |
public TableColumn(int modelIndex, int width) { |
public TableColumn(int modelIndex, int width) |
164 |
|
{ |
165 |
this(modelIndex, width, null, null); |
this(modelIndex, width, null, null); |
166 |
} // TableColumn() |
} |
167 |
|
|
168 |
/** |
/** |
169 |
* Constructor TableColumn |
* Constructor TableColumn |
173 |
* @param cellEditor TODO |
* @param cellEditor TODO |
174 |
*/ |
*/ |
175 |
public TableColumn(int modelIndex, int width, |
public TableColumn(int modelIndex, int width, |
176 |
TableCellRenderer cellRenderer, TableCellEditor cellEditor) { |
TableCellRenderer cellRenderer, TableCellEditor cellEditor) |
177 |
|
{ |
178 |
this.modelIndex = modelIndex; |
this.modelIndex = modelIndex; |
179 |
this.width = width; |
this.width = width; |
180 |
this.preferredWidth = width; |
this.preferredWidth = width; |
182 |
this.cellEditor = cellEditor; |
this.cellEditor = cellEditor; |
183 |
this.headerValue = null; |
this.headerValue = null; |
184 |
this.identifier = null; |
this.identifier = null; |
185 |
} // TableColumn() |
} |
|
|
|
|
|
|
|
//------------------------------------------------------------- |
|
|
// Methods ---------------------------------------------------- |
|
|
//------------------------------------------------------------- |
|
186 |
|
|
187 |
/** |
/** |
188 |
* firePropertyChange |
* firePropertyChange |
190 |
* @param oldValue TODO |
* @param oldValue TODO |
191 |
* @param newValue TODO |
* @param newValue TODO |
192 |
*/ |
*/ |
193 |
private void firePropertyChange(String property, Object oldValue, Object newValue) { |
private void firePropertyChange(String property, Object oldValue, |
194 |
|
Object newValue) |
195 |
|
{ |
196 |
changeSupport.firePropertyChange(property, oldValue, newValue); |
changeSupport.firePropertyChange(property, oldValue, newValue); |
197 |
} // firePropertyChange() |
} |
198 |
|
|
199 |
/** |
/** |
200 |
* firePropertyChange |
* firePropertyChange |
202 |
* @param oldValue TODO |
* @param oldValue TODO |
203 |
* @param newValue TODO |
* @param newValue TODO |
204 |
*/ |
*/ |
205 |
private void firePropertyChange(String property, int oldValue, int newValue) { |
private void firePropertyChange(String property, int oldValue, int newValue) |
206 |
|
{ |
207 |
firePropertyChange(property, new Integer(oldValue), new Integer(newValue)); |
firePropertyChange(property, new Integer(oldValue), new Integer(newValue)); |
208 |
} // firePropertyChange() |
} |
209 |
|
|
210 |
/** |
/** |
211 |
* firePropertyChange |
* firePropertyChange |
213 |
* @param oldValue TODO |
* @param oldValue TODO |
214 |
* @param newValue TODO |
* @param newValue TODO |
215 |
*/ |
*/ |
216 |
private void firePropertyChange(String property, boolean oldValue, boolean newValue) |
private void firePropertyChange(String property, boolean oldValue, |
217 |
|
boolean newValue) |
218 |
{ |
{ |
219 |
firePropertyChange(property, new Boolean(oldValue), new Boolean(newValue)); |
firePropertyChange(property, new Boolean(oldValue), new Boolean(newValue)); |
220 |
} |
} |
223 |
* setModelIndex |
* setModelIndex |
224 |
* @param modelIndex TODO |
* @param modelIndex TODO |
225 |
*/ |
*/ |
226 |
public void setModelIndex(int modelIndex) { |
public void setModelIndex(int modelIndex) |
227 |
|
{ |
228 |
this.modelIndex = modelIndex; |
this.modelIndex = modelIndex; |
229 |
} // setModelIndex() |
} |
230 |
|
|
231 |
/** |
/** |
232 |
* getModelIndex |
* getModelIndex |
233 |
* @returns int |
* @return int |
234 |
*/ |
*/ |
235 |
public int getModelIndex() { |
public int getModelIndex() |
236 |
|
{ |
237 |
return modelIndex; |
return modelIndex; |
238 |
} // getModelIndex() |
} |
239 |
|
|
240 |
/** |
/** |
241 |
* setIdentifier |
* setIdentifier |
242 |
* @param identifier TODO |
* @param identifier TODO |
243 |
*/ |
*/ |
244 |
public void setIdentifier(Object identifier) { |
public void setIdentifier(Object identifier) |
245 |
|
{ |
246 |
this.identifier = identifier; |
this.identifier = identifier; |
247 |
} // setIdentifier() |
} |
248 |
|
|
249 |
/** |
/** |
250 |
* getIdentifier |
* getIdentifier |
251 |
* @returns Object |
* @return Object |
252 |
*/ |
*/ |
253 |
public Object getIdentifier() { |
public Object getIdentifier() |
254 |
if (identifier == null) { |
{ |
255 |
|
if (identifier == null) |
256 |
return getHeaderValue(); |
return getHeaderValue(); |
|
} // if |
|
257 |
return identifier; |
return identifier; |
258 |
} // getIdentifier() |
} |
259 |
|
|
260 |
/** |
/** |
261 |
* setHeaderValue |
* setHeaderValue |
262 |
* @param headerValue TODO |
* @param headerValue TODO |
263 |
*/ |
*/ |
264 |
public void setHeaderValue(Object headerValue) { |
public void setHeaderValue(Object headerValue) |
265 |
|
{ |
266 |
// Variables |
// Variables |
267 |
Object oldValue; |
Object oldValue; |
268 |
|
|
273 |
this.headerValue = headerValue; |
this.headerValue = headerValue; |
274 |
|
|
275 |
// Notify Listeners of change |
// Notify Listeners of change |
276 |
firePropertyChange(HEADER_VALUE_PROPERTY, |
firePropertyChange(HEADER_VALUE_PROPERTY, oldValue, headerValue); |
277 |
oldValue, headerValue); |
} |
|
|
|
|
} // setHeaderValue() |
|
278 |
|
|
279 |
/** |
/** |
280 |
* getHeaderValue |
* getHeaderValue |
281 |
* @returns Object |
* @return Object |
282 |
*/ |
*/ |
283 |
public Object getHeaderValue() { |
public Object getHeaderValue() |
284 |
|
{ |
285 |
return headerValue; |
return headerValue; |
286 |
} // getHeaderValue() |
} |
287 |
|
|
288 |
/** |
/** |
289 |
* setHeaderRenderer |
* setHeaderRenderer |
290 |
* @param headerRenderer TODO |
* @param headerRenderer TODO |
291 |
*/ |
*/ |
292 |
public void setHeaderRenderer(TableCellRenderer headerRenderer) { |
public void setHeaderRenderer(TableCellRenderer headerRenderer) |
293 |
|
{ |
294 |
// Variables |
// Variables |
295 |
TableCellRenderer oldRenderer; |
TableCellRenderer oldRenderer; |
296 |
|
|
301 |
this.headerRenderer = headerRenderer; |
this.headerRenderer = headerRenderer; |
302 |
|
|
303 |
// Notify Listeners of change |
// Notify Listeners of change |
304 |
firePropertyChange(HEADER_RENDERER_PROPERTY, |
firePropertyChange(HEADER_RENDERER_PROPERTY, oldRenderer, headerRenderer); |
305 |
oldRenderer, headerRenderer); |
} |
|
|
|
|
} // setHeaderRenderer() |
|
306 |
|
|
307 |
/** |
/** |
308 |
* getHeaderRenderer |
* getHeaderRenderer |
309 |
* @returns TableCellRenderer |
* @return TableCellRenderer |
310 |
*/ |
*/ |
311 |
public TableCellRenderer getHeaderRenderer() { |
public TableCellRenderer getHeaderRenderer() |
312 |
|
{ |
313 |
return headerRenderer; |
return headerRenderer; |
314 |
} // getHeaderRenderer() |
} |
315 |
|
|
316 |
/** |
/** |
317 |
* setCellRenderer |
* setCellRenderer |
318 |
* @param cellRenderer TODO |
* @param cellRenderer TODO |
319 |
*/ |
*/ |
320 |
public void setCellRenderer(TableCellRenderer cellRenderer) { |
public void setCellRenderer(TableCellRenderer cellRenderer) |
321 |
|
{ |
322 |
// Variables |
// Variables |
323 |
TableCellRenderer oldRenderer; |
TableCellRenderer oldRenderer; |
324 |
|
|
329 |
this.cellRenderer = cellRenderer; |
this.cellRenderer = cellRenderer; |
330 |
|
|
331 |
// Notify Listeners of change |
// Notify Listeners of change |
332 |
firePropertyChange(CELL_RENDERER_PROPERTY, |
firePropertyChange(CELL_RENDERER_PROPERTY, oldRenderer, cellRenderer); |
333 |
oldRenderer, cellRenderer); |
} |
|
|
|
|
} // setCellRenderer() |
|
334 |
|
|
335 |
/** |
/** |
336 |
* getCellRenderer |
* getCellRenderer |
337 |
* @returns TableCellRenderer |
* @return TableCellRenderer |
338 |
*/ |
*/ |
339 |
public TableCellRenderer getCellRenderer() { |
public TableCellRenderer getCellRenderer() |
340 |
|
{ |
341 |
return cellRenderer; |
return cellRenderer; |
342 |
} // getCellRenderer() |
} |
343 |
|
|
344 |
/** |
/** |
345 |
* setCellEditor |
* setCellEditor |
346 |
* @param cellEditor TODO |
* @param cellEditor TODO |
347 |
*/ |
*/ |
348 |
public void setCellEditor(TableCellEditor cellEditor) { |
public void setCellEditor(TableCellEditor cellEditor) |
349 |
|
{ |
350 |
this.cellEditor = cellEditor; |
this.cellEditor = cellEditor; |
351 |
} // setCellEditor() |
} |
352 |
|
|
353 |
/** |
/** |
354 |
* getCellEditor |
* getCellEditor |
355 |
* @returns TableCellEditor |
* @return TableCellEditor |
356 |
*/ |
*/ |
357 |
public TableCellEditor getCellEditor() { |
public TableCellEditor getCellEditor() |
358 |
|
{ |
359 |
return cellEditor; |
return cellEditor; |
360 |
} // getCellEditor() |
} |
361 |
|
|
362 |
/** |
/** |
363 |
* setWidth |
* setWidth |
364 |
* @param width TODO |
* @param width TODO |
365 |
*/ |
*/ |
366 |
public void setWidth(int width) { |
public void setWidth(int width) |
367 |
|
{ |
368 |
// Variables |
// Variables |
369 |
int oldWidth; |
int oldWidth; |
370 |
|
|
372 |
oldWidth = this.width; |
oldWidth = this.width; |
373 |
|
|
374 |
// Adjust Width within Limits |
// Adjust Width within Limits |
375 |
if (width < minWidth) { |
if (width < minWidth) |
376 |
this.width = minWidth; |
this.width = minWidth; |
377 |
} else if (width > maxWidth) { |
else if (width > maxWidth) |
378 |
this.width = maxWidth; |
this.width = maxWidth; |
379 |
} else { |
else |
380 |
this.width = width; |
this.width = width; |
|
} // if |
|
381 |
|
|
|
// Fire Property Change |
|
382 |
firePropertyChange(COLUMN_WIDTH_PROPERTY, oldWidth, this.width); |
firePropertyChange(COLUMN_WIDTH_PROPERTY, oldWidth, this.width); |
383 |
|
} |
|
} // setWidth() |
|
384 |
|
|
385 |
/** |
/** |
386 |
* getWidth |
* getWidth |
387 |
* @returns int |
* @return int |
388 |
*/ |
*/ |
389 |
public int getWidth() { |
public int getWidth() |
390 |
|
{ |
391 |
return width; |
return width; |
392 |
} // getWidth() |
} |
393 |
|
|
394 |
/** |
/** |
395 |
* setPreferredWidth |
* setPreferredWidth |
396 |
* @param preferredWidth TODO |
* @param preferredWidth TODO |
397 |
*/ |
*/ |
398 |
public void setPreferredWidth(int preferredWidth) { |
public void setPreferredWidth(int preferredWidth) |
399 |
if (preferredWidth < minWidth) { |
{ |
400 |
|
if (preferredWidth < minWidth) |
401 |
this.preferredWidth = minWidth; |
this.preferredWidth = minWidth; |
402 |
} else if (preferredWidth > maxWidth) { |
else if (preferredWidth > maxWidth) |
403 |
this.preferredWidth = maxWidth; |
this.preferredWidth = maxWidth; |
404 |
} else { |
else |
405 |
this.preferredWidth = preferredWidth; |
this.preferredWidth = preferredWidth; |
406 |
} // if |
} |
|
} // setPreferredWidth() |
|
407 |
|
|
408 |
/** |
/** |
409 |
* getPreferredWidth |
* getPreferredWidth |
410 |
* @returns int |
* @return int |
411 |
*/ |
*/ |
412 |
public int getPreferredWidth() { |
public int getPreferredWidth() |
413 |
|
{ |
414 |
return preferredWidth; |
return preferredWidth; |
415 |
} // getPreferredWidth() |
} |
416 |
|
|
417 |
/** |
/** |
418 |
* setMinWidth |
* setMinWidth |
419 |
* @param minWidth TODO |
* @param minWidth TODO |
420 |
*/ |
*/ |
421 |
public void setMinWidth(int minWidth) { |
public void setMinWidth(int minWidth) |
422 |
|
{ |
423 |
this.minWidth = minWidth; |
this.minWidth = minWidth; |
424 |
setWidth(getWidth()); |
setWidth(getWidth()); |
425 |
setPreferredWidth(getPreferredWidth()); |
setPreferredWidth(getPreferredWidth()); |
426 |
} // setMinWidth() |
} |
427 |
|
|
428 |
/** |
/** |
429 |
* getMinWidth |
* getMinWidth |
430 |
* @returns int |
* @return int |
431 |
*/ |
*/ |
432 |
public int getMinWidth() { |
public int getMinWidth() |
433 |
|
{ |
434 |
return minWidth; |
return minWidth; |
435 |
} // getMinWidth() |
} |
436 |
|
|
437 |
/** |
/** |
438 |
* setMaxWidth |
* setMaxWidth |
439 |
* @param maxWidth TODO |
* @param maxWidth TODO |
440 |
*/ |
*/ |
441 |
public void setMaxWidth(int maxWidth) { |
public void setMaxWidth(int maxWidth) |
442 |
|
{ |
443 |
this.maxWidth = maxWidth; |
this.maxWidth = maxWidth; |
444 |
setWidth(getWidth()); |
setWidth(getWidth()); |
445 |
setPreferredWidth(getPreferredWidth()); |
setPreferredWidth(getPreferredWidth()); |
446 |
} // setMaxWidth() |
} |
447 |
|
|
448 |
/** |
/** |
449 |
* getMaxWidth |
* getMaxWidth |
450 |
* @returns int |
* @return int |
451 |
*/ |
*/ |
452 |
public int getMaxWidth() { |
public int getMaxWidth() |
453 |
|
{ |
454 |
return maxWidth; |
return maxWidth; |
455 |
} // getMaxWidth() |
} |
456 |
|
|
457 |
/** |
/** |
458 |
* setResizable |
* setResizable |
459 |
* @param isResizable TODO |
* @param isResizable TODO |
460 |
*/ |
*/ |
461 |
public void setResizable(boolean isResizable) { |
public void setResizable(boolean isResizable) |
462 |
|
{ |
463 |
this.isResizable = isResizable; |
this.isResizable = isResizable; |
464 |
} // setResizable() |
} |
465 |
|
|
466 |
/** |
/** |
467 |
* getResizable |
* getResizable |
468 |
* @returns boolean |
* @return boolean |
469 |
*/ |
*/ |
470 |
public boolean getResizable() { |
public boolean getResizable() |
471 |
|
{ |
472 |
return isResizable; |
return isResizable; |
473 |
} // getResizable() |
} |
474 |
|
|
475 |
/** |
/** |
476 |
* sizeWidthToFit |
* sizeWidthToFit |
477 |
*/ |
*/ |
478 |
public void sizeWidthToFit() { |
public void sizeWidthToFit() |
479 |
|
{ |
480 |
// TODO |
// TODO |
481 |
} // sizeWidthToFit() |
} |
482 |
|
|
483 |
/** |
/** |
484 |
* disableResizedPosting |
* disableResizedPosting |
485 |
*/ |
*/ |
486 |
public void disableResizedPosting() { |
public void disableResizedPosting() |
487 |
|
{ |
488 |
// Does nothing |
// Does nothing |
489 |
} // disableResizedPosting() |
} |
490 |
|
|
491 |
/** |
/** |
492 |
* enableResizedPosting |
* enableResizedPosting |
493 |
*/ |
*/ |
494 |
public void enableResizedPosting() { |
public void enableResizedPosting() |
495 |
|
{ |
496 |
// Does nothing |
// Does nothing |
497 |
} // enableResizedPosting() |
} |
498 |
|
|
499 |
/** |
/** |
500 |
* addPropertyChangeListener |
* addPropertyChangeListener |
501 |
* @param listener TODO |
* @param listener the listener to all |
502 |
*/ |
*/ |
503 |
public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { |
public synchronized void addPropertyChangeListener(PropertyChangeListener listener) |
504 |
|
{ |
505 |
changeSupport.addPropertyChangeListener(listener); |
changeSupport.addPropertyChangeListener(listener); |
506 |
} // addPropertyChangeListener() |
} |
507 |
|
|
508 |
/** |
/** |
509 |
* removePropertyChangeListener |
* removePropertyChangeListener |
510 |
* @param listener TODO |
* @param listener the listener to remove |
511 |
*/ |
*/ |
512 |
public synchronized void removePropertyChangeListener(PropertyChangeListener listener) { |
public synchronized void removePropertyChangeListener(PropertyChangeListener listener) |
513 |
|
{ |
514 |
changeSupport.removePropertyChangeListener(listener); |
changeSupport.removePropertyChangeListener(listener); |
515 |
} // removePropertyChangeListener() |
} |
516 |
|
|
517 |
/** |
/** |
518 |
* createDefaultHeaderRenderer |
* createDefaultHeaderRenderer |
519 |
* @returns TableCellRenderer |
* @return TableCellRenderer |
520 |
*/ |
*/ |
521 |
protected TableCellRenderer createDefaultHeaderRenderer() { |
protected TableCellRenderer createDefaultHeaderRenderer() |
522 |
|
{ |
523 |
return new DefaultTableCellRenderer(); |
return new DefaultTableCellRenderer(); |
524 |
} // createDefaultHeaderRenderer() |
} |
525 |
|
} |
|
|
|
|
} // TableColumn |
|