1) Context menu now accessed via ruler and StyledText. 2) Took old label out of NameC...
authorp.ciardelli <p.ciardelli@localhost>
Wed, 28 Jan 2009 17:23:02 +0000 (17:23 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 28 Jan 2009 17:23:02 +0000 (17:23 +0000)
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/GroupedComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionElementComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/description/DescriptionLabelComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/AcceptedNameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/ConceptComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameViewer.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/SynonymComposite.java

index b749e195ecea8dbf2c5dfa856de0df2a67b90d65..43b612d3d9ddc6f9e1031d49cd65fd6f7a57c43f 100644 (file)
@@ -13,7 +13,6 @@ import org.apache.log4j.Logger;
 import org.eclipse.core.runtime.Assert;\r
 import org.eclipse.jface.text.IDocument;\r
 import org.eclipse.jface.text.TextViewer;\r
-import org.eclipse.jface.viewers.ViewerComparator;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.custom.StyledText;\r
 import org.eclipse.swt.dnd.DND;\r
@@ -29,7 +28,6 @@ import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.Image;\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.Menu;\r
 import org.eclipse.ui.forms.IManagedForm;\r
@@ -66,7 +64,6 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
        private static final Logger logger = Logger.getLogger(GroupedComposite.class);\r
        \r
        protected TextViewer textViewer;\r
-       protected TableWrapLayout layout;\r
        private Label draggableLabel;\r
        protected IManagedForm managedForm;\r
        protected Taxon taxon;\r
@@ -99,7 +96,7 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
                \r
        protected void createContent() {\r
                setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
-               layout = new TableWrapLayout();\r
+               TableWrapLayout layout = new TableWrapLayout();\r
                layout.numColumns = 2;\r
                layout.leftMargin = 0;\r
                setLayout(layout);\r
@@ -159,8 +156,13 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
         * @param indent\r
         */\r
        public void setIndent(int indent) {\r
-               layout.leftMargin = indent;\r
-               this.setLayout(layout);\r
+               if (getLayout() instanceof TableWrapLayout) {\r
+                       TableWrapLayout layout = ((TableWrapLayout) getLayout());\r
+                       layout.leftMargin = indent;\r
+                       this.setLayout(layout);\r
+               } else {\r
+                       logger.warn("Couldn't indent - composite's layout must be TableWrapLayout.");\r
+               }\r
        }       \r
        \r
        /* (non-Javadoc)\r
@@ -252,20 +254,18 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
                return focusListener;\r
        }\r
        \r
-//     abstract protected Font getNameCompositeFont();\r
-\r
        /* (non-Javadoc)\r
         * @see org.eclipse.swt.widgets.Control#getMenu()\r
         */\r
-       public Menu getMenu () {\r
-               \r
-               Menu menu = draggableLabel.getMenu();\r
-               if (menu == null) {\r
-                       menu = new Menu(draggableLabel);\r
-                       draggableLabel.setMenu(menu);\r
-               }\r
-               return menu;\r
-       }\r
+//     public Menu getMenu () {\r
+//             \r
+//             Menu menu = draggableLabel.getMenu();\r
+//             if (menu == null) {\r
+//                     menu = new Menu(draggableLabel);\r
+//                     draggableLabel.setMenu(menu);\r
+//             }\r
+//             return menu;\r
+//     }\r
        \r
        /**\r
         * \r
@@ -295,32 +295,7 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
        protected void setDirty(boolean isDirty) {\r
                managedForm.dirtyStateChanged();\r
        }\r
-       \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.editor.name.GroupedComposite#dispose()\r
-        */\r
-       public void dispose () {\r
                \r
-               logger.warn("disposing");\r
-               \r
-               // Nullify decorator to stop its listener to listening for\r
-               //      composite focus\r
-//             borderDecorator.dispose();\r
-               \r
-               if (dragSource != null) {\r
-                       dragSource.removeDragListener(dragSourceListener);\r
-               }\r
-               \r
-               if (getFocusListener() != null && getTextViewer() != null \r
-                               && getTextViewer().getTextWidget() != null) {\r
-                       getTextViewer().getTextWidget().removeFocusListener(getFocusListener());\r
-                       getTextViewer().getTextWidget().removeFocusListener(borderDecorator);\r
-                       getTextViewer().getTextWidget().dispose();\r
-               }\r
-\r
-               super.dispose();\r
-       }\r
-       \r
        /**\r
         * Returns a <code>ContextMenu</code> opened by right-clicking on\r
         * <code>draggableLabel</code>.\r
@@ -329,9 +304,6 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
         */\r
        protected ContextMenu createContextMenu() {\r
                ContextMenu contextMenu = new ContextMenu(getDraggableLabel());\r
-               if (getTextViewer() != null) {\r
-                       getTextViewer().getTextWidget().setMenu(contextMenu.getMenu());\r
-               }\r
                return contextMenu;\r
        }\r
        \r
@@ -348,7 +320,7 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
                draggableControl = control;\r
        }\r
 \r
-       public void setDraggable(boolean draggable) {\r
+       public void setIsDraggable(boolean draggable) {\r
 \r
                if (draggable) {\r
 \r
@@ -394,4 +366,29 @@ abstract public class GroupedComposite extends Composite implements IHasProperty
 //                     ((DragSource) event.widget).dispose();\r
                }\r
        };\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.name.GroupedComposite#dispose()\r
+        */\r
+       public void dispose () {\r
+               \r
+               logger.warn("disposing");\r
+               \r
+               // Nullify decorator to stop its listener to listening for\r
+               //      composite focus\r
+//             borderDecorator.dispose();\r
+               \r
+               if (dragSource != null) {\r
+                       dragSource.removeDragListener(dragSourceListener);\r
+               }\r
+               \r
+               if (getFocusListener() != null && getTextViewer() != null \r
+                               && getTextViewer().getTextWidget() != null) {\r
+                       getTextViewer().getTextWidget().removeFocusListener(getFocusListener());\r
+                       getTextViewer().getTextWidget().removeFocusListener(borderDecorator);\r
+                       getTextViewer().getTextWidget().dispose();\r
+               }\r
+\r
+               super.dispose();\r
+       }\r
 } 
\ No newline at end of file
index 2aa08f20126fb4cacc42045e3ef1b11e75605d91..9bd3706aa3649679fd1c3ff083862db48e0dfea3 100644 (file)
@@ -117,7 +117,7 @@ public class DescriptionElementComposite extends GroupedComposite {
         * @param transformation\r
         */\r
        public void transform(String transformation) {\r
-               setDraggable(true);\r
+               setIsDraggable(true);\r
                setFont(ELEMENT_FONT);\r
                setIcon(BLACK_SQUARE_ICON);\r
                \r
index 8536dd908089d414ffff94df8fe215e03f22d560..5061cd34610809eba8279672a689ad3f6ea7e6d2 100644 (file)
@@ -78,7 +78,7 @@ public class DescriptionLabelComposite extends GroupedComposite {
        }\r
 \r
        public void transform(String transformation) {\r
-               setDraggable(false);\r
+               setIsDraggable(false);\r
                setFont(DESCRIPTION_LABEL_FONT);\r
                setIcon(DESCRIPTION_LABEL_ICON);\r
                \r
index 2572557266aa204d6cd84af5925a073132c02b1b..364635c0e4d492b30c4926b83a7148877f878b16 100644 (file)
@@ -15,11 +15,9 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.forms.IManagedForm;\r
 import org.eclipse.ui.views.properties.IPropertySource;\r
 \r
-import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.taxeditor.actions.name.CreateConceptRelationAction;\r
 import eu.etaxonomy.taxeditor.actions.name.CreateMisappliedNameAction;\r
 import eu.etaxonomy.taxeditor.actions.ui.ChangeTaxonToSynonymAction;\r
@@ -42,7 +40,7 @@ public class AcceptedNameComposite extends NameComposite {
                        Taxon taxon) {\r
                super(groupComposite, form, NameComposite.ACCEPTED_TAXON, taxon);\r
        \r
-               setDraggable(false);\r
+               setIsDraggable(false);\r
                setIcon(ACCEPTED_ICON);\r
                setFont(getViewerFont());\r
                setIndent(ACCEPTED_INDENT);\r
index a36b9666cdcd89f5d249fd4c4dedf6382a5702d3..e44a01491605426d925c84cf676b33149c222041 100644 (file)
@@ -47,7 +47,7 @@ public class ConceptComposite extends NameComposite {
                this.relationshipType = relationshipType;\r
                this.acceptedTaxonIsFromTaxon = acceptedTaxonIsFromTaxon;\r
                \r
-               setDraggable(true);\r
+               setIsDraggable(true);\r
                setIcon(CONCEPT_ICON);\r
                setFont(getViewerFont());\r
                setIndent(CONCEPT_INDENT);\r
index 54f16d03688c8efe56d63af4d929a8c43c90c99d..c88460cade38fe4e54a3166509527d2cb3be5c6c 100644 (file)
@@ -49,7 +49,7 @@ public class MisappliedNameComposite extends NameComposite {
                this.taxon = taxon;\r
                this.misappliedName = misappliedName;\r
                \r
-               setDraggable(true);\r
+               setIsDraggable(true);\r
                setIcon(MISAPPLIEDNAME_ICON);\r
                setFont(getViewerFont());\r
                setIndent(MISAPPLIEDNAME_INDENT);\r
index 4466f498a66035389d8c69afcb1f94ae688a91b6..dbe62c1eea0cd51412054e53360a2c6938b07e2a 100644 (file)
@@ -17,22 +17,18 @@ import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
 import org.eclipse.core.runtime.Assert;\r
 import org.eclipse.jface.action.Action;\r
-import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.custom.StyledText;\r
-import org.eclipse.swt.events.DisposeEvent;\r
-import org.eclipse.swt.events.DisposeListener;\r
 import org.eclipse.swt.events.FocusAdapter;\r
 import org.eclipse.swt.events.FocusEvent;\r
 import org.eclipse.swt.events.KeyAdapter;\r
 import org.eclipse.swt.events.KeyEvent;\r
-import org.eclipse.swt.events.KeyListener;\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.FillLayout;\r
-import org.eclipse.swt.layout.GridData;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.ui.forms.IManagedForm;\r
 import org.eclipse.ui.forms.widgets.TableWrapData;\r
+import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
 import org.eclipse.ui.views.properties.IPropertySource;\r
 \r
 import eu.etaxonomy.cdm.model.name.BotanicalName;\r
@@ -45,6 +41,7 @@ import eu.etaxonomy.taxeditor.ITaxEditorConstants;
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
 import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.editor.GroupedComposite;\r
 import eu.etaxonomy.taxeditor.editor.LineBreakListener;\r
 import eu.etaxonomy.taxeditor.editor.ParseListener;\r
@@ -163,6 +160,8 @@ public abstract class NameComposite extends GroupedComposite {
                createBorderSupport();\r
                createLineWrapSupport();\r
                \r
+               setDraggableControl(nameViewer.getRulerControl());\r
+               \r
 //             setData(taxonBase);\r
 \r
                createParser();\r
@@ -174,6 +173,17 @@ public abstract class NameComposite extends GroupedComposite {
                createNameListener(taxonBase.getName());\r
        }\r
 \r
+       protected void createContent() {\r
+               setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
+               TableWrapLayout layout = new TableWrapLayout();\r
+               layout.leftMargin = 0;\r
+               setLayout(layout);\r
+               \r
+               Color groupBackgroundColor = TaxEditorPlugin.getDefault().\r
+                               getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR);\r
+               setBackground(groupBackgroundColor);\r
+       }\r
+       \r
        protected String getEmptyTextPrompt() {\r
                return EMPTY_NAME_PROMPT;\r
        }\r
@@ -296,23 +306,14 @@ public abstract class NameComposite extends GroupedComposite {
                                \r
                nameViewer.clearErrors();\r
                \r
-//             if (getData() instanceof TaxonBase) {\r
-//                     TaxonBase taxonBase = (TaxonBase) getData();\r
-//                     \r
-//                     TaxonNameBase name = taxonBase.getName();\r
-//                     nameViewer.setShowParsingError(name);   \r
-//             }\r
                nameViewer.setShowParsingError(getName());\r
                \r
        }\r
        \r
        private NameViewer createNameViewer() {\r
                \r
-               viewerComposite = new Composite(this, SWT.NONE);\r
-               viewerComposite.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.MIDDLE));\r
-               viewerComposite.setLayout(new FillLayout());\r
+               nameViewer = new NameViewer(this);\r
                \r
-               nameViewer = new NameViewer(viewerComposite);\r
                StyledText styledText = nameViewer.getTextWidget();\r
 //             nameViewer.setLineBreakListener(new LineBreakListener() {\r
                \r
@@ -364,8 +365,6 @@ public abstract class NameComposite extends GroupedComposite {
        \r
 \r
        IUndoableOperation operation;\r
-\r
-       private Composite viewerComposite;\r
        \r
        protected void setOperation(IUndoableOperation operation) {\r
                this.operation = operation;\r
@@ -389,13 +388,13 @@ public abstract class NameComposite extends GroupedComposite {
        \r
        public void createBorderSupport() {\r
                super.createBorderSupport();\r
-               if (viewerComposite != null) {\r
-                       borderDecorator.setBorderedComposite(viewerComposite);\r
+               if (nameViewer != null) {\r
+                       borderDecorator.setBorderedComposite(nameViewer.getTextWidget());\r
                }\r
        }\r
        \r
        public void setIcon(Image icon) {\r
-               super.setIcon(icon);\r
+//             super.setIcon(icon);\r
                if (nameViewer != null) {\r
                        nameViewer.setIcon(icon);\r
                }\r
@@ -418,4 +417,15 @@ public abstract class NameComposite extends GroupedComposite {
                \r
                return null;\r
        }\r
+       \r
+       protected ContextMenu createContextMenu() {\r
+               if (nameViewer != null) {\r
+                       ContextMenu contextMenu = new ContextMenu(nameViewer.getRulerControl());\r
+                       nameViewer.getTextWidget().setMenu(contextMenu.getMenu());\r
+                       return contextMenu;\r
+               } else {\r
+                       logger.warn("Can't create menu because nameViewer has not been initalized.");\r
+                       return null;\r
+               }\r
+       }\r
 }
\ No newline at end of file
index 82721cb1bdad3664e23c2bc169fa0412bcc886a8..106db13299ad7fa18eec8cdf1f055c746502c516 100644 (file)
@@ -34,12 +34,16 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;\r
 import org.eclipse.swt.graphics.Image;\r
 import org.eclipse.swt.graphics.Point;\r
+import org.eclipse.swt.layout.GridLayout;\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.Layout;\r
 import org.eclipse.ui.IActionBars;\r
 import org.eclipse.ui.IEditorSite;\r
 import org.eclipse.ui.actions.ActionFactory;\r
+import org.eclipse.ui.forms.widgets.TableWrapData;\r
+import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
 import org.eclipse.ui.operations.OperationHistoryActionHandler;\r
 import org.eclipse.ui.operations.RedoActionHandler;\r
 import org.eclipse.ui.operations.UndoActionHandler;\r
@@ -68,6 +72,9 @@ public class NameViewer extends SourceViewer {
        private static final Logger logger = Logger\r
                        .getLogger(NameViewer.class);\r
        \r
+       /**\r
+        * Uses the viewer's StyledText widget to compute its height. \r
+        */\r
        class RulerLayoutExtension extends RulerLayout {\r
                RulerLayoutExtension(int gap) {\r
                        super(gap);\r
@@ -96,14 +103,23 @@ public class NameViewer extends SourceViewer {
                // Set background color of ruler\r
                ruler.getControl().setBackground(TaxEditorPlugin.getDefault().\r
                                getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR));\r
-               ruler.getControl().setBackgroundImage(TaxEditorPlugin.getDefault().\r
-                               getImage(ITaxEditorConstants.EDIT_BITMAP_ICON));\r
-//             ruler.setModel(annotationModel); // TODO confirm this is really unnecessary \r
                \r
-\r
-               // Lay out StyledText\r
-//             StyledText textWidget = this.getTextWidget();\r
-//             textWidget.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
+               // Set background color of strip between ruler and textWidget\r
+               getTextWidget().getParent().setBackground(TaxEditorPlugin.getDefault().\r
+                               getColor(ITaxEditorConstants.GROUP_GRAY_BKG_COLOR)); \r
+                               \r
+               // Lay out the text widget\r
+               getTextWidget().getParent().setLayoutData(\r
+                               new TableWrapData (TableWrapData.FILL_GRAB, TableWrapData.MIDDLE));\r
+               \r
+               TableWrapLayout widgetLayout = new TableWrapLayout();\r
+               widgetLayout.bottomMargin = 10; // Does nothing\r
+               getTextWidget().setLayout(widgetLayout);\r
+                       \r
+               // This does crazy shit!\r
+//             TableWrapLayout widgetLayout2 = new TableWrapLayout();\r
+//             widgetLayout2.bottomMargin = 10;\r
+//             getTextWidget().getParent().setLayout(widgetLayout2);\r
                \r
                createAnnotationPainter();\r
 \r
@@ -119,6 +135,10 @@ public class NameViewer extends SourceViewer {
                \r
 \r
        }\r
+       \r
+       public Control getRulerControl() {\r
+               return ruler.getControl();\r
+       }\r
 \r
        public void setIcon(Image icon) {\r
                if (ruler instanceof RulerWithIcon) {\r
index 6ee33b28afb3f30c560b1c489f117e937091e577..589bab86b67a733cb1c625abde71f30a102618f2 100644 (file)
@@ -62,7 +62,7 @@ public class SynonymComposite extends NameComposite {
                \r
                this.undoContext = EditorController.getUndoContext(taxon);\r
                \r
-               setDraggable(true);\r
+               setIsDraggable(true);\r
                setFont(getViewerFont());\r
                setIndent(SYNONYM_INDENT);\r
                \r