]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scenegraph.swing/src/org/simantics/scenegraph/swing/JTableSG.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.scenegraph.swing / src / org / simantics / scenegraph / swing / JTableSG.java
1 package org.simantics.scenegraph.swing;
2
3 import java.awt.AWTEvent;
4 import java.awt.Point;
5 import java.awt.event.MouseEvent;
6
7 import javax.swing.JComponent;
8 import javax.swing.JTable;
9 import javax.swing.table.JTableHeader;
10 import javax.swing.table.TableColumnModel;
11 import javax.swing.table.TableModel;
12
13 import org.simantics.scenegraph.INode;
14
15 public class JTableSG extends JTable implements JComponentSG {
16
17         private static final long serialVersionUID = -8307824148871305452L;
18         
19         final private INode node;
20         
21         public JTableSG(TableModel model, INode node) {
22                 super(model);
23                 this.node = node;
24         }
25
26         @Override
27         public boolean contains(int eventX, int eventY) {
28                 return JComponentUtils.contains(eventX, eventY, this, node);
29         }
30         
31         @Override
32         public boolean containsTransformed(Point p) {
33                 return super.contains(p.x, p.y);
34         }
35         
36         @Override
37         public JComponent getComponent() {
38                 return this;
39         }
40         
41         @Override
42         protected void processEvent(AWTEvent e) {
43                 super.processEvent(JComponentUtils.relocate(e, this, node));
44         }
45         
46         private boolean isDragging = false;
47         
48         protected void mouseDragFinished() {
49                 
50         }
51         
52         @Override
53     protected JTableHeader createDefaultTableHeader() {
54         
55         class TableHeaderSG extends JTableHeader implements JComponentSG {
56
57                 private static final long serialVersionUID = 209426441282352819L;
58
59                 TableHeaderSG(TableColumnModel model) {
60                         super(model);
61                 }
62
63                 @Override
64                 public boolean contains(int eventX, int eventY) {
65                         return JComponentUtils.contains(eventX, eventY, this, node);
66                 }
67                 
68                 @Override
69                 public boolean containsTransformed(Point p) {
70                         return super.contains(p.x, p.y);
71                 }
72                 
73                 @Override
74                 public JComponent getComponent() {
75                         return this;
76                 }
77                 
78                 @Override
79                 protected void processEvent(AWTEvent e) {
80                         super.processEvent(JComponentUtils.relocate(e, this, node));
81                 }
82                 
83                 @Override
84                 protected void processMouseMotionEvent(MouseEvent e) {
85                 int id = e.getID();
86                 switch(id) {
87                   case MouseEvent.MOUSE_DRAGGED:
88                           isDragging = true;
89                       break;
90                 }
91                         super.processMouseMotionEvent(e);
92                 }
93                 
94                 @Override
95                 protected void processMouseEvent(MouseEvent e) {
96                 int id = e.getID();
97                 switch(id) {
98                   case MouseEvent.MOUSE_RELEASED:
99                           if(isDragging) mouseDragFinished();
100                           isDragging = false;
101                       break;
102                 }
103                         super.processMouseEvent(e);
104                 }
105                 
106         }
107         
108         return new TableHeaderSG(columnModel);
109         
110     }
111         
112 }