Merge branch 'develop' into LibrAlign
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / datasource / handler / EditDataSourceHandler.java
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.handler;
11
12 import org.eclipse.core.commands.ExecutionEvent;
13 import org.eclipse.core.runtime.IStatus;
14 import org.eclipse.jface.wizard.Wizard;
15 import org.eclipse.jface.wizard.WizardDialog;
16 import org.eclipse.ui.handlers.HandlerUtil;
17
18 import eu.etaxonomy.cdm.config.ICdmSource;
19 import eu.etaxonomy.cdm.database.ICdmDataSource;
20 import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard;
21 import eu.etaxonomy.taxeditor.store.StoreUtil;
22 import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
23 import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
24
25 /**
26 * <p>EditDataSourceHandler class.</p>
27 *
28 * @author n.hoffmann
29 * @created 15.04.2009
30 * @version 1.0
31 */
32 public class EditDataSourceHandler extends AbstractDataSourceHandler {
33
34 /* (non-Javadoc)
35 * @see eu.etaxonomy.taxeditor.store.datasource.handler.AbstractDataSourceHandler#specificExecute(org.eclipse.core.commands.ExecutionEvent)
36 */
37 /** {@inheritDoc} */
38 @Override
39 public boolean specificExecute(ExecutionEvent event) {
40 CdmMetaDataAwareDataSourceContainer container = getSelectedDataSourceContainer(event);
41 ICdmSource cdmSource = container.getCdmSource();
42 //FIXME:Remoting we need another wizard for ICdmRemoteSource
43 if(cdmSource instanceof ICdmDataSource) {
44 Wizard wizard = new CdmDataSourceWizard((ICdmDataSource)cdmSource, CdmDataSourceWizard.Mode.EDIT);
45 WizardDialog dialog = new WizardDialog(HandlerUtil.getActiveShell(event), wizard);
46
47 int result = dialog.open();
48
49 if(result == IStatus.OK){
50 CdmDataSourceViewPart view = (CdmDataSourceViewPart) StoreUtil.getView(CdmDataSourceViewPart.ID, false);
51 if(view != null){
52 container.getMetaDataFromDataSource();
53 view.getViewer().update(new CdmMetaDataAwareDataSourceContainer[]{container}, null);
54
55 }
56 }
57 }
58
59 return false;
60 }
61 }