merge from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / search / SearchResultLabelProvider.java
1 // $$Id$$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.navigation.search;
12
13 import org.eclipse.jface.viewers.ColumnLabelProvider;
14 import org.eclipse.jface.viewers.ILabelProvider;
15 import org.eclipse.swt.graphics.Color;
16 import org.eclipse.swt.graphics.Font;
17 import org.eclipse.swt.graphics.Image;
18
19 import eu.etaxonomy.cdm.api.service.ITaxonService;
20 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
21 import eu.etaxonomy.cdm.model.taxon.Synonym;
22 import eu.etaxonomy.cdm.model.taxon.Taxon;
23 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
24 import eu.etaxonomy.taxeditor.model.ImageResources;
25 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
26 import eu.etaxonomy.taxeditor.preference.Resources;
27 import eu.etaxonomy.taxeditor.store.CdmStore;
28
29 /**
30 * <p>SearchResultLabelProvider class.</p>
31 *
32 * @author n.hoffmann
33 * @created 04.05.2009
34 * @version 1.0
35 */
36 public class SearchResultLabelProvider extends ColumnLabelProvider implements ILabelProvider {
37
38 /** {@inheritDoc} */
39 public String getText(Object element) {
40 if(element instanceof UuidAndTitleCache){
41 return ((UuidAndTitleCache) element).getTitleCache();
42 }
43 return element.toString();
44 }
45
46 /* (non-Javadoc)
47 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getBackground(java.lang.Object)
48 */
49 /** {@inheritDoc} */
50 @Override
51 public Color getBackground(Object element) {
52 return super.getBackground(element);
53 }
54
55 /* (non-Javadoc)
56 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getFont(java.lang.Object)
57 */
58 /** {@inheritDoc} */
59 @Override
60 public Font getFont(Object element) {
61 if(element instanceof Taxon){
62 return NavigationUtil.getFont(Resources.FONT_SEARCH_VIEW_ACCEPTED);
63 }else if(element instanceof Synonym){
64 return NavigationUtil.getFont(Resources.FONT_SEARCH_VIEW_SYNONYM);
65 }else{
66 return NavigationUtil.getFont(Resources.FONT_SEARCH_VIEW_OTHER);
67 }
68 }
69
70 /* (non-Javadoc)
71 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getForeground(java.lang.Object)
72 */
73 /** {@inheritDoc} */
74 @Override
75 public Color getForeground(Object element) {
76 if(element instanceof UuidAndTitleCache){
77 Class type = ((UuidAndTitleCache) element).getType();
78 if(type == Taxon.class){
79 return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorAccepted");
80 }else if(type == Synonym.class){
81 return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorSynonym");
82 }
83 }
84 return NavigationUtil.getColorRegistry().get("eu.etaxonomy.taxeditor.preferences.searchResult.fontColorDefault");
85 }
86
87 /* (non-Javadoc)
88 * @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
89 */
90 /** {@inheritDoc} */
91 @Override
92 public Image getImage(Object element) {
93 if(element instanceof UuidAndTitleCache){
94 Class type = ((UuidAndTitleCache) element).getType();
95 // unfortunately we can not distinct misapplication anymore
96 // if(taxon.isMisapplication()){
97 // return ImageResources.getImage(ImageResources.MISAPPLIED_NAME_ICON);
98 // }else{
99 if(type == Taxon.class){
100 if(((UuidAndTitleCache) element).getIsOrphaned()) {
101 return ImageResources.getImage(ImageResources.ORPHANED_TAXON);
102 }
103 return ImageResources.getImage(ImageResources.BLACK_SQUARE_ICON);
104 }else if(type == Synonym.class){
105 return ImageResources.getImage(ImageResources.HETEROTYPIC_SYN_ICON);
106 }
107 }
108 return super.getImage(element);
109 }
110
111 /* (non-Javadoc)
112 * @see org.eclipse.jface.viewers.CellLabelProvider#getToolTipText(java.lang.Object)
113 *
114 * does not seem t work right now
115 */
116 /** {@inheritDoc} */
117 @Override
118 public String getToolTipText(Object element) {
119 if(element instanceof TaxonBase){
120 if(element instanceof Synonym){
121 return "Synonym: " + ((TaxonBase<?>) element).getName().getTitleCache();
122 }else{
123 return "Taxon: " + ((TaxonBase<?>) element).getName().getTitleCache();
124 }
125 }
126 return "Name: " + element.toString();
127 }
128
129
130
131 }