forked from LupusNobilis/java-org.hwo
TreeTable: SelectionMode, selectedRow
parent
a7056482f3
commit
dba92aaa8b
|
@ -0,0 +1,8 @@
|
|||
package org.hwo.ui;
|
||||
|
||||
public enum SelectionMode {
|
||||
NONE,
|
||||
CELL,
|
||||
ROW,
|
||||
COLUMN
|
||||
}
|
|
@ -30,6 +30,7 @@ import org.hwo.ui.CellEditorListener;
|
|||
import org.hwo.ui.CellRenderer;
|
||||
import org.hwo.ui.DefaultCellEditor;
|
||||
import org.hwo.ui.DefaultCellRenderer;
|
||||
import org.hwo.ui.SelectionMode;
|
||||
import org.hwo.ui.shapes.Triangle;
|
||||
import org.hwo.ui.treetable.DefaultTreeTableColumnModel.Column;
|
||||
|
||||
|
@ -93,6 +94,9 @@ public class TreeTable extends JComponent implements Scrollable, TreeTableModelL
|
|||
|
||||
private CellEditor activeEditor;
|
||||
|
||||
private SelectionMode selectionMode;
|
||||
private int selectedRow;
|
||||
|
||||
|
||||
public TreeTable()
|
||||
{
|
||||
|
@ -160,6 +164,8 @@ public class TreeTable extends JComponent implements Scrollable, TreeTableModelL
|
|||
|
||||
prepareWidth();
|
||||
prepareHeight();
|
||||
|
||||
selectedRow = -1;
|
||||
}
|
||||
|
||||
public Point mouseToCell(int x,int y)
|
||||
|
@ -218,6 +224,10 @@ public class TreeTable extends JComponent implements Scrollable, TreeTableModelL
|
|||
{
|
||||
NodeState state = getState(rowObjects.get(row));
|
||||
setOpened(rowObjects.get(row), !state.opened);
|
||||
} else if (selectionMode == SelectionMode.ROW)
|
||||
{
|
||||
selectedRow = row;
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -286,20 +296,19 @@ public class TreeTable extends JComponent implements Scrollable, TreeTableModelL
|
|||
return new Rectangle(left, top, width, rowHeight);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void paint(Graphics g) {
|
||||
prepareRows();
|
||||
|
||||
g.setColor(getBackground());
|
||||
g.fillRect(0, 0, getWidth(), getHeight());
|
||||
|
||||
for (int i=0;i<rowObjects.size();i++)
|
||||
public void paintRow(Graphics g,int row)
|
||||
{
|
||||
Object ro = rowObjects.get(i);
|
||||
Object ro = rowObjects.get(row);
|
||||
NodeState state = getState(ro);
|
||||
int top = rowHeight * i;
|
||||
int top = rowHeight * row;
|
||||
int bottom = top + rowHeight - 1;
|
||||
|
||||
if (selectedRow == row)
|
||||
{
|
||||
g.setColor(Color.BLUE);
|
||||
g.fillRect(0, top, getColumnModel().getColumnPos(getColumnModel().getColumnCount()) - 1, rowHeight - 1);
|
||||
}
|
||||
|
||||
g.setColor(Color.black);
|
||||
g.drawLine(0, bottom, getWidth(), bottom);
|
||||
|
||||
|
@ -355,13 +364,26 @@ public class TreeTable extends JComponent implements Scrollable, TreeTableModelL
|
|||
Rectangle rectClip = clipRestore.intersection(rect);
|
||||
|
||||
g.setClip(rectClip);
|
||||
renderer.renderCell(g, i, column, rect, value, ro);
|
||||
renderer.renderCell(g, row, column, rect, value, ro);
|
||||
g.setClip(clipRestore);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void paint(Graphics g) {
|
||||
prepareRows();
|
||||
|
||||
g.setColor(getBackground());
|
||||
g.fillRect(0, 0, getWidth(), getHeight());
|
||||
|
||||
for (int i=0;i<rowObjects.size();i++)
|
||||
{
|
||||
paintRow(g, i);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void firePopupRequestedFromMouseEvent(MouseEvent event)
|
||||
|
@ -618,6 +640,22 @@ public class TreeTable extends JComponent implements Scrollable, TreeTableModelL
|
|||
|
||||
}
|
||||
|
||||
public int getSelectedRow() {
|
||||
return selectedRow;
|
||||
}
|
||||
|
||||
public void setSelectedRow(int selectedRow) {
|
||||
this.selectedRow = selectedRow;
|
||||
}
|
||||
|
||||
public SelectionMode getSelectionMode() {
|
||||
return selectionMode;
|
||||
}
|
||||
|
||||
public void setSelectionMode(SelectionMode selectionMode) {
|
||||
this.selectionMode = selectionMode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue