Adapted to cdmlib pogress monitor interface. Should fix #2545, currently writing...
authorn.hoffmann <n.hoffmann@localhost>
Wed, 5 Oct 2011 13:54:56 +0000 (13:54 +0000)
committern.hoffmann <n.hoffmann@localhost>
Wed, 5 Oct 2011 13:54:56 +0000 (13:54 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/CdmProgressMonitorAdapter.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/forms/AbstractFormSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java

index 122844fb908652cb7b70943ff4502abe27a3e461..c348d5c343c3d9600b9256a4ffb4cb91c1923cd4 100644 (file)
@@ -17,7 +17,6 @@ import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.UndoContext;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorSite;
@@ -163,6 +162,8 @@ public class MultiPageTaxonEditor extends FormEditor implements
                for (IMultiPageTaxonEditorPage editorPage : getPages()) {
                        editorPage.setDisabled();
                }
+               conversation.unregisterForDataStoreChanges(this);
+               conversation.close();
                setDirty(false);
        }
 
@@ -525,4 +526,9 @@ public class MultiPageTaxonEditor extends FormEditor implements
                        }
                }
        }
+       
+       @Override
+       public String toString() {
+               return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput());
+       }
 }
index c9af4f016d9a0a556ba60703ce5c09887ea3793e..0f520ed1b66316986960b2525e720684567feb19 100644 (file)
@@ -385,4 +385,9 @@ public class TaxonEditorInput implements IEditorInput, IConversationEnabled, IPe
        public TaxonBase getInitiallySelectedTaxonBase() {
                return initiallySelectedTaxonBase;
        }
+       
+       @Override
+       public String toString() {
+               return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
+       }
 }
index e78528a885d4efc48912d12e7b1706e47d5f75b9..90f2822d4d2363eaba7bb94124c9f03c3c722555 100644 (file)
@@ -102,4 +102,9 @@ public class CdmProgressMonitorAdapter implements eu.etaxonomy.cdm.common.IProgr
        public void warning(String message, Throwable throwable) {
                StoreUtil.error(this.getClass(), message, throwable);
        }
+
+       @Override
+       public void internalWorked(double arg0) {
+               progressMonitor.internalWorked(arg0);
+       }
 }
index 6f3316e050eeb09a8408388f946fa8c460ac99c1..fcada2099860383358d86be1ffb73b30a5041538 100644 (file)
@@ -233,8 +233,11 @@ public class CdmStore {
        public static ConversationHolder createConversation() {
                ConversationHolder conversation = getCurrentApplicationConfiguration()
                                .NewConversation();
-
-               conversation.startTransaction();
+               try{
+                       conversation.startTransaction();
+               }catch(Exception e){
+                       StoreUtil.errorDialog("No database connection", CdmStore.class, "No database connection available", e);
+               }
                return conversation;
        }
 
index 27e25d93a030ef01d3a876fd2ce2aea5691eb7a2..89a1f1b21454a788d036585df1eaa50fed116f6a 100644 (file)
@@ -25,6 +25,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.TypedListener;
 import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.forms.widgets.Section;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 import org.eclipse.ui.forms.widgets.ToggleHyperlink;
@@ -556,10 +557,24 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements
         *         object.
         */
        public ConversationHolder getConversationHolder() {
-               return conversation;
+               IEditorPart activeEditor = StoreUtil.getActiveEditor();
+               if(activeEditor instanceof IConversationEnabled){
+                       ConversationHolder conversation = ((IConversationEnabled) StoreUtil.getActiveEditor()).getConversationHolder();
+                       return conversation;
+               }
+               StoreUtil.errorDialog("Could not get conversation for AbstractFormSection", 
+                               getClass(), "There is an error in the implementation. There should have been an active editor but it wasn't", 
+                               new IllegalArgumentException());
+               return null;
+       }
+       
+       public void setConversationHolder(ConversationHolder conversation) {
+               this.conversation = conversation;
        }
 
        /** {@inheritDoc} */
        public void update(CdmDataChangeMap changeEvents) {
        }
+
+
 }
index 9ee5eb3937efd71d202565ca44c66c1a80244e6d..e3369c47b93aadb27babd52a9b655c5a98b84165 100644 (file)
@@ -31,7 +31,6 @@ import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.forms.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
 
 /**
index d173e34fda3137f417e8828165c7f200dd274169..f2988e69e55e1c1a023946c9e2566846c884db82 100644 (file)
@@ -12,8 +12,11 @@ package eu.etaxonomy.taxeditor.view.detail;
 
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.forms.SectionPart;
 
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;
@@ -85,7 +88,7 @@ public class CdmSectionPart<T> extends SectionPart implements
                }
 
                formSection.setEntity((T) input);
-
+               
                return true;
        }