Beginning of sash form implementation.
authorp.ciardelli <p.ciardelli@localhost>
Fri, 7 Mar 2008 17:42:18 +0000 (17:42 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Fri, 7 Mar 2008 17:42:18 +0000 (17:42 +0000)
22 files changed:
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/icons/close_view.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/file_obj.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/form_banner.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/help_topic.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/large_image.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/linkto_help.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/newprj_wiz.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/sample.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/th_horizontal.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/icons/th_vertical.gif [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/plugin.xml
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/Activator.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/MasterDetailsPage.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/MultiPageTaxonView.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorPage.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorViewOld.java [moved from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorView.java with 96% similarity]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameListView.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameViewer.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/ScrolledPropertiesBlock.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/NameComposite.java

index 46a8e431c73a058d9325c0435a21304fae18f01d..9f96f6bcd8f13b16395d0cb17def253c9c6f6bc2 100644 (file)
@@ -321,6 +321,7 @@ eclipseprojects/eu.etaxonomy.taxeditor/icons/alt_window_32.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/basionym.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/basionym_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/change.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/close_view.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/concept.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/concept_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/correction_change.gif -text
@@ -329,6 +330,9 @@ eclipseprojects/eu.etaxonomy.taxeditor/icons/delete.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/delete_edit.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/edit_16x16.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/edit_16x16.ico -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/file_obj.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/form_banner.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/help_topic.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/heterosyn.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/heterosyn_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/homonym.gif -text
@@ -336,18 +340,24 @@ eclipseprojects/eu.etaxonomy.taxeditor/icons/homonym_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/homosyn.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/homosyn_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/impl_co.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/large_image.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/linkto_help.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/misapplied.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/misapplied_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/move.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/move_no_bg.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/newprj_wiz.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/orthovariant.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/orthovariant_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/rel_no_bg.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/repsyn.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/repsyn_no_bg.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/sample.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/save.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/save_edit.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/text.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/th_horizontal.gif -text
+eclipseprojects/eu.etaxonomy.taxeditor/icons/th_vertical.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/undo.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/unknown.gif -text
 eclipseprojects/eu.etaxonomy.taxeditor/icons/unknown_no_bg.gif -text
@@ -378,13 +388,16 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/NameEdit
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/NameTreeContentProvider.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/PropertySheetNode.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/EmptyEditorView.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/MasterDetailsPage.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/MoveDialogView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/MultiPageTaxonView.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorView.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorPage.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorViewOld.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameListView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameViewer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/PropertySheetViewer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/RecentNamesTableViewer.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/ScrolledPropertiesBlock.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/TaxonomicTreeViewer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/TestDragAndDrop.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/UndoView.java -text
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/close_view.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/close_view.gif
new file mode 100644 (file)
index 0000000..1aca259
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/close_view.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/file_obj.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/file_obj.gif
new file mode 100644 (file)
index 0000000..6b86d07
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/file_obj.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/form_banner.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/form_banner.gif
new file mode 100644 (file)
index 0000000..aebc0b2
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/form_banner.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/help_topic.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/help_topic.gif
new file mode 100644 (file)
index 0000000..9bdd516
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/help_topic.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/large_image.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/large_image.gif
new file mode 100644 (file)
index 0000000..c5c94ee
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/large_image.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/linkto_help.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/linkto_help.gif
new file mode 100644 (file)
index 0000000..86550fe
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/linkto_help.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/newprj_wiz.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/newprj_wiz.gif
new file mode 100644 (file)
index 0000000..dc7d3a7
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/newprj_wiz.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/sample.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/sample.gif
new file mode 100644 (file)
index 0000000..34fb3c9
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/sample.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/th_horizontal.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/th_horizontal.gif
new file mode 100644 (file)
index 0000000..f4c14a4
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/th_horizontal.gif differ
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/icons/th_vertical.gif b/eclipseprojects/eu.etaxonomy.taxeditor/icons/th_vertical.gif
new file mode 100644 (file)
index 0000000..f685839
Binary files /dev/null and b/eclipseprojects/eu.etaxonomy.taxeditor/icons/th_vertical.gif differ
index 8ec481f89058e12490ee62fc171cff559cd88f54..785a8713b5a0fdd39835dbd715a85b3d2d9daeec 100644 (file)
@@ -44,7 +44,7 @@
             name="Multitabbed Taxon Editor">\r
       </editor>\r
       <editor\r
-            class="eu.etaxonomy.taxeditor.view.NameEditorView"\r
+            class="eu.etaxonomy.taxeditor.view.NameEditorViewOld"\r
             icon="icons/edit_16x16.gif"\r
             id="eu.etaxonomy.taxeditor.view.nameeditorview"\r
             name="New EditorPart">\r
index 62d9f33c78058c43d9980fa66e92ccd38e528844..9f80109fdcb3937c293932bac6ae79489570e5d3 100644 (file)
@@ -1,9 +1,16 @@
 package eu.etaxonomy.taxeditor;\r
 \r
+import java.net.URL;\r
+import java.util.ResourceBundle;\r
+\r
 import org.eclipse.core.databinding.observable.list.WritableList;\r
 import org.eclipse.core.databinding.observable.set.WritableSet;\r
+import org.eclipse.core.runtime.IPath;\r
+import org.eclipse.core.runtime.Path;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.jface.resource.ImageRegistry;\r
 import org.eclipse.swt.graphics.Image;\r
+import org.eclipse.ui.forms.FormColors;\r
 import org.eclipse.ui.plugin.AbstractUIPlugin;\r
 import org.osgi.framework.BundleContext;\r
 \r
@@ -27,19 +34,6 @@ public class Activator extends AbstractUIPlugin {
         * The shared instance\r
         */     \r
        private static Activator plugin;\r
-       /**\r
-        * All CDM services are called via the application controller\r
-        */\r
-       private CdmApplicationController cdmApp = new CdmApplicationController();\r
-       /**\r
-        * The dataset of taxa for this session\r
-        */\r
-       private WritableList observableTaxonTreeList = null;\r
-       /**\r
-        * Keeps track of which taxa have been edited\r
-        */\r
-       private WritableList observableRecentNamesList = null;\r
-       public WritableSet observableSynonymSet = null;\r
        /**\r
         * The constructor\r
         */\r
@@ -107,26 +101,30 @@ public class Activator extends AbstractUIPlugin {
                return plugin;\r
        }\r
 \r
+       /* ***************************************************************************************\r
+                       CDM SERVICES\r
+       ************************************************************************************** */\r
        /**\r
-        * Returns an image descriptor for the image file at the given\r
-        * plug-in relative path\r
-        *\r
-        * @param path the path\r
-        * @return the image descriptor\r
+        * All CDM services are called via the application controller\r
         */\r
-       public static ImageDescriptor getImageDescriptor(String path) {\r
-               return imageDescriptorFromPlugin(PLUGIN_ID, path);\r
-       }\r
-       \r
+       private CdmApplicationController cdmApp = new CdmApplicationController();\r
        \r
-       public Image getImage(String key) {\r
-               return getImageRegistry().get(key);\r
-       }\r
-\r
        public CdmApplicationController getCdmApp() {\r
                return cdmApp;\r
        }\r
 \r
+       /* ***************************************************************************************\r
+                       OBSERVABLE LISTS\r
+        ************************************************************************************** */\r
+       /**\r
+        * The dataset of taxa for this session\r
+        */\r
+       private WritableList observableTaxonTreeList = null;\r
+       /**\r
+        * Keeps track of which taxa have been edited\r
+        */\r
+       private WritableList observableRecentNamesList = null;\r
+       public WritableSet observableSynonymSet = null; \r
        public WritableList getObservableTaxonTreeList() {\r
                if (observableTaxonTreeList == null) {\r
                        observableTaxonTreeList = new WritableList();\r
@@ -148,4 +146,57 @@ public class Activator extends AbstractUIPlugin {
                }               \r
                return observableSynonymSet;            \r
        }\r
-}\r
+       \r
+       /* ***************************************************************************************\r
+                       IMAGE REGISTRY\r
+        ************************************************************************************** */\r
+       /**\r
+        * Returns an image descriptor for the image file at the given\r
+        * plug-in relative path\r
+        *\r
+        * @param path the path\r
+        * @return the image descriptor\r
+        */\r
+       public static ImageDescriptor getImageDescriptor(String path) {\r
+               return imageDescriptorFromPlugin(PLUGIN_ID, path);\r
+       }\r
+       \r
+       public Image getImage(String key) {\r
+               return getImageRegistry().get(key);\r
+       }\r
+       // Resource bundle.\r
+       private ResourceBundle resourceBundle;\r
+       private FormColors formColors;\r
+       public static final String IMG_FORM_BG = "formBg"; //$NON-NLS-1$\r
+       public static final String IMG_LARGE = "large"; //$NON-NLS-1$\r
+       public static final String IMG_HORIZONTAL = "horizontal"; //$NON-NLS-1$\r
+       public static final String IMG_VERTICAL = "vertical"; //$NON-NLS-1$\r
+       public static final String IMG_SAMPLE = "sample"; //$NON-NLS-1$\r
+       public static final String IMG_WIZBAN = "wizban"; //$NON-NLS-1$\r
+       public static final String IMG_LINKTO_HELP = "linkto_help"; //$NON-NLS-1$\r
+       public static final String IMG_HELP_TOPIC = "help_topic"; //$NON-NLS-1$\r
+       public static final String IMG_CLOSE = "close"; //$NON-NLS-1$   \r
+       protected void initializeImageRegistry(ImageRegistry registry) {\r
+               registerImage(registry, IMG_FORM_BG, "form_banner.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_LARGE, "large_image.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_HORIZONTAL, "th_horizontal.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_VERTICAL, "th_vertical.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_SAMPLE, "sample.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_WIZBAN, "newprj_wiz.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_LINKTO_HELP, "linkto_help.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_HELP_TOPIC, "help_topic.gif"); //$NON-NLS-1$\r
+               registerImage(registry, IMG_CLOSE, "close_view.gif"); //$NON-NLS-1$\r
+       }\r
+       private void registerImage(ImageRegistry registry, String key,\r
+                       String fileName) {\r
+               try {\r
+                       IPath path = new Path("icons/" + fileName); //$NON-NLS-1$\r
+                       URL url = find(path);\r
+                       if (url!=null) {\r
+                               ImageDescriptor desc = ImageDescriptor.createFromURL(url);\r
+                               registry.put(key, desc);\r
+                       }\r
+               } catch (Exception e) {\r
+               }\r
+       }       \r
+}
\ No newline at end of file
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/MasterDetailsPage.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/MasterDetailsPage.java
new file mode 100644 (file)
index 0000000..ba510ba
--- /dev/null
@@ -0,0 +1,40 @@
+package eu.etaxonomy.taxeditor.view;\r
+\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.ui.forms.IManagedForm;\r
+import org.eclipse.ui.forms.editor.FormEditor;\r
+import org.eclipse.ui.forms.editor.FormPage;\r
+import org.eclipse.ui.forms.widgets.ScrolledForm;\r
+\r
+import eu.etaxonomy.taxeditor.Activator;\r
+\r
+/**\r
+ * Template for freetext - form editing\r
+ * \r
+ * @author p.ciardelli\r
+ */\r
+public class MasterDetailsPage extends FormPage {\r
+       protected ScrolledPropertiesBlock block;\r
+       public MasterDetailsPage(FormEditor editor) {\r
+//             super(editor, "fourth", Messages.getString("MasterDetailsPage.label")); //$NON-NLS-1$ //$NON-NLS-2$\r
+               super(editor, "fourth", "MasterDetailsPage.label"); //$NON-NLS-1$ //$NON-NLS-2$\r
+               block = new ScrolledPropertiesBlock(this);\r
+       }\r
+       protected void createFormContent(final IManagedForm managedForm) {\r
+               final ScrolledForm form = managedForm.getForm();\r
+//             FormToolkit toolkit = managedForm.getToolkit();\r
+//             form.setText(Messages.getString("MasterDetailsPage.title")); //$NON-NLS-1$\r
+//             form.setText("MasterDetailsPage.title"); //$NON-NLS-1$\r
+               form.setBackgroundImage(Activator.getDefault().getImage(\r
+                               Activator.IMG_FORM_BG));\r
+               block.createContent(managedForm);\r
+               createMasterContent();\r
+       }\r
+       protected void createMasterContent() { }\r
+       protected Composite getMasterComposite() {\r
+               return block.getClientComposite();\r
+       }\r
+       protected Composite getDetailComposite() {\r
+               return null;\r
+       }\r
+}
\ No newline at end of file
index 24b5347cc02cffc4ebffddd0488d5d9673bf7398..b329a1d6a9affcbe0940aab2dc37bf0d165d5654 100644 (file)
@@ -7,6 +7,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ui.IEditorInput;\r
 import org.eclipse.ui.IEditorSite;\r
 import org.eclipse.ui.PartInitException;\r
+import org.eclipse.ui.forms.editor.FormEditor;\r
 import org.eclipse.ui.part.MultiPageEditorPart;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
@@ -19,26 +20,47 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
  * @author p.ciardelli\r
  *\r
  */\r
-public class MultiPageTaxonView extends MultiPageEditorPart {\r
+//public class MultiPageTaxonView extends MultiPageEditorPart {\r
+public class MultiPageTaxonView extends FormEditor {\r
 \r
        public static final String ID = "eu.etaxonomy.taxeditor.view.multipagetaxonview";\r
        private Taxon taxon;\r
        \r
-       @Override\r
-       protected void createPages() {\r
+       /* \r
+        * The FormEditor version\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.forms.editor.FormEditor#addPages()\r
+        */\r
+       protected void addPages() {\r
+               try {\r
+                       addPage(0, new NameEditorPage(this), getEditorInput());\r
+                       setPageText(0, "Name");\r
+       \r
+               } catch (PartInitException e) {                 \r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }               \r
+       }\r
+       \r
+       /* \r
+        * The MultiPageEditorPart version\r
+        * (non-Javadoc)\r
+        * @see org.eclipse.ui.forms.editor.FormEditor#createPages()\r
+        */\r
+       protected void createPages_() {\r
                \r
                try {\r
-                       addPage(0, new NameEditorView(), getEditorInput());\r
+                       addPage(0, new MasterDetailsPage(this), getEditorInput());\r
                        setPageText(0, "Name");\r
 \r
-                       addPage(1, new NameEditorView(), getEditorInput());\r
+                       addPage(1, new NameEditorViewOld(), getEditorInput());\r
                        setPageText(1, "Descriptive");\r
-                       \r
-                       addPage(2, new NameEditorView(), getEditorInput());\r
-                       setPageText(2, "Concepts");\r
-                       \r
-                       addPage(3, new NameEditorView(), getEditorInput());\r
-                       setPageText(3, "Geographic");\r
+//                     \r
+//                     addPage(2, new NameEditorViewOld(), getEditorInput());\r
+//                     setPageText(2, "Concepts");\r
+//                     \r
+//                     addPage(3, new NameEditorViewOld(), getEditorInput());\r
+//                     setPageText(3, "Geographic");\r
                        \r
                } catch (PartInitException e) {                 \r
                        // TODO Auto-generated catch block\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorPage.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorPage.java
new file mode 100644 (file)
index 0000000..bab93e2
--- /dev/null
@@ -0,0 +1,97 @@
+package eu.etaxonomy.taxeditor.view;\r
+\r
+import org.eclipse.core.databinding.observable.set.ISetChangeListener;\r
+import org.eclipse.core.databinding.observable.set.SetChangeEvent;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Display;\r
+import org.eclipse.ui.IEditorInput;\r
+import org.eclipse.ui.IEditorSite;\r
+import org.eclipse.ui.forms.IManagedForm;\r
+import org.eclipse.ui.forms.editor.FormEditor;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.TesterooWritableSet;\r
+\r
+public class NameEditorPage extends MasterDetailsPage {\r
+\r
+       private Taxon taxon;\r
+       private Composite nameComposite;\r
+\r
+       public NameEditorPage(FormEditor editor) {\r
+               super(editor);\r
+       }\r
+       \r
+       protected void createFormContent(final IManagedForm managedForm) {\r
+               super.createFormContent(managedForm);\r
+       }\r
+       \r
+       protected void createMasterContent() {\r
+               nameComposite = new Composite(getMasterComposite(), SWT.NONE);\r
+               nameComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+               nameComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));\r
+               GridLayout gridLayout = new GridLayout();\r
+               gridLayout.verticalSpacing = 10;\r
+               nameComposite.setLayout(gridLayout);            \r
+               nameComposite.setRedraw(true);\r
+               \r
+               \r
+//             clickText = "Click here to start entering accepted name or enter its individual fields in the property sheet to the right";\r
+//             NameViewer_ acceptedNameViewer = new AcceptedNameViewer(taxon, bindingContext, nameComposite);\r
+//             acceptedNameViewer.setBindingContext(bindingContext);\r
+//             acceptedNameViewer.configure(new NameViewerConfig());\r
+               \r
+               GroupComposite homoGroupComposite = new GroupComposite(nameComposite);\r
+               homoGroupComposite.setTaxon(taxon);\r
+               homoGroupComposite.setNameEditorView(this);\r
+               \r
+               new NameComposite(homoGroupComposite, taxon).setNameEditorView(this);\r
+               \r
+               TesterooWritableSet.getInstance().addSetChangeListener\r
+               (new ISetChangeListener() {\r
+                       public void handleSetChange(SetChangeEvent event) {\r
+                               for ( Object addition: event.diff.getAdditions()) {\r
+                                       if (addition instanceof Synonym)\r
+                                               createHeterotypicalGroup((Synonym) addition);\r
+                               }\r
+                               nameComposite.layout();\r
+//                             contentComposite.layout();\r
+                       }\r
+               });\r
+       }\r
+\r
+       private void createHeterotypicalGroup(Synonym heterosyn) {\r
+\r
+               GroupComposite heteroGroupComposite = new GroupComposite(nameComposite);\r
+               heteroGroupComposite.setTaxon(taxon);\r
+               heteroGroupComposite.setNameEditorView(this);\r
+               \r
+               NameComposite nameComposite = new NameComposite(heteroGroupComposite, heterosyn, taxon);\r
+               nameComposite.setNameEditorView(this);\r
+               nameComposite.setFocus();\r
+       }       \r
+       \r
+       public void init(IEditorSite site, IEditorInput input) {\r
+                               \r
+               if (input.getAdapter(Taxon.class) != null)\r
+                       taxon = (Taxon) input.getAdapter(Taxon.class);\r
+               else\r
+                       taxon = null;\r
+               \r
+               // Get parent taxon\r
+//             if (taxon.getTaxonomicParent() != null)\r
+//                             higherTaxon = taxon.getTaxonomicParent();\r
+               \r
+               // Register listeners for any change in accepted name or set of relations\r
+//             taxon.getName().addPropertyChangeListener("titleCache", taxonChangeListener);\r
+//             taxon.addPropertyChangeListener("synonyms", taxonChangeListener);\r
+               \r
+               setSite(site);\r
+               setInput(input);\r
+       }       \r
+}\r
similarity index 96%
rename from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorView.java
rename to eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/NameEditorViewOld.java
index 3614746e7d482be0a2e458d8160d09497238cfb8..5cde0895ba4427195495715e5b865a406160eced 100644 (file)
@@ -75,7 +75,7 @@ import eu.etaxonomy.taxeditor.view.propertysheetsupport.PropertySheetValueLabelP
  * @author p.ciardelli\r
  *\r
  */\r
-public class NameEditorView extends EditorPart {\r
+public class NameEditorViewOld extends EditorPart {\r
        /**\r
         * The taxon the editor is editing \r
         */\r
@@ -130,7 +130,7 @@ public class NameEditorView extends EditorPart {
        \r
        public static final String ID = "eu.etaxonomy.taxeditor.view.nameeditorview"; //$NON-NLS-1$\r
 \r
-       public NameEditorView() {\r
+       public NameEditorViewOld() {\r
                \r
        }\r
        /**\r
@@ -624,11 +624,11 @@ public class NameEditorView extends EditorPart {
                        \r
                        GroupComposite homotypicGroupComposite = new GroupComposite(nameComposite);\r
                        homotypicGroupComposite.setTaxon(taxon);\r
-                       homotypicGroupComposite.setNameEditorView(NameEditorView.this);\r
+                       homotypicGroupComposite.setNameEditorView(NameEditorViewOld.this);\r
                        \r
                        new NameComposite(homotypicGroupComposite, synonym, taxon).setFocus();\r
                        \r
-                       NameEditorView.this.contentComposite.layout();\r
+                       NameEditorViewOld.this.contentComposite.layout();\r
                }               \r
        };      \r
 }
\ No newline at end of file
index d993ceb4693e3fcaf413b3d0d58338cbb7962d74..1c1cb9aa846ded8e813ab790b2799c9f655cf401 100644 (file)
@@ -20,6 +20,8 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Menu;\r
 import org.eclipse.swt.widgets.MenuItem;\r
 import org.eclipse.swt.widgets.Text;\r
+import org.eclipse.ui.forms.widgets.FormToolkit;\r
+import org.eclipse.ui.forms.widgets.ScrolledForm;\r
 import org.eclipse.ui.part.ViewPart;\r
 \r
 import com.swtdesigner.ResourceManager;\r
@@ -46,6 +48,9 @@ public class NameListView extends ViewPart {
        private TableViewer recentNamesViewer;  \r
        public static final String ID = "eu.etaxonomy.taxeditor.view.namelistview"; //$NON-NLS-1$\r
 \r
+       private FormToolkit toolkit;\r
+       private ScrolledForm form;\r
+       \r
        private TreeViewer treeViewer;\r
        \r
        /**\r
@@ -108,6 +113,11 @@ public class NameListView extends ViewPart {
                lblDataSource.setAlignment(SWT.CENTER);\r
                lblDataSource.setText("  mssql://128.14.101.12:80/europlusmed");\r
 \r
+//             toolkit = new FormToolkit(parent.getDisplay());\r
+//             form = toolkit.createScrolledForm(top);\r
+////           form.setText(Messages.getString("FormView.title")); //$NON-NLS-1$\r
+//             form.setText("FormView.title"); //$NON-NLS-1$\r
+//             \r
                createExpandBar();\r
                top.setLayout(gridLayout);\r
                top.setTabList(new Control[] {composite, expandBar});\r
index 3cc8268f2303b02e04514e761073ffa6717ba30e..4698c4852e6ea12bb8879f8131f87b0bca6f928a 100644 (file)
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.view.nameviewersupport.WarningAnnotation;
 \r
 \r
 /**\r
- * SourceViewer implementation called by NameEditorView.\r
+ * SourceViewer implementation called by NameEditorViewOld.\r
  *  \r
  * @author p.ciardelli\r
  *\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/ScrolledPropertiesBlock.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/ScrolledPropertiesBlock.java
new file mode 100644 (file)
index 0000000..48d3ce4
--- /dev/null
@@ -0,0 +1,139 @@
+/*******************************************************************************\r
+ * Copyright (c) 2000, 2004 IBM Corporation and others.\r
+ * All rights reserved. This program and the accompanying materials \r
+ * are made available under the terms of the Common Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/cpl-v10.html\r
+ * \r
+ * Contributors:\r
+ *     IBM Corporation - initial API and implementation\r
+ *******************************************************************************/\r
+package eu.etaxonomy.taxeditor.view;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.viewers.ISelectionChangedListener;\r
+import org.eclipse.jface.viewers.SelectionChangedEvent;\r
+import org.eclipse.jface.viewers.TableViewer;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.layout.GridLayout;\r
+import org.eclipse.swt.widgets.Button;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Table;\r
+import org.eclipse.ui.forms.DetailsPart;\r
+import org.eclipse.ui.forms.IManagedForm;\r
+import org.eclipse.ui.forms.MasterDetailsBlock;\r
+import org.eclipse.ui.forms.SectionPart;\r
+import org.eclipse.ui.forms.editor.FormPage;\r
+import org.eclipse.ui.forms.widgets.FormToolkit;\r
+import org.eclipse.ui.forms.widgets.ScrolledForm;\r
+import org.eclipse.ui.forms.widgets.Section;\r
+\r
+import eu.etaxonomy.taxeditor.Activator;\r
+/**\r
+ * Template for freetext - form editing\r
+ * \r
+ * @author p.ciardelli\r
+ */\r
+public class ScrolledPropertiesBlock extends MasterDetailsBlock {\r
+       private FormPage page;\r
+       private Composite client;\r
+       public ScrolledPropertiesBlock(FormPage page) {\r
+               this.page = page;\r
+       }\r
+       /**\r
+        * @param id\r
+        * @param title\r
+        */\r
+//     class MasterContentProvider implements IStructuredContentProvider {\r
+//             public Object[] getElements(Object inputElement) {\r
+//                     if (inputElement instanceof SimpleFormEditorInput) {\r
+//                             SimpleFormEditorInput input = (SimpleFormEditorInput) page\r
+//                                             .getEditor().getEditorInput();\r
+//                             return input.getModel().getContents();\r
+//                     }\r
+//                     return new Object[0];\r
+//             }\r
+//             public void dispose() {\r
+//             }\r
+//             public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {\r
+//             }\r
+//     }\r
+//     class MasterLabelProvider extends LabelProvider\r
+//                     implements\r
+//                             ITableLabelProvider {\r
+//             public String getColumnText(Object obj, int index) {\r
+//                     return obj.toString();\r
+//             }\r
+//             public Image getColumnImage(Object obj, int index) {\r
+//                     if (obj instanceof TypeOne) {\r
+//                             return PlatformUI.getWorkbench().getSharedImages().getImage(\r
+//                                             ISharedImages.IMG_OBJ_ELEMENT);\r
+//                     }\r
+//                     if (obj instanceof TypeTwo) {\r
+//                             return PlatformUI.getWorkbench().getSharedImages().getImage(\r
+//                                             ISharedImages.IMG_OBJ_FILE);\r
+//                     }\r
+//                     return null;\r
+//             }\r
+//     }\r
+       protected void createMasterPart(final IManagedForm managedForm,\r
+                       Composite parent) {\r
+                               \r
+               //final ScrolledForm form = managedForm.getForm();\r
+               FormToolkit toolkit = managedForm.getToolkit();\r
+               Section section = toolkit.createSection(parent, Section.DESCRIPTION | Section.TITLE_BAR);\r
+//             section.setText(Messages.getString("ScrolledPropertiesBlock.sname")); //$NON-NLS-1$\r
+//             section.setDescription(Messages.getString("ScrolledPropertiesBlock.sdesc")); //$NON-NLS-1$\r
+//             section.setText("ScrolledPropertiesBlock.sname"); //$NON-NLS-1$\r
+//             section.setDescription("ScrolledPropertiesBlock.sdesc"); //$NON-NLS-1$          \r
+               section.marginWidth = 10;\r
+               section.marginHeight = 5;\r
+               client = toolkit.createComposite(section, SWT.WRAP);\r
+               GridLayout layout = new GridLayout();\r
+               layout.numColumns = 2;\r
+               layout.marginWidth = 2;\r
+               layout.marginHeight = 2;\r
+               client.setLayout(layout);\r
+               GridData gd = new GridData(GridData.FILL_BOTH);\r
+               gd.heightHint = 20;\r
+               toolkit.paintBordersFor(client);\r
+               section.setClient(client);\r
+               final SectionPart spart = new SectionPart(section);\r
+               managedForm.addPart(spart);\r
+       }\r
+       \r
+       protected void createToolBarActions(IManagedForm managedForm) {\r
+               final ScrolledForm form = managedForm.getForm();\r
+               Action haction = new Action("hor", Action.AS_RADIO_BUTTON) { //$NON-NLS-1$\r
+                       public void run() {\r
+                               sashForm.setOrientation(SWT.HORIZONTAL);\r
+                               form.reflow(true);\r
+                       }\r
+               };\r
+               haction.setChecked(true);\r
+//             haction.setToolTipText(Messages.getString("ScrolledPropertiesBlock.horizontal")); //$NON-NLS-1$\r
+               haction.setToolTipText("ScrolledPropertiesBlock.horizontal"); //$NON-NLS-1$\r
+               haction.setImageDescriptor(Activator.getDefault().getImageRegistry().getDescriptor(Activator.IMG_HORIZONTAL));\r
+               Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) { //$NON-NLS-1$\r
+                       public void run() {\r
+                               sashForm.setOrientation(SWT.VERTICAL);\r
+                               form.reflow(true);\r
+                       }\r
+               };\r
+               vaction.setChecked(false);\r
+//             vaction.setToolTipText(Messages.getString("ScrolledPropertiesBlock.vertical")); //$NON-NLS-1$\r
+               vaction.setToolTipText("ScrolledPropertiesBlock.vertical"); //$NON-NLS-1$\r
+               vaction.setImageDescriptor(Activator.getDefault()\r
+                               .getImageRegistry().getDescriptor(Activator.IMG_VERTICAL));\r
+               form.getToolBarManager().add(haction);\r
+               form.getToolBarManager().add(vaction);\r
+       }\r
+       protected void registerPages(DetailsPart detailsPart) {\r
+               // TODO Register FlowPage here\r
+//             detailsPart.registerPage(TypeOne.class, new TypeOneDetailsPage());\r
+//             detailsPart.registerPage(TypeTwo.class, new TypeTwoDetailsPage());\r
+       }\r
+       public Composite getClientComposite() {\r
+               return client;\r
+       }\r
+}
\ No newline at end of file
index c81c40b7801a9cd82be0ae1d5f7753d3fabb8c5a..cb3d59bc37aad31826664330b99911a7ec526869 100644 (file)
@@ -20,7 +20,8 @@ import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.controller.TaxonTransfer;\r
-import eu.etaxonomy.taxeditor.view.NameEditorView;\r
+import eu.etaxonomy.taxeditor.view.NameEditorPage;\r
+import eu.etaxonomy.taxeditor.view.NameEditorViewOld;\r
 \r
 public class GroupComposite extends Composite {\r
        \r
@@ -28,7 +29,7 @@ public class GroupComposite extends Composite {
        Rectangle rectangle;\r
        HomotypicalGroup homotypicalGroup;\r
        boolean acceptedGroup;\r
-       private NameEditorView nameEditorView;\r
+       private NameEditorPage nameEditorView;\r
        \r
        public void setTaxon(Taxon taxon) {\r
                this.taxon = taxon;\r
@@ -129,11 +130,11 @@ public class GroupComposite extends Composite {
                this.acceptedGroup = acceptedGroup;\r
        }\r
 \r
-       public void setNameEditorView(NameEditorView nameEditorView) {\r
+       public void setNameEditorView(NameEditorPage nameEditorView) {\r
                this.nameEditorView = nameEditorView;\r
        }\r
        \r
-       public NameEditorView getNameEditorView() {\r
+       public NameEditorPage getNameEditorView() {\r
                return nameEditorView;\r
        }\r
        \r
index 3327f7986e4fb648f48f42a8d549eee3d4e4d6c1..4714799f3285d9038d2e8580b63d6649f8a50828 100644 (file)
@@ -31,7 +31,8 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.controller.TaxonTransfer;\r
-import eu.etaxonomy.taxeditor.view.NameEditorView;\r
+import eu.etaxonomy.taxeditor.view.NameEditorPage;\r
+import eu.etaxonomy.taxeditor.view.NameEditorViewOld;\r
 import eu.etaxonomy.taxeditor.view.NameViewer;\r
 \r
 public class NameComposite extends Composite {\r
@@ -180,8 +181,8 @@ public class NameComposite extends Composite {
                nameViewer.getTextWidget().addFocusListener(new FocusAdapter () {\r
                        public void focusGained(FocusEvent e) {\r
                                \r
-                               if (nameEditorView != null)\r
-                                       nameEditorView.setPropertySheetNodes(getName());\r
+//                             if (nameEditorView != null) \r
+//                                     nameEditorView.setPropertySheetNodes(getName());\r
                        }\r
                });\r
                \r
@@ -273,7 +274,7 @@ public class NameComposite extends Composite {
                        }\r
                }\r
        };\r
-       private NameEditorView nameEditorView;\r
+       private NameEditorPage nameEditorView;\r
        \r
        public void setName(TaxonNameBase name) {\r
                (compositeType == ACCEPTED? taxon : synonym).setName(name);\r
@@ -284,7 +285,7 @@ public class NameComposite extends Composite {
                return (compositeType == ACCEPTED? taxon : synonym).getName();                          \r
        }\r
 \r
-       public void setNameEditorView(NameEditorView nameEditorView) {\r
+       public void setNameEditorView(NameEditorPage nameEditorView) {\r
                this.nameEditorView = nameEditorView;           \r
        }\r
        \r