Project

General

Profile

Download (2.97 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
	@Override
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
	@Override
47
    public String getColumnText(Object element, int columnIndex) {
48
		CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) element;
49

    
50
		ICdmSource dataSource = container.getCdmSource();
51

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

    
90
	private boolean isCurrentDataSource(ICdmSource dataSource){
91
		ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
92
		return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
93
	}
94
}
(2-2/4)