fixes #2195
authorn.hoffmann <n.hoffmann@localhost>
Fri, 14 Jan 2011 14:09:31 +0000 (14:09 +0000)
committern.hoffmann <n.hoffmann@localhost>
Fri, 14 Jan 2011 14:09:31 +0000 (14:09 +0000)
17 files changed:
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorStateManager.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/IMultiPageTaxonEditorPage.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigatorStateManager.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/BerlinModelImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/EndnoteImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsImportWizard.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ContextListenerAdapter.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/IContextListener.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/ContextManager.java

index 2ad6367cd003b2402af737deba421823a1e8b17a..505e4896e987948e532cd51142dee44e82ce30d4 100644 (file)
@@ -10,7 +10,9 @@
 
 package eu.etaxonomy.taxeditor.editor;
 
 
 package eu.etaxonomy.taxeditor.editor;
 
+import java.util.HashSet;
 import java.util.Set;
 import java.util.Set;
+import java.util.UUID;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ui.IEditorInput;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ui.IEditorInput;
@@ -88,6 +90,14 @@ public class EditorStateManager extends ContextListenerAdapter {
        public void contextStart(IMemento memento, IProgressMonitor monitor) {
                restoreEditors(memento, monitor);
        }
        public void contextStart(IMemento memento, IProgressMonitor monitor) {
                restoreEditors(memento, monitor);
        }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
+        */
+       @Override
+       public void contextRefresh(IProgressMonitor monitor) {
+               refreshEditors(monitor);
+       }
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
@@ -133,6 +143,47 @@ public class EditorStateManager extends ContextListenerAdapter {
                subProgressMonitor.done();
        }
        
                subProgressMonitor.done();
        }
        
+       /**
+        * @param monitor
+        */
+       private void refreshEditors(IProgressMonitor monitor) {
+               IProgressMonitor subProgressMonitor = EditorUtil.getSubProgressMonitor(monitor, 1);
+               
+               Set<IEditorPart> openEditors = EditorUtil.getOpenEditors();
+               
+               
+               subProgressMonitor.beginTask("Refreshing Editors", openEditors.size() * 2);
+               
+               Set<UUID> uuids = new HashSet<UUID>();
+               
+               for(IEditorPart editor : openEditors){
+                       if(editor instanceof MultiPageTaxonEditor){
+                               try {
+                                       uuids.add(((TaxonEditorInput) editor.getEditorInput()).getTaxonNode().getUuid());
+                               
+//                                     ((MultiPageTaxonEditor) editor).close(false);
+                                       EditorUtil.close((MultiPageTaxonEditor)editor);
+                                       subProgressMonitor.worked(1);
+                               } catch (Exception e) {
+                                       // TODO Auto-generated catch block
+                                       e.printStackTrace();
+                               }
+                       }
+               }
+               
+               for(UUID uuid : uuids){
+                       try {
+                               EditorUtil.openTaxonNode(uuid);
+                       } catch (Exception e) {
+                               // TODO Auto-generated catch block
+                               e.printStackTrace();
+                       }
+                       subProgressMonitor.worked(1);
+               }
+               
+               subProgressMonitor.done();
+       }
+       
        /**
         * Saves the UUIDs 
         * 
        /**
         * Saves the UUIDs 
         * 
index 93be40625ff2b5bd5f7a1305d930e066d021842d..eba2a062e40f9a5770b655672d0611ea9584f4ad 100644 (file)
@@ -43,4 +43,5 @@ public interface IMultiPageTaxonEditorPage extends IEditorPart {
         * @return a boolean.
         */
        public boolean isRedrawing();
         * @return a boolean.
         */
        public boolean isRedrawing();
+       
 }
 }
index 148f0eef2a8b5f4320324d56fb8d6f4b5278239e..6557f08b152be417ab1a50b8b0422a0126e7f936 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.editor;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.UndoContext;
 
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.UndoContext;
@@ -369,10 +370,11 @@ public class MultiPageTaxonEditor extends FormEditor implements IConversationEna
         *
         * @return a {@link java.util.List} object.
         */
         *
         * @return a {@link java.util.List} object.
         */
-       public List<IEditorPart> getPages(){
-               ArrayList<IEditorPart> editors = new ArrayList<IEditorPart>();
+       public List<IMultiPageTaxonEditorPage> getPages(){
+               ArrayList<IMultiPageTaxonEditorPage> editors = new ArrayList<IMultiPageTaxonEditorPage>();
                for(int i = 0; i < this.getPageCount(); i++){
                for(int i = 0; i < this.getPageCount(); i++){
-                       editors.add(this.getEditor(i));
+                       
+                       editors.add((IMultiPageTaxonEditorPage) this.getEditor(i));
                }
                return editors;
        }
                }
                return editors;
        }
@@ -406,7 +408,34 @@ public class MultiPageTaxonEditor extends FormEditor implements IConversationEna
         * @return a boolean.
         */
        public boolean onComplete() {
         * @return a boolean.
         */
        public boolean onComplete() {
-               // TODO Auto-generated method stub
                return false;
        }
                return false;
        }
+
+       /**
+        * Reloads the data for this 
+        */
+       public void reload() {
+               if(isDirty()){
+                       EditorUtil.warningDialog("Editor has unsaved data", getClass(), "This editor can not be " +
+                                       "refreshed because it contains unsaved data. Refreshing " +
+                                       "this editor would discard the changes. Please save this editor, " +
+                                       "close and reopen it manually in order to get the latest content");
+               }else{
+                       TaxonEditorInput input = (TaxonEditorInput) getEditorInput();
+                       
+                       UUID uuid = input.getTaxonNode().getUuid();
+                       
+                       conversation.clear();
+                       
+                       try {
+                               TaxonEditorInput newInput = TaxonEditorInput.NewInstance(uuid);
+                               setInput(newInput);
+                               for(IMultiPageTaxonEditorPage editorPart : getPages()){
+                                       editorPart.redraw();
+                               }
+                       } catch (Exception e) {
+                               EditorUtil.errorDialog("Error refreshing editor", getClass(), "Could not refresh this editor", e);
+                       }
+               }
+       }
 }
 }
index 66cd01c4cdee633833b09ea8bff7b79dc0175009..dbd7232922328e4b57cf163bf39149ff26253c90 100644 (file)
@@ -265,7 +265,7 @@ public class TaxonNameEditor extends EditorPart implements IMultiPageTaxonEditor
        
        /** {@inheritDoc} */
        public void setInput(IEditorInput input){
        
        /** {@inheritDoc} */
        public void setInput(IEditorInput input){
-               this.setInputWithNotify(input);         
+               this.setInputWithNotify(input);
        }
        
        /*
        }
        
        /*
@@ -308,7 +308,7 @@ public class TaxonNameEditor extends EditorPart implements IMultiPageTaxonEditor
        public boolean redraw(boolean focus) {
                
                createNameComposites();
        public boolean redraw(boolean focus) {
                
                createNameComposites();
-
+               
                if(focus){
                        setFocus();
                }
                if(focus){
                        setFocus();
                }
@@ -865,8 +865,6 @@ public class TaxonNameEditor extends EditorPart implements IMultiPageTaxonEditor
         * @return a boolean.
         */
        public boolean isActive(){
         * @return a boolean.
         */
        public boolean isActive(){
-               
-               
                IWorkbenchPart activePart = EditorUtil.getActivePart();
                return editor.equals(activePart);
        }
                IWorkbenchPart activePart = EditorUtil.getActivePart();
                return editor.equals(activePart);
        }
@@ -889,5 +887,4 @@ public class TaxonNameEditor extends EditorPart implements IMultiPageTaxonEditor
 //                     getSelectedObject().colorSelected(AbstractGroupedContainer.SELECTED_NO_FOCUS);
                }
        }
 //                     getSelectedObject().colorSelected(AbstractGroupedContainer.SELECTED_NO_FOCUS);
                }
        }
-
 }
 }
index 5a1025f56ee368153b0dec713bb4a229a7acd319..c25b2af7970e7a63b353b62f8cdc258fc5609cee 100644 (file)
@@ -30,6 +30,17 @@ public class NavigatorStateManager extends ContextListenerAdapter {
                }
        }
        
                }
        }
        
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
+        */
+       @Override
+       public void contextRefresh(IProgressMonitor monitor) {
+               TaxonNavigator navigator = NavigationUtil.getNavigator(true);
+               if(navigator != null){
+                       navigator.refresh();
+               }
+       }
+       
        /**
         * {@inheritDoc}
         *
        /**
         * {@inheritDoc}
         *
index a483a10b663cdad8872d0078c5ca075b882da775..569f7d64f9adce9076ab9e68ff93094f407bdc66 100644 (file)
@@ -30,6 +30,7 @@ import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
 import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
 import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
@@ -79,19 +80,19 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> {
                                
                                monitor.worked(10);
                                
                                
                                monitor.worked(10);
                                
-                               display.asyncExec(new Runnable() {
-                                       
-                                       @Override
-                                       public void run() {
-                                               // terminate any open transactions
-                                               IWorkbenchPart activePart = StoreUtil.getActivePage().getActivePart();
-                                               
-                                               if(activePart instanceof IConversationEnabled){
-                                                       IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
-                                                       conversationEnabled.getConversationHolder().commit(false);
-                                               }
-                                       }
-                               });
+//                             display.asyncExec(new Runnable() {
+//                                     
+//                                     @Override
+//                                     public void run() {
+//                                             // terminate any open transactions
+//                                             IWorkbenchPart activePart = StoreUtil.getActivePage().getActivePart();
+//                                             
+//                                             if(activePart instanceof IConversationEnabled){
+//                                                     IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
+//                                                     conversationEnabled.getConversationHolder().commit(false);
+//                                             }
+//                                     }
+//                             });
                                monitor.worked(10);
                                
                                CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<IImportConfigurator>();
                                monitor.worked(10);
                                
                                CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<IImportConfigurator>();
@@ -107,24 +108,27 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> {
                                                                        "Please check error log for details.", e);
                                }
                                
                                                                        "Please check error log for details.", e);
                                }
                                
+                               monitor.worked(10);
+                               monitor.done();
+                               
                                display.asyncExec(new Runnable() {
                                        
                                        @Override
                                        public void run() {
                                display.asyncExec(new Runnable() {
                                        
                                        @Override
                                        public void run() {
-                                               // restarting transaction and committing it to trigger change listener
-                                               // TODO verify correct behaviour
-                                               IWorkbenchPart activePart = StoreUtil.getActivePage().getActivePart();
+//                                             // restarting transaction and committing it to trigger change listener
+//                                             // TODO verify correct behaviour
+//                                             IWorkbenchPart activePart = StoreUtil.getActivePage().getActivePart();
+//                                             
+//                                             if(activePart instanceof IConversationEnabled){
+//                                                     IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
+//                                                     
+//                                                     conversationEnabled.getConversationHolder().startTransaction();
+//                                                     conversationEnabled.getConversationHolder().commit();
+//                                             }
                                                
                                                
-                                               if(activePart instanceof IConversationEnabled){
-                                                       IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
-                                                       
-                                                       conversationEnabled.getConversationHolder().startTransaction();
-                                                       conversationEnabled.getConversationHolder().commit();
-                                               }
-
+                                               CdmStore.getContextManager().notifyContextRefresh();
                                        }
                                });
                                        }
                                });
-                               monitor.worked(10);
                                
                                return Status.OK_STATUS;
                        }
                                
                                return Status.OK_STATUS;
                        }
index cffeb064eca678434362acee2c912137a1d0dd0a..a95f420f0d9e51db7eb4495daec89fa5800bb5d4 100644 (file)
@@ -60,6 +60,7 @@ public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigur
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
+               super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().AbcdConfigurator();
        }
        
                configurator =  CdmStore.getImportManager().AbcdConfigurator();
        }
        
index ceb2b0bd8425e1f853308c8508821cecdb236384..303c5afac82d7cd8327966efe47c813f31902514 100644 (file)
 
 package eu.etaxonomy.taxeditor.io.wizard;
 
 
 package eu.etaxonomy.taxeditor.io.wizard;
 
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.IWizardContainer;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
 import org.eclipse.ui.IImportWizard;
 import org.eclipse.ui.IImportWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
 
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
 import eu.etaxonomy.cdm.io.common.IIoConfigurator;
 
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
 import eu.etaxonomy.cdm.io.common.IIoConfigurator;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * <p>Abstract AbstractImportWizard class.</p>
 
 /**
  * <p>Abstract AbstractImportWizard class.</p>
@@ -29,6 +39,10 @@ public abstract class AbstractImportWizard<CONFIG extends IIoConfigurator> exten
        
        private GenericConfiguratorWizardPage pageConfiguration;
        private NomenclaturalCodeWizardPage pageNomenclaturalCode;
        
        private GenericConfiguratorWizardPage pageConfiguration;
        private NomenclaturalCodeWizardPage pageNomenclaturalCode;
+
+       private IWorkbench workbench;
+
+       private IStructuredSelection selection;
        
 
        /* (non-Javadoc)
        
 
        /* (non-Javadoc)
@@ -44,6 +58,47 @@ public abstract class AbstractImportWizard<CONFIG extends IIoConfigurator> exten
                
                pageNomenclaturalCode = new NomenclaturalCodeWizardPage((IImportConfigurator)getConfigurator());
                this.addPage(pageNomenclaturalCode);
                
                pageNomenclaturalCode = new NomenclaturalCodeWizardPage((IImportConfigurator)getConfigurator());
                this.addPage(pageNomenclaturalCode);
+               
+               
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.jface.wizard.Wizard#setContainer(org.eclipse.jface.wizard.IWizardContainer)
+        */
+       @Override
+       public void setContainer(IWizardContainer wizardContainer) {
+               super.setContainer(wizardContainer);
+               checkForUnsavedEditors();
+       }
+       
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+        */
+       @Override
+       public void init(IWorkbench workbench, IStructuredSelection selection) {
+               this.setWorkbench(workbench);
+               this.setSelection(selection);
+       }
+       
+       protected void checkForUnsavedEditors(){
+               IWorkbenchPage activePage = getWorkbench().getActiveWorkbenchWindow().getActivePage();
+               
+               if(activePage != null){
+                       for (IEditorReference reference : activePage.getEditorReferences()) {
+                               IEditorPart editor = reference.getEditor(false);
+                               if(editor.isDirty()){
+                                       
+                                       MessageDialog.open(MessageDialog.WARNING, getShell(), "Unsaved editors", "Please save all open editors before executing " +
+                                                       "an import operation. The import operation will be cancelled", SWT.NONE);
+                                       
+                                       performCancel();
+                                       if(getContainer() instanceof WizardDialog){
+                                               ((WizardDialog)getContainer()).close();
+                                       }
+                                       
+                               }
+                       }
+               }
        }
        
        /**
        }
        
        /**
@@ -52,4 +107,32 @@ public abstract class AbstractImportWizard<CONFIG extends IIoConfigurator> exten
         * @return a CONFIG object.
         */
        public abstract CONFIG getConfigurator();
         * @return a CONFIG object.
         */
        public abstract CONFIG getConfigurator();
+
+       /**
+        * @param selection the selection to set
+        */
+       public void setSelection(IStructuredSelection selection) {
+               this.selection = selection;
+       }
+
+       /**
+        * @return the selection
+        */
+       public IStructuredSelection getSelection() {
+               return selection;
+       }
+
+       /**
+        * @param workbench the workbench to set
+        */
+       public void setWorkbench(IWorkbench workbench) {
+               this.workbench = workbench;
+       }
+
+       /**
+        * @return the workbench
+        */
+       public IWorkbench getWorkbench() {
+               return workbench;
+       }
 }
 }
index 19d931866126f25838dafec0b6e47ef1650150fe..28f0c10351facc17de200e9d4a8ef1b12a8db0ec 100644 (file)
@@ -37,6 +37,7 @@ public class BerlinModelImportWizard extends AbstractImportWizard<BerlinModelImp
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
+               super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().BerlinModelConfigurator();
        }
 
                configurator =  CdmStore.getImportManager().BerlinModelConfigurator();
        }
 
index 9f3d6b7673690102623f42c4bbc2f3efd25f202a..4ab3a15429a8d30f4ec555345e303ad11551249d 100644 (file)
@@ -64,6 +64,7 @@ public class EndnoteImportWizard extends AbstractImportWizard<EndnoteImportConfi
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
+               super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().EndnoteConfigurator();
        }
 
                configurator =  CdmStore.getImportManager().EndnoteConfigurator();
        }
 
index 8ad197c19ec22492f44d08814427e2b48817745c..5f6122b99416e7b4f7203283ec2444b64435df22 100644 (file)
@@ -62,6 +62,7 @@ public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<No
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
+               super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().NormalExplicitConfigurator();
        }
 
                configurator =  CdmStore.getImportManager().NormalExplicitConfigurator();
        }
 
index d11c33b22becd586b92e8ad5ce5568992183ffe0..b6d6512cc107e0ed4267a02a3329399b3186df7e 100644 (file)
@@ -61,6 +61,7 @@ public class JaxbImportWizard extends AbstractImportWizard<JaxbImportConfigurato
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
+               super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().JaxbConfigurator();
        }
 
                configurator =  CdmStore.getImportManager().JaxbConfigurator();
        }
 
index 7363276bdb64fd9b7d3cd2d288726ab57ee70fbe..294c68481528788a7eb0a915d19fb9405a64a247 100644 (file)
@@ -75,6 +75,7 @@ public class SddImportWizard extends AbstractImportWizard<SDDImportConfigurator>
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
+               super.init(workbench, selection);
                configurator =  CdmStore.getImportManager().SddConfigurator();
        }
 }
                configurator =  CdmStore.getImportManager().SddConfigurator();
        }
 }
index efbf92c2e277627921d6919ef75bb444d4ee7cda..96a95ae554bd9a61476a7baa8a46362a1c330731 100644 (file)
@@ -52,6 +52,7 @@ public class TcsImportWizard extends AbstractImportWizard<TcsXmlImportConfigurat
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
         */
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
+               super.init(workbench, selection);
                configurator = CdmStore.getImportManager().TcsConfigurator();
        }
 
                configurator = CdmStore.getImportManager().TcsConfigurator();
        }
 
index 016b8c219e530a8c91654ee67a4ce6de03de8e39..3c2e033880cafdd8785edee08ceb53fa163e2827 100644 (file)
@@ -47,6 +47,14 @@ public class ContextListenerAdapter implements IContextListener {
        @Override
        public void contextStart(IMemento memento, IProgressMonitor monitor) {
                
        @Override
        public void contextStart(IMemento memento, IProgressMonitor monitor) {
                
+       }
+       
+       /* (non-Javadoc)
+        * @see eu.etaxonomy.taxeditor.model.IContextListener#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
+        */
+       @Override
+       public void contextRefresh(IProgressMonitor monitor) {
+               
        }
 
        /* (non-Javadoc)
        }
 
        /* (non-Javadoc)
index 1808f0709a34e4e3608e7393f4eb49e27c6d8a31..dd97ce54e943155da464c189a87f96757e1ff137 100644 (file)
@@ -47,6 +47,8 @@ public interface IContextListener {
         */
        public abstract void contextStart(IMemento memento, IProgressMonitor monitor);
 
         */
        public abstract void contextStart(IMemento memento, IProgressMonitor monitor);
 
+       public abstract void contextRefresh(IProgressMonitor monitor);
+       
        /**
         * <p>workbenchShutdown</p>
         *
        /**
         * <p>workbenchShutdown</p>
         *
index 146f927c3b2e39517dc13ec19eccb9684cba8429..f8ca0ab6fe24a3d398490645311ae36addcdf530 100644 (file)
@@ -101,6 +101,38 @@ public class ContextManager implements IWorkbenchListener{
                }
        }
        
                }
        }
        
+
+       /**
+        * 
+        */
+       public void notifyContextRefresh() {
+               StoreUtil.info("Notifying context listeners, that the context needs to be refreshed.");
+               ProgressMonitorDialog dialog = new ProgressMonitorDialog(StoreUtil.getShell());
+               
+               try {
+                       dialog.run(false, false, new IRunnableWithProgress() {
+                               /* (non-Javadoc)
+                                * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
+                                */
+                               @Override
+                               public void run(IProgressMonitor monitor)
+                                               throws InvocationTargetException, InterruptedException {
+                                       monitor.beginTask("Refreshing context", contextListeners.size());                       
+                                       
+                                       for(final Object listener : contextListeners.getListeners()){
+                                               ((IContextListener) listener).contextRefresh(monitor);
+                                               monitor.worked(1);
+                                       }
+                                       monitor.done();
+                               }
+                       });
+               } catch (InvocationTargetException e) {
+                       StoreUtil.error(getClass(), e);
+               } catch (InterruptedException e) {
+                       StoreUtil.error(getClass(), e);
+               }
+       }
+       
        /**
         * <p>notifyContextAboutToStop</p>
         *
        /**
         * <p>notifyContextAboutToStop</p>
         *
@@ -226,4 +258,5 @@ public class ContextManager implements IWorkbenchListener{
                path = path.append("editor_state_" + CdmStore.getDataSource().getName() + ".xml");
                return path.toFile();
        }
                path = path.append("editor_state_" + CdmStore.getDataSource().getName() + ".xml");
                return path.toFile();
        }
+
 }
 }