Project

General

Profile

Download (2.99 KB) Statistics
| Branch: | Tag: | Revision:
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.view.datasource;
11

    
12
import org.eclipse.jface.viewers.ITableLabelProvider;
13
import org.eclipse.jface.viewers.LabelProvider;
14
import org.eclipse.swt.graphics.Image;
15

    
16
import eu.etaxonomy.cdm.config.ICdmSource;
17
import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
18
import eu.etaxonomy.cdm.database.ICdmDataSource;
19
import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
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
	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
			case 6:
75
				return container.getMetaData(CdmMetaDataPropertyName.DB_CREATE_DATE);
76
			case 7:
77
				return container.getMetaData(CdmMetaDataPropertyName.DB_SCHEMA_VERSION);
78
			case 8:
79
				if(container.getMetaDataMap().get(CdmMetaDataPropertyName.DB_SCHEMA_VERSION) != null){
80
					return container.isDataSourceCompatible() ? "Yes" : "No";
81
				}
82
				break;
83
			case 9:
84
				return container.getMetaData(CdmMetaDataPropertyName.DB_CREATE_NOTE);
85
		}
86
		return CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY;
87
	}
88
	
89
	private boolean isCurrentDataSource(ICdmSource dataSource){
90
		ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
91
		return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
92
	}
93
}
(2-2/5)