0a586c2cc84d76c2376d377cc5f23c425f502906
[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 */
30 public class CdmDataSourceLabelProvider extends LabelProvider implements ITableLabelProvider {
31
32 /** {@inheritDoc} */
33 public Image getColumnImage(Object element, int columnIndex) {
34 if(columnIndex == 0){
35 ICdmSource dataSource = ((CdmMetaDataAwareDataSourceContainer) element).getCdmSource();
36
37 String key = isCurrentDataSource(dataSource) ? ImageResources.IMG_DATASOURCE_CONNECTED : ImageResources.IMG_DATASOURCE_DISCONNECTED;
38
39 return ImageResources.getImage(key);
40 }
41
42 return null;
43 }
44
45 /** {@inheritDoc} */
46 public String getColumnText(Object element, int columnIndex) {
47 CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) element;
48
49 ICdmSource dataSource = container.getCdmSource();
50
51 switch (columnIndex){
52 case 1:
53 return dataSource.getName();
54 case 2:
55 if(dataSource.getServer() != null){
56 return dataSource.getServer();
57 }
58 // h2 databases do not have server entries
59 return "local";
60 case 3:
61 return container.isRunning() ? "Yes" : "No";
62 case 4:
63 if(dataSource instanceof ICdmDataSource) {
64 return ((ICdmDataSource)dataSource).getDatabaseType().getName();
65 } else {
66 return "";
67 }
68 case 5:
69 if(dataSource instanceof ICdmDataSource) {
70 return ((ICdmDataSource)dataSource).getDatabase();
71 } else {
72 return DatabaseTypeEnum.MySQL.getName();
73 }
74 //TODO 6 was nomenclatural code, do we need to change following numbers?
75 case 7:
76 return container.getMetaData(MetaDataPropertyName.DB_CREATE_DATE);
77 case 8:
78 return container.getMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION);
79 case 9:
80 if(container.getMetaDataMap().get(MetaDataPropertyName.DB_SCHEMA_VERSION) != null){
81 return container.isDataSourceCompatible() ? "Yes" : "No";
82 }
83 break;
84 case 10:
85 return container.getMetaData(MetaDataPropertyName.DB_CREATE_NOTE);
86 }
87 return CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY;
88 }
89
90 private boolean isCurrentDataSource(ICdmSource dataSource){
91 ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
92 return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
93 }
94 }