]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagram/renaming/ComponentsRenamingDialog.java
Externalize strings
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / diagram / renaming / ComponentsRenamingDialog.java
index 2af483185079ad8be63143c1a39aab49b5f0abf1..6e611922a97a3bda09219d54d954ffaa71da8f8a 100644 (file)
-package org.simantics.modeling.ui.diagram.renaming;\r
-\r
-import java.util.HashSet;\r
-import java.util.Set;\r
-\r
-import org.eclipse.jface.dialogs.Dialog;\r
-import org.eclipse.jface.layout.GridDataFactory;\r
-import org.eclipse.jface.layout.GridLayoutFactory;\r
-import org.eclipse.jface.viewers.ArrayContentProvider;\r
-import org.eclipse.jface.viewers.CheckStateChangedEvent;\r
-import org.eclipse.jface.viewers.CheckboxTableViewer;\r
-import org.eclipse.jface.viewers.ColumnLabelProvider;\r
-import org.eclipse.jface.viewers.ICheckStateListener;\r
-import org.eclipse.jface.viewers.ICheckStateProvider;\r
-import org.eclipse.jface.viewers.StructuredSelection;\r
-import org.eclipse.jface.viewers.TableViewerColumn;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.ModifyEvent;\r
-import org.eclipse.swt.events.ModifyListener;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
-import org.eclipse.swt.layout.GridData;\r
-import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.layout.RowLayout;\r
-import org.eclipse.swt.widgets.Button;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.simantics.utils.ui.ISelectionUtils;\r
-\r
-public class ComponentsRenamingDialog extends Dialog {\r
-\r
-    ComponentsRenamingModel model;\r
-\r
-    // UI\r
-    Composite area;\r
-    Label oldNamePrefixLabel;\r
-    Text oldNamePrefix;\r
-    Text newNamePrefix;\r
-    Label errorLabel;\r
-    Text error;\r
-    CheckboxTableViewer tableViewer;\r
-\r
-    public ComponentsRenamingDialog(Shell parentShell, ComponentsRenamingModel model) {\r
-        super(parentShell);\r
-        this.model = model;\r
-        setShellStyle(SWT.RESIZE | SWT.TITLE);\r
-    }\r
-    \r
-    @Override\r
-    protected Control createDialogArea(Composite parent) {\r
-        getShell().setText("Rename diagram contents");\r
-        getShell().setLayout(new GridLayout());\r
-        Composite composite = new Composite(parent, SWT.NONE);\r
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));\r
-        GridLayoutFactory.fillDefaults().numColumns(1).applyTo(composite);\r
-        \r
-        // Name prefix\r
-        \r
-        {\r
-            area = new Composite(composite, SWT.BORDER);\r
-            GridDataFactory.fillDefaults().grab(true, false).applyTo(area);\r
-            GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).applyTo(area);\r
-            \r
-            oldNamePrefixLabel = new Label(area, SWT.NONE);\r
-            oldNamePrefixLabel.setText("Old name prefix:");\r
-            \r
-            oldNamePrefix = new Text(area, SWT.READ_ONLY | SWT.BORDER);\r
-            oldNamePrefix.setEditable(false);\r
-            oldNamePrefix.setText(model.oldNamePrefix);\r
-            GridDataFactory.fillDefaults().grab(true, false).applyTo(oldNamePrefix);\r
-            \r
-            Label newNamePrefixLabel = new Label(area, SWT.NONE);\r
-            newNamePrefixLabel.setText("&New name prefix:");\r
-            \r
-            newNamePrefix = new Text(area, SWT.BORDER);\r
-            newNamePrefix.setText(model.oldNamePrefix);\r
-            newNamePrefix.setSelection(model.oldNamePrefix.length());\r
-            GridDataFactory.fillDefaults().grab(true, false).applyTo(newNamePrefix);\r
-            \r
-            newNamePrefix.addModifyListener(new ModifyListener() {\r
-\r
-                @Override\r
-                public void modifyText(ModifyEvent e) {\r
-                    String text = newNamePrefix.getText();\r
-                    if (model.prefixValidator != null) {\r
-                        String err = model.prefixValidator.apply(text);\r
-                        if (err != null) {\r
-                            if (error == null) {\r
-                                errorLabel = new Label(area, 0);\r
-                                errorLabel.moveBelow(newNamePrefix);\r
-                                GridDataFactory.fillDefaults().grab(false, false).applyTo(errorLabel);\r
-                                error = new Text(area, SWT.MULTI | SWT.WRAP | SWT.READ_ONLY);\r
-                                error.moveBelow(errorLabel);\r
-                                GridDataFactory.fillDefaults().grab(true, false).applyTo(error);\r
-                                error.setForeground(error.getDisplay().getSystemColor(SWT.COLOR_RED));\r
-                            }\r
-                            error.setText(err);\r
-                            area.getParent().layout();\r
-                            getButton(OK).setEnabled(false);\r
-                            return;\r
-                        }\r
-                        if (error != null) {\r
-                            errorLabel.dispose();\r
-                            errorLabel = null;\r
-                            error.dispose();\r
-                            error = null;\r
-                            area.getParent().layout();\r
-                            getButton(OK).setEnabled(true);\r
-                        }\r
-                    }\r
-\r
-                    model.newNamePrefix = text;\r
-                    model.computeNewNames();\r
-                    refresh();\r
-                }\r
-            });\r
-        }\r
-        \r
-        // Reset\r
-        \r
-        final Button resetNames = new Button(composite, SWT.CHECK);\r
-        resetNames.setText("&Reset names");\r
-        resetNames.addSelectionListener(new SelectionAdapter() {\r
-            @Override\r
-            public void widgetSelected(SelectionEvent e) {\r
-                model.reset = resetNames.getSelection();\r
-                model.computeNewNames();\r
-                refresh();\r
-            }\r
-        });\r
-        \r
-        // Name table\r
-        \r
-        tableViewer = CheckboxTableViewer.newCheckList(composite,\r
-                SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);\r
-\r
-        tableViewer.getTable().setHeaderVisible(true);\r
-        GridDataFactory.fillDefaults().grab(true, true).applyTo(tableViewer.getTable());\r
-        \r
-        tableViewer.setContentProvider(ArrayContentProvider.getInstance());\r
-        tableViewer.setCheckStateProvider(new ICheckStateProvider() {\r
-            @Override\r
-            public boolean isGrayed(Object element) {\r
-                return false;\r
-            }\r
-            @Override\r
-            public boolean isChecked(Object element) {\r
-                return model.selectedEntries.contains(element);\r
-            }\r
-        });\r
-        \r
-        TableViewerColumn oldNameColumn = new TableViewerColumn(tableViewer, SWT.NONE);\r
-        oldNameColumn.getColumn().setText("Old name");\r
-        oldNameColumn.getColumn().setWidth(250);\r
-        oldNameColumn.setLabelProvider(new ColumnLabelProvider() {\r
-            @Override\r
-            public String getText(Object element) {\r
-                NameEntry entry = (NameEntry)element;\r
-                return entry.oldName;\r
-            }\r
-        });\r
-        \r
-        TableViewerColumn newNameColumn = new TableViewerColumn(tableViewer, SWT.NONE);\r
-        newNameColumn.getColumn().setText("New name");\r
-        newNameColumn.getColumn().setWidth(250);\r
-        newNameColumn.setLabelProvider(new ColumnLabelProvider() {\r
-            @Override\r
-            public String getText(Object element) {\r
-                NameEntry entry = (NameEntry)element;\r
-                return entry.newName;\r
-            }\r
-        });\r
-        tableViewer.addCheckStateListener(new ICheckStateListener() {\r
-            void addOrRemoveSelection(NameEntry entry, boolean add) {\r
-                if (add)\r
-                    model.selectedEntries.add(entry);\r
-                else\r
-                    model.selectedEntries.remove(entry);\r
-            }\r
-            @Override\r
-            public void checkStateChanged(CheckStateChangedEvent event) {\r
-                final boolean checked = event.getChecked();\r
-                NameEntry checkedNode = (NameEntry) event.getElement();\r
-\r
-                Set<NameEntry> entries = new HashSet<NameEntry>();\r
-                Set<NameEntry> selection = ISelectionUtils.filterSetSelection(tableViewer.getSelection(), NameEntry.class);\r
-                if (selection.contains(checkedNode))\r
-                    entries.addAll(selection);\r
-                else\r
-                    tableViewer.setSelection(StructuredSelection.EMPTY);\r
-                entries.add(checkedNode);\r
-\r
-                for (NameEntry entry : entries) {\r
-                    addOrRemoveSelection(entry, checked);\r
-                }\r
-\r
-                tableViewer.refresh();\r
-            }\r
-        });\r
-        tableViewer.setInput(model.entries.toArray());\r
-        newNamePrefix.setFocus();\r
-\r
-        // Select All/None button bar\r
-        Composite bar = new Composite(composite, SWT.NONE);\r
-        GridDataFactory.fillDefaults().grab(true, false).span(3, 1).applyTo(bar);\r
-        bar.setLayout(new RowLayout());\r
-        Button selectAll = new Button(bar, SWT.PUSH);\r
-        selectAll.setText("Select &All");\r
-        selectAll.addSelectionListener(new SelectionAdapter() {\r
-            @Override\r
-            public void widgetSelected(SelectionEvent e) {\r
-                model.selectedEntries.addAll(model.entries);\r
-                tableViewer.setAllChecked(true);\r
-            }\r
-        });\r
-        Button clearSelection = new Button(bar, SWT.PUSH);\r
-        clearSelection.setText("&Clear Selection");\r
-        clearSelection.addSelectionListener(new SelectionAdapter() {\r
-            @Override\r
-            public void widgetSelected(SelectionEvent e) {\r
-                model.selectedEntries.clear();\r
-                tableViewer.setAllChecked(false);\r
-            }\r
-        });\r
-\r
-        return composite;\r
-    }\r
-    \r
-    public void refresh() {\r
-        tableViewer.refresh();\r
-    }\r
-    \r
-    public static void main(String[] args) {\r
-        final Display display = new Display();\r
-        Shell shell = new Shell(display);\r
-        shell.open();\r
-        \r
-        ComponentsRenamingModel model = new ComponentsRenamingModel();\r
-        model.oldNamePrefix = "FOO";\r
-        model.newNamePrefix = "FOO";\r
-        for(int i=0;i<100;++i)\r
-            model.entries.add(new NameEntry(null, "FOO"+(i*5), "FOO"+(i*5), "PREFIX"));\r
-        \r
-        ComponentsRenamingDialog dialog = new ComponentsRenamingDialog(shell, model);\r
-        dialog.open();\r
-        \r
-        while (!shell.isDisposed()) {\r
-            if (!display.readAndDispatch())\r
-                display.sleep();\r
-        }\r
-        display.dispose();\r
-    }\r
-\r
-}\r
+package org.simantics.modeling.ui.diagram.renaming;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ICheckStateProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.simantics.utils.ui.ISelectionUtils;
+
+public class ComponentsRenamingDialog extends Dialog {
+
+    ComponentsRenamingModel model;
+
+    // UI
+    Composite area;
+    Label oldNamePrefixLabel;
+    Text oldNamePrefix;
+    Text newNamePrefix;
+    Label errorLabel;
+    Text error;
+    CheckboxTableViewer tableViewer;
+
+    public ComponentsRenamingDialog(Shell parentShell, ComponentsRenamingModel model) {
+        super(parentShell);
+        this.model = model;
+        setShellStyle(SWT.RESIZE | SWT.TITLE);
+    }
+    
+    @Override
+    protected Control createDialogArea(Composite parent) {
+        getShell().setText(Messages.ComponentsRenamingDialog_RenameDiagramContents);
+        getShell().setLayout(new GridLayout());
+        Composite composite = new Composite(parent, SWT.NONE);
+        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+        GridLayoutFactory.fillDefaults().numColumns(1).applyTo(composite);
+        
+        // Name prefix
+        
+        {
+            area = new Composite(composite, SWT.BORDER);
+            GridDataFactory.fillDefaults().grab(true, false).applyTo(area);
+            GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).applyTo(area);
+            
+            oldNamePrefixLabel = new Label(area, SWT.NONE);
+            oldNamePrefixLabel.setText(Messages.ComponentsRenamingDialog_OldNamePrefix);
+            
+            oldNamePrefix = new Text(area, SWT.READ_ONLY | SWT.BORDER);
+            oldNamePrefix.setEditable(false);
+            oldNamePrefix.setText(model.oldNamePrefix);
+            GridDataFactory.fillDefaults().grab(true, false).applyTo(oldNamePrefix);
+            
+            Label newNamePrefixLabel = new Label(area, SWT.NONE);
+            newNamePrefixLabel.setText(Messages.ComponentsRenamingDialog_NewNamePrefixAnd);
+            
+            newNamePrefix = new Text(area, SWT.BORDER);
+            newNamePrefix.setText(model.oldNamePrefix);
+            newNamePrefix.setSelection(model.oldNamePrefix.length());
+            GridDataFactory.fillDefaults().grab(true, false).applyTo(newNamePrefix);
+            
+            newNamePrefix.addModifyListener(new ModifyListener() {
+
+                @Override
+                public void modifyText(ModifyEvent e) {
+                    String text = newNamePrefix.getText();
+                    if (model.prefixValidator != null) {
+                        String err = model.prefixValidator.apply(text);
+                        if (err != null) {
+                            if (error == null) {
+                                errorLabel = new Label(area, 0);
+                                errorLabel.moveBelow(newNamePrefix);
+                                GridDataFactory.fillDefaults().grab(false, false).applyTo(errorLabel);
+                                error = new Text(area, SWT.MULTI | SWT.WRAP | SWT.READ_ONLY);
+                                error.moveBelow(errorLabel);
+                                GridDataFactory.fillDefaults().grab(true, false).applyTo(error);
+                                error.setForeground(error.getDisplay().getSystemColor(SWT.COLOR_RED));
+                            }
+                            error.setText(err);
+                            area.getParent().layout();
+                            getButton(OK).setEnabled(false);
+                            return;
+                        }
+                        if (error != null) {
+                            errorLabel.dispose();
+                            errorLabel = null;
+                            error.dispose();
+                            error = null;
+                            area.getParent().layout();
+                            getButton(OK).setEnabled(true);
+                        }
+                    }
+
+                    model.newNamePrefix = text;
+                    model.computeNewNames();
+                    refresh();
+                }
+            });
+        }
+        
+        // Reset
+        
+        final Button resetNames = new Button(composite, SWT.CHECK);
+        resetNames.setText(Messages.ComponentsRenamingDialog_ResetNamesAnd);
+        resetNames.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                model.reset = resetNames.getSelection();
+                model.computeNewNames();
+                refresh();
+            }
+        });
+        
+        // Name table
+        
+        tableViewer = CheckboxTableViewer.newCheckList(composite,
+                SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+
+        tableViewer.getTable().setHeaderVisible(true);
+        GridDataFactory.fillDefaults().grab(true, true).applyTo(tableViewer.getTable());
+        
+        tableViewer.setContentProvider(ArrayContentProvider.getInstance());
+        tableViewer.setCheckStateProvider(new ICheckStateProvider() {
+            @Override
+            public boolean isGrayed(Object element) {
+                return false;
+            }
+            @Override
+            public boolean isChecked(Object element) {
+                return model.selectedEntries.contains(element);
+            }
+        });
+        
+        TableViewerColumn oldNameColumn = new TableViewerColumn(tableViewer, SWT.NONE);
+        oldNameColumn.getColumn().setText(Messages.ComponentsRenamingDialog_OldName);
+        oldNameColumn.getColumn().setWidth(250);
+        oldNameColumn.setLabelProvider(new ColumnLabelProvider() {
+            @Override
+            public String getText(Object element) {
+                NameEntry entry = (NameEntry)element;
+                return entry.oldName;
+            }
+        });
+        
+        TableViewerColumn newNameColumn = new TableViewerColumn(tableViewer, SWT.NONE);
+        newNameColumn.getColumn().setText(Messages.ComponentsRenamingDialog_NewName);
+        newNameColumn.getColumn().setWidth(250);
+        newNameColumn.setLabelProvider(new ColumnLabelProvider() {
+            @Override
+            public String getText(Object element) {
+                NameEntry entry = (NameEntry)element;
+                return entry.newName;
+            }
+        });
+        tableViewer.addCheckStateListener(new ICheckStateListener() {
+            void addOrRemoveSelection(NameEntry entry, boolean add) {
+                if (add)
+                    model.selectedEntries.add(entry);
+                else
+                    model.selectedEntries.remove(entry);
+            }
+            @Override
+            public void checkStateChanged(CheckStateChangedEvent event) {
+                final boolean checked = event.getChecked();
+                NameEntry checkedNode = (NameEntry) event.getElement();
+
+                Set<NameEntry> entries = new HashSet<NameEntry>();
+                Set<NameEntry> selection = ISelectionUtils.filterSetSelection(tableViewer.getSelection(), NameEntry.class);
+                if (selection.contains(checkedNode))
+                    entries.addAll(selection);
+                else
+                    tableViewer.setSelection(StructuredSelection.EMPTY);
+                entries.add(checkedNode);
+
+                for (NameEntry entry : entries) {
+                    addOrRemoveSelection(entry, checked);
+                }
+
+                tableViewer.refresh();
+            }
+        });
+        tableViewer.setInput(model.entries.toArray());
+        newNamePrefix.setFocus();
+
+        // Select All/None button bar
+        Composite bar = new Composite(composite, SWT.NONE);
+        GridDataFactory.fillDefaults().grab(true, false).span(3, 1).applyTo(bar);
+        bar.setLayout(new RowLayout());
+        Button selectAll = new Button(bar, SWT.PUSH);
+        selectAll.setText(Messages.ComponentsRenamingDialog_SelectAllAnd);
+        selectAll.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                model.selectedEntries.addAll(model.entries);
+                tableViewer.setAllChecked(true);
+            }
+        });
+        Button clearSelection = new Button(bar, SWT.PUSH);
+        clearSelection.setText(Messages.ComponentsRenamingDialog_ClearSelectionAnd);
+        clearSelection.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                model.selectedEntries.clear();
+                tableViewer.setAllChecked(false);
+            }
+        });
+
+        return composite;
+    }
+    
+    public void refresh() {
+        tableViewer.refresh();
+    }
+    
+    public static void main(String[] args) {
+        final Display display = new Display();
+        Shell shell = new Shell(display);
+        shell.open();
+        
+        ComponentsRenamingModel model = new ComponentsRenamingModel();
+        model.oldNamePrefix = "FOO"; //$NON-NLS-1$
+        model.newNamePrefix = "FOO"; //$NON-NLS-1$
+        for(int i=0;i<100;++i)
+            model.entries.add(new NameEntry(null, "FOO"+(i*5), "FOO"+(i*5), "PREFIX")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        
+        ComponentsRenamingDialog dialog = new ComponentsRenamingDialog(shell, model);
+        dialog.open();
+        
+        while (!shell.isDisposed()) {
+            if (!display.readAndDispatch())
+                display.sleep();
+        }
+        display.dispose();
+    }
+
+}