From 610a1d3d2b4b7e2888657babaf52ff68270608a7 Mon Sep 17 00:00:00 2001 From: "n.hoffmann" Date: Tue, 22 Feb 2011 14:58:09 +0000 Subject: [PATCH] Implemented editor optimized search method --- .../taxeditor/navigation/NavigationUtil.java | 18 ++++++++-- .../navigator/handler/EditHandler.java | 18 ++++------ .../search/SearchResultLabelProvider.java | 36 ++++++++++--------- 3 files changed, 43 insertions(+), 29 deletions(-) diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java index e21d8aa9a..cbdf673ff 100644 --- a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java +++ b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java @@ -28,7 +28,8 @@ import org.eclipse.ui.PartInitException; import org.eclipse.ui.handlers.IHandlerService; import org.eclipse.ui.navigator.CommonViewer; -import eu.etaxonomy.cdm.model.common.CdmBase; +import eu.etaxonomy.cdm.model.common.ICdmBase; +import eu.etaxonomy.cdm.model.common.UuidAndTitleCache; import eu.etaxonomy.cdm.model.description.PolytomousKey; import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.cdm.model.taxon.Synonym; @@ -79,7 +80,7 @@ public class NavigationUtil extends AbstractUtility{ * * @param selectedObject a {@link eu.etaxonomy.cdm.model.common.CdmBase} object. */ - public static void openEditor(CdmBase selectedObject){ + public static void openEditor(ICdmBase selectedObject){ UUID entityUuid = selectedObject.getUuid(); try { if(selectedObject instanceof TaxonNode){ @@ -101,6 +102,19 @@ public class NavigationUtil extends AbstractUtility{ } } + public static void openEditor(Object selectedObject){ + if (selectedObject instanceof UuidAndTitleCache){ + Class type = ((UuidAndTitleCache) selectedObject).getType(); + if(type == Taxon.class || type == Synonym.class){ + try { + EditorUtil.openTaxonBase(((UuidAndTitleCache) selectedObject).getUuid()); + } catch (PartInitException e) { + NavigationUtil.error(NavigationUtil.class, "Error opening the editor", e); + } + } + } + } + /** *

openEmpty

* diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java index 1b913375f..07d29cda0 100644 --- a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java +++ b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java @@ -25,6 +25,7 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.ui.handlers.HandlerUtil; import eu.etaxonomy.cdm.model.common.CdmBase; +import eu.etaxonomy.cdm.model.common.UuidAndTitleCache; import eu.etaxonomy.cdm.model.taxon.Classification; import eu.etaxonomy.taxeditor.navigation.NavigationUtil; import eu.etaxonomy.taxeditor.wizard.ClassificationWizard; @@ -64,18 +65,13 @@ public class EditHandler extends AbstractHandler implements IHandler{ protected IStatus run(IProgressMonitor monitor) { for(final Object selectedObject : structuredSelection.toArray()){ - if(selectedObject instanceof CdmBase){ - // let the openEditor() method handle everything from now on - Display.getDefault().asyncExec(new Runnable(){ + Display.getDefault().asyncExec(new Runnable(){ - public void run() { - NavigationUtil.openEditor((CdmBase) selectedObject); - } - - }); - }else{ - throw new IllegalArgumentException("selectedObject is not of type CdmBase"); - } + public void run() { + NavigationUtil.openEditor(selectedObject); + } + + }); } return Status.OK_STATUS; } diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java index 73583c4b2..754611f35 100644 --- a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java +++ b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java @@ -16,6 +16,7 @@ import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; +import eu.etaxonomy.cdm.model.common.UuidAndTitleCache; import eu.etaxonomy.cdm.model.taxon.Synonym; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonBase; @@ -34,8 +35,8 @@ public class SearchResultLabelProvider extends ColumnLabelProvider implements IL /** {@inheritDoc} */ public String getText(Object element) { - if(element instanceof TaxonBase){ - return ((TaxonBase) element).getTitleCache(); + if(element instanceof UuidAndTitleCache){ + return ((UuidAndTitleCache) element).getTitleCache(); } return element.toString(); } @@ -70,13 +71,15 @@ public class SearchResultLabelProvider extends ColumnLabelProvider implements IL /** {@inheritDoc} */ @Override public Color getForeground(Object element) { - if(element instanceof Taxon){ - return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorAccepted"); - }else if(element instanceof Synonym){ - return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorSynonym"); - }else{ - return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorDefault"); + if(element instanceof UuidAndTitleCache){ + Class type = ((UuidAndTitleCache) element).getType(); + if(type == Taxon.class){ + return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorAccepted"); + }else if(type == Synonym.class){ + return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorSynonym"); + } } + return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorDefault"); } /* (non-Javadoc) @@ -85,16 +88,17 @@ public class SearchResultLabelProvider extends ColumnLabelProvider implements IL /** {@inheritDoc} */ @Override public Image getImage(Object element) { - if(element instanceof Taxon){ - Taxon taxon = (Taxon) element; - if(taxon.isMisapplication()){ - return ImageResources.getImage(ImageResources.MISAPPLIED_NAME_ICON); - }else{ + if(element instanceof UuidAndTitleCache){ + Class type = ((UuidAndTitleCache) element).getType(); + // unfortunately we can not distinct misapplication anymore +// if(taxon.isMisapplication()){ +// return ImageResources.getImage(ImageResources.MISAPPLIED_NAME_ICON); +// }else{ + if(type == Taxon.class){ return ImageResources.getImage(ImageResources.BLACK_SQUARE_ICON); + }else if(type == Synonym.class){ + return ImageResources.getImage(ImageResources.HETEROTYPIC_SYN_ICON); } - }else if(element instanceof Synonym){ -// Synonym synonym = (Synonym) element; - return ImageResources.getImage(ImageResources.HETEROTYPIC_SYN_ICON); } return super.getImage(element); } -- 2.34.1