Project

General

Profile

Download (3.3 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
	/*
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
}
(2-2/5)