eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmMetaDataAwareDataSourceContainer.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/AbstractDataSourceHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/ChangeConnectionHandler.java -text
+eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/CloneDataSourceHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/CloseConnectionHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/CreateDataSourceHandler.java -text
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/DataSourceMenuPropertyTester.java -text
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
import eu.etaxonomy.taxeditor.model.ImageResources;
/** {@inheritDoc} */
public Image getColumnImage(Object element, int columnIndex) {
if(columnIndex == 0){
- ICdmDataSource dataSource = ((CdmMetaDataAwareDataSourceContainer) element).getDataSource();
+ ICdmSource dataSource = ((CdmMetaDataAwareDataSourceContainer) element).getCdmSource();
String key = isCurrentDataSource(dataSource) ? ImageResources.IMG_DATASOURCE_CONNECTED : ImageResources.IMG_DATASOURCE_DISCONNECTED;
public String getColumnText(Object element, int columnIndex) {
CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) element;
- ICdmDataSource dataSource = container.getDataSource();
+ ICdmSource dataSource = container.getCdmSource();
switch (columnIndex){
case 1:
case 3:
return container.isRunning() ? "Yes" : "No";
case 4:
- return dataSource.getDatabaseType().getName();
+ if(dataSource instanceof ICdmDataSource) {
+ return ((ICdmDataSource)dataSource).getDatabaseType().getName();
+ } else {
+ return "";
+ }
case 5:
- return dataSource.getDatabase();
+ if(dataSource instanceof ICdmDataSource) {
+ return ((ICdmDataSource)dataSource).getDatabase();
+ } else {
+ return DatabaseTypeEnum.MySQL.getName();
+ }
case 6:
if (dataSource.getNomenclaturalCode() == null) {
return "";
return CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY;
}
- private boolean isCurrentDataSource(ICdmDataSource dataSource){
- ICdmDataSource currentDataSource = CdmStore.getDataSource();
-
+ private boolean isCurrentDataSource(ICdmSource dataSource){
+ ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
}
}
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
import org.springframework.security.core.GrantedAuthority;
+import eu.etaxonomy.cdm.config.ICdmSource;
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
private class DataSourceJob extends Job{
- private List<ICdmDataSource> dataSources;
+ private List<ICdmSource> cdmSources;
/**
* @param name
*/
- public DataSourceJob(String title, List<ICdmDataSource> dataSources) {
+ public DataSourceJob(String title, List<ICdmSource> cdmSources) {
super(title);
- this.dataSources = dataSources;
+ this.cdmSources = cdmSources;
}
/* (non-Javadoc)
public IStatus run(final IProgressMonitor monitor) {
try{
logger.debug("Begin of eclipse core runtime Job to Retrieve datasources");
- monitor.beginTask("Retrieving datasources", dataSources.size() + 1);
+ monitor.beginTask("Retrieving datasources", cdmSources.size() + 1);
final List<CdmMetaDataAwareDataSourceContainer> containers = new ArrayList<CdmMetaDataAwareDataSourceContainer>();
- for(ICdmDataSource dataSource : dataSources){
- containers.add(new CdmMetaDataAwareDataSourceContainer(dataSource));
+ for(ICdmSource cdmSource : cdmSources){
+ containers.add(new CdmMetaDataAwareDataSourceContainer(cdmSource));
}
Display.getDefault().asyncExec(new Runnable() {
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerComparator;
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
CdmMetaDataAwareDataSourceContainer d1 = (CdmMetaDataAwareDataSourceContainer) e1;
CdmMetaDataAwareDataSourceContainer d2 = (CdmMetaDataAwareDataSourceContainer) e2;
+ ICdmSource cs1 = d1.getCdmSource();
+ ICdmSource cs2 = d2.getCdmSource();
+
int result = 0;
switch (propertyIndex) {
// is running
break;
case 5:
- NomenclaturalCode code1 = d1.getDataSource().getNomenclaturalCode();
- NomenclaturalCode code2 = d2.getDataSource().getNomenclaturalCode();
+ NomenclaturalCode code1 = d1.getCdmSource().getNomenclaturalCode();
+ NomenclaturalCode code2 = d2.getCdmSource().getNomenclaturalCode();
if (code1 != null && code2 != null) {
result = code1.compareTo(code2);
}
break;
case 4:
- result = d1.getDataSource().getDatabase().compareTo(d2.getDataSource().getDatabase());
+ if(cs1 instanceof ICdmDataSource && cs2 instanceof ICdmDataSource) {
+ result = ((ICdmDataSource)cs1).getDatabase().compareTo(((ICdmDataSource)cs2).getDatabase());
+ }
+
break;
case 3:
- result = d1.getDataSource().getDatabaseType().getName().compareTo(d2.getDataSource().getDatabaseType().getName());
+ if(cs1 instanceof ICdmDataSource && cs2 instanceof ICdmDataSource) {
+ result = ((ICdmDataSource)cs1).getDatabaseType().getName().compareTo(((ICdmDataSource)cs2).getDatabaseType().getName());
+ }
break;
case 2:
- String server1 = d1.getDataSource().getServer();
- String server2 = d2.getDataSource().getServer();
+ String server1 = d1.getCdmSource().getServer();
+ String server2 = d2.getCdmSource().getServer();
if(server1 != null && server2 != null){
result = server1.compareTo(server2);
}
// h2 databases do not have server entries
break;
default:
- result = d1.getDataSource().getName().compareTo(d2.getDataSource().getName());
+ result = d1.getCdmSource().getName().compareTo(d2.getCdmSource().getName());
}
// If descending order, flip the direction
import java.util.HashMap;
import java.util.Map;
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.config.ICdmSource;
import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
/** Constant <code>DEFAULT_ENTRY="-"</code> */
public static final String DEFAULT_ENTRY = "-";
- private ICdmDataSource dataSource;
+ private ICdmSource cdmSource;
private boolean running;
* @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
* @param view a {@link eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart} object.
*/
- public CdmMetaDataAwareDataSourceContainer(ICdmDataSource dataSource){
- this.dataSource = dataSource;
+ public CdmMetaDataAwareDataSourceContainer(ICdmSource cdmSource){
+ this.cdmSource = cdmSource;
metaDataMap = getDefaultMetaDataMap();
}
- /**
- * <p>Getter for the field <code>dataSource</code>.</p>
- *
- * @return the dataSource
- */
- public ICdmDataSource getDataSource() {
- return dataSource;
- }
+// /**
+// * <p>Getter for the field <code>dataSource</code>.</p>
+// *
+// * @return the dataSource
+// */
+// public ICdmDataSource getDataSource() {
+// return dataSource;
+// }
+
+ public ICdmSource getCdmSource() {
+ return cdmSource;
+}
public void getMetaDataFromDataSource(){
try {
- running = dataSource.testConnection();
+ running = cdmSource.checkConnection();
} catch (Exception e) {
running = false;
for(MetaDataPropertyName metaDataPropertyName : MetaDataPropertyName.values()){
metaDataMap.put(metaDataPropertyName, DEFAULT_ENTRY);
}
}
-
+
try {
if(isRunning()){
-
- try {
- for(MetaDataPropertyName metaDataPropertyName : MetaDataPropertyName.values()){
- Object result = dataSource.getSingleValue(metaDataPropertyName.getSqlQuery());
- if(result != null){
- metaDataMap.put(metaDataPropertyName, (String) result);
- }
- }
- dataSource.closeOpenConnections();
- } catch (SQLException e) {
- StoreUtil.warn(this.getClass(), "SQLException when trying to access: " + dataSource.getName() + ". " + e.getMessage());
- }
+
+ // try {
+ metaDataMap = cdmSource.getMetaDataMap();
+ cdmSource.closeOpenConnections();
+ // } catch (CdmSourceException e) {
+ // StoreUtil.warn(this.getClass(), "SQLException when trying to access: " + cdmSource.getName() + ". " + e.getMessage());
+ // }
}
} catch (Exception e) {
StoreUtil.error(this.getClass(), e);
/** {@inheritDoc} */
@Override
public String toString() {
- return dataSource.getName();
+ return cdmSource.getName();
}
}
}
try {
- container.getDataSource().testConnection();
+ container.getCdmSource().checkConnection();
boolean confirmed = StoreUtil.confirmDialog("Confirm Datasource Connection", "Do you really want to connect to this datasource?\n\n"
- + container.getDataSource().getName());
+ + container.getCdmSource().getName());
if(confirmed){
- CdmDataSourceRepository.changeDataSource(container.getDataSource());
+ CdmDataSourceRepository.changeDataSource(container.getCdmSource());
}
} catch (Exception e) {
StoreUtil.warningDialog("Chosen datasource is not available", this, "This could mean that either the database server is " +
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.view.datasource.handler;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
+import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
+
+/**
+ * <p>CloneDataSourceHandler class.</p>
+ *
+ */
+public class CloneDataSourceHandler extends AbstractDataSourceHandler {
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.store.datasource.handler.AbstractDataSourceHandler#specificExecute(org.eclipse.core.commands.ExecutionEvent)
+ */
+ /** {@inheritDoc} */
+ @Override
+ public boolean specificExecute(ExecutionEvent event) {
+ CdmMetaDataAwareDataSourceContainer container = getSelectedDataSourceContainer(event);
+ ICdmSource cdmSource = container.getCdmSource();
+ //FIXME:Remoting we need another wizard for ICdmRemoteSource
+ if(cdmSource instanceof ICdmDataSource) {
+ Wizard wizard = new CdmDataSourceWizard((ICdmDataSource)cdmSource, CdmDataSourceWizard.Mode.CLONE);
+ WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
+
+ int result = dialog.open();
+
+ if(result == IStatus.OK){
+ CdmDataSourceViewPart view = (CdmDataSourceViewPart) StoreUtil.getView(CdmDataSourceViewPart.ID, false);
+ if(view != null){
+ container.getMetaDataFromDataSource();
+ view.getViewer().update(new CdmMetaDataAwareDataSourceContainer[]{container}, null);
+
+ }
+ }
+ }
+
+ return true;
+ }
+}
}
// Delete from persistent data sources
for(Object object : selectedObjects){
- CdmPersistentDataSource dataSource = (CdmPersistentDataSource) ((CdmMetaDataAwareDataSourceContainer) object).getDataSource();
+ CdmPersistentDataSource dataSource = (CdmPersistentDataSource) ((CdmMetaDataAwareDataSourceContainer) object).getCdmSource();
CdmDataSourceRepository.delete(dataSource);
}
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
@Override
public boolean specificExecute(ExecutionEvent event) {
CdmMetaDataAwareDataSourceContainer container = getSelectedDataSourceContainer(event);
-
- CdmDataSourceWizard wizard = new CdmDataSourceWizard(container.getDataSource());
- WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
-
- int result = dialog.open();
-
- if(result == IStatus.OK){
- CdmDataSourceViewPart view = (CdmDataSourceViewPart) StoreUtil.getView(CdmDataSourceViewPart.ID, false);
- if(view != null){
- container.getMetaDataFromDataSource();
- view.getViewer().update(new CdmMetaDataAwareDataSourceContainer[]{container}, null);
-
- }
+ ICdmSource cdmSource = container.getCdmSource();
+ //FIXME:Remoting we need another wizard for ICdmRemoteSource
+ if(cdmSource instanceof ICdmDataSource) {
+ Wizard wizard = new CdmDataSourceWizard((ICdmDataSource)cdmSource, CdmDataSourceWizard.Mode.EDIT);
+ WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
+
+ int result = dialog.open();
+
+ if(result == IStatus.OK){
+ CdmDataSourceViewPart view = (CdmDataSourceViewPart) StoreUtil.getView(CdmDataSourceViewPart.ID, false);
+ if(view != null){
+ container.getMetaDataFromDataSource();
+ view.getViewer().update(new CdmMetaDataAwareDataSourceContainer[]{container}, null);
+
+ }
+ }
}
-
- return false;
+
+ return false;
}
}
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.ui.progress.IProgressConstants;
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
import eu.etaxonomy.cdm.database.update.CdmUpdater;
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
import eu.etaxonomy.taxeditor.store.StoreUtil;
"Are you sure you want to update the datasource?", SWT.NONE)){
return false;
}
- Job job = new Job("Updating datasource " + container.getDataSource().getName()){
+ Job job = new Job("Updating datasource " + container.getCdmSource().getName()){
@Override
protected IStatus run(IProgressMonitor monitor) {
CdmUpdater updater = new CdmUpdater();
IStatus status = null;
-
+ ICdmSource cdmSource = container.getCdmSource();
+ //FIXME:Remoting we need another updater for ICdmRemoteSource
+ if(cdmSource instanceof ICdmDataSource) {
try{
- if(updater.updateToCurrentVersion(container.getDataSource(), CdmProgressMonitorAdapter.CreateMonitor(monitor))){
+ if(updater.updateToCurrentVersion((ICdmDataSource)cdmSource, CdmProgressMonitorAdapter.CreateMonitor(monitor))){
display.asyncExec(new Runnable(){
@Override
status = new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, e.getMessage(), e);
StoreUtil.errorDialog("Could not run updater", getClass(), status.getMessage());
}
-
+ }
return status;
}