Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.local / src / main / java / eu / etaxonomy / taxeditor / local / view / datasource / CdmDataSourceLabelProvider.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.taxeditor.local.view.datasource;
11
12 import org.eclipse.jface.viewers.ILabelProviderListener;
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.CdmMetaDataPropertyName;
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 @Override
34 public Image getColumnImage(Object element, int columnIndex) {
35 if(columnIndex == 0){
36 ICdmSource dataSource = ((CdmMetaDataAwareDataSourceContainer) element).getCdmSource();
37
38 String key = isCurrentDataSource(dataSource) ? ImageResources.IMG_DATASOURCE_CONNECTED : ImageResources.IMG_DATASOURCE_DISCONNECTED;
39
40 return ImageResources.getImage(key);
41 }
42
43 return null;
44 }
45
46 /** {@inheritDoc} */
47 @Override
48 public String getColumnText(Object element, int columnIndex) {
49 CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) element;
50
51 ICdmSource dataSource = container.getCdmSource();
52
53 switch (columnIndex){
54 case 1:
55 return dataSource.getName();
56 case 2:
57 if(dataSource.getServer() != null){
58 return dataSource.getServer();
59 }
60 // h2 databases do not have server entries
61 return "local";
62 case 3:
63 return container.isRunning() ? "Yes" : "No";
64 case 4:
65 if(dataSource instanceof ICdmDataSource && ((ICdmDataSource)dataSource).getDatabaseType() != null) {
66 return ((ICdmDataSource)dataSource).getDatabaseType().getName();
67 } else {
68 return "";
69 }
70 case 5:
71 if(dataSource instanceof ICdmDataSource) {
72 return ((ICdmDataSource)dataSource).getDatabase();
73 } else {
74 return DatabaseTypeEnum.MySQL.getName();
75 }
76 case 6:
77 return container.getMetaData(CdmMetaDataPropertyName.DB_CREATE_DATE);
78 case 7:
79 return container.getMetaData(CdmMetaDataPropertyName.DB_SCHEMA_VERSION);
80 case 8:
81 if(container.getMetaDataMap().get(CdmMetaDataPropertyName.DB_SCHEMA_VERSION) != null){
82 return container.isDataSourceCompatible() ? "Yes" : "No";
83 }
84 break;
85 case 9:
86 return container.getMetaData(CdmMetaDataPropertyName.DB_CREATE_NOTE);
87 }
88 return CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY;
89 }
90
91 private boolean isCurrentDataSource(ICdmSource dataSource){
92 ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
93 return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
94 }
95
96 @Override
97 public void addListener(ILabelProviderListener listener) {
98 // TODO Auto-generated method stub
99
100 }
101
102 @Override
103 public void dispose() {
104 // TODO Auto-generated method stub
105
106 }
107
108 @Override
109 public boolean isLabelProperty(Object element, String property) {
110 // TODO Auto-generated method stub
111 return false;
112 }
113
114 @Override
115 public void removeListener(ILabelProviderListener listener) {
116 // TODO Auto-generated method stub
117
118 }
119 }