Project

General

Profile

Download (3.08 KB) Statistics
| Branch: | Tag: | Revision:
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
	/** {@inheritDoc} */
34
	@Override
35
    public Image getColumnImage(Object element, int columnIndex) {
36
		if(columnIndex == 0){
37
			ICdmSource dataSource = ((CdmMetaDataAwareDataSourceContainer) element).getCdmSource();
38

    
39
			String key = isCurrentDataSource(dataSource) ? ImageResources.IMG_DATASOURCE_CONNECTED : ImageResources.IMG_DATASOURCE_DISCONNECTED;
40

    
41
			return ImageResources.getImage(key);
42
		}
43

    
44
		return null;
45
	}
46

    
47
	/** {@inheritDoc} */
48
	@Override
49
    public String getColumnText(Object element, int columnIndex) {
50
		CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) element;
51

    
52
		ICdmSource dataSource = container.getCdmSource();
53

    
54
		switch (columnIndex){
55
			case 1:
56
				return dataSource.getName();
57
			case 2:
58
				if(dataSource.getServer() != null){
59
					return dataSource.getServer();
60
				}
61
				// h2 databases do not have server entries
62
				return "local";
63
			case 3:
64
				return container.isRunning() ? "Yes" : "No";
65
			case 4:
66
				if(dataSource instanceof ICdmDataSource) {
67
					return ((ICdmDataSource)dataSource).getDatabaseType().getName();
68
				} else {
69
					return "";
70
				}
71
			case 5:
72
				if(dataSource instanceof ICdmDataSource) {
73
					return ((ICdmDataSource)dataSource).getDatabase();
74
				} else {
75
					return DatabaseTypeEnum.MySQL.getName();
76
				}
77
			case 6:
78
				if (dataSource.getNomenclaturalCode() == null) {
79
					return "";
80
				}
81
				return dataSource.getNomenclaturalCode().name();
82
			case 7:
83
				return container.getMetaData(MetaDataPropertyName.DB_CREATE_DATE);
84
			case 8:
85
				return container.getMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION);
86
			case 9:
87
				if(container.getMetaDataMap().get(MetaDataPropertyName.DB_SCHEMA_VERSION) != null){
88
					return container.isDataSourceCompatible() ? "Yes" : "No";
89
				}
90
				break;
91
			case 10:
92
				return container.getMetaData(MetaDataPropertyName.DB_CREATE_NOTE);
93
		}
94
		return CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY;
95
	}
96

    
97
	private boolean isCurrentDataSource(ICdmSource dataSource){
98
		ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
99
		return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
100
	}
101
}
(2-2/5)