-package org.simantics.modeling.ui.diagram;\r
-\r
-import java.awt.Graphics2D;\r
-import java.awt.Rectangle;\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
-import java.awt.event.FocusEvent;\r
-import java.awt.event.FocusListener;\r
-import java.beans.PropertyChangeEvent;\r
-\r
-import javax.swing.event.TableModelListener;\r
-import javax.swing.table.TableModel;\r
-\r
-import org.simantics.scenegraph.g2d.G2DRenderingHints;\r
-import org.simantics.scenegraph.g2d.nodes.ComponentNode;\r
-import org.simantics.spreadsheet.Cell;\r
-import org.simantics.spreadsheet.Model;\r
-import org.simantics.spreadsheet.ui.Spreadsheet.SpreadsheetModel;\r
-\r
-public class SheetNode extends ComponentNode implements ActionListener, FocusListener {\r
-\r
- private static final long serialVersionUID = -8212264868316567181L;\r
-\r
- private SpreadsheetModel sm;\r
-\r
- class Proxy implements Model, TableModel {\r
-\r
- TableModelListener listener;\r
- Model model;\r
- TableModel tableModel;\r
-\r
- Proxy(Model model, TableModel tableModel) {\r
- this.model = model;\r
- this.tableModel = tableModel;\r
- }\r
-\r
- @Override\r
- public Cell get(int row, int column) {\r
- throw new Error();\r
- }\r
-\r
- @Override\r
- public <T> T getAdapter(Class<?> clazz) {\r
- return model.getAdapter(clazz);\r
- }\r
-\r
- @Override\r
- public void dispose() {\r
- throw new Error();\r
- }\r
-\r
- @Override\r
- public void addTableModelListener(TableModelListener l) {\r
- assert(listener == null);\r
- listener = l;\r
- }\r
-\r
- @Override\r
- public Class<?> getColumnClass(int columnIndex) {\r
- return tableModel.getColumnClass(columnIndex);\r
- }\r
-\r
- @Override\r
- public int getColumnCount() {\r
- return 2;\r
- }\r
-\r
- @Override\r
- public String getColumnName(int columnIndex) {\r
- return "" + columnIndex;\r
- }\r
-\r
- @Override\r
- public int getRowCount() {\r
- return 15;\r
- }\r
-\r
- @Override\r
- public Object getValueAt(int rowIndex, int columnIndex) {\r
- return tableModel.getValueAt(rowIndex, columnIndex);\r
- }\r
-\r
- @Override\r
- public boolean isCellEditable(int rowIndex, int columnIndex) {\r
- return true;\r
- }\r
-\r
- @Override\r
- public void removeTableModelListener(TableModelListener l) {\r
- throw new Error();\r
- }\r
-\r
- @Override\r
- public void setValueAt(Object aValue, int rowIndex, int columnIndex) {\r
- throw new Error();\r
- }\r
-\r
- }\r
-\r
- public void init(Model model, TableModel tableModel) {\r
-\r
- Proxy proxy = new Proxy(model, tableModel);\r
-\r
- sm = new SpreadsheetModel(proxy, proxy, null);\r
- component = sm.createComponent(false);\r
- component.addFocusListener(this);\r
- super.propertyChange(new PropertyChangeEvent(this, "component", null, component));\r
-\r
- }\r
-\r
- protected ActionListener actionListener = null;\r
-\r
- public void setActionListener(ActionListener actionListener) {\r
- this.actionListener = actionListener;\r
- }\r
-\r
- @ServerSide\r
- @Override\r
- public void actionPerformed(ActionEvent e) {\r
- if(actionListener != null)\r
- actionListener.actionPerformed(e);\r
- if(container.getParent() != null)\r
- container.getParent().requestFocusInWindow(); // Loose focus\r
- }\r
-\r
- @Override\r
- @SyncField({"width", "height"})\r
- public void setSize(int width, int height) {\r
- this.width = width;\r
- this.height = height;\r
-// container.setBounds(0, 0, width, height);\r
-// component.setBounds(0, 0, width, height);\r
-// component.validate();\r
-// container.validate();\r
-// System.out.println("table bounds=" + sm.getTable().getBounds());\r
-//\r
- }\r
-\r
- @Override\r
- public void focusGained(FocusEvent arg0) {\r
- }\r
-\r
- @Override\r
- public void focusLost(FocusEvent arg0) {\r
- }\r
-\r
- @Override\r
- public void render(Graphics2D g2d) {\r
- Rectangle bounds = (Rectangle)g2d.getRenderingHint(G2DRenderingHints.KEY_CONTROL_BOUNDS);\r
- width = (int)bounds.getWidth();\r
- height = (int)bounds.getHeight();\r
- super.render(g2d);\r
- }\r
-\r
-}\r
+package org.simantics.modeling.ui.diagram;
+
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.beans.PropertyChangeEvent;
+
+import javax.swing.event.TableModelListener;
+import javax.swing.table.TableModel;
+
+import org.simantics.scenegraph.g2d.G2DRenderingHints;
+import org.simantics.scenegraph.g2d.nodes.ComponentNode;
+import org.simantics.spreadsheet.Cell;
+import org.simantics.spreadsheet.Model;
+import org.simantics.spreadsheet.ui.Spreadsheet.SpreadsheetModel;
+
+public class SheetNode extends ComponentNode implements ActionListener, FocusListener {
+
+ private static final long serialVersionUID = -8212264868316567181L;
+
+ private SpreadsheetModel sm;
+
+ class Proxy implements Model, TableModel {
+
+ TableModelListener listener;
+ Model model;
+ TableModel tableModel;
+
+ Proxy(Model model, TableModel tableModel) {
+ this.model = model;
+ this.tableModel = tableModel;
+ }
+
+ @Override
+ public Cell get(int row, int column) {
+ throw new Error();
+ }
+
+ @Override
+ public <T> T getAdapter(Class<?> clazz) {
+ return model.getAdapter(clazz);
+ }
+
+ @Override
+ public void dispose() {
+ throw new Error();
+ }
+
+ @Override
+ public void addTableModelListener(TableModelListener l) {
+ assert(listener == null);
+ listener = l;
+ }
+
+ @Override
+ public Class<?> getColumnClass(int columnIndex) {
+ return tableModel.getColumnClass(columnIndex);
+ }
+
+ @Override
+ public int getColumnCount() {
+ return 2;
+ }
+
+ @Override
+ public String getColumnName(int columnIndex) {
+ return "" + columnIndex;
+ }
+
+ @Override
+ public int getRowCount() {
+ return 15;
+ }
+
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex) {
+ return tableModel.getValueAt(rowIndex, columnIndex);
+ }
+
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return true;
+ }
+
+ @Override
+ public void removeTableModelListener(TableModelListener l) {
+ throw new Error();
+ }
+
+ @Override
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+ throw new Error();
+ }
+
+ }
+
+ public void init(Model model, TableModel tableModel) {
+
+ Proxy proxy = new Proxy(model, tableModel);
+
+ sm = new SpreadsheetModel(proxy, proxy, null);
+ component = sm.createComponent(false);
+ component.addFocusListener(this);
+ super.propertyChange(new PropertyChangeEvent(this, "component", null, component));
+
+ }
+
+ protected ActionListener actionListener = null;
+
+ public void setActionListener(ActionListener actionListener) {
+ this.actionListener = actionListener;
+ }
+
+ @ServerSide
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if(actionListener != null)
+ actionListener.actionPerformed(e);
+ if(container.getParent() != null)
+ container.getParent().requestFocusInWindow(); // Loose focus
+ }
+
+ @Override
+ @SyncField({"width", "height"})
+ public void setSize(int width, int height) {
+ this.width = width;
+ this.height = height;
+// container.setBounds(0, 0, width, height);
+// component.setBounds(0, 0, width, height);
+// component.validate();
+// container.validate();
+// System.out.println("table bounds=" + sm.getTable().getBounds());
+//
+ }
+
+ @Override
+ public void focusGained(FocusEvent arg0) {
+ }
+
+ @Override
+ public void focusLost(FocusEvent arg0) {
+ }
+
+ @Override
+ public void render(Graphics2D g2d) {
+ Rectangle bounds = (Rectangle)g2d.getRenderingHint(G2DRenderingHints.KEY_CONTROL_BOUNDS);
+ width = (int)bounds.getWidth();
+ height = (int)bounds.getHeight();
+ super.render(g2d);
+ }
+
+}