1 package org.simantics.scenegraph.swing;
\r
3 import java.awt.AWTEvent;
\r
4 import java.awt.Point;
\r
5 import java.awt.event.MouseEvent;
\r
7 import javax.swing.JComponent;
\r
8 import javax.swing.JTable;
\r
9 import javax.swing.table.JTableHeader;
\r
10 import javax.swing.table.TableColumnModel;
\r
11 import javax.swing.table.TableModel;
\r
13 import org.simantics.scenegraph.INode;
\r
15 public class JTableSG extends JTable implements JComponentSG {
\r
17 private static final long serialVersionUID = -8307824148871305452L;
\r
19 final private INode node;
\r
21 public JTableSG(TableModel model, INode node) {
\r
27 public boolean contains(int eventX, int eventY) {
\r
28 return JComponentUtils.contains(eventX, eventY, this, node);
\r
32 public boolean containsTransformed(Point p) {
\r
33 return super.contains(p.x, p.y);
\r
37 public JComponent getComponent() {
\r
42 protected void processEvent(AWTEvent e) {
\r
43 super.processEvent(JComponentUtils.relocate(e, this, node));
\r
46 private boolean isDragging = false;
\r
48 protected void mouseDragFinished() {
\r
53 protected JTableHeader createDefaultTableHeader() {
\r
55 class TableHeaderSG extends JTableHeader implements JComponentSG {
\r
57 private static final long serialVersionUID = 209426441282352819L;
\r
59 TableHeaderSG(TableColumnModel model) {
\r
64 public boolean contains(int eventX, int eventY) {
\r
65 return JComponentUtils.contains(eventX, eventY, this, node);
\r
69 public boolean containsTransformed(Point p) {
\r
70 return super.contains(p.x, p.y);
\r
74 public JComponent getComponent() {
\r
79 protected void processEvent(AWTEvent e) {
\r
80 super.processEvent(JComponentUtils.relocate(e, this, node));
\r
84 protected void processMouseMotionEvent(MouseEvent e) {
\r
87 case MouseEvent.MOUSE_DRAGGED:
\r
91 super.processMouseMotionEvent(e);
\r
95 protected void processMouseEvent(MouseEvent e) {
\r
98 case MouseEvent.MOUSE_RELEASED:
\r
99 if(isDragging) mouseDragFinished();
\r
100 isDragging = false;
\r
103 super.processMouseEvent(e);
\r
108 return new TableHeaderSG(columnModel);
\r