Check in for new update.
authorp.ciardelli <p.ciardelli@localhost>
Wed, 8 Jul 2009 14:25:59 +0000 (14:25 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 8 Jul 2009 14:25:59 +0000 (14:25 +0000)
.gitattributes
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/CompositeBorderDecorator.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/GroupedComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/LineWrapSupport.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/ParseListener.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDescriptionElementComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDistributionComposite.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionViewer.java [new file with mode: 0644]
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeAcceptedTaxonToSynonymHandler.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/FilteredTaxonSelectionDialog.java

index 90d7d62ab94b917a6f0b7c81e2c79e893e9988c0..3ef1508245be365dbfc43839456669cdbc243c0e 100644 (file)
@@ -711,10 +711,13 @@ taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/ViewerConfiguration
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/WarningAnnotation.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/WidgetTransfer.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CommonNameComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDescriptionElementComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDistributionComposite.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionFeatureGroupComposite.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionGroupComposite.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionViewer.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DistributionComposite.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DistributionDialog.java -text
 taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DistributionFeatureGroupComposite.java -text
index 623fc8adf70f20b3e8bfed946f619c95bafe4d1c..d6b07eb8582359baa3509f72431eed919c89be65 100644 (file)
@@ -9,6 +9,7 @@
 \r
 package eu.etaxonomy.taxeditor.editor;\r
 \r
+import org.apache.log4j.Logger;\r
 import org.eclipse.swt.events.FocusEvent;\r
 import org.eclipse.swt.events.FocusListener;\r
 import org.eclipse.swt.graphics.Color;\r
@@ -17,6 +18,8 @@ import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.widgets.FormToolkit;\r
 import org.eclipse.ui.forms.widgets.ScrolledForm;\r
 \r
+import eu.etaxonomy.taxeditor.editor.description.DescriptionElementComposite;\r
+\r
 /**\r
  * Draws a border on a Composite on an IManagedForm when it gets focus, \r
  *  undraws it when the Composite loses focus.\r
@@ -25,6 +28,7 @@ import org.eclipse.ui.forms.widgets.ScrolledForm;
  *\r
  */\r
 public class CompositeBorderDecorator implements FocusListener {       \r
+       private static final Logger logger = Logger.getLogger(CompositeBorderDecorator.class);\r
                \r
        private FormToolkit toolkit;\r
        private ScrolledForm scrolledForm;\r
@@ -81,6 +85,7 @@ public class CompositeBorderDecorator implements FocusListener {
         * Removes the border from <code>borderedComposite</code>.\r
         */\r
        public void unpaintBorder() {\r
+               logger.warn("unpainting " + borderedComposite);\r
                paintBorder(null);              \r
        }\r
        \r
@@ -88,6 +93,7 @@ public class CompositeBorderDecorator implements FocusListener {
         * Adds a border to <code>borderedComposite</code>.\r
         */\r
        public void paintBorder() {\r
+               logger.warn("painting " + borderedComposite.getParent());\r
                paintBorder(FormToolkit.TEXT_BORDER);\r
        }\r
        \r
index de6bcb2492fb8af768e09905bd67db8f1aa64c3a..7874b41b4ae8a8b99811b63927599f2714f08f70 100644 (file)
@@ -288,7 +288,7 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
                return emptyViewerPrompt;\r
        }\r
 \r
-       private void setFocusListener(FocusListener focusListener) {\r
+       protected void setFocusListener(FocusListener focusListener) {\r
                this.focusListener = focusListener;\r
        }\r
 \r
index c2449d49114d8a1ec6a6739fd060c922ea21d0cb..8588ce0c6f1228796d96737669e510f123d0f121 100644 (file)
@@ -17,6 +17,8 @@ import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.ui.forms.IManagedForm;\r
 import org.eclipse.ui.forms.widgets.ScrolledForm;\r
 \r
+import eu.etaxonomy.taxeditor.editor.description.DescriptionViewer;\r
+\r
 /**\r
  * Checks whether the ScrolledForm a TextViewer is on needs to be\r
  *  redrawn because of a new line break or the removal of an existing\r
@@ -39,15 +41,21 @@ public class LineWrapSupport {
        private StyledText textWidget;\r
        private ScrolledForm scrolledForm;\r
 \r
-       private TextViewer viewer;\r
+//     private TextViewer viewer;\r
        \r
        /**\r
         * @return the viewer\r
         */\r
-       public TextViewer getViewer() {\r
-               return viewer;\r
-       }\r
+//     public TextViewer getViewer() {\r
+//             return viewer;\r
+//     }\r
 \r
+       public LineWrapSupport(DescriptionViewer viewer, IManagedForm form) {\r
+               this.scrolledForm = form.getForm();\r
+               \r
+               viewer.addModifyListener(listener);\r
+       }\r
+       \r
        public LineWrapSupport(TextViewer viewer, IManagedForm form) {\r
                \r
                if (viewer == null) {\r
@@ -55,7 +63,7 @@ public class LineWrapSupport {
                                        "The provided TextViewer object is null.");\r
                }\r
                \r
-               this.viewer = viewer;\r
+//             this.viewer = viewer;\r
                \r
                textWidget = viewer.getTextWidget();\r
                textWidget.addModifyListener(listener);\r
index 91d88812c70db45749e3120effd90b59fa2b2604..b3ae9e4f7f4dc889b9a01f8b7c6bf72fabd96e34 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.editor;
 import org.eclipse.swt.custom.StyledText;\r
 import org.eclipse.swt.events.ModifyEvent;\r
 import org.eclipse.swt.events.ModifyListener;\r
+import org.eclipse.swt.widgets.Text;\r
 \r
 /**\r
  * Passes modified text to the method <code>parse</code>. \r
@@ -22,9 +23,15 @@ import org.eclipse.swt.events.ModifyListener;
 public abstract class ParseListener implements ModifyListener {\r
 \r
        public void modifyText(ModifyEvent e) {\r
-               StyledText widget = (StyledText) e.widget;\r
-               String text = widget.getText();\r
-               parse(text);\r
+               if (e.widget instanceof StyledText) {\r
+                       StyledText widget = (StyledText) e.widget;\r
+                       String text = widget.getText();\r
+                       parse(text);\r
+               }\r
+               if (e.widget instanceof Text) {\r
+                       String text = ((Text) e.widget).getText();\r
+                       parse(text);\r
+               }\r
        }\r
        \r
        abstract public void parse(String text);\r
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDescriptionElementComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDescriptionElementComposite.java
new file mode 100644 (file)
index 0000000..cb4c43e
--- /dev/null
@@ -0,0 +1,287 @@
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.editor.description;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.FocusAdapter;\r
+import org.eclipse.swt.events.FocusEvent;\r
+import org.eclipse.swt.events.FocusListener;\r
+import org.eclipse.swt.events.MouseAdapter;\r
+import org.eclipse.swt.events.MouseEvent;\r
+import org.eclipse.swt.graphics.Color;\r
+import org.eclipse.swt.graphics.Font;\r
+import org.eclipse.swt.graphics.Image;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Menu;\r
+import org.eclipse.ui.views.properties.IPropertySource;\r
+\r
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
+import eu.etaxonomy.taxeditor.editor.CompositeBorderDecorator;\r
+import eu.etaxonomy.taxeditor.editor.GroupedComposite;\r
+import eu.etaxonomy.taxeditor.editor.LineWrapSupport;\r
+import eu.etaxonomy.taxeditor.editor.ParseListener;\r
+import eu.etaxonomy.taxeditor.model.DescriptionHelper;\r
+import eu.etaxonomy.taxeditor.model.ImageResources;\r
+import eu.etaxonomy.taxeditor.model.Resources;\r
+import eu.etaxonomy.taxeditor.propertysheet.description.DescriptionElementPropertySource;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.06.2008\r
+ * @version 1.0\r
+ */\r
+public class CopyOfDescriptionElementComposite extends GroupedComposite {\r
+       private static final Logger logger = Logger.getLogger(CopyOfDescriptionElementComposite.class);\r
+\r
+       /**\r
+        * ************ COMPOSITE TYPES ************\r
+        */\r
+       public static final String TEXT_DATA = "text_data";\r
+       public static final String COMMON_TAXON_NAME = "common_taxon_name";\r
+       public static final String DISTRIBUTION = "distribution";\r
+\r
+       /**\r
+        * ************ FONTS ************\r
+        */\r
+       public static final Font ELEMENT_FONT = Resources\r
+                       .getFont(Resources.SYNONYM_FONT);\r
+\r
+       /**\r
+        * ************ ICONS ************\r
+        */\r
+       public static final Image BLACK_SQUARE_ICON = ImageResources\r
+                       .getImage(ImageResources.BLACK_SQUARE_ICON);\r
+\r
+       protected DescriptionElementBase element;\r
+       private DescriptionViewer descriptionViewer;\r
+\r
+       private static final String EMPTY_NAME_PROMPT = "Click to add descriptive element text";\r
+       \r
+       private static final int STYLES = SWT.WRAP | SWT.MULTI | SWT.RESIZE;\r
+\r
+       public CopyOfDescriptionElementComposite(TaxonDescriptionEditor editor, Composite parent, DescriptionElementBase element) {\r
+               super(editor, parent);\r
+               \r
+               this.element = element;\r
+                               \r
+               createTextViewer();\r
+               createBorderSupport();\r
+               createLineWrapSupport();\r
+               \r
+               createParser();\r
+               createEmptyViewerPrompt(EMPTY_NAME_PROMPT);\r
+               \r
+               setIcon(BLACK_SQUARE_ICON);\r
+               setFont(ELEMENT_FONT);\r
+\r
+               setMenu(editor.getMenu());\r
+               \r
+               initTextViewer();\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#createTextViewer()\r
+        */\r
+       @Override\r
+       protected void createTextViewer() {\r
+               descriptionViewer = new DescriptionViewer(this, STYLES, managedForm);\r
+               descriptionViewer.setBackground(getBackground());\r
+               \r
+               FocusAdapter focusListener = new FocusAdapter() {\r
+                       public void focusGained(FocusEvent e) {\r
+                               setFocus();\r
+                       }\r
+               };              \r
+               descriptionViewer.addFocusListener(focusListener);\r
+               \r
+               MouseAdapter mouseListener = new MouseAdapter() {\r
+                       public void mouseDown(MouseEvent e) {\r
+                               setFocus();                             \r
+                       }\r
+               };\r
+               this.addMouseListener(mouseListener);\r
+               descriptionViewer.addMouseListener(mouseListener);\r
+       }\r
+       \r
+       protected void initTextViewer() {\r
+               \r
+               String text = null;\r
+\r
+               text = DescriptionHelper.getCache(element);\r
+               \r
+               if (text.length() == 0) {\r
+                       initEmptyText();\r
+               } else {\r
+                       descriptionViewer.setText(text);\r
+               }\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#createEmptyViewerPrompt(java.lang.String)\r
+        */\r
+       @Override\r
+       public void createEmptyViewerPrompt(final String prompt) {\r
+                \r
+               final Font promptFont = Resources\r
+                               .getFont(Resources.FONT_DEFAULT_PROMPT);\r
+               FocusListener focusListener = new FocusListener() {\r
+                       \r
+                       public void focusGained(FocusEvent e) {\r
+                               if (descriptionViewer.getText().equals(EMPTY_NAME_PROMPT)) {\r
+                                       descriptionViewer.setFont(getViewerFont());\r
+                                       descriptionViewer.setText("");\r
+                               }\r
+                       }\r
+                       \r
+                       public void focusLost(FocusEvent e) {\r
+                               if (descriptionViewer.getText().length() == 0) {\r
+                                       initEmptyText();\r
+                               }\r
+                       }\r
+                       \r
+               };\r
+               setFocusListener(focusListener);\r
+               descriptionViewer.addFocusListener(focusListener);\r
+               \r
+               if (descriptionViewer.getText().length() == 0) {\r
+                       descriptionViewer.setFont(promptFont);\r
+                       descriptionViewer.setText(prompt);\r
+               }\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#initEmptyText()\r
+        */\r
+       @Override\r
+       protected void initEmptyText() {\r
+               descriptionViewer.setFont(\r
+                               Resources\r
+                                       .getFont(Resources.FONT_DEFAULT_PROMPT));\r
+               \r
+               descriptionViewer.setText(EMPTY_NAME_PROMPT);\r
+//             textViewer.setCursorToEOL();\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#setIcon(org.eclipse.swt.graphics.Image)\r
+        */\r
+       @Override\r
+       public void setIcon(Image icon) {\r
+               descriptionViewer.setIcon(icon);\r
+       }\r
+       \r
+       public DescriptionElementBase getElement() {\r
+               return element;\r
+       }\r
+       \r
+       protected void parse(String text) {\r
+               \r
+               DescriptionHelper.setCache(getElement(), text);\r
+               \r
+               // Manually refresh the property sheet to reflect changes\r
+               setSelection();\r
+               \r
+               setDirty(true);\r
+       }\r
+       \r
+       public IPropertySource getPropertySource() {\r
+               return new DescriptionElementPropertySource(getElement());\r
+       }\r
+\r
+       @Override\r
+       protected Font getViewerFont() {\r
+               return ELEMENT_FONT;\r
+       }\r
+       \r
+       public Object getData () {\r
+               return getElement();\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#setFont(org.eclipse.swt.graphics.Font)\r
+        */\r
+       @Override\r
+       public void setFont(Font font) {\r
+               descriptionViewer.setFont(font);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#createParser()\r
+        */\r
+       @Override\r
+       protected void createParser() {\r
+               ParseListener parseListener = new ParseListener() {\r
+                       @Override\r
+                       public void parse(String text) {\r
+                               if (!EMPTY_NAME_PROMPT.equals(text)) {\r
+                                       CopyOfDescriptionElementComposite.this.parse(text);\r
+                               }\r
+                       }\r
+               };\r
+               descriptionViewer.addModifyListener(parseListener);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#setMenu(org.eclipse.swt.widgets.Menu)\r
+        */\r
+       @Override\r
+       public void setMenu(Menu menu) {\r
+               descriptionViewer.setMenu(menu);\r
+               super.setMenu(menu);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#createBorderSupport()\r
+        */\r
+       @Override\r
+       public void createBorderSupport() {\r
+//             CompositeBorderDecorator borderDecorator = new CompositeBorderDecorator(\r
+//                             descriptionViewer, managedForm);\r
+               CompositeBorderDecorator borderDecorator = new CompositeBorderDecorator(\r
+                               this, managedForm);                     \r
+//             borderDecorator.setLoseFocus(true);\r
+               descriptionViewer.addFocusListener(borderDecorator);\r
+               setBorderDecorator(borderDecorator);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#createLineWrapSupport()\r
+        */\r
+       @Override\r
+       protected void createLineWrapSupport() {\r
+               new LineWrapSupport(descriptionViewer, managedForm);\r
+       }\r
+\r
+       /**\r
+        * @param text\r
+        */\r
+       protected void setText(String text) {\r
+               descriptionViewer.setText(text);\r
+       }\r
+\r
+       /**\r
+        * @param editable\r
+        */\r
+       protected void setEditable(boolean editable) {\r
+               descriptionViewer.setEditable(editable);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#setBackground(org.eclipse.swt.graphics.Color)\r
+        */\r
+       @Override\r
+       public void setBackground(Color color) {\r
+               if (descriptionViewer != null) {\r
+                       descriptionViewer.setBackground(color);\r
+               }\r
+               super.setBackground(color);\r
+       }\r
+}
\ No newline at end of file
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDistributionComposite.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/CopyOfDistributionComposite.java
new file mode 100644 (file)
index 0000000..704bf31
--- /dev/null
@@ -0,0 +1,64 @@
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.editor.description;\r
+\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.ui.views.properties.IPropertySource;\r
+\r
+import eu.etaxonomy.cdm.model.description.Distribution;\r
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.taxeditor.propertysheet.description.DistributionPropertySource;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.04.2009\r
+ * @version 1.0\r
+ */\r
+public class CopyOfDistributionComposite extends DescriptionElementComposite {\r
+       \r
+       /**\r
+        * @param groupComposite\r
+        * @param groupComposite\r
+        * @param element\r
+        */\r
+       public CopyOfDistributionComposite(TaxonDescriptionEditor editor, Composite groupComposite,\r
+                        Distribution element) {\r
+               super(editor, groupComposite, element);\r
+       }\r
+       \r
+       \r
+\r
+       public IPropertySource getPropertySource() {\r
+               return new DistributionPropertySource((Distribution) getElement());\r
+       }\r
+\r
+\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.description.DescriptionElementComposite#initTextViewer()\r
+        */\r
+       @Override\r
+       protected void initTextViewer() {\r
+               \r
+               Distribution distribution = (Distribution) getElement();\r
+               \r
+               NamedArea area = distribution.getArea();\r
+               PresenceAbsenceTermBase<?> status = distribution.getStatus();\r
+               \r
+               if (status != null) {\r
+                       String text = area.getLabel() + ", " + status.getLabel();\r
+                       setText(text);\r
+               }\r
+               \r
+               setEditable(false);\r
+       }\r
+}
\ No newline at end of file
diff --git a/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionViewer.java b/taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/DescriptionViewer.java
new file mode 100644 (file)
index 0000000..bd9aa68
--- /dev/null
@@ -0,0 +1,188 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.editor.description;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.FocusListener;\r
+import org.eclipse.swt.events.ModifyListener;\r
+import org.eclipse.swt.events.MouseListener;\r
+import org.eclipse.swt.graphics.Color;\r
+import org.eclipse.swt.graphics.Font;\r
+import org.eclipse.swt.graphics.Image;\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.Label;\r
+import org.eclipse.swt.widgets.Menu;\r
+import org.eclipse.swt.widgets.Text;\r
+import org.eclipse.ui.forms.IManagedForm;\r
+import org.eclipse.ui.forms.widgets.FormToolkit;\r
+import org.eclipse.ui.forms.widgets.TableWrapData;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ *\r
+ */\r
+public class DescriptionViewer extends Composite {\r
+\r
+       private Text textWidget;\r
+       private Label iconWidget;\r
+       private List<FocusListener> focusListeners = new ArrayList<FocusListener>();\r
+       private List<ModifyListener> modifyListeners = new ArrayList<ModifyListener>();\r
+       private List<MouseListener> mouseListeners = new ArrayList<MouseListener>();\r
+\r
+       public DescriptionViewer(Composite parent, int style, IManagedForm managedForm) {\r
+               super(parent, style);\r
+               \r
+               setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
+               \r
+               GridLayout layout = new GridLayout(2, false);\r
+               layout.marginBottom = 2;\r
+               layout.marginTop = 2;\r
+               layout.marginLeft = 2;\r
+               layout.marginRight = 2;\r
+               layout.verticalSpacing = 2;\r
+               setLayout(layout);\r
+               \r
+//             managedForm.getToolkit().adapt(this);\r
+               \r
+               iconWidget = new Label(this, style);\r
+//             textWidget = new Text(this, style);\r
+               textWidget = managedForm.getToolkit().createText(this, "", style);\r
+               textWidget.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);\r
+               \r
+               GridData iconGridData = new GridData();\r
+               iconGridData.widthHint = 8;\r
+               iconGridData.heightHint = 8;\r
+               iconGridData.verticalIndent = 4;\r
+               iconGridData.verticalAlignment = SWT.TOP;\r
+               iconWidget.setLayoutData(iconGridData);\r
+               \r
+               textWidget.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+               \r
+//             iconWidget.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_BLACK));\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.swt.widgets.Control#setFont(org.eclipse.swt.graphics.Font)\r
+        */\r
+       @Override\r
+       public void setFont(Font font) {\r
+               textWidget.setFont(font);\r
+       }\r
+       \r
+       /**\r
+        * @param text\r
+        */\r
+       public void setText(String text) {\r
+               textWidget.setText(text);\r
+       }\r
+\r
+       /**\r
+        * @param icon\r
+        */\r
+       public void setIcon(Image icon) {\r
+               iconWidget.setBackgroundImage(icon);\r
+       }\r
+\r
+       /**\r
+        * @return\r
+        */\r
+       public String getText() {\r
+               return textWidget.getText();\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.swt.widgets.Control#addFocusListener(org.eclipse.swt.events.FocusListener)\r
+        */\r
+       @Override\r
+       public void addFocusListener(FocusListener listener) {\r
+               focusListeners.add(listener);\r
+               iconWidget.addFocusListener(listener);\r
+               textWidget.addFocusListener(listener);\r
+               super.addFocusListener(listener);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.swt.widgets.Conewntrol#addMouseListener(org.eclipse.swt.events.MouseListener)\r
+        */\r
+       @Override\r
+       public void addMouseListener(MouseListener listener) {\r
+               mouseListeners.add(listener);\r
+               iconWidget.addMouseListener(listener);\r
+               textWidget.addMouseListener(listener);\r
+               super.addMouseListener(listener);\r
+       }\r
+\r
+       /**\r
+        * @param parseListener\r
+        */\r
+       public void addModifyListener(ModifyListener listener) {\r
+               modifyListeners.add(listener);\r
+               textWidget.addModifyListener(listener);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.swt.widgets.Widget#dispose()\r
+        */\r
+       @Override\r
+       public void dispose() {\r
+               \r
+               for (FocusListener listener : focusListeners) {\r
+                       textWidget.removeFocusListener(listener);\r
+                       iconWidget.removeFocusListener(listener);\r
+               }\r
+               for (MouseListener listener : mouseListeners) {\r
+                       textWidget.removeMouseListener(listener);\r
+                       iconWidget.removeMouseListener(listener);\r
+               }\r
+               for (ModifyListener listener : modifyListeners) {\r
+                       textWidget.removeModifyListener(listener);\r
+               }\r
+               super.dispose();\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)\r
+        */\r
+       @Override\r
+       public void setMenu(Menu menu) {\r
+               textWidget.setMenu(menu);\r
+               iconWidget.setMenu(menu);\r
+               super.setMenu(menu);\r
+       }\r
+\r
+       /**\r
+        * @param editable\r
+        */\r
+       public void setEditable(boolean editable) {\r
+               textWidget.setEditable(editable);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics.Color)\r
+        */\r
+       @Override\r
+       public void setBackground(Color color) {\r
+               iconWidget.setBackground(color);\r
+               textWidget.setBackground(color);\r
+               super.setBackground(color);\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see org.eclipse.swt.widgets.Widget#setData(java.lang.String, java.lang.Object)\r
+        */\r
+       @Override\r
+       public void setData(String key, Object value) {\r
+               if (FormToolkit.KEY_DRAW_BORDER.equals(key)) {\r
+                       textWidget.setData(key, value);\r
+               } else {\r
+                       super.setData(key, value);\r
+               }\r
+//             super.setData(key, value);\r
+       }\r
+}
\ No newline at end of file
index 8d1290121556e93cd85b610fefa456cdc27770c7..0b88c13803ba898a29beb40c628394130b9bc8c6 100644 (file)
@@ -7,13 +7,13 @@ import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;\r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.IHandler;\r
-import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.jface.viewers.ISelection;\r
 import org.eclipse.jface.viewers.StructuredSelection;\r
 import org.eclipse.ui.PartInitException;\r
 import org.eclipse.ui.handlers.HandlerUtil;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
 import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
 import eu.etaxonomy.taxeditor.editor.Page;\r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
@@ -31,31 +31,32 @@ public class ChangeAcceptedTaxonToSynonymHandler extends AbstractHandler
         */\r
        public Object execute(ExecutionEvent event) throws ExecutionException {\r
                \r
-               MessageDialog.openInformation(HandlerUtil.getActiveShell(event), \r
-                               "Not yet implemented", \r
-                               "'Change Accepted Taxon to Synonym' not yet implemented.");\r
-               \r
-//             TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(\r
-//                             Page.NAME);\r
-//             ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);\r
-//             \r
-//             \r
-//             \r
-//             TaxonBasePropertySource taxonBasePropertySource = \r
-//                             (TaxonBasePropertySource) ((StructuredSelection) menuSelection).getFirstElement();\r
-//             Taxon taxon = (Taxon) taxonBasePropertySource.getTaxonBase();\r
-//             \r
-//             Taxon newAcceptedTaxon = FilteredTaxonSelectionDialog.getTaxon(HandlerUtil.getActiveShell(event), taxon);\r
-////           TaxonNameBase newTaxonName = FilteredNameSelectionDialog.getName(HandlerUtil.getActiveShell(event), taxon.getName());\r
-//             \r
-//             \r
-////           IEditorInput input = TaxonEditorInput.NewInstance(newAcceptedTaxon.getUuid()); \r
-//             try {\r
-//                     EditorUtil.open(newAcceptedTaxon.getUuid());\r
-//             } catch (PartInitException e) {\r
-//                     // TODO Auto-generated catch block\r
-//                     e.printStackTrace();\r
-//             }\r
+//             MessageDialog.openInformation(HandlerUtil.getActiveShell(event), \r
+//                             "Not yet implemented", \r
+//                             "'Change Accepted Taxon to Synonym' not yet implemented.");\r
+               \r
+               TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(\r
+                               Page.NAME);\r
+               ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);\r
+               \r
+               \r
+               \r
+               TaxonBasePropertySource taxonBasePropertySource = \r
+                               (TaxonBasePropertySource) ((StructuredSelection) menuSelection).getFirstElement();\r
+               Taxon taxon = (Taxon) taxonBasePropertySource.getTaxonBase();\r
+               \r
+               Taxon newAcceptedTaxon = FilteredTaxonSelectionDialog.getTaxon(HandlerUtil.getActiveShell(event), taxon);\r
+//             TaxonNameBase newTaxonName = FilteredNameSelectionDialog.getName(HandlerUtil.getActiveShell(event), taxon.getName());\r
+               \r
+               \r
+//             IEditorInput input = TaxonEditorInput.NewInstance(newAcceptedTaxon.getUuid()); \r
+               try {\r
+                       TaxonNode taxonNode = newAcceptedTaxon.getTaxonNodes().iterator().next();\r
+                       EditorUtil.open(taxonNode.getUuid());\r
+               } catch (PartInitException e) {\r
+                       // TODO Auto-generated catch block\r
+                       e.printStackTrace();\r
+               }\r
                \r
                return null;\r
        }\r
index 453cd9b4a3d5311ec2775d981fa021160c11060f..a26c70fbd6f8dcfa774734e1c212cdb1f3e26d0a 100644 (file)
@@ -65,7 +65,7 @@ public class FilteredTaxonSelectionDialog extends FilteredCdmResourceSelectionDi
                        ItemsFilter itemsFilter, IProgressMonitor progressMonitor)\r
                        throws CoreException {\r
                progressMonitor.beginTask("Looking for taxa", 1000);\r
-               List allTaxonBases = CdmStore.searchTaxaByName("*");\r
+               List allTaxonBases = CdmStore.searchTaxaByName("*"+itemsFilter.getPattern()+"*");\r
                for (Object obj : allTaxonBases){\r
                        if (obj instanceof Taxon) {\r
                                contentProvider.add((Taxon) obj, itemsFilter);\r