refactoring to change the specific (I)CdmDataSource to the more generic (I)CdmSource...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / datasource / CdmDataSourceLabelProvider.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.view.datasource;
12
13 import org.eclipse.jface.viewers.ITableLabelProvider;
14 import org.eclipse.jface.viewers.LabelProvider;
15 import org.eclipse.swt.graphics.Image;
16
17 import eu.etaxonomy.cdm.config.ICdmSource;
18 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
19 import eu.etaxonomy.cdm.database.ICdmDataSource;
20 import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
21 import eu.etaxonomy.taxeditor.model.ImageResources;
22 import eu.etaxonomy.taxeditor.store.CdmStore;
23
24 /**
25 * <p>CdmDataSourceLabelProvider class.</p>
26 *
27 * @author n.hoffmann
28 * @created 14.04.2009
29 * @version 1.0
30 */
31 public class CdmDataSourceLabelProvider extends LabelProvider implements ITableLabelProvider {
32
33 /*
34 * (non-Javadoc)
35 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
36 */
37 /** {@inheritDoc} */
38 public Image getColumnImage(Object element, int columnIndex) {
39 if(columnIndex == 0){
40 ICdmSource dataSource = ((CdmMetaDataAwareDataSourceContainer) element).getCdmSource();
41
42 String key = isCurrentDataSource(dataSource) ? ImageResources.IMG_DATASOURCE_CONNECTED : ImageResources.IMG_DATASOURCE_DISCONNECTED;
43
44 return ImageResources.getImage(key);
45 }
46
47 return null;
48 }
49
50 /*
51 * (non-Javadoc)
52 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
53 */
54 /** {@inheritDoc} */
55 public String getColumnText(Object element, int columnIndex) {
56 CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) element;
57
58 ICdmSource dataSource = container.getCdmSource();
59
60 switch (columnIndex){
61 case 1:
62 return dataSource.getName();
63 case 2:
64 if(dataSource.getServer() != null){
65 return dataSource.getServer();
66 }
67 // h2 databases do not have server entries
68 return "local";
69 case 3:
70 return container.isRunning() ? "Yes" : "No";
71 case 4:
72 if(dataSource instanceof ICdmDataSource) {
73 return ((ICdmDataSource)dataSource).getDatabaseType().getName();
74 } else {
75 return "";
76 }
77 case 5:
78 if(dataSource instanceof ICdmDataSource) {
79 return ((ICdmDataSource)dataSource).getDatabase();
80 } else {
81 return DatabaseTypeEnum.MySQL.getName();
82 }
83 case 6:
84 if (dataSource.getNomenclaturalCode() == null) {
85 return "";
86 }
87 return dataSource.getNomenclaturalCode().name();
88 case 7:
89 return container.getMetaData(MetaDataPropertyName.DB_CREATE_DATE);
90 case 8:
91 return container.getMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION);
92 case 9:
93 if(container.getMetaDataMap().get(MetaDataPropertyName.DB_SCHEMA_VERSION) != null){
94 return container.isDataSourceCompatible() ? "Yes" : "No";
95 }
96 break;
97 case 10:
98 return container.getMetaData(MetaDataPropertyName.DB_CREATE_NOTE);
99 }
100 return CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY;
101 }
102
103 private boolean isCurrentDataSource(ICdmSource dataSource){
104 ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
105 return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
106 }
107 }