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
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;
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
\r
if (initDatastore) {\r
dbSchemaValidation = DbSchemaValidation.CREATE;\r
- initDatastore();\r
+// initDatastore();\r
}\r
\r
cdmApp = getCdmApp();\r
}\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
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
// 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
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
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
}\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
// 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
// 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
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
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
!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
\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
\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
+++ /dev/null
-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
+++ /dev/null
-/**\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
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
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
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
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
((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
* 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