Added message and link "Your data source is empty. Click here to create a root taxon...
authorp.ciardelli <p.ciardelli@localhost>
Wed, 17 Sep 2008 15:28:49 +0000 (15:28 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 17 Sep 2008 15:28:49 +0000 (15:28 +0000)
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/SideBySidePerspective.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/TaxEditorPlugin.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/UiUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/SaveTaxonAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenTaxonEditorAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/LeftPane.java [deleted file]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/NameListView.java [deleted file]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/TaxonomicTreeView.java

index 5529b921385037590c049a06b03e6eac90717cc7..1a22cd9f40d91c463f9a89180ed3c21790aaf67d 100644 (file)
@@ -492,8 +492,6 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/TaxTreeC
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/TaxonomicTreeContentProvider.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/FavoritesTableViewer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/FavoritesView.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/LeftPane.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/NameListView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/RecentNamesTableViewer.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/RecentNamesView.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/SearchView.java -text
index fce0b6a93242ee4bdd3561bd2f1a45af27e425e9..81f02839f6f49e511719ea6e001308f418e16088 100644 (file)
@@ -5,7 +5,6 @@ import org.eclipse.ui.IPageLayout;
 import org.eclipse.ui.IPerspectiveFactory;
 
 import eu.etaxonomy.taxeditor.navigation.FavoritesView;
-import eu.etaxonomy.taxeditor.navigation.NameListView;
 import eu.etaxonomy.taxeditor.navigation.RecentNamesView;
 import eu.etaxonomy.taxeditor.navigation.SearchView;
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView;
index ac4602e97fb717b9a663893a69fca4a9ad09b49b..b9e86b0ac2cef5b75355031514f3256288b032e0 100644 (file)
@@ -65,6 +65,7 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView;\r
+import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 \r
 /**\r
  * The class controlling the plug-in life cycle.\r
@@ -139,7 +140,7 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
 \r
                if (initDatastore) {\r
                        dbSchemaValidation = DbSchemaValidation.CREATE;\r
-                       initDatastore();\r
+//                     initDatastore();\r
                }\r
 \r
                cdmApp = getCdmApp();\r
@@ -455,34 +456,14 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
        }\r
        \r
        private void disposeColors() {\r
+               if (colorMap == null) {\r
+                       return;\r
+               }\r
         for (Color color : colorMap.values()) {\r
                color.dispose();\r
         }\r
         colorMap.clear();\r
        }\r
-       \r
-       /***************************************************************************\r
-        * PREFERENCES\r
-        **************************************************************************/\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeDefaultPreferences(org.eclipse.jface.preference.IPreferenceStore)\r
-        */\r
-//     protected void initializeDefaultPreferences(IPreferenceStore store) {\r
-//             // Platform.getPreferencesService().getBoolean(qualifier, key,\r
-//             // defaultValue, contexts)\r
-//             store.setDefault(ITaxEditorConstants.CODE_PREFERENCE,\r
-//                             ITaxEditorConstants.DEFAULT_CODE_PREFERENCE);\r
-//             \r
-//             // Set preferences to display all features\r
-//             TermVocabulary<Feature> features = descriptionService.getDefaultFeatureVocabulary();\r
-//             for (Feature feature : features) {\r
-//                     String preferenceKey = ITaxEditorConstants.FEATURE_PREFERENCE \r
-//                             . concat(".")\r
-//                             . concat(feature.getUuid().toString());\r
-//                     store.setDefault(preferenceKey, true);\r
-//             }\r
-//             \r
-//     }\r
 \r
        /***************************************************************************\r
         * TAXONOMIC TREE\r
@@ -511,10 +492,10 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
        public Set<Taxon> getSessionRootTaxa() {\r
                if (sessionRootTaxa == null) {\r
                        sessionRootTaxa = new HashSet<Taxon>();\r
-//                     sessionRootTaxa.addAll(getCdmApp().getTaxonService().getRootTaxa(\r
-//                                     getSec(), null, false));\r
                        sessionRootTaxa.addAll(getCdmApp().getTaxonService().getRootTaxa(\r
-                                       getSec(), null, true));                 \r
+                                       getSec(), null, false));\r
+//                     sessionRootTaxa.addAll(getCdmApp().getTaxonService().getRootTaxa(\r
+//                                     getSec(), null, true));                 \r
                        addSessionTaxa(sessionRootTaxa);\r
                }\r
                return sessionRootTaxa;\r
@@ -638,25 +619,25 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
                // Add taxon to its parent's child map\r
                getSessionTaxonomicChildren(parentTaxon).add(taxon);\r
                                \r
-               if (taxonomicTreeView != null) {\r
+               TaxonomicTreeViewer viewer = UiUtil.getTreeViewer();\r
                \r
-                       UiUtil.getTreeViewer().remove(taxon);\r
+               if (viewer != null) {\r
                        \r
                        if (parentTaxon == null) {\r
-                               UiUtil.getTreeViewer().setInput(getSessionRootTaxa());\r
+                               viewer.setInput(getSessionRootTaxa());\r
                        } else {\r
-                               UiUtil.getTreeViewer().add(parentTaxon, taxon);                 \r
+                               viewer.add(parentTaxon, taxon);                 \r
                        }\r
                \r
                }\r
        }\r
 \r
        \r
-       private TaxonomicTreeView taxonomicTreeView;\r
-       \r
-       public void setTaxonomicTree(TaxonomicTreeView taxonomicTreeView) {\r
-               this.taxonomicTreeView = taxonomicTreeView;\r
-       }\r
+//     private TaxonomicTreeView taxonomicTreeView;\r
+//     \r
+//     public void setTaxonomicTree(TaxonomicTreeView taxonomicTreeView) {\r
+//             this.taxonomicTreeView = taxonomicTreeView;\r
+//     }\r
        \r
        /***************************************************************************\r
         * RANKS\r
index 1eba4424f546ecd4b7387f9be820c34f320c806d..6b81e9690067696f622dfbec2efb8fa58600255d 100644 (file)
@@ -16,8 +16,8 @@ import org.apache.log4j.Logger;
 import org.eclipse.core.commands.operations.IOperationHistory;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.OperationHistoryFactory;\r
+import org.eclipse.core.runtime.Assert;\r
 import org.eclipse.jface.preference.IPreferenceStore;\r
-import org.eclipse.jface.viewers.TreeViewer;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.swt.widgets.Shell;\r
@@ -169,19 +169,48 @@ public class UiUtil {
                                getActivePage().findView(id);\r
        }\r
        \r
+\r
        /**\r
+        * Returns the <code>TaxonomicTreeViewer</code> used for navigation. Not to \r
+        * be confused with the window that contains it, <code>TaxonomicTreeView</code>. \r
+        * \r
         * @return\r
         */\r
        public static TaxonomicTreeViewer getTreeViewer() {\r
+               TaxonomicTreeView view = getTreeView();\r
+               if (view == null) {\r
+                       return null;\r
+               }\r
+               return view.getTreeViewer();\r
+       }\r
+\r
+       /**\r
+        * @see eu.etaxonomy.taxeditor.navigation.TaxonomicTreeView#createTreeViewer()\r
+        * \r
+        * @return\r
+        */\r
+       public static TaxonomicTreeViewer createTreeViewer() {\r
+               TaxonomicTreeView view = getTreeView();\r
+               if (view == null) {\r
+                       return null;\r
+               }\r
+               return view.createTreeViewer();\r
+       }\r
+       \r
+       /**\r
+        * Returns the <code>TaxonomicTreeView</code> containing the \r
+        * <code>TaxonomicTreeViewer</code> used for navigation. \r
+        * \r
+        * @return\r
+        */     \r
+       public static TaxonomicTreeView getTreeView() {\r
                IViewPart view = getViewById(TaxonomicTreeView.ID);\r
-               if (view instanceof TaxonomicTreeView) {\r
-                       TreeViewer viewer = ((TaxonomicTreeView) view).getTreeViewer();\r
-                       if (viewer instanceof TaxonomicTreeViewer) {\r
-                               return (TaxonomicTreeViewer) viewer;\r
-                       }\r
-               } \r
-               return null;\r
+               if (view == null || !(view instanceof TaxonomicTreeView)) {\r
+                       return null;\r
+               }\r
+               return (TaxonomicTreeView) view;\r
        }\r
+       \r
 \r
        public static IWorkbenchOperationSupport getOperationSupport() {\r
                IWorkbench workbench = TaxEditorPlugin.getDefault().getWorkbench();\r
@@ -210,14 +239,6 @@ public class UiUtil {
                }\r
        }\r
        \r
-       public static void logSessionCollectionMembership(Taxon taxon) {\r
-               String dashes = "---------------------------------------";\r
-               logger.warn(dashes);\r
-               logger.warn(CdmUtil.getDisplayName(taxon));\r
-               logger.warn(dashes);\r
-               logger.warn("In root taxa? " + TaxEditorPlugin.getDefault().getSessionRootTaxa().contains(taxon));\r
-               logger.warn(dashes);\r
-       }\r
 \r
        public static EditorGroupComposite getMisappliedNameGroupComposite(\r
                        IManagedForm managedForm) {\r
index b22b03b14cee1aef3d7b86e3ac12511ccf7ce00f..f01266d5a388e306d66427e2e4d8a50e462eada5 100644 (file)
@@ -30,6 +30,12 @@ public class SaveTaxonAction extends Action {
 //             if (!TaxEditorPlugin.getDefault().getObservableRecentNamesList().contains(taxon)) {     \r
 //                     TaxEditorPlugin.getDefault().getObservableRecentNamesList().add(0, taxon);\r
 //             }\r
+\r
+               // If this action creates a root taxon, create the tax. tree\r
+               TaxonomicTreeViewer treeViewer = UiUtil.getTreeViewer();\r
+               if (treeViewer == null) {\r
+                       treeViewer = UiUtil.createTreeViewer();\r
+               }               \r
                \r
                TaxEditorPlugin.getDefault().addSessionTaxon(taxon);\r
                \r
@@ -39,11 +45,8 @@ public class SaveTaxonAction extends Action {
                // Notify taxon listeners in case name has been updated - updates editor view tab and recent names\r
                taxon.firePropertyChange("name", null, null);\r
 \r
+               \r
                // Open node on save\r
-               TaxonomicTreeViewer treeViewer = UiUtil.getTreeViewer();\r
-               if (treeViewer == null) {\r
-                       return;\r
-               }\r
                treeViewer.revealTaxon(taxon);\r
                \r
        }\r
index 666e289f3b5dd2e70ec81c665f2fba468f40b8e3..ea91875691bd4f42d5bd9ee924a4321916226617 100644 (file)
@@ -22,6 +22,7 @@ import eu.etaxonomy.taxeditor.UiUtil;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 import eu.etaxonomy.taxeditor.model.NameEditorInput;\r
+import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;\r
 \r
 /**\r
  * Opens a taxon editor for an existing or new taxon.\r
@@ -70,6 +71,13 @@ public class OpenTaxonEditorAction extends Action {
                        TaxonNameBase name = CdmUtil.parseFullReference("", null, null);\r
 //                     BotanicalName name = BotanicalName.NewInstance(Rank.GENUS());\r
                        this.taxon = Taxon.NewInstance(name, CdmUtil.getSessionDefaultSec());\r
+               } else {\r
+                       \r
+                       // If this taxon is not visible in the tree, open node\r
+                       TaxonomicTreeViewer treeViewer = UiUtil.getTreeViewer(); \r
+                       if (treeViewer != null) {\r
+                               treeViewer.revealTaxon(taxon);\r
+                       }\r
                }\r
                                \r
                // If this is a non-empty taxon being opened for the first time,\r
@@ -78,10 +86,7 @@ public class OpenTaxonEditorAction extends Action {
                                !TaxEditorPlugin.getDefault().getObservableRecentNamesList().contains(taxon)) {\r
                        TaxEditorPlugin.getDefault().getObservableRecentNamesList().add(0, taxon);\r
                }\r
-               \r
-               // If this taxon is not visible in the tree, open node\r
-               UiUtil.getTreeViewer().revealTaxon(taxon);\r
-               \r
+\r
                IEditorInput input = new NameEditorInput(taxon);\r
        try {\r
                        UiUtil.openEditor(input, MultiPageTaxonEditor.ID);\r
index 32bb14a9f51416501bd59da5bf1286f67bba41bc..169053190396e2e8ee0c2167d5db3953595936af 100644 (file)
@@ -21,7 +21,6 @@ import org.eclipse.ui.part.MultiPageEditorPart;
 \r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;\r
 import eu.etaxonomy.taxeditor.editor.description.TaxonDescriptionEditorView;\r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditorView;\r
@@ -45,9 +44,7 @@ public class MultiPageTaxonEditor extends MultiPageEditorPart {
                \r
        @Override\r
        protected void createPages() {\r
-               \r
-               UiUtil.logSessionCollectionMembership(taxon);\r
-               \r
+                               \r
                try {\r
                        addPage(0, new TaxonNameEditorView(), getEditorInput());\r
                        setPageText(0, "Name");\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/LeftPane.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/LeftPane.java
deleted file mode 100644 (file)
index 8dfc1ea..0000000
+++ /dev/null
@@ -1,522 +0,0 @@
-package eu.etaxonomy.taxeditor.navigation;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-\r
-import org.eclipse.jface.action.IMenuManager;\r
-import org.eclipse.jface.action.IToolBarManager;\r
-import org.eclipse.jface.viewers.ITreeViewerListener;\r
-import org.eclipse.jface.viewers.TreeExpansionEvent;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.custom.SashForm;\r
-import org.eclipse.swt.events.FocusEvent;\r
-import org.eclipse.swt.events.FocusListener;\r
-import org.eclipse.swt.graphics.GC;\r
-import org.eclipse.swt.graphics.Point;\r
-import org.eclipse.swt.graphics.Rectangle;\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.Control;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Event;\r
-import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Listener;\r
-import org.eclipse.swt.widgets.Menu;\r
-import org.eclipse.swt.widgets.MenuItem;\r
-import org.eclipse.swt.widgets.Sash;\r
-import org.eclipse.swt.widgets.Text;\r
-import org.eclipse.swt.widgets.TreeItem;\r
-import org.eclipse.ui.forms.FormColors;\r
-import org.eclipse.ui.forms.IFormColors;\r
-import org.eclipse.ui.forms.ManagedForm;\r
-import org.eclipse.ui.forms.events.ExpansionAdapter;\r
-import org.eclipse.ui.forms.events.ExpansionEvent;\r
-import org.eclipse.ui.forms.widgets.ColumnLayout;\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
-import org.eclipse.ui.part.ViewPart;\r
-\r
-import com.swtdesigner.ResourceManager;\r
-import com.swtdesigner.SWTResourceManager;\r
-\r
-import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-\r
-public class LeftPane extends ViewPart {\r
-\r
-       public static final String ID = "eu.etaxonomy.taxeditor.editor.LeftPane"; //$NON-NLS-1$\r
-       private Composite body;\r
-       private FormToolkit toolkit;\r
-       private ScrolledForm scrolledForm;\r
-       private TaxonomicTreeViewer treeViewer;\r
-       private RecentNamesTableViewer recentNamesViewer;\r
-       private ManagedForm managedForm;\r
-       private SashForm sashForm;\r
-\r
-       /**\r
-        * Create contents of the view part\r
-        * @param parent\r
-        */\r
-       @Override\r
-       public void createPartControl(Composite parent) {\r
-\r
-               managedForm = new ManagedForm(parent);\r
-               this.toolkit = managedForm.getToolkit();\r
-               this.scrolledForm = managedForm.getForm();\r
-               this.body = scrolledForm.getBody();\r
-                               \r
-               ColumnLayout layout = new ColumnLayout();\r
-               layout.topMargin = 0;\r
-               layout.bottomMargin = 5;\r
-               layout.leftMargin = 10;\r
-               layout.rightMargin = 10;\r
-               layout.horizontalSpacing = 10;\r
-               layout.verticalSpacing = 10;\r
-               layout.maxNumColumns = 4;\r
-               layout.minNumColumns = 1;               \r
-               this.body.setLayout(layout);\r
-//             this.body.setLayout(new FillLayout());\r
-               \r
-//             this.body.setLayoutData(new ColumnLayoutData(SWT.DEFAULT, SWT.TOP));\r
-               \r
-               // Create non-resizable datasource element \r
-               createDatasourceInfo();\r
-\r
-               // Create sash form to put resizable elements on\r
-//             this.sashForm = new MDSashForm(this.body, SWT.VERTICAL);\r
-//             toolkit.adapt(sashForm, false, false);\r
-\r
-               createTaxonomicTree();\r
-               createRecentNames();\r
-               createSearch();\r
-               createFavorites();\r
-               \r
-//             this.sashForm.setWeights(new int[] { 30, 20, 20, 20 });\r
-//             hookResizeListener();\r
-               \r
-               createActions();\r
-               initializeToolBar();\r
-               initializeMenu();\r
-       }\r
-\r
-       private void createDatasourceInfo() {\r
-               \r
-               Composite composite = toolkit.createComposite(body, SWT.NONE);\r
-               GridLayout gridLayout = new GridLayout();\r
-               gridLayout.numColumns = 2;\r
-               composite.setLayout(gridLayout);\r
-               \r
-               Label lblDataSource = new Label(composite, SWT.NONE);\r
-               toolkit.adapt(lblDataSource, true, true);\r
-               lblDataSource.setFont(SWTResourceManager.getFont("Arial", 14, SWT.BOLD));\r
-               lblDataSource.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               lblDataSource.setAlignment(SWT.CENTER);\r
-               lblDataSource.setText(" Palmweb");              \r
-               \r
-               Label lblDbImg = new Label(composite, SWT.NONE);\r
-               lblDbImg.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));\r
-               toolkit.adapt(lblDbImg, true, true);\r
-               lblDbImg.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               lblDbImg.setImage(ResourceManager.getPluginImage(TaxEditorPlugin.getDefault(), "icons/db.gif"));\r
-\r
-               Menu menu = new Menu(lblDbImg);\r
-               lblDbImg.setMenu(menu);\r
-\r
-               MenuItem checkboxMenuItem = new MenuItem(menu, SWT.CHECK);\r
-               checkboxMenuItem.setSelection(true);\r
-               checkboxMenuItem.setText("Euro+Med (mssql://128.14.101.12:80/europlusmed)");\r
-\r
-               MenuItem checkboxMenuItem_1 = new MenuItem(menu, SWT.CHECK);\r
-               checkboxMenuItem_1.setText("WP6 (mssql://128.14.101.13:80/wp6)");\r
-\r
-               MenuItem palmWebora1922299480pwMenuItem = new MenuItem(menu, SWT.NONE);\r
-               palmWebora1922299480pwMenuItem.setText("Palm Web (ora://192.22.99.4:80/pw)");\r
-\r
-               new MenuItem(menu, SWT.SEPARATOR);\r
-\r
-               MenuItem newDataSourceMenuItem = new MenuItem(menu, SWT.NONE);\r
-               newDataSourceMenuItem.setText("New data source ...");\r
-               \r
-               Label lblDataSource2 = new Label(composite, SWT.NONE);\r
-               lblDataSource2.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false, 2, 1));\r
-               lblDataSource2.setFont(SWTResourceManager.getFont("Arial", 8, SWT.NONE));\r
-               lblDataSource2.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               lblDataSource2.setAlignment(SWT.CENTER);\r
-               lblDataSource2.setText("  mssql://128.14.101.12:80/palmweb");           \r
-               \r
-       }       \r
-       \r
-       private void createTaxonomicTree() {\r
-\r
-//             final Composite treeComp = createExpandableSection("Taxonomic tree", null);\r
-               final Composite treeComp = createSection("Taxonomic tree", null, 1);\r
-               \r
-               treeComp.getParent().addListener(SWT.Resize, new Listener() {\r
-\r
-                       @Override\r
-                       public void handleEvent(Event event) {\r
-                               System.out.println("resizing");\r
-                       }\r
-                       \r
-               });\r
-               \r
-               treeComp.setRedraw(true);\r
-//             treeComp.setData(FormToolkit.TEXT_BORDER);\r
-               treeViewer = new TaxonomicTreeViewer(treeComp);\r
-//             treeViewer.getTree().setLayout(new ColumnLayout());\r
-//             treeViewer.getTree().setLayoutData(new ColumnLayoutData());\r
-//             treeViewer.getTree().setLayoutData(new TableWrapData(\r
-//                             TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB));\r
-               treeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-//             treeViewer.getTree().setData(FormToolkit.TREE_BORDER);\r
-               \r
-               treeViewer.getTree().addListener(SWT.Resize, new Listener() {\r
-\r
-                       @Override\r
-                       public void handleEvent(Event event) {\r
-                               \r
-                               if (event.item != null)\r
-                                       System.out.println("item " + event.item.toString());\r
-\r
-                               if (event.widget != null)\r
-                                       System.out.println("widget " + event.widget.toString());\r
-                               \r
-//                             event.doit;\r
-                               \r
-                       }\r
-                       \r
-               });\r
-               \r
-               toolkit.paintBordersFor(treeComp);\r
-               toolkit.paintBordersFor(treeComp.getParent());\r
-               toolkit.adapt(treeViewer.getTree(), true, true);\r
-               treeViewer.getTree().addListener(SWT.Expand, new Listener() {\r
-\r
-                       @Override\r
-                       public void handleEvent(Event event) {\r
-                               TreeItem item = (TreeItem) event.item;\r
-                               int itemHeight = item.getBounds().height;\r
-                               \r
-                               System.out.println("Before " + treeComp.getBounds().height + " " + treeViewer.getTree().getBounds().height);\r
-                               // adding elements to treeComp causes the section to resize\r
-//                             toolkit.createText(treeComp, "Joe mama", SWT.SINGLE );\r
-                               \r
-                               Rectangle rectangle3 = treeComp.getParent().getBounds();\r
-                               rectangle3.height = rectangle3.height + (itemHeight * item.getItems().length);  \r
-                               treeComp.getParent().setBounds(rectangle3);\r
-                               \r
-                               Rectangle rectangle2 = treeComp.getBounds();\r
-                               rectangle2.height = rectangle2.height + (itemHeight * item.getItems().length);  \r
-                               treeComp.setBounds(rectangle2);\r
-//                             \r
-//\r
-                               Rectangle rectangle = treeViewer.getTree().getBounds();\r
-//                             System.out.println(rectangle.height);\r
-                               rectangle.height = rectangle.height + (itemHeight * item.getItems().length);  \r
-                               treeViewer.getTree().setBounds(rectangle);\r
-//                             treeViewer.getTree()..redraw();\r
-//                             System.out.println(rectangle.height);\r
-                               \r
-                               System.out.println("After " + treeComp.getBounds().height + " " + treeViewer.getTree().getBounds().height);\r
-                               \r
-                               treeViewer.getTree().setVisible(false);\r
-//                             treeViewer.getTree().setVisible(true);\r
-                               \r
-//                             treeComp.setVisible(false); \r
-//                             treeComp.setVisible(true);\r
-//                             treeViewer.getTree().g\r
-                               \r
-//                             treeViewer.getTree().layout();\r
-//                             treeViewer.getTree().redraw();\r
-//                             treeViewer.getControl().redraw();\r
-//                             treeComp.layout();\r
-//                             treeComp.redraw();                      \r
-                               scrolledForm.reflow(true);\r
-//                             toolkit.paintBordersFor(treeComp);\r
-//                             toolkit.paintBordersFor(treeComp.getParent());\r
-                               \r
-//                             System.out.println(item.getItems().length);\r
-                               \r
-//                             System.out.println(event.widget.getClass());\r
-//                             System.out.println(event. .getClass());\r
-                       }\r
-                       \r
-               });\r
-               treeViewer.addTreeListener(new ITreeViewerListener() {\r
-\r
-                       @Override\r
-                       public void treeCollapsed(TreeExpansionEvent event) {\r
-                               Point point = treeViewer.getTree().computeSize(SWT.DEFAULT, SWT.DEFAULT);\r
-//                             SharedScrolledComposite s;\r
-//                             System.out.println(point);\r
-//                             treeComp.layout();\r
-//                             treeComp.redraw();\r
-//                             body.redraw();\r
-//                             System.out.println(treeViewer.getControl().getBounds().height);\r
-//                             scrolledForm.reflow(true);\r
-//                             System.out.println(treeViewer.getTree().getItemHeight() . getVisibleExpandedElements().length);\r
-                       }\r
-\r
-                       @Override\r
-                       public void treeExpanded(TreeExpansionEvent event) {\r
-                               Point point = treeViewer.getTree().computeSize(SWT.DEFAULT, SWT.DEFAULT);\r
-//                             System.out.println(point);\r
-                               \r
-//                             Object[] visibleElements = treeViewer.getVisibleExpandedElements();\r
-//                             treeViewer.getTree().setSize(treeViewer.getTree().computeSize(SWT.DEFAULT, SWT.DEFAULT));\r
-                               \r
-                               \r
-//                             body.layout();\r
-//                             body.redraw();\r
-//                             scrolledForm.reflow(true);\r
-//                             treeViewer.getTree().layout();\r
-//                             treeViewer.getTree().redraw();\r
-//                             treeViewer.getControl().redraw();\r
-//                             treeComp.layout();\r
-//                             treeComp.redraw();\r
-//                             System.out.println(treeViewer.getControl().getBounds().height);\r
-//                             scrolledForm.reflow(true);\r
-                               // event.getElement() -> Taxon\r
-                               // event.getSource() -> TaxonomicTreeViewer\r
-//                             treeViewer.getTree().get\r
-//                             System.out.println(((Taxon) event.getElement()).get .getItemCount());\r
-//                             System.out.println(treeViewer.getVisibleExpandedElements().length);\r
-                       }\r
-               });\r
-               \r
-       }\r
-\r
-       private void createRecentNames() {\r
-\r
-//             recentNamesViewer = new RecentNamesTableViewer(createExpandableSection(\r
-//                             "Recently viewed names", null));\r
-               recentNamesViewer = new RecentNamesTableViewer(createSection(\r
-                               "Recently viewed names", null, 1));             \r
-//             recentNamesViewer.getTable().setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
-               toolkit.adapt(recentNamesViewer.getTable(), true, true);                \r
-       }       \r
-\r
-\r
-       private void createSearch() {\r
-//             Composite searchComposite = createExpandableSection("Search", null);\r
-               Composite searchComposite = createSection("Search", null, 2);\r
-               \r
-//             searchComposite.setLayout(new TableWrapLayout());\r
-//             ((TableWrapLayout) searchComposite.getLayout()).numColumns = 2;\r
-\r
-               final Text searchText = new Text(searchComposite, SWT.SINGLE);\r
-               searchText.setData(FormToolkit.TEXT_BORDER);\r
-               toolkit.paintBordersFor(searchComposite);\r
-               searchText.setForeground(SWTResourceManager.getColor(192, 192, 192));\r
-               searchText.setText("Use \"*\" for wildcard searching");\r
-//             searchText.setLayoutData(new ColumnLayoutData());\r
-               searchText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-               searchText.addFocusListener(new FocusListener() {\r
-\r
-                       public void focusGained(FocusEvent e) {\r
-                               searchText.setForeground(SWTResourceManager.getColor(0,0,0));\r
-                               searchText.setText("");\r
-                       }\r
-\r
-                       public void focusLost(FocusEvent e) {\r
-                               if (searchText.getText() == "") {\r
-                                       searchText.setForeground(SWTResourceManager.getColor(192, 192, 192));\r
-                                       searchText.setText("Use \"*\" for wildcard searching");                                 \r
-                               }               \r
-                       }\r
-               });\r
-\r
-//             final Button searchButton = new Button(searchComposite, SWT.NONE);\r
-//             searchButton.setText("Search");\r
-               managedForm.getToolkit().createButton(searchComposite, "Search", SWT.PUSH); //$NON-NLS-1$\r
-       }       \r
-\r
-\r
-       private void createFavorites() {\r
-//             recentNamesViewer = new RecentNamesTableViewer(createExpandableSection("Favorites", \r
-//                             "Drag items into this area for easy access"));\r
-               recentNamesViewer = new RecentNamesTableViewer(createSection("Favorites", \r
-                               "Drag items into this area for easy access", 1));               \r
-//             recentNamesViewer.getTable().setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
-               toolkit.adapt(recentNamesViewer.getTable(), true, true);                \r
-       }       \r
-       \r
-//     private Composite createExpandableSection(String header, String description) {\r
-//             int sectionStyle = Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED;\r
-//             if (description != null) sectionStyle |= Section.DESCRIPTION;\r
-//             Section section = toolkit.createSection(body, sectionStyle);\r
-////           Section section = toolkit.createSection(sashForm, sectionStyle);\r
-//             \r
-//             section.addExpansionListener(new ExpansionAdapter() {\r
-//                     public void expansionStateChanged(ExpansionEvent e) {\r
-//                             scrolledForm.reflow(true);\r
-//                     }\r
-//             });\r
-//     \r
-//             section.setText(header);\r
-//             if (description != null)\r
-//                     section.setDescription(description);\r
-//             \r
-//             final Composite composite = toolkit.createComposite(section, SWT.NONE);\r
-////           composite.setLayout(new TableWrapLayout());\r
-////                   composite.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
-//             toolkit.adapt(composite);\r
-//             section.setClient(composite);\r
-//             return composite;\r
-//             \r
-//     }\r
-       \r
-       private Composite createSection(String title, String desc, int numColumns) {\r
-               \r
-               int sectionStyle = Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED;\r
-               if (desc != null) sectionStyle |= Section.DESCRIPTION;\r
-               \r
-               final ScrolledForm form = managedForm.getForm();\r
-               FormToolkit toolkit = managedForm.getToolkit();\r
-               Section section = toolkit.createSection(form.getBody(), sectionStyle);\r
-               section.setText(title);\r
-               if (desc != null) section.setDescription(desc);\r
-               //toolkit.createCompositeSeparator(section);\r
-               Composite client = toolkit.createComposite(section);\r
-               GridLayout layout = new GridLayout();\r
-               layout.marginWidth = layout.marginHeight = 0;\r
-               layout.numColumns = numColumns;\r
-               client.setLayout(layout);\r
-               section.setClient(client);\r
-               section.addExpansionListener(new ExpansionAdapter() {\r
-                       public void expansionStateChanged(ExpansionEvent e) {\r
-                               form.reflow(false);\r
-                       }\r
-               });\r
-               return client;\r
-       }       \r
-       \r
-       /**\r
-        * Create the actions\r
-        */\r
-       private void createActions() {\r
-               // Create the actions\r
-       }\r
-\r
-       /**\r
-        * Initialize the toolbar\r
-        */\r
-       private void initializeToolBar() {\r
-               IToolBarManager tbm = getViewSite().getActionBars().getToolBarManager();\r
-       }\r
-\r
-       /**\r
-        * Initialize the menu\r
-        */\r
-       private void initializeMenu() {\r
-               IMenuManager manager = getViewSite().getActionBars().getMenuManager();\r
-       }\r
-\r
-       @Override\r
-       public void setFocus() {\r
-               // Set the focus\r
-       }\r
-\r
-       public TaxonomicTreeViewer getTreeViewer() {\r
-               return treeViewer;\r
-       }\r
-\r
-       /* ***************************************************\r
-               FOLLOWING SASH BITS BORROWED FROM \r
-                org.eclipse.ui.forms.MasterDetailsBlock\r
-          *************************************************** */\r
-       \r
-       private void hookResizeListener() {\r
-               Listener listener = ((MDSashForm)sashForm).listener;\r
-               Control [] children = sashForm.getChildren();\r
-               for (int i=0; i<children.length; i++) {\r
-                       if (children[i] instanceof Sash) continue;\r
-                       children[i].addListener(SWT.Resize, listener);\r
-               }\r
-       }\r
-       \r
-       private void onSashPaint(Event e) {\r
-               Sash sash = (Sash)e.widget;\r
-               FormColors colors = managedForm.getToolkit().getColors();\r
-               boolean vertical = (sash.getStyle() & SWT.VERTICAL)!=0;\r
-               GC gc = e.gc;\r
-               Boolean hover = (Boolean)sash.getData("hover"); //$NON-NLS-1$\r
-               gc.setBackground(colors.getColor(IFormColors.TB_BG));\r
-               gc.setForeground(colors.getColor(IFormColors.TB_BORDER));\r
-               Point size = sash.getSize();\r
-               if (vertical) {\r
-                       if (hover!=null)\r
-                               gc.fillRectangle(0, 0, size.x, size.y);\r
-                       //else\r
-                               //gc.drawLine(1, 0, 1, size.y-1);\r
-               }\r
-               else {\r
-                       if (hover!=null)\r
-                               gc.fillRectangle(0, 0, size.x, size.y);\r
-                       //else\r
-                               //gc.drawLine(0, 1, size.x-1, 1);                               \r
-               }\r
-       }       \r
-       \r
-       class MDSashForm extends SashForm {\r
-               ArrayList sashes = new ArrayList();\r
-               Listener listener = new Listener () {\r
-                       public void handleEvent(Event e) {\r
-                               switch (e.type) {\r
-                               case SWT.MouseEnter:\r
-                                       e.widget.setData("hover", Boolean.TRUE); //$NON-NLS-1$\r
-                                       ((Control)e.widget).redraw();\r
-                                       break;\r
-                               case SWT.MouseExit:\r
-                                       e.widget.setData("hover", null); //$NON-NLS-1$\r
-                                       ((Control)e.widget).redraw();\r
-                                       break;\r
-                               case SWT.Paint:\r
-                                       onSashPaint(e);\r
-                               break;\r
-                               case SWT.Resize:\r
-                                       hookSashListeners();\r
-                               break;\r
-                               }\r
-                       }\r
-               };\r
-               public MDSashForm(Composite parent, int style) {\r
-                       super(parent, style);\r
-               }\r
-               \r
-               public void layout(boolean changed) {\r
-                       super.layout(changed);\r
-                       hookSashListeners();\r
-               }\r
-               \r
-               public void layout(Control [] children) {\r
-                       super.layout(children);\r
-                       hookSashListeners();\r
-               }\r
-\r
-               private void hookSashListeners() {\r
-                       purgeSashes();\r
-                       Control [] children = getChildren();\r
-                       for (int i=0; i<children.length; i++) {\r
-                               if (children[i] instanceof Sash) {\r
-                                       Sash sash = (Sash)children[i];\r
-                                       if (sashes.contains(sash))\r
-                                               continue;\r
-                                       sash.addListener(SWT.Paint, listener);\r
-                                       sash.addListener(SWT.MouseEnter, listener);\r
-                                       sash.addListener(SWT.MouseExit, listener);\r
-                                       sashes.add(sash);\r
-                               }\r
-                       }\r
-               }\r
-               private void purgeSashes() {\r
-                       for (Iterator iter=sashes.iterator(); iter.hasNext();) {\r
-                               Sash sash = (Sash)iter.next();\r
-                               if (sash.isDisposed())\r
-                                       iter.remove();\r
-                       }\r
-               }\r
-       }\r
-       \r
-}\r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/NameListView.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/navigation/NameListView.java
deleted file mode 100644 (file)
index 7237571..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-/**\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.navigation;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.action.IMenuManager;\r
-import org.eclipse.jface.action.IToolBarManager;\r
-import org.eclipse.jface.viewers.TableViewer;\r
-import org.eclipse.jface.viewers.TreeViewer;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.FocusEvent;\r
-import org.eclipse.swt.events.FocusListener;\r
-import org.eclipse.swt.layout.FillLayout;\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.Control;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.ExpandBar;\r
-import org.eclipse.swt.widgets.ExpandItem;\r
-import org.eclipse.swt.widgets.Label;\r
-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.part.ViewPart;\r
-\r
-import com.swtdesigner.ResourceManager;\r
-import com.swtdesigner.SWTResourceManager;\r
-\r
-import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
-import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-\r
-/**\r
- * The left navigation pane.\r
- * \r
- * @author p.ciardelli\r
- * @created 27.05.2008\r
- * @version 1.0\r
- */\r
-public class NameListView extends ViewPart {\r
-       private static final Logger logger = Logger.getLogger(NameListView.class);\r
-       \r
-       private Text searchText;\r
-       private Composite composite;\r
-       private Composite taxTreeComposite = null;\r
-       private Composite recentNamesComposite = null;\r
-       private Composite searchComposite = null;\r
-       private Composite favoritesComposite;   \r
-       private Composite top = null;\r
-       private ExpandBar expandBar = null;\r
-       private ExpandItem taxTreeExpandItem;\r
-       private ExpandItem recentNamesExpandItem;\r
-       private ExpandItem searchExpandItem;\r
-       private ExpandItem favoritesExpandItem;\r
-       private TableViewer recentNamesViewer;  \r
-       public static final String ID = "eu.etaxonomy.taxeditor.editor.namelistview"; //$NON-NLS-1$\r
-       \r
-       private TreeViewer treeViewer;\r
-       \r
-       /**\r
-        * Create contents of the view part\r
-        * @param parent\r
-        */\r
-       @Override\r
-       public void createPartControl(Composite parent) {\r
-               \r
-               parent.setLayout(new FillLayout());\r
-               GridLayout gridLayout = new GridLayout();\r
-               gridLayout.horizontalSpacing = 0;\r
-               gridLayout.marginWidth = 0;\r
-               gridLayout.marginHeight = 0;\r
-               gridLayout.verticalSpacing = 0; \r
-                               \r
-               top = new Composite(parent, SWT.NONE);\r
-               top.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-\r
-               composite = new Composite(top, SWT.NONE);\r
-               composite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               final GridLayout gridLayout_1 = new GridLayout();\r
-               gridLayout_1.numColumns = 2;\r
-               composite.setLayout(gridLayout_1);\r
-               final Label lblDataSourceTitle = new Label(composite, SWT.NONE);\r
-               lblDataSourceTitle.setFont(SWTResourceManager.getFont("Arial", 14, SWT.BOLD));\r
-               lblDataSourceTitle.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               lblDataSourceTitle.setAlignment(SWT.CENTER);\r
-               lblDataSourceTitle.setText(" Palmweb");         \r
-               \r
-               final Label lblDbImg = new Label(composite, SWT.NONE);\r
-               lblDbImg.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));\r
-               lblDbImg.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               lblDbImg.setImage(ResourceManager.getPluginImage(TaxEditorPlugin.getDefault(), "icons/db.gif"));\r
-               lblDbImg.setImage(TaxEditorPlugin.getDefault().getImageRegistry().get(ITaxEditorConstants.DB_ICON));\r
-\r
-               final Menu menu = new Menu(lblDbImg);\r
-               lblDbImg.setMenu(menu);\r
-\r
-               final MenuItem checkboxMenuItem = new MenuItem(menu, SWT.CHECK);\r
-               checkboxMenuItem.setSelection(true);\r
-               checkboxMenuItem.setText("Euro+Med (mssql://128.14.101.12:80/europlusmed)");\r
-\r
-               final MenuItem checkboxMenuItem_1 = new MenuItem(menu, SWT.CHECK);\r
-               checkboxMenuItem_1.setText("WP6 (mssql://128.14.101.13:80/wp6)");\r
-\r
-               final MenuItem palmWebora1922299480pwMenuItem = new MenuItem(menu, SWT.NONE);\r
-               palmWebora1922299480pwMenuItem.setText("Palm Web (ora://192.22.99.4:80/pw)");\r
-\r
-               new MenuItem(menu, SWT.SEPARATOR);\r
-\r
-               final MenuItem newDataSourceMenuItem = new MenuItem(menu, SWT.NONE);\r
-               newDataSourceMenuItem.setText("New data source ...");\r
-               \r
-               final Label lblDataSource = new Label(composite, SWT.NONE);\r
-               final GridData gd_lblDataSource = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1);\r
-               gd_lblDataSource.heightHint = 16;\r
-               lblDataSource.setLayoutData(gd_lblDataSource);\r
-               lblDataSource.setFont(SWTResourceManager.getFont("Arial", 8, SWT.NONE));\r
-               lblDataSource.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               lblDataSource.setAlignment(SWT.CENTER);\r
-               lblDataSource.setText("  mssql://128.14.101.12:80/palmweb");\r
-\r
-               createExpandBar();\r
-               top.setLayout(gridLayout);\r
-               top.setTabList(new Control[] {composite, expandBar});\r
-       }\r
-\r
-       /**\r
-        * This method initializes expandBar\r
-        * \r
-        */\r
-       private void createExpandBar() {\r
-               expandBar = new ExpandBar(top, SWT.V_SCROLL);\r
-               GridData gridData = new GridData();\r
-               gridData.horizontalAlignment = GridData.FILL;\r
-               gridData.grabExcessHorizontalSpace = true;\r
-               gridData.grabExcessVerticalSpace = true;\r
-               gridData.verticalAlignment = GridData.FILL;\r
-               expandBar.setLayoutData(gridData);\r
-               createNameListComposite();\r
-               createRecentNamesComposite();\r
-               createSearchComposite();\r
-               createFavoritesComposite();\r
-               \r
-               createActions();\r
-               initializeToolBar();\r
-               initializeMenu();\r
-               \r
-       }\r
-       \r
-       private void createNameListComposite() {\r
-               taxTreeExpandItem = new ExpandItem(expandBar, SWT.NONE, 0);\r
-               taxTreeExpandItem.setExpanded(true);\r
-               taxTreeExpandItem.setHeight(200);\r
-               taxTreeExpandItem.setText("Taxonomic Tree");\r
-               \r
-               taxTreeComposite = new Composite(expandBar, SWT.NONE);\r
-               taxTreeComposite.setLayout(new FillLayout());\r
-               taxTreeComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               \r
-               taxTreeExpandItem.setControl(taxTreeComposite);\r
-\r
-               treeViewer = new TaxonomicTreeViewer(taxTreeComposite);\r
-               \r
-               // TODO move these into this class\r
-               ((TaxonomicTreeViewer) treeViewer).createDoubleClickListener();\r
-               ((TaxonomicTreeViewer) treeViewer).createMenu();\r
-               ((TaxonomicTreeViewer) treeViewer).createQuickAdd();\r
-//             ((TaxonomicTreeViewer) treeViewer).createDragAndDrop();\r
-       }\r
-       \r
-       private void createRecentNamesComposite() {\r
-               recentNamesExpandItem = new ExpandItem(expandBar, SWT.NONE, 1);\r
-               recentNamesExpandItem.setHeight(130);\r
-               recentNamesExpandItem.setExpanded(true);\r
-               recentNamesExpandItem.setText("Recently viewed names");\r
-               recentNamesComposite = new Composite(expandBar, SWT.NONE);\r
-               recentNamesComposite.setLayout(new FillLayout());\r
-\r
-               recentNamesExpandItem.setControl(recentNamesComposite);\r
-\r
-               recentNamesViewer = new RecentNamesTableViewer(recentNamesComposite);\r
-       }\r
-\r
-       private void createSearchComposite() {\r
-               searchExpandItem = new ExpandItem(expandBar, SWT.NONE, 2);\r
-               searchExpandItem.setHeight(50);\r
-               searchExpandItem.setExpanded(true);\r
-               searchExpandItem.setText("Search");\r
-               searchComposite = new Composite(expandBar, SWT.NONE);\r
-               final GridLayout gridLayout = new GridLayout();\r
-               gridLayout.numColumns = 2;\r
-               searchComposite.setLayout(gridLayout);\r
-\r
-               searchExpandItem.setControl(searchComposite);\r
-\r
-               searchText = new Text(searchComposite, SWT.BORDER);\r
-               searchText.setForeground(SWTResourceManager.getColor(192, 192, 192));\r
-               searchText.setText("Use \"*\" for wildcard searching");\r
-               final GridData gd_useForText = new GridData(SWT.FILL, SWT.CENTER, true, false);\r
-               searchText.setLayoutData(gd_useForText);\r
-               searchText.addFocusListener(new FocusListener() {\r
-\r
-                       public void focusGained(FocusEvent e) {\r
-                               searchText.setForeground(SWTResourceManager.getColor(0,0,0));\r
-                               searchText.setText("");\r
-                       }\r
-\r
-                       public void focusLost(FocusEvent e) {\r
-                               if (searchText.getText() == "") {\r
-                                       searchText.setForeground(SWTResourceManager.getColor(192, 192, 192));\r
-                                       searchText.setText("Use \"*\" for wildcard searching");                                 \r
-                               }\r
-                               \r
-                       }\r
-                       \r
-               });\r
-\r
-               final Button searchButton = new Button(searchComposite, SWT.NONE);\r
-               searchButton.setText("Search");\r
-       }       \r
-\r
-       private void createFavoritesComposite() {\r
-               favoritesExpandItem = new ExpandItem(expandBar, SWT.NONE, 3);\r
-               favoritesExpandItem.setHeight(130);\r
-               favoritesExpandItem.setExpanded(true);\r
-               favoritesExpandItem.setText("Favorites");\r
-               favoritesComposite = new Composite(expandBar, SWT.NONE);\r
-               favoritesComposite.setLayout(new GridLayout());\r
-\r
-               Label favoritesLabel = new Label(favoritesComposite, SWT.WRAP);\r
-               favoritesLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-               favoritesLabel.setText("Drag favorite elements into this area for easy access later.");\r
-               \r
-               favoritesExpandItem.setControl(favoritesComposite);\r
-               \r
-               new FavoritesTableViewer(favoritesComposite);\r
-       }\r
-       \r
-       private void createActions() {\r
-               // Create the actions\r
-       }\r
-\r
-       /**\r
-        * Initialize the toolbar\r
-        */\r
-       private void initializeToolBar() {\r
-               IToolBarManager toolbarManager = getViewSite().getActionBars()\r
-                               .getToolBarManager();\r
-       }\r
-\r
-       /**\r
-        * Initialize the menu\r
-        */\r
-       private void initializeMenu() {\r
-               IMenuManager menuManager = getViewSite().getActionBars()\r
-                               .getMenuManager();\r
-       }\r
-\r
-       @Override\r
-       public void setFocus() {\r
-               // Set the focus\r
-       }\r
-\r
-       /**\r
-        * Expose TreeViewer, i.e. to manipulate tree nodes\r
-        * @return\r
-        */\r
-       public TreeViewer getTreeViewer() {\r
-               return treeViewer;\r
-       }       \r
-}\r
index a0ea48ce0cc9a17bbe6aeafc9f9d95173a4ef922..d6da29b7935f95765086fe010110fe28abc91370 100644 (file)
@@ -12,29 +12,27 @@ package eu.etaxonomy.taxeditor.navigation;
 import org.apache.log4j.Logger;\r
 import org.eclipse.jface.action.IMenuManager;\r
 import org.eclipse.jface.action.IToolBarManager;\r
-import org.eclipse.jface.dialogs.Dialog;\r
-import org.eclipse.jface.viewers.TreeViewer;\r
 import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.events.SelectionAdapter;\r
-import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.layout.FillLayout;\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.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Menu;\r
-import org.eclipse.swt.widgets.MenuItem;\r
-import org.eclipse.swt.widgets.Shell;\r
+import org.eclipse.ui.forms.IManagedForm;\r
+import org.eclipse.ui.forms.ManagedForm;\r
+import org.eclipse.ui.forms.events.HyperlinkAdapter;\r
+import org.eclipse.ui.forms.events.HyperlinkEvent;\r
+import org.eclipse.ui.forms.widgets.Hyperlink;\r
+import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
 import org.eclipse.ui.part.ViewPart;\r
 \r
 import com.swtdesigner.ResourceManager;\r
 import com.swtdesigner.SWTResourceManager;\r
 \r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
 \r
 /**\r
  * The left navigation pane.\r
@@ -51,7 +49,9 @@ public class TaxonomicTreeView extends ViewPart {
        private Composite top = null;\r
        public static final String ID = "eu.etaxonomy.taxeditor.navigation.taxonomictreeview"; //$NON-NLS-1$\r
        \r
-       private TreeViewer treeViewer;\r
+       private TaxonomicTreeViewer treeViewer;\r
+\r
+       private IManagedForm linkForm;\r
        \r
        /**\r
         * Create contents of the view part\r
@@ -80,7 +80,7 @@ public class TaxonomicTreeView extends ViewPart {
                lblDataSourceTitle.setFont(SWTResourceManager.getFont("Arial", 14, SWT.BOLD));\r
                lblDataSourceTitle.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
                lblDataSourceTitle.setAlignment(SWT.CENTER);\r
-               lblDataSourceTitle.setText(" Palmweb");         \r
+               lblDataSourceTitle.setText(" Local");           \r
                \r
                final Label lblDbImg = new Label(dbComposite, SWT.NONE);\r
                lblDbImg.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));\r
@@ -121,12 +121,56 @@ public class TaxonomicTreeView extends ViewPart {
                lblDataSource.setFont(SWTResourceManager.getFont("Arial", 8, SWT.NONE));\r
                lblDataSource.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
                lblDataSource.setAlignment(SWT.CENTER);\r
-               lblDataSource.setText("  mssql://128.14.101.12:80/palmweb");\r
+               lblDataSource.setText("  Datasource: local h2 database");\r
 \r
                taxTreeComposite = new Composite(top, SWT.NONE);\r
                taxTreeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
                taxTreeComposite.setLayout(new FillLayout());\r
                taxTreeComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+               \r
+               // If there are no root taxa, provide a link to create this tree's initial root taxon\r
+               if (TaxEditorPlugin.getDefault().getSessionRootTaxa().size() == 0) {\r
+                       \r
+                       linkForm = new ManagedForm(taxTreeComposite);\r
+                       Composite linkBody = linkForm.getForm().getBody();\r
+                       \r
+                       TableWrapLayout linkLayout = new TableWrapLayout();\r
+                       linkLayout.leftMargin = 20;\r
+                       linkLayout.rightMargin = 20;\r
+                       linkBody.setLayout(linkLayout);\r
+                       linkBody.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+                       \r
+                       Hyperlink link = linkForm.getToolkit().createHyperlink(linkBody, \r
+                                       "Your data source is empty. Click here to create a root taxon.", SWT.WRAP);\r
+                       link.addHyperlinkListener(new HyperlinkAdapter() {\r
+\r
+                               @Override\r
+                               public void linkActivated(HyperlinkEvent e) {\r
+                                       new OpenTaxonEditorAction().run();\r
+                               }                               \r
+                       });\r
+                       \r
+                       treeViewer = null;\r
+                       \r
+               } else {\r
+                       createTreeViewer();\r
+               }\r
+\r
+               createActions();\r
+               initializeToolBar();\r
+               initializeMenu();\r
+               \r
+//             TaxEditorPlugin.getDefault().setTaxonomicTree(this);\r
+       }\r
+       \r
+       public TaxonomicTreeViewer createTreeViewer() {\r
+               \r
+               // Dispose link to new taxon as necessary\r
+               if (linkForm != null) {\r
+                       linkForm.getForm().dispose();\r
+               }\r
+               \r
+               // Create tree\r
                treeViewer = new TaxonomicTreeViewer(taxTreeComposite);\r
                \r
                // TODO move these into this class\r
@@ -134,12 +178,10 @@ public class TaxonomicTreeView extends ViewPart {
                ((TaxonomicTreeViewer) treeViewer).createMenu();\r
                ((TaxonomicTreeViewer) treeViewer).createQuickAdd();\r
                ((TaxonomicTreeViewer) treeViewer).createDragAndDrop();\r
+                               \r
+               taxTreeComposite.layout();\r
                \r
-               createActions();\r
-               initializeToolBar();\r
-               initializeMenu();\r
-               \r
-               TaxEditorPlugin.getDefault().setTaxonomicTree(this);\r
+               return treeViewer;\r
        }\r
        \r
        private void createActions() {\r
@@ -171,7 +213,7 @@ public class TaxonomicTreeView extends ViewPart {
         * Expose TreeViewer, i.e. to manipulate tree nodes\r
         * @return\r
         */\r
-       public TreeViewer getTreeViewer() {\r
+       public TaxonomicTreeViewer getTreeViewer() {\r
                return treeViewer;\r
        }               \r
 }\r