minor refactor in UseObjectManager and bugfix for NPE during application start (...
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / TaxonNodeLabelProvider.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.navigator;
12
13 import org.apache.log4j.Logger;
14 import org.eclipse.jface.viewers.ColumnLabelProvider;
15 import org.eclipse.jface.viewers.ILabelProvider;
16 import org.eclipse.jface.viewers.StyledString;
17 import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
18 import org.eclipse.swt.graphics.Image;
19 import org.eclipse.ui.navigator.IDescriptionProvider;
20 import org.hibernate.LazyInitializationException;
21
22 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
23 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
24 import eu.etaxonomy.cdm.model.taxon.Taxon;
25 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
26 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
27
28 /**
29 * <p>TaxonNodeLabelProvider class.</p>
30 *
31 * @author p.ciardelli
32 * @created 04.06.2009
33 * @version 1.0
34 */
35 public class TaxonNodeLabelProvider extends ColumnLabelProvider
36 implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
37
38 /** {@inheritDoc} */
39 @Override
40 public Image getImage(Object element) {
41 return null;
42 }
43
44 /** {@inheritDoc} */
45 @Override
46 public String getText(Object element) {
47 if (element instanceof TaxonNode){
48 TaxonNode taxonNode = (TaxonNode) HibernateProxyHelper.deproxy(element);
49
50 try{
51 Taxon taxon = (Taxon) HibernateProxyHelper.deproxy(taxonNode.getTaxon());
52 if(taxon == null){
53 NavigationUtil.error(getClass(), "The taxon node does not have a taxon attached to it. Please check your import. TaxonNode: " + element, null);
54 // throw new RuntimeException("The data your are trying to view is corrupt. Please check your import.");
55 }else{
56 try{
57 return taxon.getName() != null ? ((IIdentifiableEntity) HibernateProxyHelper.deproxy(taxon.getName())).getTitleCache() : new String();
58 }catch(Exception e){
59 NavigationUtil.error(getClass(), e);
60 }
61 }
62 }catch (LazyInitializationException e){
63 NavigationUtil.error(getClass(), e);
64 }
65
66 }
67 return new String();
68 }
69
70 /* (non-Javadoc)
71 * @see org.eclipse.ui.navigator.IDescriptionProvider#getDescription(java.lang.Object)
72 */
73 /** {@inheritDoc} */
74 public String getDescription(Object anElement) {
75 if (anElement instanceof TaxonNode) {
76 Taxon data = ((TaxonNode) anElement).getTaxon();
77 return "Taxon: " + data.getTitleCache(); //$NON-NLS-1$
78 }
79 return null;
80 }
81
82 /* (non-Javadoc)
83 * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
84 */
85 /** {@inheritDoc} */
86 public StyledString getStyledText(Object element) {
87 return new StyledString(getText(element));
88 }
89 }