949 |
if (ev.getPropertyName().equals("preferredWidth")) |
if (ev.getPropertyName().equals("preferredWidth")) |
950 |
{ |
{ |
951 |
JTableHeader header = getTableHeader(); |
JTableHeader header = getTableHeader(); |
952 |
TableColumn col = (TableColumn) ev.getSource(); |
if (header != null) |
953 |
header.setResizingColumn(col); |
{ |
954 |
doLayout(); |
TableColumn col = (TableColumn) ev.getSource(); |
955 |
header.setResizingColumn(null); |
header.setResizingColumn(col); |
956 |
|
doLayout(); |
957 |
|
header.setResizingColumn(null); |
958 |
|
} |
959 |
} |
} |
960 |
} |
} |
961 |
} |
} |
1766 |
if ((event.getFirstRow() ==TableModelEvent.HEADER_ROW) |
if ((event.getFirstRow() ==TableModelEvent.HEADER_ROW) |
1767 |
&& autoCreateColumnsFromModel) |
&& autoCreateColumnsFromModel) |
1768 |
|
|
1769 |
createDefaultColumnsFromModel(); |
createDefaultColumnsFromModel(); |
1770 |
|
|
1771 |
// If the structure changes, we need to revalidate, since that might |
// If the structure changes, we need to revalidate, since that might |
1772 |
// affect the size parameters of the JTable. Otherwise we only need |
// affect the size parameters of the JTable. Otherwise we only need |
1773 |
// to perform a repaint to update the view. |
// to perform a repaint to update the view. |
1774 |
if (event.getType() == TableModelEvent.INSERT |
if (event.getType() == TableModelEvent.INSERT) |
|
|| event.getType() == TableModelEvent.DELETE) |
|
1775 |
revalidate(); |
revalidate(); |
1776 |
|
else if (event.getType() == TableModelEvent.DELETE) |
1777 |
|
{ |
1778 |
|
if (dataModel.getRowCount() == 0) |
1779 |
|
clearSelection(); |
1780 |
|
revalidate(); |
1781 |
|
} |
1782 |
repaint(); |
repaint(); |
1783 |
} |
} |
1784 |
|
|
1799 |
{ |
{ |
1800 |
if (point != null) |
if (point != null) |
1801 |
{ |
{ |
|
int x0 = getLocation().x; |
|
1802 |
int ncols = getColumnCount(); |
int ncols = getColumnCount(); |
1803 |
Dimension gap = getIntercellSpacing(); |
Dimension gap = getIntercellSpacing(); |
1804 |
TableColumnModel cols = getColumnModel(); |
TableColumnModel cols = getColumnModel(); |
1828 |
{ |
{ |
1829 |
if (point != null) |
if (point != null) |
1830 |
{ |
{ |
|
int y0 = getLocation().y; |
|
1831 |
int nrows = getRowCount(); |
int nrows = getRowCount(); |
1832 |
int height = getRowHeight(); |
int height = getRowHeight(); |
1833 |
int y = point.y; |
int y = point.y; |
1896 |
* @return The current value of the selectedRow property |
* @return The current value of the selectedRow property |
1897 |
*/ |
*/ |
1898 |
public int getSelectedRow () |
public int getSelectedRow () |
1899 |
{ |
{ |
1900 |
return selectionModel.getMinSelectionIndex(); |
return selectionModel.getMinSelectionIndex(); |
1901 |
} |
} |
1902 |
|
|
1985 |
} |
} |
1986 |
} |
} |
1987 |
|
|
|
|
|
|
|
|
1988 |
public TableCellRenderer getCellRenderer(int row, int column) |
public TableCellRenderer getCellRenderer(int row, int column) |
1989 |
{ |
{ |
1990 |
TableCellRenderer renderer = |
TableCellRenderer renderer = |
1991 |
columnModel.getColumn(column).getCellRenderer(); |
columnModel.getColumn(column).getCellRenderer(); |
|
|
|
1992 |
if (renderer == null) |
if (renderer == null) |
1993 |
renderer = getDefaultRenderer(dataModel.getColumnClass(column)); |
renderer = getDefaultRenderer(getColumnClass(column)); |
1994 |
|
|
1995 |
return renderer; |
return renderer; |
1996 |
} |
} |
1997 |
|
|
2037 |
int row, |
int row, |
2038 |
int column) |
int column) |
2039 |
{ |
{ |
2040 |
boolean rsa = getRowSelectionAllowed(); |
|
2041 |
boolean csa = getColumnSelectionAllowed(); |
boolean rowSelAllowed = getRowSelectionAllowed(); |
2042 |
boolean rs = rsa ? getSelectionModel().isSelectedIndex(row) : false; |
boolean colSelAllowed = getColumnSelectionAllowed(); |
2043 |
boolean cs = csa ? columnModel.getSelectionModel().isSelectedIndex(column) : false; |
boolean isSel = false; |
2044 |
boolean isSelected = ((rsa && csa && rs && cs) |
if (rowSelAllowed && colSelAllowed || !rowSelAllowed && !colSelAllowed) |
2045 |
|| (rsa && !csa && rs) |
isSel = isCellSelected(row, column); |
2046 |
|| (!rsa && csa && cs)); |
else |
2047 |
|
isSel = isRowSelected(row) && getRowSelectionAllowed() |
2048 |
|
|| isColumnSelected(column) && getColumnSelectionAllowed(); |
2049 |
|
|
2050 |
|
// Determine the focused cell. The focused cell is the cell at the |
2051 |
|
// leadSelectionIndices of the row and column selection model. |
2052 |
|
ListSelectionModel rowSel = getSelectionModel(); |
2053 |
|
ListSelectionModel colSel = getColumnModel().getSelectionModel(); |
2054 |
|
boolean hasFocus = hasFocus() && isEnabled() |
2055 |
|
&& rowSel.getLeadSelectionIndex() == row |
2056 |
|
&& colSel.getLeadSelectionIndex() == column; |
2057 |
|
|
2058 |
return renderer.getTableCellRendererComponent(this, |
return renderer.getTableCellRendererComponent(this, |
2059 |
dataModel.getValueAt(row, |
dataModel.getValueAt(row, |
2060 |
convertColumnIndexToModel(column)), |
convertColumnIndexToModel(column)), |
2061 |
isSelected, |
isSel, |
2062 |
false, // hasFocus |
hasFocus, |
2063 |
row, column); |
row, column); |
2064 |
} |
} |
2065 |
|
|
2225 |
int lo = lsm.getMinSelectionIndex(); |
int lo = lsm.getMinSelectionIndex(); |
2226 |
int hi = lsm.getMaxSelectionIndex(); |
int hi = lsm.getMaxSelectionIndex(); |
2227 |
int j = 0; |
int j = 0; |
|
java.util.ArrayList ls = new java.util.ArrayList(); |
|
2228 |
if (lo != -1 && hi != -1) |
if (lo != -1 && hi != -1) |
2229 |
{ |
{ |
2230 |
switch (lsm.getSelectionMode()) |
switch (lsm.getSelectionMode()) |
2980 |
|
|
2981 |
public Class<?> getColumnClass(int column) |
public Class<?> getColumnClass(int column) |
2982 |
{ |
{ |
2983 |
return dataModel.getColumnClass(column); |
return getModel().getColumnClass(column); |
2984 |
} |
} |
2985 |
|
|
2986 |
public String getColumnName(int column) |
public String getColumnName(int column) |