taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/RefreshTreeHandler.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/internal/TaxeditorNavigationPlugin.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/OpenTaxonActionProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/EmptyRoot.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/Root.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymContentProvider.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewClassificationWizard.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewClassificationWizardPage.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewTaxonNodeWizard.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewTaxonNodeWizardPage.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewTaxonomicTreeWizard.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/newWizards/NewTaxonomicTreeWizardPage.java -text
taxeditor-navigation/src/main/java/log4j.properties -text
taxeditor-navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/Application.java -text
taxeditor-navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/ApplicationActionBarAdvisor.java -text
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.navigation.navigator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
+
+/**
+ * @author n.hoffmann
+ * @created Mar 23, 2010
+ * @version 1.0
+ */
+public class EmptyRoot extends Root {
+ private static final Logger logger = Logger.getLogger(EmptyRoot.class);
+
+ public List<TaxonomicTree> getParentBeans() {
+ return new ArrayList<TaxonomicTree>();
+ }
+
+}
+++ /dev/null
-// $Id$\r
-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.taxeditor.navigation.navigator;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.action.Action;\r
-import org.eclipse.jface.viewers.ISelection;\r
-import org.eclipse.jface.viewers.StructuredViewer;\r
-import org.eclipse.jface.viewers.TreeSelection;\r
-import org.eclipse.ui.IActionBars;\r
-import org.eclipse.ui.navigator.CommonActionProvider;\r
-import org.eclipse.ui.navigator.ICommonActionConstants;\r
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;\r
-\r
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @created 04.06.2009\r
- * @version 1.0\r
- */\r
-public class OpenTaxonActionProvider extends CommonActionProvider {\r
- private static final Logger logger = Logger\r
- .getLogger(OpenTaxonActionProvider.class);\r
-\r
- OpenTaxonAction openTaxonAction;\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)\r
- */\r
- public void init(ICommonActionExtensionSite aSite) {\r
- super.init(aSite);\r
- openTaxonAction = new OpenTaxonAction(aSite.getStructuredViewer()); \r
- \r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)\r
- */\r
- public void fillActionBars(IActionBars actionBars) {\r
- super.fillActionBars(actionBars);\r
- // forward doubleClick to doubleClickAction\r
- actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN,\r
- openTaxonAction);\r
- }\r
- \r
- class OpenTaxonAction extends Action {\r
-\r
- private StructuredViewer structuredViewer;\r
-\r
- /**\r
- * @param structuredViewer\r
- */\r
- public OpenTaxonAction(StructuredViewer structuredViewer) {\r
- this.structuredViewer = structuredViewer;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.jface.action.Action#run()\r
- */\r
- public void run() {\r
- ISelection selection = structuredViewer.getSelection();\r
- if (selection instanceof TreeSelection) {\r
- Object[] selections = ((TreeSelection) selection).toArray();\r
- for (Object element : ((TreeSelection) selection).toArray()) {\r
- if (element instanceof TaxonNode) {\r
- NavigationUtil.openEditor((TaxonNode) element);\r
- } \r
- }\r
- }\r
- } \r
- }\r
-}\r
private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITreeNode targetITreeNode) {\r
\r
TaxonNavigator taxonNavigator;\r
- try {\r
- taxonNavigator = (TaxonNavigator) NavigationUtil.getView(TaxonNavigator.ID);\r
- } catch (PartInitException e) {\r
- logger.error(e);\r
- throw new RuntimeException(e);\r
- }\r
+ taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);\r
\r
if(targetITreeNode instanceof TaxonNode){\r
\r
\r
package eu.etaxonomy.taxeditor.navigation.navigator;\r
\r
+import java.lang.reflect.InvocationTargetException;\r
import java.util.ArrayList;\r
import java.util.HashSet;\r
import java.util.List;\r
import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.Command;\r
+import org.eclipse.core.commands.common.NotDefinedException;\r
import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;\r
+import org.eclipse.jface.operation.IRunnableWithProgress;\r
+import org.eclipse.jface.viewers.DoubleClickEvent;\r
import org.eclipse.jface.viewers.TreePath;\r
-import org.eclipse.swt.events.FocusEvent;\r
-import org.eclipse.swt.events.FocusListener;\r
import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.ui.IMemento;\r
import org.eclipse.ui.IViewSite;\r
import org.eclipse.ui.PartInitException;\r
+import org.eclipse.ui.commands.ICommandService;\r
+import org.eclipse.ui.handlers.IHandlerService;\r
import org.eclipse.ui.navigator.CommonNavigator;\r
-import org.eclipse.ui.navigator.CommonViewer;\r
\r
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;\r
import eu.etaxonomy.taxeditor.model.DataChangeBridge;\r
import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;\r
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
import eu.etaxonomy.taxeditor.operations.IPostOperationEnabled;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
\r
public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator"; //$NON-NLS-1$\r
\r
- private static final String TREE_PATHS = "treepaths";\r
+ public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.navigation.command.editSelection";\r
+ \r
private static final String TREE_PATH = "treepath";\r
\r
+ private static final String TREE_PATHS = "treepaths";\r
+\r
private ConversationHolder conversation;\r
\r
private IDataChangeBehavior dataChangeBehavior;\r
\r
- private IMemento memento;\r
- \r
/* (non-Javadoc)\r
* @see org.eclipse.ui.navigator.CommonNavigator#getInitialInput()\r
*/\r
@Override\r
protected IAdaptable getInitialInput() {\r
- conversation = CdmStore.NewTransactionalConversation();\r
- conversation.registerForDataStoreChanges(this);\r
- this.getCommonViewer().refresh();\r
- return new Root();\r
+ if(CdmStore.isActive()){\r
+ // TODO when closing and reopening the taxon navigator \r
+ // we do not preserve state. Closing the view, in contrary to closing the whole application\r
+ // should be handled by the state manager too\r
+ return new Root();\r
+ }\r
+ return new EmptyRoot();\r
}\r
\r
- public void init(IViewSite site, IMemento memento)\r
+ /**\r
+ * \r
+ */\r
+ public void init(IViewSite site)\r
throws PartInitException {\r
- super.init(site, memento);\r
- \r
- this.memento = memento;\r
+ super.init(site);\r
+ if(CdmStore.isActive() && conversation == null){\r
+ conversation = CdmStore.createConversation();\r
+ conversation.registerForDataStoreChanges(TaxonNavigator.this);\r
+ }\r
}\r
\r
/**\r
* Refresh this navigators viewer\r
*/\r
public void refresh(){\r
+ logger.warn("Refreshing navigator");\r
+ getConversationHolder().bind();\r
this.getCommonViewer().refresh();\r
}\r
\r
- \r
/**\r
- * Restores state from a tree path memento using space-separated\r
- * Taxon UUIDs.\r
* \r
* @param memento\r
*/\r
- private void restoreState(IMemento memento) {\r
- if (memento == null) {\r
- return;\r
- }\r
- Set<TreePath> treePaths = new HashSet<TreePath>();\r
- memento = memento.getChild(TREE_PATHS);\r
- if (memento != null) {\r
- IMemento[] treePathMementos = memento.getChildren(TREE_PATH);\r
- if (treePathMementos.length > 0) {\r
- for (IMemento treePathMemento : treePathMementos) {\r
- TreePath treePath = createTreePathFromString(treePathMemento.getID());\r
- if (treePath != null) {\r
- treePaths.add(treePath);\r
+ public void restore(final IMemento memento) {\r
+ \r
+ ProgressMonitorDialog progressMonitorDialog = new ProgressMonitorDialog(NavigationUtil.getShell());\r
+ IRunnableWithProgress runnable = new IRunnableWithProgress() {\r
+ \r
+ @Override\r
+ public void run(IProgressMonitor monitor) throws InvocationTargetException,\r
+ InterruptedException {\r
+ monitor.setTaskName("Restoring Taxon Navigator");\r
+ int mementoWork = 0;\r
+ Set<TreePath> treePaths = new HashSet<TreePath>();\r
+ IMemento[] treePathMementos = null;\r
+ if (memento != null) {\r
+ \r
+ \r
+ IMemento treePathsMemento = memento.getChild(TREE_PATHS);\r
+ \r
+ if (treePathsMemento != null) {\r
+ treePathMementos = treePathsMemento.getChildren(TREE_PATH);\r
+ mementoWork = treePathMementos.length;\r
+ }\r
+ }\r
+ // begin the monitor with steps for all tree paths and steps for creating \r
+ // conversation s.o., refreshing the tree and setting the paths \r
+ monitor.beginTask("Restoring Taxon Navigator", 1 + mementoWork + 5);\r
+ monitor.worked(1);\r
+ \r
+ conversation = CdmStore.createConversation();\r
+ monitor.worked(1);\r
+ conversation.registerForDataStoreChanges(TaxonNavigator.this);\r
+ monitor.worked(1);\r
+ TaxonNavigator.this.getCommonViewer().setInput(new Root());\r
+ monitor.worked(1);\r
+ TaxonNavigator.this.getCommonViewer().refresh();\r
+ monitor.worked(1);\r
+ \r
+ \r
+ \r
+ if (treePathMementos != null && treePathMementos.length > 0) {\r
+ for (IMemento treePathMemento : treePathMementos) {\r
+ TreePath treePath = createTreePathFromString(treePathMemento.getID());\r
+ if (!monitor.isCanceled() && treePath != null) {\r
+ treePaths.add(treePath);\r
+ monitor.worked(1);\r
+ }\r
}\r
}\r
+ if (treePaths.size() > 0) {\r
+ TaxonNavigator.this.getCommonViewer().setExpandedTreePaths(treePaths.toArray(new TreePath[0]));\r
+ monitor.worked(1);\r
+ }\r
+ monitor.done();\r
}\r
- }\r
- if (treePaths.size() > 0) {\r
- this.getCommonViewer().setExpandedTreePaths(treePaths.toArray(new TreePath[0]));\r
+ };\r
+ \r
+ try {\r
+ progressMonitorDialog.run(false, true, runnable);\r
+ } catch (InvocationTargetException e) {\r
+ logger.error("InvocationTargetException when trying to restore navigator", e);\r
+ } catch (InterruptedException e) {\r
+ logger.error("InterruptedException when trying to restore navigator", e);\r
}\r
}\r
\r
return new TreePath(pathList.toArray());\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.eclipse.ui.navigator.CommonNavigator#saveState(org.eclipse.ui.IMemento)\r
- */\r
- public void saveState(IMemento memento) {\r
\r
- super.saveState(memento);\r
- \r
- memento = memento.createChild(TREE_PATHS);\r
- TreePath[] treePaths = this.getCommonViewer().getExpandedTreePaths();\r
- for (TreePath treePath : treePaths) {\r
- int pathLength = treePath.getSegmentCount();\r
- String path = "";\r
- for (int i = 0; i < pathLength; i++) {\r
- Object segment = treePath.getSegment(i);\r
- if (segment instanceof CdmBase) {\r
- path += ((CdmBase) segment).getUuid().toString() + " ";\r
- } else {\r
- logger.warn("Non-taxon tree path segment " + segment);\r
+ @Override\r
+ public void saveState(IMemento aMemento) {\r
+ //\r
+ }\r
+ \r
+ public void saveTreeState(IMemento memento) {\r
+\r
+ if (memento != null) {\r
+ super.saveState(memento);\r
+ \r
+ memento = memento.createChild(TREE_PATHS);\r
+ TreePath[] treePaths = this.getCommonViewer().getExpandedTreePaths();\r
+ for (TreePath treePath : treePaths) {\r
+ int pathLength = treePath.getSegmentCount();\r
+ String path = "";\r
+ for (int i = 0; i < pathLength; i++) {\r
+ Object segment = treePath.getSegment(i);\r
+ if (segment instanceof CdmBase) {\r
+ path += ((CdmBase) segment).getUuid().toString() + " ";\r
+ } else {\r
+ logger.warn("Non-taxon tree path segment " + segment);\r
+ }\r
}\r
+ logger.info("Creating memento child for path " + path.trim());\r
+ memento.createChild(TREE_PATH, path.trim());\r
}\r
- logger.info("Creating memento child for path " + path.trim());\r
- memento.createChild(TREE_PATH, path.trim());\r
+ } else {\r
+ logger.warn("TreeState could not be saved: Memento is null");\r
}\r
}\r
\r
+ /**\r
+ * Activates the current view.\r
+ */\r
+ private void activateView() {\r
+ getSite().getPage().activate(this);\r
+ }\r
+ \r
/* (non-Javadoc)\r
* @see org.eclipse.ui.navigator.CommonNavigator#createPartControl(org.eclipse.swt.widgets.Composite)\r
*/\r
public void createPartControl(Composite aParent) {\r
super.createPartControl(aParent);\r
- restoreState(memento); \r
+ \r
+ // It seems the workbench does not set the focus at the right time. This should fix this.\r
+// getCommonViewer().addSelectionChangedListener(new ISelectionChangedListener() {\r
+// public void selectionChanged(SelectionChangedEvent event) {\r
+// activateView();\r
+// }\r
+// });\r
}\r
\r
\r
if(conversation != null){\r
conversation.unregisterForDataStoreChanges(this);\r
}\r
- conversation.close();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
@Override\r
public void setFocus() {\r
+ //logger.warn("Setting focus to navigator");\r
super.setFocus();\r
- getConversationHolder().bind();\r
+ if(getConversationHolder() != null){\r
+ getConversationHolder().bind();\r
+ }\r
}\r
\r
/* (non-Javadoc)\r
// nothing to do here\r
return true;\r
}\r
+\r
+ public void save(IMemento memento) {\r
+ saveTreeState(memento);\r
+ if(conversation != null){\r
+ conversation.unregisterForDataStoreChanges(this);\r
+ conversation = null;\r
+ }\r
+// this.getCommonViewer().setInput(new EmptyRoot());\r
+ }\r
+\r
+// @Override\r
+// public ISelection getSelection() {\r
+// return getCommonViewer().getSelection();\r
+// }\r
+ \r
+ /**\r
+ * @see http://www.eclipse.org/forums/index.php?t=msg&goto=512094&\r
+ */\r
+ @Override\r
+ protected void handleDoubleClick(DoubleClickEvent anEvent) {\r
+ \r
+ ICommandService commandService = (ICommandService)getSite().getService(ICommandService.class);\r
+ \r
+ Command command = commandService.getCommand(OPEN_COMMAND_ID); \r
+ if(command.isEnabled()) {\r
+ IHandlerService handlerService = (IHandlerService)getSite().getService(IHandlerService.class);\r
+ try {\r
+ handlerService.executeCommand(OPEN_COMMAND_ID, null);\r
+ } catch (NotDefinedException e) {\r
+ throw new RuntimeException("Could not find open command: " + OPEN_COMMAND_ID);\r
+ } catch (Exception e) {\r
+ logger.error("An exception occured while trying to open a selection", e);\r
+ }\r
+ }\r
+ // Pass the double click up to the super-class so it can expand/collapse trees\r
+ super.handleDoubleClick(anEvent);\r
+ }\r
}
\ No newline at end of file
if (parentElement instanceof TaxonNode) {\r
children = ((TaxonNode) parentElement).getChildNodes().toArray();\r
} else if (parentElement instanceof TaxonomicTree) {\r
- children = ((TaxonomicTree) parentElement).getRootNodes().toArray();\r
+ children = ((TaxonomicTree) parentElement).getChildNodes().toArray();\r
}\r
return children != null ? children : NO_CHILDREN;\r
}\r
}\r
\r
public boolean hasChildren(Object element) {\r
- \r
- boolean length = this.getChildren(element).length > 0;\r
- \r
- return length;\r
+ return this.getChildren(element).length > 0;\r
}\r
\r
public Object[] getElements(Object inputElement) {\r
private static final Logger logger = Logger\r
.getLogger(TaxonNodeLabelProvider.class);\r
\r
+ @Override\r
public Image getImage(Object element) {\r
return null;\r
}\r
\r
+ @Override\r
public String getText(Object element) {\r
if (element instanceof TaxonNode){\r
Taxon taxon = ((TaxonNode) element).getTaxon();\r
- return taxon.getName() != null ? taxon.getName().getTitleCache() : new String();\r
+ if(taxon == null){\r
+ logger.error("The taxon node does not have a taxon attached to it. Please check your import. TaxonNode: " + element);\r
+// throw new RuntimeException("The data your are trying to view is corrupt. Please check your import.");\r
+ }else{\r
+ try{\r
+ return taxon.getName() != null ? taxon.getName().getTitleCache() : new String();\r
+ }catch(Exception e){\r
+ logger.error("", e);\r
+ }\r
+ }\r
}\r
return new String();\r
}\r
Object expectedValue) {\r
if (receiver instanceof TaxonNode && HAS_SYNONYMS.equals(property)) {\r
Taxon taxon = ((TaxonNode) receiver).getTaxon();\r
- return taxon.hasSynonyms();\r
+ if(taxon != null){\r
+ return taxon.hasSynonyms();\r
+ }\r
}\r
\r
if (receiver instanceof TaxonomicTree && HAS_TAXA.equals(property)) {\r
TaxonomicTree taxononomicTree = (TaxonomicTree) receiver;\r
- return taxononomicTree.getRootNodes().size() > 0;\r
+ return taxononomicTree.getChildNodes().size() > 0;\r
}\r
\r
return false;\r
import org.eclipse.ui.swt.IFocusService;
import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;
-import eu.etaxonomy.taxeditor.model.Resources;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
/**
* @author n.hoffmann
// is applied. I am not sure how to get rid of this.
text_search = new Text(composite, SWT.BORDER | SWT.SINGLE
| SWT.FULL_SELECTION);
- text_search.setForeground(Resources.getColor(Resources.SEARCH_VIEW_FOREGROUND));
+ text_search.setForeground(NavigationUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
text_search.setText(defaultText);
addTextListeners();
text_search.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e) {
- text_search.setForeground(Resources.getColor(Resources.SEARCH_VIEW_FOCUS));
+ text_search.setForeground(NavigationUtil.getColor(Resources.SEARCH_VIEW_FOCUS));
if (defaultText.equals(text_search.getText())) {
text_search.setText("");
}
public void focusLost(FocusEvent e) {
if (text_search.getText() == "") {
- text_search.setForeground(Resources.getColor(Resources.SEARCH_VIEW_FOREGROUND));
+ text_search.setForeground(NavigationUtil.getColor(Resources.SEARCH_VIEW_FOREGROUND));
text_search.setText(defaultText);
}
}
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
/**
* @author n.hoffmann
public String getText(Object element) {
if(element instanceof TaxonBase<?>){
- return ((TaxonBase<?>) element).getName().getTitleCache();
+ return ((TaxonBase<?>) element).getTitleCache();
}
return element.toString();
}
@Override
public Font getFont(Object element) {
if(element instanceof Taxon){
- return NavigationUtil.getFontRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontAccepted");
+ return NavigationUtil.getFont(Resources.FONT_SEARCH_VIEW_ACCEPTED);
}else if(element instanceof Synonym){
- return NavigationUtil.getFontRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontSynonym");
+ return NavigationUtil.getFont(Resources.FONT_SEARCH_VIEW_SYNONYM);
}else{
- return NavigationUtil.getFontRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontDefault");
+ return NavigationUtil.getFont(Resources.FONT_SEARCH_VIEW_OTHER);
}
}
import org.eclipse.jface.viewers.ArrayContentProvider;\r
import org.eclipse.jface.viewers.DoubleClickEvent;\r
import org.eclipse.jface.viewers.IDoubleClickListener;\r
-import org.eclipse.jface.viewers.StructuredSelection;\r
import org.eclipse.jface.viewers.TableViewer;\r
import org.eclipse.swt.SWT;\r
import org.eclipse.swt.layout.GridData;\r
\r
private ConversationHolder conversation;\r
\r
- private ITaxonServiceConfigurator configurator;\r
-\r
private Text searchString;\r
\r
private Text configurationLabel;\r
*/\r
@Override\r
public void createPartControl(Composite parent) {\r
- conversation = CdmStore.NewTransactionalConversation();\r
+ \r
+ conversation = CdmStore.createConversation();\r
\r
GridLayout layout = new GridLayout();\r
layout.marginWidth = 0;\r
\r
Composite infoComposite = createInfoComposite(parent);\r
infoComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));\r
-// infoComposite.setBackground(Resources.getColor(Resources.PROP_SHEET_RED));\r
\r
resultViewer = new TableViewer(parent, SWT.NONE);\r
resultViewer.setContentProvider(new ArrayContentProvider());\r
resultViewer.setLabelProvider(new SearchResultLabelProvider());\r
resultViewer.addDoubleClickListener(new IDoubleClickListener() {\r
public void doubleClick(DoubleClickEvent event) {\r
- Object selection = ((StructuredSelection) event.getSelection()).getFirstElement();\r
- \r
- NavigationUtil.openSearch(selection);\r
+ NavigationUtil.executeEditHandler();\r
}\r
});\r
\r
resultViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
\r
+ getSite().setSelectionProvider(resultViewer);\r
+ \r
// register context menu\r
MenuManager menuMgr = new MenuManager();\r
menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));\r
}\r
\r
public void performSearch(ITaxonServiceConfigurator configurator){\r
- this.configurator = configurator;\r
setPartName("Search: '" + configurator.getSearchString() + "'");\r
\r
searchString.setText(configurator.getSearchString());\r
*/\r
@Override\r
public void setFocus() {\r
+ //logger.warn("Setting focus to search result viewer");\r
conversation.bind();\r
// pass focus to resultViewer\r
resultViewer.getControl().setFocus();\r
}\r
\r
}\r
-\r
}\r
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PartInitException;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
* @created 23.06.2009
* @version 1.0
*/
-public class NewTaxonomicTreeWizard extends Wizard implements INewWizard {
+public class NewClassificationWizard extends Wizard implements INewWizard {
private static final Logger logger = Logger
- .getLogger(NewTaxonomicTreeWizard.class);
+ .getLogger(NewClassificationWizard.class);
- public static final String NEW_TAXONOMIC_TREE = "NEW_TAXONOMIC_TREE";
+ public static final String NEW_CLASSIFICATION = "NEW_CLASSIFICATION";
- private NewTaxonomicTreeWizardPage page;
-
- /**
- *
- */
- public NewTaxonomicTreeWizard() {
- this.setWindowTitle("New Taxonomic Tree");
+ private NewClassificationWizardPage page;
+
+ public NewClassificationWizard(){
+ setWindowTitle("New Classification");
}
/* (non-Javadoc)
public void addPages() {
super.addPages();
- page = new NewTaxonomicTreeWizardPage(NEW_TAXONOMIC_TREE);
+ page = new NewClassificationWizardPage(NEW_CLASSIFICATION);
addPage(page);
}
public boolean performFinish() {
TaxonNavigator taxonNavigator;
- try {
- taxonNavigator = (TaxonNavigator) NavigationUtil.getView(TaxonNavigator.ID);
- } catch (PartInitException e) {
- logger.error(e);
- throw new RuntimeException(e);
- }
+ taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
- AbstractOperation operation = new CreateTaxonomicTreeOperation("Create Taxonomic Tree",
+ AbstractOperation operation = new CreateTaxonomicTreeOperation("Create Classification",
NavigationUtil.getUndoContext(), page.getTreeLabel(), page.getReferenceUuid(), page.getMicroReference(),
taxonNavigator, taxonNavigator);
NavigationUtil.executeOperation(operation);
- NavigationUtil.getNavigator().getCommonViewer().refresh();
+ NavigationUtil.showNavigator().getCommonViewer().refresh();
return true;
}
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
* @created 23.06.2009
* @version 1.0
*/
-public class NewTaxonomicTreeWizardPage extends WizardPage implements ModifyListener {
+public class NewClassificationWizardPage extends WizardPage implements ModifyListener {
private static final Logger logger = Logger
- .getLogger(NewTaxonomicTreeWizardPage.class);
+ .getLogger(NewClassificationWizardPage.class);
private Text text_treeLabel;
/**
* @param pageName
*/
- protected NewTaxonomicTreeWizardPage(String pageName) {
+ protected NewClassificationWizardPage(String pageName) {
super(pageName);
- this.setTitle("Taxonomic Tree");
+ this.setTitle("Classification");
- this.setDescription("Create a new Taxonomic Tree.");
+ this.setDescription("Create a new Classification.");
}
/* (non-Javadoc)
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PartInitException;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.ITreeNode;
private boolean openEmptyEditor = false;
public NewTaxonNodeWizard() {
- this.setWindowTitle("New Taxon Node");
+ this.setWindowTitle("New Taxon");
+ selection = getNavigatorSelection();
}
-
-
/**
- * @param selection
+ * Retrieve the current selection from taxon navigator
+ *
+ * @return
*/
- public NewTaxonNodeWizard(StructuredSelection selection) {
- this();
- this.selection = selection;
+ private IStructuredSelection getNavigatorSelection() {
+ StructuredSelection selection = null;
+ TaxonNavigator navigator = NavigationUtil.getNavigator(false);
+
+ if(navigator != null){
+ selection = (StructuredSelection) navigator.getCommonViewer().getSelection();
+ }
+
+ return selection;
}
@Override
public boolean performFinish() {
TaxonNavigator taxonNavigator;
- try {
- taxonNavigator = (TaxonNavigator) NavigationUtil.getView(TaxonNavigator.ID);
- } catch (PartInitException e) {
- logger.error(e);
- throw new RuntimeException(e);
- }
+ taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
if(page.getTaxonName() == null || page.getTaxonName().getFullTitleCache().length() == 0){
openEmptyEditor = true;
}else{
- AbstractOperation operation = new CreateTaxonNodeOperation("Create Taxon Node",
+ AbstractOperation operation = new CreateTaxonNodeOperation("Create Taxon",
NavigationUtil.getUndoContext(), page.getParentNode(), page.getTaxonName(), this, taxonNavigator);
NavigationUtil.executeOperation(operation);
private static final String BUTTON_TEXT_BROWSE = "Browse";
+ private static final String ERROR_MESSAGE_TAXONOMIC_TREE_EMPTY = "Taxonomic Tree must not be empty";
+
private TaxonomicTree taxonomicTree;
private ParseHandler parseHandler;
* @param pageName
*/
protected NewTaxonNodeWizardPage(IStructuredSelection selection) {
- super("New Taxon Node");
+ super("New Taxon");
if(selection != null && selection.size() == 1){
if(selection.getFirstElement() instanceof ITreeNode){
if (parentTaxonNode != null) {
text_parentTaxonNode.setText(parentTaxonNode.getTaxon().getTitleCache());
text_taxonomicTree.setText(parentTaxonNode.getTaxonomicTree().getTitleCache());
+
+
}
- text_taxonomicTree.setText(parentTaxonNode.getTaxonomicTree().getTitleCache());
setPageComplete(true);
}
* @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
*/
public void modifyText(ModifyEvent e) {
+ if (e.getSource().equals(text_taxonomicTree)) {
+ if (! "".equals(text_taxonomicTree.getText())) {
+ setErrorMessage(null);
+ }
+ }
+
if (e.getSource().equals(text_taxonName)) {
+ // Set error message if taxonomic tree was not chosen
+ if ("".equals(text_taxonomicTree.getText())) {
+ setErrorMessage(ERROR_MESSAGE_TAXONOMIC_TREE_EMPTY);
+ }
+
taxonName = parseHandler.parse();
}
+
updatePage();
}
}