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;
for (IMultiPageTaxonEditorPage editorPage : getPages()) {
editorPage.setDisabled();
}
+ conversation.unregisterForDataStoreChanges(this);
+ conversation.close();
setDirty(false);
}
}
}
}
+
+ @Override
+ public String toString() {
+ return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput());
+ }
}
public TaxonBase getInitiallySelectedTaxonBase() {
return initiallySelectedTaxonBase;
}
+
+ @Override
+ public String toString() {
+ return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
+ }
}
public void warning(String message, Throwable throwable) {
StoreUtil.error(this.getClass(), message, throwable);
}
+
+ @Override
+ public void internalWorked(double arg0) {
+ progressMonitor.internalWorked(arg0);
+ }
}
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;
}
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;
* 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) {
}
+
+
}
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;
/**
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;
}
formSection.setEntity((T) input);
-
+
return true;
}