taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/supplementaldata/SupplementalDataViewer.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractCdmEntityWizardPage.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractCdmFormElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractCdmFormElementWithErrors.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/AbstractFormSection.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/BrowserElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/CdmFormFactory.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ICdmFormElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IEnableableFormElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IEntityElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IErrorIntolerableElement.java -text
+taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IExceptionHandler.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/ILabeledElement.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IPropertyChangeEmitter.java -text
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/forms/IRelevantFormElement.java -text
*/\r
public IEntityCreator<?> getEntityCreator(Object element) {\r
if (element instanceof IEditorInput) {\r
- Assert.isNotNull(entityCreator, "No IEntityCreator set for this element.");\r
+// Assert.isNotNull(entityCreator, "No IEntityCreator set for this element.");\r
return entityCreator;\r
}\r
return null;\r
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.UUID;
+import javax.naming.NameNotFoundException;
+
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorInputTypeValues.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
@Override
protected List<NameRelationship> listEntities(
IIdentifiableEntityServiceConfigurator configurator) {
- return null;
+ List<NameRelationship> relationships = new ArrayList<NameRelationship>();
+ List<RelationshipBase> all = CdmStore.getNameService().getAllRelationships(0, 0);
+
+ for (RelationshipBase relationship : all){
+ if(relationship instanceof NameRelationship){
+ relationships.add((NameRelationship) relationship);
+ }
+ }
+
+
+ return relationships;
}
/* (non-Javadoc)
*/
@Override
protected NameRelationship loadEntity(UUID entityUuid) {
- // TODO Auto-generated method stub
- return null;
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return null; // CdmStore.getNameService().load(entityUuid, propertyPaths);
}
}
* @param input\r
* @param editorId\r
* @return \r
+ * @return \r
* @throws PartInitException\r
*/\r
- private static void open(final IEditorInput input, final String editorId) throws PartInitException{\r
- getActivePage().openEditor(input, editorId);\r
+ private static IEditorPart open(final IEditorInput input, final String editorId) throws PartInitException{\r
+ return getActivePage().openEditor(input, editorId);\r
}\r
\r
/**\r
* @throws PartInitException\r
*/\r
public static void open(TaxonEditorInput input) throws PartInitException{\r
- open(input, MultiPageTaxonEditor.ID);\r
+ IEditorPart editor = open(input, MultiPageTaxonEditor.ID);\r
}\r
\r
/**\r
* @created 15.05.2008\r
* @version 1.0\r
*/\r
-//public class MultiPageTaxonEditor extends MultiPageEditorPart implements IConversationEnabled, IPostOperationEnabled {\r
public class MultiPageTaxonEditor extends FormEditor implements IConversationEnabled, IPostOperationEnabled, IDirtyMarkableSelectionProvider, IPartContentHasDetails { \r
private static final Logger logger = Logger.getLogger(MultiPageTaxonEditor.class);\r
\r
package eu.etaxonomy.taxeditor.editor;
-import org.apache.log4j.Logger;
-
import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
/**
* @version 1.0
*/
public class OpenEditorConfiguration {
- private static final Logger logger = Logger
- .getLogger(OpenEditorConfiguration.class);
private TaxonNode parentNode;
if(taxonBase instanceof Taxon){
Taxon taxon = (Taxon) taxonBase;
- if (taxon.isMisappliedName()){
+ if (taxon.isMisapplication()){
// TODO get accepted taxon
EditorUtil.info("trying to open Mispplied Name ");
public boolean equals(Object obj) {
if (TaxonEditorInput.class.equals(obj.getClass())
&& getTaxon() != null
- && getTaxon().equals(((TaxonEditorInput) obj).getTaxon()))
+ && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){
+ if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
+ setInitiallySelectedTaxonBase(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase());
+ }
return true;
+ }
return false;
}
}
- private void setInitiallySelectedTaxonBase(TaxonBase taxonBase) {
+ public void setInitiallySelectedTaxonBase(TaxonBase taxonBase) {
this.initiallySelectedTaxonBase = taxonBase;
}
}\r
\r
public AbstractGroupedContainer getSelectedObject(){\r
- if(selectedObject == null){\r
- TaxonEditorInput input = (TaxonEditorInput) editor.getEditorInput();\r
+ TaxonEditorInput input = (TaxonEditorInput) editor.getEditorInput();\r
+ if(input.getInitiallySelectedTaxonBase() != null){\r
\r
- if(input.getInitiallySelectedTaxonBase() != null){\r
- TaxonBase initiallySelectedTaxonBase = input.getInitiallySelectedTaxonBase();\r
- AbstractGroupedContainer container = getContainerForData(initiallySelectedTaxonBase);\r
- if(container != null){\r
- return container;\r
- }\r
+ TaxonBase initiallySelectedTaxonBase = input.getInitiallySelectedTaxonBase();\r
+ AbstractGroupedContainer container = getContainerForData(initiallySelectedTaxonBase);\r
+ if(container != null){\r
+ input.setInitiallySelectedTaxonBase(null);\r
+ return container;\r
}\r
- \r
- return acceptedNameContainer;\r
}else{\r
- return selectedObject;\r
+ if(selectedObject != null){\r
+ return selectedObject;\r
+ }\r
}\r
+ return acceptedNameContainer;\r
}\r
\r
public void dragEntered() {\r
* @version 1.0
*/
public class CreateDescriptionElementHandler extends AbstractHandler {
- private static final Logger logger = Logger
- .getLogger(CreateDescriptionElementHandler.class);
/*
* (non-Javadoc)
TaxonDescription description = null;
ISelection selection = HandlerUtil.getCurrentSelection(event);
- if (selection instanceof IStructuredSelection) {
+ if (selection instanceof ITreeSelection) {
+ TreePath[] paths = ((ITreeSelection) selection).getPaths();
+ Object firstSegment = paths[0].getFirstSegment();
+ if (firstSegment instanceof TaxonDescription) {
+ description = (TaxonDescription) firstSegment;
+ }
+ }else if (selection instanceof IStructuredSelection) {
Object selectedElement = ((IStructuredSelection) selection)
.getFirstElement();
if (selectedElement instanceof TaxonDescription){
description = (TaxonDescription) selectedElement;
}
}
- else if (selection instanceof ITreeSelection) {
- TreePath[] paths = ((ITreeSelection) selection).getPaths();
- Object firstSegment = paths[0].getFirstSegment();
- if (firstSegment instanceof TaxonDescription) {
- description = (TaxonDescription) firstSegment;
- }
- }
if (description != null) {
description, feature, postOperationEnabled);
EditorUtil.executeOperation(operation);
} catch (NotDefinedException e) {
- logger.warn("Command name not set");
+ EditorUtil.warn(getClass(), "Command name not set");
}
} else {
- logger.error("Could not determine the taxon description");
+ EditorUtil.error(getClass(), new IllegalArgumentException("Could not determine the taxon description"));
return null;
}
}
package eu.etaxonomy.taxeditor.forms;
-import org.apache.log4j.Logger;
import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
*/
public abstract class AbstractCdmEntityWizardPage<T extends IAnnotatableEntity> extends WizardPage implements IConversationEnabled {
- private static final Logger logger = Logger
- .getLogger(AbstractCdmEntityWizardPage.class);
protected CdmFormFactory formFactory;
protected T entity;
AbstractCdmDetailElement<T> detailElement;
- private Composite control;
private ConversationHolder conversation;
protected AbstractCdmEntityWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, T entity) {
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
- control = formFactory.createComposite(parent);
+ Composite control = formFactory.createComposite(parent);
control.setLayout(CdmFormFactory.LAYOUT(2, false));
WizardPageRootElement rootElement = new WizardPageRootElement(formFactory, control, getConversationHolder());
+
+ Color bgColor = getShell().getBackground();
detailElement = createElement(rootElement);
+ rootElement.setBackground(bgColor);
+ control.setBackground(bgColor);
+
setControl(control);
}
super.refresh();
this.removeElements();
detailElement = createElement(this);
- control.layout();
+ ((Composite) getControl()).layout();
}
public ConversationHolder getConversationHolder() {
@Override
public void setBackground(Color color) {
-
+ for(ICdmFormElement element : getElements()){
+ element.setBackground(color);
+ }
}
}
--- /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.forms;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author n.hoffmann
+ * @created Oct 26, 2010
+ * @version 1.0
+ */
+public abstract class AbstractCdmFormElementWithErrors extends AbstractCdmFormElement implements IErrorIntolerableElement {
+
+ private List<IExceptionHandler> exceptionHandlers = new ArrayList<IExceptionHandler>();
+
+ /**
+ * @param formFactory
+ * @param formElement
+ */
+ public AbstractCdmFormElementWithErrors(CdmFormFactory formFactory,
+ ICdmFormElement formElement) {
+ super(formFactory, formElement);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#addExceptionHandler(eu.etaxonomy.taxeditor.forms.IExceptionHandler)
+ */
+ @Override
+ public void addExceptionHandler(IExceptionHandler handler) {
+ exceptionHandlers.add(handler);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#removeExceptionHandler(eu.etaxonomy.taxeditor.forms.IExceptionHandler)
+ */
+ @Override
+ public void removeExceptionHandler(IExceptionHandler handler) {
+ exceptionHandlers.remove(handler);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#exceptionOccurred()
+ */
+ @Override
+ public void exceptionOccurred(CdmPropertyChangeEvent event) {
+ for(IExceptionHandler handler : exceptionHandlers){
+ handler.handleException(event);
+ }
+ }
+
+}
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.FocusAdapter;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.IFormColors;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
}
+
+ /**
+ * Creates a styled text as a part of the form.
+ *
+ * @param parent
+ * the text parent
+ * @param value
+ * the text initial value
+ * @param style
+ * the text style
+ * @return the text widget
+ */
+ public StyledText createStyledText(Composite parent, String value, int style) {
+ StyledText text = new StyledText(parent, getBorderStyle() | style | getOrientation());
+ if (value != null)
+ text.setText(value);
+ text.setForeground(getColors().getForeground());
+ text.setBackground(getColors().getBackground());
+// text.addFocusListener(visibilityHandler);
+ return text;
+ }
}
package eu.etaxonomy.taxeditor.forms;
-import org.apache.log4j.Logger;
import org.eclipse.jface.util.PropertyChangeEvent;
/**
private Object originatingEvent;
+ private Exception exception;
+
public Object getOriginatingEvent() {
return originatingEvent;
}
- private static final Logger logger = Logger
- .getLogger(CdmPropertyChangeEvent.class);
-
public CdmPropertyChangeEvent(Object eventObject, Object originatingEvent) {
super(eventObject, "EMPTY", null, null);
this.originatingEvent = originatingEvent;
}
+
+ public CdmPropertyChangeEvent(Object eventObject, Exception exception) {
+ super(eventObject, "EMPTY", null, null);
+ this.exception = exception;
+ }
+
+ /**
+ * @param e
+ */
+ public void setException(Exception exception) {
+ this.exception = exception;
+ }
+
+ public Exception getException(){
+ return exception;
+ }
+
+ public boolean hasException(){
+ return exception != null;
+ }
}
package eu.etaxonomy.taxeditor.forms;
-import org.apache.log4j.Logger;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.joda.time.Partial;
*/
public class DateDetailSection extends AbstractFormSection {
-
- private static final Logger logger = Logger
- .getLogger(DateDetailSection.class);
private PartialElement partialElement_start;
private PartialElement partialElement_end;
private TimePeriod timePeriod;
super(formFactory, null, parentElement, style);
this.setText("Date Details");
- partialElement_start = formFactory.createPartialElement(this, "Start", null, style);
- partialElement_end = formFactory.createPartialElement(this, "End", null, style);
+ partialElement_start = formFactory.createPartialElement(this, "Start: ", null, style);
+ partialElement_end = formFactory.createPartialElement(this, "End: ", null, style);
formFactory.addPropertyChangeListener(this);
}
return;
}
Object eventSource = event.getSource();
+
+ if(getElements().contains(eventSource)){
+ if(event instanceof CdmPropertyChangeEvent){
+ if(((CdmPropertyChangeEvent) event).hasException()){
+ handleException((CdmPropertyChangeEvent) event);
+ return;
+ }
+ }
+ handleEvent(eventSource);
+ }
+ }
+
+ /**
+ * @param event
+ */
+ private void handleException(CdmPropertyChangeEvent event) {
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event.getException()));
+ }
+
+ private void handleEvent(Object eventSource){
if(eventSource == partialElement_start){
timePeriod.setStart(partialElement_start.getPartial());
- firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
}else if(eventSource == partialElement_end){
Partial end = partialElement_end.getPartial();
-
timePeriod.setEnd(end);
-
- firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
}
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
}
public TimePeriod getTimePeriod() {
--- /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.forms;
+
+
+/**
+ * @author n.hoffmann
+ * @created Oct 26, 2010
+ * @version 1.0
+ */
+public interface IErrorIntolerableElement {
+
+ public void addExceptionHandler(IExceptionHandler handler);
+
+ public void removeExceptionHandler(IExceptionHandler handler);
+
+ /**
+ * @param event
+ */
+ public void exceptionOccurred(CdmPropertyChangeEvent event);
+
+
+
+}
--- /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.forms;
+
+
+/**
+ * @author n.hoffmann
+ * @created Oct 26, 2010
+ * @version 1.0
+ */
+public interface IExceptionHandler {
+
+ void handleException(CdmPropertyChangeEvent event);
+
+ void clearException();
+}
package eu.etaxonomy.taxeditor.forms;
-import org.apache.log4j.Logger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+
/**
* @author n.hoffmann
*/
public class NumberWithLabelElement extends TextWithLabelElement {
- private static final Logger logger = Logger
- .getLogger(NumberWithLabelElement.class);
+ private Float start;
+ private Float end;
+ private NumberFormatException exception;
+
public NumberWithLabelElement(CdmFormFactory toolkit,
ICdmFormElement parentElement, String labelString,
Integer initialInteger, int style) {
}
return null;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void modifyText(ModifyEvent event) {
+ String value = text.getText();
+ if(CdmUtils.isEmpty(value)){
+ text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
+ return;
+ }
+
+ try{
+
+ Float number = Float.parseFloat(value);
+
+ if((start != null && number < start) || (end != null && number > end)){
+ throw new NumberFormatException("You entered a number that is not within the allowed bounds.");
+ }
+
+ }catch(NumberFormatException e){
+ text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+ return;
+ }
+
+ exception = null;
+ text.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
+
+ super.modifyText(event);
+ }
+
+ public void setLimits(int numberOfDigits, Integer start, Integer end){
+ setLimits(numberOfDigits, start.floatValue(), end.floatValue());
+ }
+
+ public void setLimits(int numberOfDigits, Float start, Float end){
+ text.setTextLimit(numberOfDigits);
+ this.start = start;
+ this.end = end;
+ }
+
+ /**
+ * @return the exception
+ */
+ public NumberFormatException getException() {
+ return exception;
+ }
}
package eu.etaxonomy.taxeditor.forms;
-import org.apache.log4j.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.forms.widgets.TableWrapData;
import org.joda.time.Partial;
import eu.etaxonomy.cdm.model.common.TimePeriod;
* @created Mar 31, 2010
* @version 1.0
*/
-public class PartialElement extends AbstractCdmFormElement implements ModifyListener {
+public class PartialElement extends AbstractCdmFormElement {
-
- private static final Logger logger = Logger.getLogger(PartialElement.class);
-
-
private Label label;
- private Composite container;
- private Text text_day;
- private Text text_month;
- private Text text_year;
+ private NumberWithLabelElement number_day;
+ private NumberWithLabelElement number_month;
+ private NumberWithLabelElement number_year;
private Partial partial;
-
+
public PartialElement(CdmFormFactory formFactory,
ICdmFormElement formElement, String labelString, int style) {
super(formFactory, formElement);
+ formElement.getLayoutComposite().setLayout(CdmFormFactory.LAYOUT(7, false));
+
label = formFactory.createLabel(getLayoutComposite(), labelString);
addControl(label);
- container = formFactory.createComposite(getLayoutComposite());
- addControl(container);
- container.setLayout(CdmFormFactory.LAYOUT(3, false));
- container.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY());
- container.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GREEN));
-
- text_day = formFactory.createText(container, null, style);
- addControl(text_day);
- text_day.setTextLimit(2);
-
- TableWrapData layoutData = new TableWrapData();
-
+ number_month = formFactory.createIntegerTextWithLabelElement(this, "Month", null, style);
+ number_month.setLimits(2, 1, 12);
- text_day.setLayoutData(layoutData);
+ number_day = formFactory.createIntegerTextWithLabelElement(this, "Day", null, style);
+ number_day.setLimits(2, 1, 31);
- text_month = formFactory.createText(container, null, style);
- addControl(text_month);
- text_month.setTextLimit(2);
+ number_year = formFactory.createIntegerTextWithLabelElement(this, "Year", null, style);
+ number_year.setLimits(4, -9999, 9999);
- text_month.setLayoutData(layoutData);
-
- text_year = formFactory.createText(container, null, style);
- addControl(text_year);
- text_year.setTextLimit(4);
-
- layoutData = new TableWrapData();
-
- text_year.setLayoutData(layoutData);
-
- addListeners();
+ formFactory.addPropertyChangeListener(this);
}
public void setPartial(Partial partial){
this.partial = partial;
- removeListeners();
-
if(partial != null){
- setInteger(text_day, TimePeriod.getPartialValue(partial, TimePeriod.DAY_TYPE));
- setInteger(text_month, TimePeriod.getPartialValue(partial, TimePeriod.MONTH_TYPE));
- setInteger(text_year, TimePeriod.getPartialValue(partial, TimePeriod.YEAR_TYPE));
+ number_day.setInteger(TimePeriod.getPartialValue(partial, TimePeriod.DAY_TYPE));
+ number_month.setInteger(TimePeriod.getPartialValue(partial, TimePeriod.MONTH_TYPE));
+ number_year.setInteger(TimePeriod.getPartialValue(partial, TimePeriod.YEAR_TYPE));
}
- addListeners();
- }
-
- private void addListeners() {
- text_day.addModifyListener(this);
- text_month.addModifyListener(this);
- text_year.addModifyListener(this);
- }
-
- private void removeListeners() {
- text_day.removeModifyListener(this);
- text_month.removeModifyListener(this);
- text_year.removeModifyListener(this);
}
public Partial getPartial(){
return partial;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ if(event == null){
+ return;
+ }
+
+ Object eventSource = event.getSource();
+
+ if(getElements().contains(eventSource)){
+ if(event instanceof CdmPropertyChangeEvent){
+ if(((CdmPropertyChangeEvent) event).hasException()){
+ handleException((CdmPropertyChangeEvent) event);
+ return;
+ }
+ }
+ handleEvent(eventSource);
+ }
+ }
- private void setInteger(Text text, Integer integer) {
- text.setText(integer == null ? "" : integer + "");
+ /**
+ * @param event
+ */
+ private void handleException(CdmPropertyChangeEvent event) {
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event.getException()));
}
+ private void handleEvent(Object eventSource){
+ if(eventSource == number_month){
+ partial = TimePeriod.setPartialField(partial, number_month.getInteger(), TimePeriod.MONTH_TYPE);
+// firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ }else if(eventSource == number_day){
+ partial = TimePeriod.setPartialField(partial, number_day.getInteger(), TimePeriod.DAY_TYPE);
+// firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ }else if(eventSource == number_year){
+ partial = TimePeriod.setPartialField(partial, number_year.getInteger(), TimePeriod.YEAR_TYPE);
+// firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ }
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ }
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.forms.ISelectable#setSelected(boolean)
*/
public void setSelected(boolean selected) {
- // TODO Auto-generated method stub
-
- }
-
- public void modifyText(ModifyEvent e) {
- Widget widget = e.widget;
-
- if(widget == text_day){
- partial = TimePeriod.setPartialField(partial, new Integer(text_day.getText()), TimePeriod.DAY_TYPE);
- }else if(widget == text_month){
- partial = TimePeriod.setPartialField(partial, new Integer(text_month.getText()), TimePeriod.MONTH_TYPE);
- }else if(widget == text_year){
- String yearString = text_year.getText();
-
- partial = TimePeriod.setPartialField(partial, new Integer(yearString), TimePeriod.YEAR_TYPE);
- }
-
- firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+ setBackground(getColor(selected));
}
@Override
import java.text.ParseException;
import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.cdm.model.location.Point;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
formFactory.addPropertyChangeListener(this);
- text_latitude = formFactory.createTextWithLabelElement(formElement, "Latitude", null, style);
- text_longitude = formFactory.createTextWithLabelElement(formElement, "Longitude", null, style);
+ text_latitude = formFactory.createTextWithLabelElement(formElement, "Latitude (hexagesimal)", null, style);
+ text_longitude = formFactory.createTextWithLabelElement(formElement, "Longitude (hexagesimal)", null, style);
number_errorRadius = formFactory.createIntegerTextWithLabelElement(formElement, "Error Radius (m)", null, style);
combo_referenceSystem = (ReferenceSystemComboElement) formFactory.createTermComboElement(TermComboType.REFERENCE_SYSTEM, formElement, "Reference System", null, style);
Object eventSource = event.getSource();
if(eventSource == text_latitude){
try {
+ Text textField = (Text) text_latitude.getMainControl();
+ int caretPosition = textField.getCaretPosition();
point.setLatitudeByParsing(text_latitude.getText());
+ text_latitude.setText(point.getLatitudeSexagesimal().toString(false));
+// textField.set
} catch (ParseException e) {
EditorUtil.error(getClass(), e);
}
else if(eventSource == text_longitude){
try {
point.setLongitudeByParsing(text_longitude.getText());
+ text_longitude.setText(point.getLongitudeSexagesimal().toString(false));
} catch (ParseException e) {
EditorUtil.error(getClass(), e);
}
*/
public void setPoint(Point point) {
this.point = point;
- text_latitude.setText(point.getLatitudeSexagesimal().toString(false));
- text_longitude.setText(point.getLongitudeSexagesimal().toString(false));
- number_errorRadius.setInteger(point.getErrorRadius());
- combo_referenceSystem.setSelection(point.getReferenceSystem());
+ if(point != null){
+ text_latitude.setText(point.getLatitudeSexagesimal().toString(false));
+ text_longitude.setText(point.getLongitudeSexagesimal().toString(false));
+ number_errorRadius.setInteger(point.getErrorRadius());
+ combo_referenceSystem.setSelection(point.getReferenceSystem());
+ }
}
/**
@Override
public void setBackground(Color color) {
- //no
+ for(ICdmFormElement element : getElements()){
+ element.setBackground(color);
+ }
}
}
package eu.etaxonomy.taxeditor.forms;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.TableWrapData;
import eu.etaxonomy.cdm.common.CdmUtils;
*/
public class TextWithLabelElement extends AbstractCdmFormElement implements ModifyListener, IEnableableFormElement{
- protected Text text;
+ protected StyledText text;
private Label label;
public static final int MAX_HEIGHT = 0;
}
int scrollStyle = textHeight == null ? SWT.NULL : (SWT.V_SCROLL | SWT.MULTI);
- text = formFactory.createText(getLayoutComposite(), "", SWT.BORDER | SWT.WRAP | scrollStyle);
+ text = formFactory.createStyledText(getLayoutComposite(), "", SWT.BORDER | SWT.WRAP | scrollStyle);
+
addControl(text);
-
+
+// text.setWO
+
if(textHeight == null){
- // Don't accept carriage returns as input when in single line mode
text.addKeyListener( new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
if(e.character == SWT.CR){
- // do nothing when return was hit
+ // Don't accept carriage returns as input when in single line mode
e.doit = false;
}else if(e.character == SWT.TAB){
// traverse is not working for wrapped text widgets so
public Control getMainControl() {
return text;
}
+
+ /**
+ *
+ */
+ public void setTextLimit(int limit) {
+ text.setTextLimit(limit);
+ }
}
* @created Nov 17, 2009
* @version 1.0
*/
-public class TimePeriodElement extends AbstractCdmFormElement{
+public class TimePeriodElement extends AbstractCdmFormElementWithErrors{
- private Label label;
-
private TextWithLabelElement text_freeText;
private TimePeriod timePeriod;
private DateDetailSection section_dateDetails;
+ private Label emptyLabel;
/**
* @param parent
formFactory.addPropertyChangeListener(this);
text_freeText = formFactory.createTextWithLabelElement(this, labelString, null, style);
- addControl(formFactory.createLabel(getLayoutComposite(), ""));
+ emptyLabel = formFactory.createLabel(getLayoutComposite(), "");
+ addControl(emptyLabel);
section_dateDetails = formFactory.createDateDetailSection(this, Section.TWISTIE);
addControl(section_dateDetails);
- setEntity(timePeriod);
+ setTimePeriod(timePeriod);
}
public void setSelected(boolean selected) {
- label.setBackground(getColor(selected));
+ setBackground(getColor(selected));
}
public void setEntity(TimePeriod timePeriod) {
-
- this.timePeriod = timePeriod;
- if(timePeriod != null){
- text_freeText.setText(timePeriod.toString());
- section_dateDetails.setTimePeriod(timePeriod);
- }
+ setTimePeriod(timePeriod);
}
@Override
return;
}
Object eventSource = event.getSource();
+
+ if(getElements().contains(eventSource)){
+ if(event instanceof CdmPropertyChangeEvent){
+ if(((CdmPropertyChangeEvent) event).hasException()){
+ handleException((CdmPropertyChangeEvent) event);
+ return;
+ }
+ }
+ handleEvent(eventSource);
+ }
+ }
+
+ /**
+ * @param event
+ */
+ private void handleException(CdmPropertyChangeEvent event) {
+ exceptionOccurred(new CdmPropertyChangeEvent(this, event.getException()));
+ }
+
+ private void handleEvent(Object eventSource){
+
if(eventSource == text_freeText){
String freeText = text_freeText.getText();
-
timePeriod = TimePeriod.parseString(freeText);
- firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ section_dateDetails.setTimePeriod(timePeriod);
+
}else if(eventSource == section_dateDetails){
timePeriod = section_dateDetails.getTimePeriod();
- firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+ text_freeText.setText(timePeriod.toString());
}
-
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
}
/**
*/
public void setTimePeriod(TimePeriod timePeriod) {
this.timePeriod = timePeriod;
+ if(timePeriod != null){
+ text_freeText.setText(timePeriod.toString());
+ section_dateDetails.setTimePeriod(timePeriod);
+ }
}
/**
@Override
public void setBackground(Color color) {
- if(label != null) label.setBackground(color);
+ emptyLabel.setBackground(color);
+ text_freeText.setBackground(color);
+ section_dateDetails.setBackground(color);
}
}
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent;
import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
import eu.etaxonomy.taxeditor.forms.IEnableableFormElement;
import eu.etaxonomy.taxeditor.forms.IEntityElement;
ICdmFormElement eventElement = (ICdmFormElement) eventSource;
ICdmFormElement eventElementContainer = eventElement.getParentElement();
if (eventElementContainer == this){
+ if(event instanceof CdmPropertyChangeEvent){
+ if(((CdmPropertyChangeEvent) event).hasException()){
+ handleException((CdmPropertyChangeEvent) event);
+ return;
+ }
+ }
+
handleEvent(eventSource);
if(getParentElement() instanceof AbstractCdmDetailSection)
((AbstractCdmDetailSection)getParentElement()).updateTitle();
}
public abstract void handleEvent(Object eventSource);
+
+ public void handleException(CdmPropertyChangeEvent event){
+ //override this in subclasses if you want to deal with the error
+ EditorUtil.error(event.getSource().getClass(), event.getException());
+ }
public boolean isIrrelevant() {
return irrelevant;
package eu.etaxonomy.taxeditor.section.reference;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
-import org.apache.log4j.Logger;
import org.eclipse.swt.SWT;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
import eu.etaxonomy.cdm.model.reference.Generic;
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
+import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
import eu.etaxonomy.cdm.model.reference.ReferenceType;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory.EnumComboType;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory.SelectionType;
+import eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent;
import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement;
+import eu.etaxonomy.taxeditor.forms.IExceptionHandler;
import eu.etaxonomy.taxeditor.forms.TextWithLabelElement;
import eu.etaxonomy.taxeditor.forms.TimePeriodElement;
import eu.etaxonomy.taxeditor.forms.ToggleableTextElement;
* @created Mar 2, 2010
* @version 1.0
*/
-public class ReferenceBaseDetailElement extends AbstractCdmDetailElement<ReferenceBase> {
-
- private static final Logger logger = Logger
- .getLogger(ReferenceBaseDetailElement.class);
+public class ReferenceBaseDetailElement extends AbstractCdmDetailElement<ReferenceBase> implements IErrorIntolerableElement, IExceptionHandler {
// property holder
private ToggleableTextElement toggleable_cache;
private TextWithLabelElement text_volume;
private TextWithLabelElement text_uri;
private AbstractSelectionElement<AgentBase> selection_authorTeam;
- private TimePeriodElement composite_timePeriod;
+ private TimePeriodElement element_timePeriod;
private AbstractSelectionElement<ReferenceBase> selection_inReference;
private AbstractSelectionElement<Institution> selection_institution;
private ReferenceTypeComboElement combo_referenceType;
}
// date published
- composite_timePeriod = formFactory.createTimePeriodElement(formElement, "Date Published", entity.getDatePublished(), style);
+ element_timePeriod = formFactory.createTimePeriodElement(formElement, "Date Published", entity.getDatePublished(), style);
+ element_timePeriod.addExceptionHandler(this);
createUriAndAbstract(this, entity, SWT.NULL);
}
@Override
protected void updateContent() {
if(getEntity() == null){
- setEntity(Generic.NewInstance());
+ setEntity(ReferenceFactory.newGeneric());
}
super.updateContent();
getEntity().setType(combo_referenceType.getSelection());
getParentElement().refresh();
}
- else if(eventSource == composite_timePeriod){
- getEntity().setDatePublished(composite_timePeriod.getTimePeriod());
+ else if(eventSource == element_timePeriod){
+ getEntity().setDatePublished(element_timePeriod.getTimePeriod());
+ clearException();
}
// selections
else if(eventSource == selection_authorTeam){
toggleable_cache.setText(getEntity().getTitleCache());
}
}
+
+ /*
+ * (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleException(eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
+ */
+ @Override
+ public void handleException(CdmPropertyChangeEvent event) {
+ exceptionOccurred(event);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IExceptionHandler#clearException()
+ */
+ @Override
+ public void clearException() {
+ exceptionOccurred(null);
+ }
+
+ private List<IExceptionHandler> exceptionHandlers = new ArrayList<IExceptionHandler>();
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#addExceptionHandler(eu.etaxonomy.taxeditor.forms.IExceptionHandler)
+ */
+ @Override
+ public void addExceptionHandler(IExceptionHandler handler) {
+ exceptionHandlers.add(handler);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#removeExceptionHandler(eu.etaxonomy.taxeditor.forms.IExceptionHandler)
+ */
+ @Override
+ public void removeExceptionHandler(IExceptionHandler handler) {
+ exceptionHandlers.remove(handler);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#exceptionOccurred(eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
+ */
+ @Override
+ public void exceptionOccurred(CdmPropertyChangeEvent event) {
+ for(IExceptionHandler handler : exceptionHandlers){
+ if(event == null) {
+ clearException();
+ }else{
+ handler.handleException(event);
+ }
+ }
+ }
}
package eu.etaxonomy.taxeditor.section.reference;
-import org.apache.log4j.Logger;
import org.eclipse.swt.SWT;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
import eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
-import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
+import eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.forms.IExceptionHandler;
import eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement;
/**
* @created Jun 1, 2010
* @version 1.0
*/
-public class ReferenceBaseWizardPage extends AbstractCdmEntityWizardPage<ReferenceBase> {
-
-
- private static final Logger logger = Logger
- .getLogger(ReferenceBaseWizardPage.class);
+public class ReferenceBaseWizardPage extends AbstractCdmEntityWizardPage<ReferenceBase> implements IExceptionHandler{
public ReferenceBaseWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, ReferenceBase entity) {
super(formFactory, conversation, entity);
*/
public AbstractCdmDetailElement createElement(ICdmFormElement rootElement){
ReferenceBaseDetailElement referenceElement = (ReferenceBaseDetailElement) formFactory.createCdmDetailElement(DetailType.REFERENCEBASE, rootElement, SWT.NULL);
+ referenceElement.addExceptionHandler(this);
referenceElement.setEntity(entity);
-
return referenceElement;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IExceptionHandler#handleException(eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
+ */
+ @Override
+ public void handleException(CdmPropertyChangeEvent event) {
+ setMessage(event.getException().getMessage(), WARNING);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.forms.IExceptionHandler#clearException()
+ */
+ @Override
+ public void clearException() {
+ setMessage(null);
+ }
}
import eu.etaxonomy.cdm.common.mediaMetaData.ImageMetaData;
import eu.etaxonomy.cdm.model.media.ImageFile;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
*/
public class ImageFileElement extends AbstractMediaRepresentationPartElement<ImageFile> {
-
- private static final Logger logger = Logger
- .getLogger(ImageFileElement.class);
private NumberWithLabelElement text_height;
private NumberWithLabelElement text_width;
private BrowserElement element_browser;
element_image.setImageUri(imageUri);
} catch (IOException e) {
- logger.error("IOError reading image metadata", e);
- throw new RuntimeException("IOError reading image metadata");
+ EditorUtil.error(getClass(), e);
}
-
-
} catch (URISyntaxException e) {
- logger.warn("Image Uri is not valid");
+ EditorUtil.info("Image Uri is not valid");
} catch (Exception e) {
- logger.warn("Image could not be shown: ", e);
-// new RuntimeException(e);
+ EditorUtil.error(getClass(), "Image could not be shown: ", e);
}
}
import java.util.Arrays;
-import org.apache.log4j.Logger;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
private CheckboxElement checkbox_excluded;
private CheckboxElement checkbox_unplaced;
-
-
- private static final Logger logger = Logger
- .getLogger(TaxonBaseDetailElement.class);
public TaxonBaseDetailElement(CdmFormFactory cdmFormFactory,
ICdmFormElement formElement, int style) {
if(entity instanceof Taxon){
checkbox_excluded = formFactory.createCheckbox(formElement, "Is excluded", ((Taxon) entity).isExcluded(), style);
- checkbox_unplaced = formFactory.createCheckbox(formElement, "Is excluded", ((Taxon) entity).isUnplaced(), style);
+ checkbox_unplaced = formFactory.createCheckbox(formElement, "Is unplaced", ((Taxon) entity).isUnplaced(), style);
}
}
try {
handlerService.executeCommand(commandId, null);
} catch (ExecutionException e) {
- NavigationUtil.error(NavigationUtil.class, "ExecutionException when trying to execute EditHandler.", e);
+ NavigationUtil.error(NavigationUtil.class, e);
} catch (NotDefinedException e) {
- NavigationUtil.error(NavigationUtil.class, "NotDefinedException when trying to execute EditHandler.", e);
+ NavigationUtil.error(NavigationUtil.class, e);
} catch (NotEnabledException e) {
- NavigationUtil.error(NavigationUtil.class, "NotEnabledException when trying to execute EditHandler.", e);
+ NavigationUtil.error(NavigationUtil.class, e);
} catch (NotHandledException e) {
- NavigationUtil.error(NavigationUtil.class, "NotHandledException when trying to execute EditHandler.", e);
+ NavigationUtil.error(NavigationUtil.class, e);
}
}
EditorUtil.openTaxonBase(entityUuid);
}else if(selectedObject instanceof TaxonNameBase){
// TODO open bulk editor
- warningDialog("Not implemented yet", NavigationUtil.class, "You tried to open a name. This is not hanlded by the software yet.");
+ warningDialog("Not implemented yet", NavigationUtil.class, "You tried to open a name. This is not handled by the software yet.");
}else{
warningDialog("Unsupported Type", NavigationUtil.class, "No editor exists for the current selection: " + selectedObject);
}
*/
-import org.apache.log4j.Logger;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
* @version 1.0
*/
public class EditHandler extends AbstractHandler implements IHandler{
- private static final Logger logger = Logger
- .getLogger(EditHandler.class);
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
private ConversationHolder conversation;
public ClassificationWizard(){
- setWindowTitle("New Classification");
+ setWindowTitle("New Entity");
conversation = CdmStore.createConversation();
}
public ClassificationWizard(TaxonomicTree classification){
this();
- setWindowTitle("Edit Classification");
+ setWindowTitle("Edit Entity");
this.classification = CdmStore.getTaxonTreeService().load(classification.getUuid());
}
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
selection_reference = (ReferenceSelectionElement) formFactory.createSelectionElement(SelectionType.REFERENCE, getConversationHolder(), rootElement, "Reference", classification.getReference(), SWT.NULL);
text_referenceDetail = formFactory.createTextWithLabelElement(rootElement, "Reference Detail", classification.getMicroReference(), SWT.NULL);
+ Color bgColor = getShell().getBackground();
+
+ rootElement.setBackground(bgColor);
+ control.setBackground(bgColor);
setControl(control);
}
private ConversationHolder conversation;
public NewTaxonNodeWizard() {
- this.setWindowTitle("New Taxon");
+ this.setWindowTitle("New Entity");
conversation = CdmStore.createConversation();
selection = getNavigatorSelection();
}
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
private TaxonBaseSelectionElement selection_reuseExistingTaxon;
private TextWithLabelElement text_newTaxonName;
private CheckboxElement checkbox_openInEditor;
- private Composite control;
private CdmFormFactory formFactory;
private NameSelectionElement selection_reuseExistingName;
private ITreeNode parentTreeNode;
* @param pageName
*/
protected NewTaxonNodeWizardPage(ConversationHolder conversation, ITreeNode selectedNode) {
- super("New Taxon");
+ super("Taxon");
+
+ setTitle("Taxon");
this.conversation = conversation;
this.formFactory = new CdmFormFactory(Display.getCurrent());
*/
@Override
public void createControl(Composite parent) {
- control = formFactory.createComposite(parent);
+ Composite control = formFactory.createComposite(parent);
control.setLayout(CdmFormFactory.LAYOUT(2, false));
RootElement rootElement = new RootElement(formFactory, control);
checkbox_openInEditor = formFactory.createCheckbox(rootElement, "Open in Editor", openInEditor, SWT.NULL);
setParentTreeNode(initiallySelectedNode);
+
+ Color bgColor = getShell().getBackground();
+
+ rootElement.setBackground(bgColor);
+ control.setBackground(bgColor);
+
setControl(control);
}
package eu.etaxonomy.taxeditor.io;
-import org.apache.log4j.Logger;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.ui.progress.IProgressConstants;
* @version 1.0
*/
public abstract class AbstractIOHandler<CONFIGURATOR extends IIoConfigurator> {
- private static final Logger logger = Logger
- .getLogger(AbstractIOHandler.class);
-
+
protected CdmApplicationController applicationController;
public static enum TYPE {
Job job = createIOJob(configurator);
job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
job.schedule();
}
package eu.etaxonomy.taxeditor.preference.menu;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-
import eu.etaxonomy.cdm.model.common.ExtensionType;
-import eu.etaxonomy.taxeditor.preference.wizard.VocabularyTermWizard;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.store.TermStore;
/**
"Choose which extension types to display",
true);
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#addEditButtonListeners()
- *
- * TODO refactor into superclass
- */
- @Override
- protected void addNewButtonListeners() {
- newButton.addSelectionListener(new SelectionAdapter(){
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
- */
- @Override
- public void widgetSelected(SelectionEvent e) {
- super.widgetSelected(e);
- VocabularyTermWizard<ExtensionType> wizard = new VocabularyTermWizard<ExtensionType>(ExtensionType.class);
-
- WizardDialog dialog = new WizardDialog(StoreUtil.getShell(), wizard);
- dialog.open();
-
- tableViewer.setInput(TermStore.getExtensionTypes());
- }
- });
- }
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
checkDatabaseNotEmpty(monitor);
}
- if(! monitor.isCanceled()){
- // check if the datasource is compatible with this editor
+ if(dbSchemaValidation != DbSchemaValidation.CREATE && ! monitor.isCanceled()){
+ // if we do not create the datasource, we want to check if the datasource is compatible with this editor
checkDbSchemaVersionCompatibility(monitor);
}
protected static CdmStore getDefault(){
if(instance != null && instance.isConnected){
return instance;
- }else if(instance == null){
-
- connect();
-
- return instance;
- }else if(!instance.isConnected){
-
- StoreUtil.warningDialog("No datasource connection", instance, "Application is not connected to a datastore.");
+ }else if(instance == null || !instance.isConnected){
+
+ StoreUtil.warningDialog("Application is not connected to a datastore", instance, "The requested operation is only available when " +
+ "connected to a datasource. You may choose a datasource to connect to or create a new one in the datasource view.");
StoreUtil.showView(CdmDataSourceViewPart.ID);
*/
public static void close(IProgressMonitor monitor){
getContextManager().notifyContextAboutToStop(monitor);
- if((monitor == null || !monitor.isCanceled()) && isActive() && StoreUtil.closeAll()){
+ if((monitor == null || (!monitor.isCanceled()) && isActive() && StoreUtil.closeAll())){
getContextManager().notifyContextStop(monitor);
- instance.getApplicationController().close();
+ if(instance.getApplicationController() != null){
+ instance.getApplicationController().close();
+ }
instance.close();
}
}
}
public static CdmApplicationController getCurrentApplicationController(){
- return getDefault().getApplicationController();
+ if(getDefault() != null){
+ return getDefault().getApplicationController();
+ }
+ return null;
}
/*
* @return
*/
public static ConversationHolder createConversation() {
- ConversationHolder conversation = getDefault().getApplicationController().NewConversation();
+ ConversationHolder conversation = getCurrentApplicationController().NewConversation();
conversation.startTransaction();
return conversation;
* EXPOSING SERVICES
*/
- public static ITaxonService getTaxonService(){ return getDefault().getApplicationController().getTaxonService();}
+ public static ITaxonService getTaxonService(){ return getCurrentApplicationController().getTaxonService();}
- public static ITaxonTreeService getTaxonTreeService() { return getDefault().getApplicationController().getTaxonTreeService();}
+ public static ITaxonTreeService getTaxonTreeService() { return getCurrentApplicationController().getTaxonTreeService();}
- public static ITaxonNodeService getTaxonNodeService() { return getDefault().getApplicationController().getTaxonNodeService();}
+ public static ITaxonNodeService getTaxonNodeService() { return getCurrentApplicationController().getTaxonNodeService();}
- public static INameService getNameService(){ return getDefault().getApplicationController().getNameService();}
+ public static INameService getNameService(){ return getCurrentApplicationController().getNameService();}
- public static IReferenceService getReferenceService(){ return getDefault().getApplicationController().getReferenceService();}
+ public static IReferenceService getReferenceService(){ return getCurrentApplicationController().getReferenceService();}
- public static ILocationService getLocationService(){ return getDefault().getApplicationController().getLocationService();}
+ public static ILocationService getLocationService(){ return getCurrentApplicationController().getLocationService();}
- public static ProviderManager getAuthenticationManager() { return getDefault().getApplicationController().getAuthenticationManager();}
+ public static ProviderManager getAuthenticationManager() { return getCurrentApplicationController().getAuthenticationManager();}
- public static IUserService getUserService() { return getDefault().getApplicationController().getUserService(); }
+ public static IUserService getUserService() { return getCurrentApplicationController().getUserService(); }
- public static ICommonService getCommonService() { return getDefault().getApplicationController().getCommonService(); }
+ public static ICommonService getCommonService() { return getCurrentApplicationController().getCommonService(); }
- public static IAgentService getAgentService() { return getDefault().getApplicationController().getAgentService(); }
+ public static IAgentService getAgentService() { return getCurrentApplicationController().getAgentService(); }
- public static ITermService getTermService() { return getDefault().getApplicationController().getTermService(); }
+ public static ITermService getTermService() { return getCurrentApplicationController() != null ? getCurrentApplicationController().getTermService() : null; }
- public static IVocabularyService getVocabularyService() { return getDefault().getApplicationController().getVocabularyService(); }
+ public static IVocabularyService getVocabularyService() { return getCurrentApplicationController().getVocabularyService(); }
- public static IMediaService getMediaService() { return getDefault().getApplicationController().getMediaService(); }
+ public static IMediaService getMediaService() { return getCurrentApplicationController().getMediaService(); }
- public static IOccurrenceService getOccurrenceService() { return getDefault().getApplicationController().getOccurrenceService(); }
+ public static IOccurrenceService getOccurrenceService() { return getCurrentApplicationController().getOccurrenceService(); }
- public static IFeatureTreeService getFeatureTreeService() { return getDefault().getApplicationController().getFeatureTreeService(); }
+ public static IFeatureTreeService getFeatureTreeService() { return getCurrentApplicationController().getFeatureTreeService(); }
- public static IFeatureNodeService getFeatureNodeService() { return getDefault().getApplicationController().getFeatureNodeService(); }
+ public static IFeatureNodeService getFeatureNodeService() { return getCurrentApplicationController().getFeatureNodeService(); }
- public static ICollectionService getCollectionService() { return getDefault().getApplicationController().getCollectionService(); }
+ public static ICollectionService getCollectionService() { return getCurrentApplicationController().getCollectionService(); }
public static IEditGeoService getGeoService(){
- return (IEditGeoService) getDefault().getApplicationController().getBean("editGeoService");
+ return (IEditGeoService) getCurrentApplicationController().getBean("editGeoService");
}
-
+
/*
* METHODS TO FIND ENTITIES
*/
*/
public static synchronized ImportHandler getImportHandler(){
if(importHandler == null){
- importHandler = ImportHandler.NewInstance(getDefault().getApplicationController());
+ importHandler = ImportHandler.NewInstance(getCurrentApplicationController());
}
return importHandler;
}
*/
public static synchronized ExportHandler getExportHandler(){
if(exportHandler == null){
- exportHandler = ExportHandler.NewInstance(getDefault().getApplicationController());
+ exportHandler = ExportHandler.NewInstance(getCurrentApplicationController());
}
return exportHandler;
}
import java.util.Comparator;
import java.util.List;
+import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.AnnotationType;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
return getTerms(Language.class);
}
-
- /**
- * @param selected
- */
- public static void delete(DefinedTermBase selected) {
- CdmStore.getTermService().delete(selected);
- }
/**
*
* @return
/*************** save methods ******************************/
public static void saveTerm(DefinedTermBase term){
- CdmStore.getTermService().saveOrUpdate(term);
+ getTermService().saveOrUpdate(term);
+ }
+
+ /**
+ * @param selected
+ */
+ public static void delete(DefinedTermBase selected) {
+ getTermService().delete(selected);
}
/**
* @param feature
*/
public static void updateVocabulary(DefinedTermBase term) {
- CdmStore.getTermService().saveOrUpdate(term);
+ getTermService().saveOrUpdate(term);
}
}
private static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz){
- Comparator comparator = new Comparator<TERM>() {
+ Comparator<TERM> comparator = new Comparator<TERM>() {
@Override
public int compare(TERM o1, TERM o2) {
String label1 = o1.getLabel(getDefaultLanguage()) != null ? o1.getLabel(getDefaultLanguage()) : o1.getTitleCache();
}
- private static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz, Comparator comparator){
+ private static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz, Comparator<TERM> comparator){
- List<TERM> terms = CdmStore.getTermService().listByTermClass(clazz, null, null, null, null);
- Collections.sort(terms, comparator);
+ List<TERM> terms = new ArrayList<TERM>();
+ if(getTermService() != null){
+ terms = getTermService().listByTermClass(clazz, null, null, null, null);
+
+ Collections.sort(terms, comparator);
+ }
return terms;
}
+
+ private static ITermService getTermService(){
+ return CdmStore.getTermService();
+ }
}