Project

General

Profile

Download (2.91 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.CdmMetaDataPropertyName;
20
import eu.etaxonomy.taxeditor.model.ImageResources;
21
import eu.etaxonomy.taxeditor.store.CdmStore;
22

    
23
/**
24
 * <p>CdmDataSourceLabelProvider class.</p>
25
 *
26
 * @author n.hoffmann
27
 * @created 14.04.2009
28
 */
29
public class CdmDataSourceLabelProvider extends LabelProvider implements ITableLabelProvider {
30
	
31
	/** {@inheritDoc} */
32
	public Image getColumnImage(Object element, int columnIndex) {
33
		if(columnIndex == 0){
34
			ICdmSource dataSource = ((CdmMetaDataAwareDataSourceContainer) element).getCdmSource();
35
			
36
			String key = isCurrentDataSource(dataSource) ? ImageResources.IMG_DATASOURCE_CONNECTED : ImageResources.IMG_DATASOURCE_DISCONNECTED;
37
			
38
			return ImageResources.getImage(key);
39
		}
40
		
41
		return null;
42
	}
43

    
44
	/** {@inheritDoc} */
45
	public String getColumnText(Object element, int columnIndex) {
46
		CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) element;
47
				
48
		ICdmSource dataSource = container.getCdmSource();
49
				
50
		switch (columnIndex){
51
			case 1:
52
				return dataSource.getName();
53
			case 2:
54
				if(dataSource.getServer() != null){
55
					return dataSource.getServer();
56
				}
57
				// h2 databases do not have server entries
58
				return "local";
59
			case 3:
60
				return container.isRunning() ? "Yes" : "No";
61
			case 4:
62
				if(dataSource instanceof ICdmDataSource) {
63
					return ((ICdmDataSource)dataSource).getDatabaseType().getName();
64
				} else {
65
					return "";
66
				}				
67
			case 5:
68
				if(dataSource instanceof ICdmDataSource) {
69
					return ((ICdmDataSource)dataSource).getDatabase();
70
				} else {
71
					return DatabaseTypeEnum.MySQL.getName();
72
				}
73
			case 6:
74
				return container.getMetaData(CdmMetaDataPropertyName.DB_CREATE_DATE);
75
			case 7:
76
				return container.getMetaData(CdmMetaDataPropertyName.DB_SCHEMA_VERSION);
77
			case 8:
78
				if(container.getMetaDataMap().get(CdmMetaDataPropertyName.DB_SCHEMA_VERSION) != null){
79
					return container.isDataSourceCompatible() ? "Yes" : "No";
80
				}
81
				break;
82
			case 9:
83
				return container.getMetaData(CdmMetaDataPropertyName.DB_CREATE_NOTE);
84
		}
85
		return CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY;
86
	}
87
	
88
	private boolean isCurrentDataSource(ICdmSource dataSource){
89
		ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
90
		return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
91
	}
92
}
(2-2/5)