]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/style/MetricsEditor.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / actions / style / MetricsEditor.java
index 57aeac3129b7ef740c575f570fa14dc3da06f548..ca9ca5fe140bad1b3efbd1c3b3fa5453a8814497 100644 (file)
-package org.simantics.modeling.ui.actions.style;\r
-\r
-import java.awt.BorderLayout;\r
-import java.awt.FlowLayout;\r
-import java.awt.GridLayout;\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import javax.swing.JButton;\r
-import javax.swing.JLabel;\r
-import javax.swing.JPanel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTable;\r
-import javax.swing.JTextField;\r
-import javax.swing.ListSelectionModel;\r
-import javax.swing.event.ListSelectionEvent;\r
-import javax.swing.event.ListSelectionListener;\r
-import javax.swing.event.TableModelEvent;\r
-import javax.swing.event.TableModelListener;\r
-import javax.swing.table.TableModel;\r
-\r
-import org.simantics.utils.strings.format.MetricsFormat;\r
-import org.simantics.utils.strings.format.MetricsFormatList;\r
-import org.simantics.utils.strings.format.MetricsFormatListListener;\r
-\r
-public class MetricsEditor extends JPanel {\r
-\r
-    private static final long serialVersionUID = 3781280603509654789L;\r
-    private JTextField valueTestField;\r
-    private JTextField valuePresentationField;\r
-    private JTextField formatNameField;\r
-    private JTextField formatPatternField;\r
-    //         private JTextField formatScaleField;\r
-\r
-    private MetricsFormat format;\r
-    private MetricsFormatList formatList;\r
-    private double formatValue;\r
-\r
-    private JTable formatTable;\r
-    private MetricsTableModel tableModel;\r
-\r
-    public MetricsEditor() {\r
-        super();\r
-        setLayout(new BorderLayout());\r
-\r
-        JPanel panel = new JPanel();\r
-        panel.setLayout(new BorderLayout());\r
-\r
-        valueTestField = new JTextField();\r
-        valuePresentationField = new JTextField();\r
-        formatNameField = new JTextField();\r
-        formatPatternField = new JTextField();\r
-        //                     formatScaleField = new JTextField();\r
-\r
-        JPanel labelPanel = new JPanel(new GridLayout(0,1));\r
-        JPanel fieldPanel = new JPanel(new GridLayout(0,1));\r
-        panel.add(labelPanel,BorderLayout.WEST);\r
-        panel.add(fieldPanel,BorderLayout.CENTER);\r
-\r
-\r
-        labelPanel.add(new JLabel("Value test:"));\r
-        fieldPanel.add(valueTestField);\r
-        labelPanel.add(new JLabel("Value presentation:"));\r
-        fieldPanel.add(valuePresentationField);\r
-        labelPanel.add(new JLabel("Format name:"));\r
-        fieldPanel.add(formatNameField);\r
-        labelPanel.add(new JLabel("Format pattern:"));\r
-        fieldPanel.add(formatPatternField);\r
-\r
-        add(panel,BorderLayout.NORTH);\r
-        //                     add(new JLabel("Format scale:"));\r
-        //                     add(formatScaleField);\r
-\r
-        JPanel listPanel = new JPanel();\r
-        add(listPanel,BorderLayout.CENTER);\r
-        JTable table = createFormatTable();\r
-        JScrollPane scrollPane = new JScrollPane(table);\r
-        table.setFillsViewportHeight(true);\r
-\r
-        listPanel.add(scrollPane);\r
-\r
-        JPanel controlPanel = new JPanel();\r
-        add(controlPanel,BorderLayout.SOUTH);\r
-        controlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));\r
-\r
-        JButton addTemplateButton = new JButton("Add Format Template");\r
-        addTemplateButton.setToolTipText("Add current format to templates");\r
-        controlPanel.add(addTemplateButton);\r
-        addTemplateButton.addActionListener(new ActionListener() {\r
-\r
-            @Override\r
-            public void actionPerformed(ActionEvent arg0) {\r
-                addTemplate();\r
-            }\r
-        });\r
-\r
-        JButton removeTemplateButton = new JButton("Remove Template");\r
-        removeTemplateButton.setToolTipText("Remove selected template");\r
-        controlPanel.add(removeTemplateButton);\r
-        removeTemplateButton.addActionListener(new ActionListener() {\r
-\r
-            @Override\r
-            public void actionPerformed(ActionEvent arg0) {\r
-                removeTemplate();\r
-            }\r
-        });\r
-\r
-        JButton updateTemplateButton = new JButton("Update Template");\r
-        updateTemplateButton.setToolTipText("Update selected template using current format");\r
-        controlPanel.add(updateTemplateButton);\r
-        updateTemplateButton.addActionListener(new ActionListener() {\r
-\r
-            @Override\r
-            public void actionPerformed(ActionEvent arg0) {\r
-                updateTemplate();\r
-            }\r
-        });\r
-\r
-        JButton newFormatButton = new JButton("New Format");\r
-        newFormatButton.setToolTipText("Create a new Format");\r
-        controlPanel.add(newFormatButton);\r
-        newFormatButton.addActionListener(new ActionListener() {\r
-\r
-            @Override\r
-            public void actionPerformed(ActionEvent arg0) {\r
-                newFormat();\r
-            }\r
-        });\r
-\r
-\r
-        valuePresentationField.setEditable(false);\r
-\r
-        ActionListener l = new ActionListener() {\r
-\r
-            @Override\r
-            public void actionPerformed(ActionEvent e) {\r
-                updateValues();\r
-\r
-            }\r
-        };\r
-\r
-        valueTestField.addActionListener(l);\r
-        formatPatternField.addActionListener(l);\r
-\r
-        valueTestField.setText("123456.789");\r
-        formatPatternField.setText("%s");\r
-\r
-        updateValues();\r
-    }\r
-\r
-    private void addTemplate() {\r
-        MetricsFormat format = createMetricsFormatFromFields();\r
-\r
-        try {\r
-            formatList.addFormat(format);\r
-        } catch (Exception e) {\r
-            // TODO : show error\r
-        }\r
-    }\r
-\r
-    private void updateTemplate() {\r
-        int index = formatTable.getSelectedRow();\r
-        if (index == -1)\r
-            return; // TODO : show error, or even better, disable the button\r
-        MetricsFormat format = createMetricsFormatFromFields();\r
-        try {\r
-            formatList.replaceFormatWith(formatList.getFormats()[index], format);\r
-        } catch (Exception e) {\r
-            // TODO : show error\r
-        }\r
-    }\r
-\r
-    private void removeTemplate() {\r
-        int index = formatTable.getSelectedRow();\r
-        if (index == -1)\r
-            return; // TODO : show error, or even better, disable the button\r
-        try {\r
-            formatList.removeFormat(formatList.getFormats()[index]);\r
-        } catch (Exception e) {\r
-            // TODO : show error\r
-        }\r
-    }\r
-\r
-    public MetricsFormat getFormat() {\r
-        return format;\r
-    }\r
-\r
-    private void newFormat() {\r
-        format = null;\r
-        formatNameField.setText("New format");\r
-        formatPatternField.setText("%s");\r
-        updateValues();\r
-    }\r
-\r
-    private JTable createFormatTable() {\r
-        formatList = MetricsFormatList.getList();\r
-        tableModel = new MetricsTableModel(formatList);\r
-\r
-        formatTable = new JTable(tableModel);\r
-        formatTable.doLayout();\r
-\r
-        formatTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
-\r
-        formatTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {\r
-\r
-            @Override\r
-            public void valueChanged(ListSelectionEvent e) {\r
-                if (e.getValueIsAdjusting())\r
-                    return;\r
-                int index = formatTable.getSelectionModel().getMinSelectionIndex();\r
-                if (index == -1)\r
-                    return;\r
-                setMetricsFormat(formatList.getFormats()[index]);\r
-\r
-            }\r
-        });\r
-        return formatTable;\r
-    }\r
-\r
-    private void updateValues() {\r
-        String value = valueTestField.getText();\r
-        if (value == null || value.length() == 0)\r
-            return;\r
-        Double d = null;\r
-        try {\r
-            d = Double.parseDouble(value);\r
-        } catch (NumberFormatException e) {\r
-            valuePresentationField.setText("Value test is not a number");\r
-            return;\r
-        }\r
-        formatValue = d;\r
-\r
-        MetricsFormat format = null;\r
-        try {\r
-            format = createMetricsFormatFromFields();\r
-        } catch (Exception e) {\r
-            valuePresentationField.setText("Format pattern is not correct " + e.getMessage());\r
-        }\r
-        if (format == null)\r
-            return; // TODO : show error\r
-        setMetricsFormat(format);\r
-        tableModel.setFormatValue(formatValue);\r
-    }\r
-\r
-    private MetricsFormat createMetricsFormatFromFields() {\r
-        if (formatPatternField.getText().length() == 0)\r
-            return null;\r
-        return new MetricsFormat(formatPatternField.getText(),1.0,formatNameField.getText());\r
-    }\r
-\r
-    public void setMetricsFormat(MetricsFormat format) {\r
-        this.format = format;\r
-        try {\r
-            valuePresentationField.setText(format.formatValue(formatValue));\r
-        } catch (Exception e) {\r
-            valuePresentationField.setText("Format error: "  + e.getMessage());\r
-        }\r
-        formatNameField.setText(format.getName());\r
-        formatPatternField.setText(format.getPattern());\r
-    }\r
-\r
-    public void dispose() {\r
-        tableModel.dispose();\r
-    }\r
-\r
-    private class MetricsTableModel implements TableModel, MetricsFormatListListener {\r
-\r
-        private String[] columnNames = {"Name","Format","Value"};\r
-        private MetricsFormatList formatList;\r
-        private double formatValue = 0;\r
-\r
-        public MetricsTableModel(MetricsFormatList formatList) {\r
-            this.formatList = formatList;\r
-            this.formatList.addListener(this);\r
-        }\r
-\r
-        public void setFormatValue(double value) {\r
-            this.formatValue = value;\r
-            fireChanged();\r
-        }\r
-\r
-        @Override\r
-        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {\r
-            // do nothing\r
-        }\r
-\r
-        @Override\r
-        public boolean isCellEditable(int rowIndex, int columnIndex) {\r
-            return false;\r
-        }\r
-\r
-        @Override\r
-        public Object getValueAt(int rowIndex, int columnIndex) {\r
-            MetricsFormat format = formatList.getFormats()[rowIndex];\r
-            if (columnIndex == 0) {\r
-                return format.getName();\r
-            } else if (columnIndex == 1) {\r
-                return format.getPattern();\r
-            } else if (columnIndex == 2) {\r
-                return format.formatValue(formatValue);\r
-            }\r
-            throw new IndexOutOfBoundsException("There is no column " + columnIndex);\r
-        }\r
-\r
-        @Override\r
-        public int getRowCount() {\r
-            return formatList.getFormats().length;\r
-        }\r
-\r
-        @Override\r
-        public String getColumnName(int columnIndex) {\r
-            return columnNames[columnIndex];\r
-        }\r
-\r
-        @Override\r
-        public int getColumnCount() {\r
-            return columnNames.length;\r
-        }\r
-\r
-        @Override\r
-        public Class<?> getColumnClass(int columnIndex) {\r
-            return String.class;\r
-        }\r
-\r
-        private List<TableModelListener> listeners = new ArrayList<TableModelListener>();\r
-\r
-        @Override\r
-        public void addTableModelListener(TableModelListener l) {\r
-            listeners.add(l);\r
-        }\r
-\r
-        @Override\r
-        public void removeTableModelListener(TableModelListener l) {\r
-            listeners.remove(l);\r
-        }\r
-\r
-        @Override\r
-        public void onListChanged(MetricsFormatList sender) {\r
-            fireChanged();\r
-        }\r
-\r
-        private void fireChanged() {\r
-            for (TableModelListener l : listeners) {\r
-                l.tableChanged(new TableModelEvent(this));\r
-            }\r
-        }\r
-\r
-        public void dispose() {\r
-            formatList.removeListener(this);\r
-        }\r
-    }\r
-}\r
+package org.simantics.modeling.ui.actions.style;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.TableModel;
+
+import org.simantics.utils.strings.format.MetricsFormat;
+import org.simantics.utils.strings.format.MetricsFormatList;
+import org.simantics.utils.strings.format.MetricsFormatListListener;
+
+public class MetricsEditor extends JPanel {
+
+    private static final long serialVersionUID = 3781280603509654789L;
+    private JTextField valueTestField;
+    private JTextField valuePresentationField;
+    private JTextField formatNameField;
+    private JTextField formatPatternField;
+    //         private JTextField formatScaleField;
+
+    private MetricsFormat format;
+    private MetricsFormatList formatList;
+    private double formatValue;
+
+    private JTable formatTable;
+    private MetricsTableModel tableModel;
+
+    public MetricsEditor() {
+        super();
+        setLayout(new BorderLayout());
+
+        JPanel panel = new JPanel();
+        panel.setLayout(new BorderLayout());
+
+        valueTestField = new JTextField();
+        valuePresentationField = new JTextField();
+        formatNameField = new JTextField();
+        formatPatternField = new JTextField();
+        //                     formatScaleField = new JTextField();
+
+        JPanel labelPanel = new JPanel(new GridLayout(0,1));
+        JPanel fieldPanel = new JPanel(new GridLayout(0,1));
+        panel.add(labelPanel,BorderLayout.WEST);
+        panel.add(fieldPanel,BorderLayout.CENTER);
+
+
+        labelPanel.add(new JLabel("Value test:"));
+        fieldPanel.add(valueTestField);
+        labelPanel.add(new JLabel("Value presentation:"));
+        fieldPanel.add(valuePresentationField);
+        labelPanel.add(new JLabel("Format name:"));
+        fieldPanel.add(formatNameField);
+        labelPanel.add(new JLabel("Format pattern:"));
+        fieldPanel.add(formatPatternField);
+
+        add(panel,BorderLayout.NORTH);
+        //                     add(new JLabel("Format scale:"));
+        //                     add(formatScaleField);
+
+        JPanel listPanel = new JPanel();
+        add(listPanel,BorderLayout.CENTER);
+        JTable table = createFormatTable();
+        JScrollPane scrollPane = new JScrollPane(table);
+        table.setFillsViewportHeight(true);
+
+        listPanel.add(scrollPane);
+
+        JPanel controlPanel = new JPanel();
+        add(controlPanel,BorderLayout.SOUTH);
+        controlPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
+
+        JButton addTemplateButton = new JButton("Add Format Template");
+        addTemplateButton.setToolTipText("Add current format to templates");
+        controlPanel.add(addTemplateButton);
+        addTemplateButton.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent arg0) {
+                addTemplate();
+            }
+        });
+
+        JButton removeTemplateButton = new JButton("Remove Template");
+        removeTemplateButton.setToolTipText("Remove selected template");
+        controlPanel.add(removeTemplateButton);
+        removeTemplateButton.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent arg0) {
+                removeTemplate();
+            }
+        });
+
+        JButton updateTemplateButton = new JButton("Update Template");
+        updateTemplateButton.setToolTipText("Update selected template using current format");
+        controlPanel.add(updateTemplateButton);
+        updateTemplateButton.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent arg0) {
+                updateTemplate();
+            }
+        });
+
+        JButton newFormatButton = new JButton("New Format");
+        newFormatButton.setToolTipText("Create a new Format");
+        controlPanel.add(newFormatButton);
+        newFormatButton.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent arg0) {
+                newFormat();
+            }
+        });
+
+
+        valuePresentationField.setEditable(false);
+
+        ActionListener l = new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                updateValues();
+
+            }
+        };
+
+        valueTestField.addActionListener(l);
+        formatPatternField.addActionListener(l);
+
+        valueTestField.setText("123456.789");
+        formatPatternField.setText("%s");
+
+        updateValues();
+    }
+
+    private void addTemplate() {
+        MetricsFormat format = createMetricsFormatFromFields();
+
+        try {
+            formatList.addFormat(format);
+        } catch (Exception e) {
+            // TODO : show error
+        }
+    }
+
+    private void updateTemplate() {
+        int index = formatTable.getSelectedRow();
+        if (index == -1)
+            return; // TODO : show error, or even better, disable the button
+        MetricsFormat format = createMetricsFormatFromFields();
+        try {
+            formatList.replaceFormatWith(formatList.getFormats()[index], format);
+        } catch (Exception e) {
+            // TODO : show error
+        }
+    }
+
+    private void removeTemplate() {
+        int index = formatTable.getSelectedRow();
+        if (index == -1)
+            return; // TODO : show error, or even better, disable the button
+        try {
+            formatList.removeFormat(formatList.getFormats()[index]);
+        } catch (Exception e) {
+            // TODO : show error
+        }
+    }
+
+    public MetricsFormat getFormat() {
+        return format;
+    }
+
+    private void newFormat() {
+        format = null;
+        formatNameField.setText("New format");
+        formatPatternField.setText("%s");
+        updateValues();
+    }
+
+    private JTable createFormatTable() {
+        formatList = MetricsFormatList.getList();
+        tableModel = new MetricsTableModel(formatList);
+
+        formatTable = new JTable(tableModel);
+        formatTable.doLayout();
+
+        formatTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+
+        formatTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+
+            @Override
+            public void valueChanged(ListSelectionEvent e) {
+                if (e.getValueIsAdjusting())
+                    return;
+                int index = formatTable.getSelectionModel().getMinSelectionIndex();
+                if (index == -1)
+                    return;
+                setMetricsFormat(formatList.getFormats()[index]);
+
+            }
+        });
+        return formatTable;
+    }
+
+    private void updateValues() {
+        String value = valueTestField.getText();
+        if (value == null || value.length() == 0)
+            return;
+        Double d = null;
+        try {
+            d = Double.parseDouble(value);
+        } catch (NumberFormatException e) {
+            valuePresentationField.setText("Value test is not a number");
+            return;
+        }
+        formatValue = d;
+
+        MetricsFormat format = null;
+        try {
+            format = createMetricsFormatFromFields();
+        } catch (Exception e) {
+            valuePresentationField.setText("Format pattern is not correct " + e.getMessage());
+        }
+        if (format == null)
+            return; // TODO : show error
+        setMetricsFormat(format);
+        tableModel.setFormatValue(formatValue);
+    }
+
+    private MetricsFormat createMetricsFormatFromFields() {
+        if (formatPatternField.getText().length() == 0)
+            return null;
+        return new MetricsFormat(formatPatternField.getText(),1.0,formatNameField.getText());
+    }
+
+    public void setMetricsFormat(MetricsFormat format) {
+        this.format = format;
+        try {
+            valuePresentationField.setText(format.formatValue(formatValue));
+        } catch (Exception e) {
+            valuePresentationField.setText("Format error: "  + e.getMessage());
+        }
+        formatNameField.setText(format.getName());
+        formatPatternField.setText(format.getPattern());
+    }
+
+    public void dispose() {
+        tableModel.dispose();
+    }
+
+    private class MetricsTableModel implements TableModel, MetricsFormatListListener {
+
+        private String[] columnNames = {"Name","Format","Value"};
+        private MetricsFormatList formatList;
+        private double formatValue = 0;
+
+        public MetricsTableModel(MetricsFormatList formatList) {
+            this.formatList = formatList;
+            this.formatList.addListener(this);
+        }
+
+        public void setFormatValue(double value) {
+            this.formatValue = value;
+            fireChanged();
+        }
+
+        @Override
+        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+            // do nothing
+        }
+
+        @Override
+        public boolean isCellEditable(int rowIndex, int columnIndex) {
+            return false;
+        }
+
+        @Override
+        public Object getValueAt(int rowIndex, int columnIndex) {
+            MetricsFormat format = formatList.getFormats()[rowIndex];
+            if (columnIndex == 0) {
+                return format.getName();
+            } else if (columnIndex == 1) {
+                return format.getPattern();
+            } else if (columnIndex == 2) {
+                return format.formatValue(formatValue);
+            }
+            throw new IndexOutOfBoundsException("There is no column " + columnIndex);
+        }
+
+        @Override
+        public int getRowCount() {
+            return formatList.getFormats().length;
+        }
+
+        @Override
+        public String getColumnName(int columnIndex) {
+            return columnNames[columnIndex];
+        }
+
+        @Override
+        public int getColumnCount() {
+            return columnNames.length;
+        }
+
+        @Override
+        public Class<?> getColumnClass(int columnIndex) {
+            return String.class;
+        }
+
+        private List<TableModelListener> listeners = new ArrayList<TableModelListener>();
+
+        @Override
+        public void addTableModelListener(TableModelListener l) {
+            listeners.add(l);
+        }
+
+        @Override
+        public void removeTableModelListener(TableModelListener l) {
+            listeners.remove(l);
+        }
+
+        @Override
+        public void onListChanged(MetricsFormatList sender) {
+            fireChanged();
+        }
+
+        private void fireChanged() {
+            for (TableModelListener l : listeners) {
+                l.tableChanged(new TableModelEvent(this));
+            }
+        }
+
+        public void dispose() {
+            formatList.removeListener(this);
+        }
+    }
+}