import eu.etaxonomy.cdm.model.name.RegistrationStatus;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
-import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action;
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
import eu.etaxonomy.cdm.vaadin.event.ShowDetailsEvent;
import eu.etaxonomy.cdm.vaadin.model.registration.RegistrationWorkingSet;
import eu.etaxonomy.cdm.vaadin.view.registration.RegistrationDTO;
import eu.etaxonomy.cdm.vaadin.view.registration.RegistrationTypeConverter;
import eu.etaxonomy.cdm.vaadin.view.registration.RegistrationWorksetViewBean;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractView;
import eu.etaxonomy.vaadin.ui.navigation.NavigationEvent;
ReferenceEditorAction referenceEditorAction = null;
if(workingSet.getCitationId() != null){
if(UserHelper.fromSession().userHasPermission(Reference.class, workingSet.getCitationId(), CRUD.UPDATE)){
- referenceEditorAction = new ReferenceEditorAction(Action.EDIT, workingSet.getCitationId());
+ referenceEditorAction = new ReferenceEditorAction(EditorActionType.EDIT, workingSet.getCitationId());
}
PermissionDebugUtils.addGainPerEntityPermissionButton(this, Reference.class, workingSet.getCitationId(), EnumSet.of(CRUD.UPDATE, CRUD.DELETE), null);
} else {
if(UserHelper.fromSession().userHasPermission(Reference.class, CRUD.CREATE)){
- referenceEditorAction = new ReferenceEditorAction(Action.ADD);
+ referenceEditorAction = new ReferenceEditorAction(EditorActionType.ADD);
}
}
TimePeriod datePublished = null;
import com.vaadin.ui.Component;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractView;
/**
+ * Base implementation for an event which
+ * which represents the request to start an editor to enable the
+ * user to perform the <code>action</code> transported with this event.
+ *
* @author a.kohlbecker
* @since Mar 22, 2017
*
*/
-public abstract class AbstractEditorAction extends AbstractEntityEvent<AbstractEditorAction.Action> {
-
- public enum Action {
- ADD,
- EDIT,
- REMOVE;
- }
+public abstract class AbstractEditorAction extends AbstractEntityEvent<EditorActionType> {
private Component sourceComponent = null;
private AbstractView sourceView = null;
- public AbstractEditorAction(Action action) {
+ public AbstractEditorAction(EditorActionType action) {
super(action, null);
}
- public AbstractEditorAction(Action action, Component source) {
+ public AbstractEditorAction(EditorActionType action, Component source) {
this(action, null, source);
}
* @param type
* @param citationId
*/
- public AbstractEditorAction(Action action, Integer entityId) {
+ public AbstractEditorAction(EditorActionType action, Integer entityId) {
super(action, entityId);
}
- public AbstractEditorAction(Action action, Integer entityId, Component source) {
+ public AbstractEditorAction(EditorActionType action, Integer entityId, Component source) {
super(action, entityId);
this.sourceComponent = source;
}
- public AbstractEditorAction(Action action, Integer entityId, Component source, AbstractView sourceView) {
+ public AbstractEditorAction(EditorActionType action, Integer entityId, Component source, AbstractView sourceView) {
super(action, entityId);
this.sourceComponent = source;
this.sourceView = sourceView;
}
public boolean isAddAction() {
- return type.equals(Action.ADD);
+ return type.equals(EditorActionType.ADD);
}
public boolean isEditAction() {
- return type.equals(Action.EDIT);
+ return type.equals(EditorActionType.EDIT);
}
public boolean isRemoveAction() {
- return type.equals(Action.REMOVE);
+ return type.equals(EditorActionType.REMOVE);
}
public Component getSourceComponent(){
import com.vaadin.ui.Component;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractView;
/**
/**
* @param eventType
*/
- public CollectionEditorAction(Action type) {
+ public CollectionEditorAction(EditorActionType type) {
super(type);
}
* @param edit
* @param citationId
*/
- public CollectionEditorAction(Action type, Integer citationId) {
+ public CollectionEditorAction(EditorActionType type, Integer citationId) {
super(type, citationId);
}
* @param entityId
* @param source
*/
- public CollectionEditorAction(Action type, Integer entityId, Component source) {
+ public CollectionEditorAction(EditorActionType type, Integer entityId, Component source) {
super(type, entityId, source);
}
* @param action
* @param source
*/
- public CollectionEditorAction(Action action, Component source) {
+ public CollectionEditorAction(EditorActionType action, Component source) {
super(action, source);
}
* @param source
* @param sourceView
*/
- public CollectionEditorAction(Action action, Integer entityId, Component source, AbstractView sourceView) {
+ public CollectionEditorAction(EditorActionType action, Integer entityId, Component source, AbstractView sourceView) {
super(action, entityId, source, sourceView);
}
import com.vaadin.ui.Component;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractView;
/**
/**
* @param eventType
*/
- public ReferenceEditorAction(Action type) {
+ public ReferenceEditorAction(EditorActionType type) {
super(type);
}
* @param edit
* @param citationId
*/
- public ReferenceEditorAction(Action type, Integer citationId) {
+ public ReferenceEditorAction(EditorActionType type, Integer citationId) {
super(type, citationId);
}
* @param entityId
* @param source
*/
- public ReferenceEditorAction(Action type, Integer entityId, Component source) {
+ public ReferenceEditorAction(EditorActionType type, Integer entityId, Component source) {
super(type, entityId, source);
}
* @param action
* @param source
*/
- public ReferenceEditorAction(Action action, Component source) {
+ public ReferenceEditorAction(EditorActionType action, Component source) {
super(action, source);
}
* @param source
* @param sourceView
*/
- public ReferenceEditorAction(Action action, Integer entityId, Component source, AbstractView sourceView) {
+ public ReferenceEditorAction(EditorActionType action, Integer entityId, Component source, AbstractView sourceView) {
super(action, entityId, source, sourceView);
}
import com.vaadin.ui.Component;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractView;
/**
/**
* @param eventType
*/
- public RegistrationEditorAction(Action type) {
+ public RegistrationEditorAction(EditorActionType type) {
super(type);
}
* @param edit
* @param citationId
*/
- public RegistrationEditorAction(Action type, Integer enitityId) {
+ public RegistrationEditorAction(EditorActionType type, Integer enitityId) {
super(type, enitityId);
}
* @param action
* @param source
*/
- public RegistrationEditorAction(Action action, Component source) {
+ public RegistrationEditorAction(EditorActionType action, Component source) {
super(action, source);
}
* @param source
* @param sourceView
*/
- public RegistrationEditorAction(Action action, Integer entityId, Component source, AbstractView sourceView) {
+ public RegistrationEditorAction(EditorActionType action, Integer entityId, Component source, AbstractView sourceView) {
super(action, entityId, source, sourceView);
}
* @param entityId
* @param source
*/
- public RegistrationEditorAction(Action action, Integer entityId, Component source) {
+ public RegistrationEditorAction(EditorActionType action, Integer entityId, Component source) {
super(action, entityId, source);
}
import com.vaadin.ui.Component;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractView;
/**
public class TaxonNameEditorAction extends AbstractEditorAction {
- public TaxonNameEditorAction(Action eventType) {
+ public TaxonNameEditorAction(EditorActionType eventType) {
super(eventType);
}
* @param type
* @param entityId
*/
- public TaxonNameEditorAction(Action type, Integer entityId) {
+ public TaxonNameEditorAction(EditorActionType type, Integer entityId) {
super(type, entityId);
}
* @param entityId
* @param source
*/
- public TaxonNameEditorAction(Action type, Integer entityId, Component source) {
+ public TaxonNameEditorAction(EditorActionType type, Integer entityId, Component source) {
super(type, entityId, source);
}
* @param action
* @param source
*/
- public TaxonNameEditorAction(Action action, Component source) {
+ public TaxonNameEditorAction(EditorActionType action, Component source) {
super(action, source);
// TODO Auto-generated constructor stub
}
* @param source
* @param sourceView
*/
- public TaxonNameEditorAction(Action action, Integer entityId, Component source, AbstractView sourceView) {
+ public TaxonNameEditorAction(EditorActionType action, Integer entityId, Component source, AbstractView sourceView) {
super(action, entityId, source, sourceView);
// TODO Auto-generated constructor stub
}
return;
}
+ @SuppressWarnings("unchecked")
CDM value = (CDM)event.getProperty().getValue();
if(value == null) {
return;
}
value = HibernateProxyHelper.deproxy(value);
+ if(!cachingPresenter.isCacheInitialized()){
+ // skips as long as the view has not completely loaded the bean
+ return;
+ }
+
EntityCache cache = cachingPresenter.getCache();
if(cache != null){
cache.update();
toOneRelatedEntityField.addValueChangeListener(this);
onSettingReloadedEntity = false;
}
+ } else {
+ throw new RuntimeException("The cache must not be null. See loadBeanById() in AbstractCdmEditorPresenter");
}
}
*/
package eu.etaxonomy.cdm.vaadin.event;
+import eu.etaxonomy.vaadin.event.EditorActionType;
+
/**
* @author a.kohlbecker
* @since Mar 22, 2017
public class TypeDesignationEditorAction extends AbstractEditorAction {
- public TypeDesignationEditorAction(Action eventType) {
+ public TypeDesignationEditorAction(EditorActionType eventType) {
super(eventType);
}
* @param type
* @param entityId
*/
- public TypeDesignationEditorAction(Action type, Integer entityId) {
+ public TypeDesignationEditorAction(EditorActionType type, Integer entityId) {
super(type, entityId);
}
import com.vaadin.ui.Component;
import eu.etaxonomy.cdm.vaadin.util.converter.TypeDesignationSetManager.TypeDesignationWorkingSetType;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractView;
/**
* @param source
* @param sourceView
*/
- public TypeDesignationWorkingsetEditorAction(Action action, Integer typeDesignationWorkingsetId, TypeDesignationWorkingSetType workingSetType, int registrationId,
+ public TypeDesignationWorkingsetEditorAction(EditorActionType action, Integer typeDesignationWorkingsetId, TypeDesignationWorkingSetType workingSetType, int registrationId,
Component source, AbstractView sourceView) {
super(action, typeDesignationWorkingsetId, source, sourceView);
this.registrationId = registrationId;
* @param source
* @param sourceView
*/
- public TypeDesignationWorkingsetEditorAction(Action action, TypeDesignationWorkingSetType workingSetType, int registrationId,
+ public TypeDesignationWorkingsetEditorAction(EditorActionType action, TypeDesignationWorkingSetType workingSetType, int registrationId,
Component source, AbstractView sourceView) {
super(action, null, source, sourceView);
this.workingSetType = workingSetType;
);
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).ADD")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD")
public void onCollectionEditorActionAdd(CollectionEditorAction event) {
if(!checkFromOwnView(event)){
collectionPopuEditor.loadInEditor(null);
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).EDIT")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).EDIT")
public void onCollectionEditorActionEdit(CollectionEditorAction event) {
if(!checkFromOwnView(event)){
import com.vaadin.ui.TextField;
import eu.etaxonomy.cdm.model.occurrence.Collection;
-import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction;
-import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action;
import eu.etaxonomy.cdm.vaadin.event.CollectionEditorAction;
import eu.etaxonomy.cdm.vaadin.event.ToOneRelatedEntityButtonUpdater;
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
import eu.etaxonomy.cdm.vaadin.util.CdmTitleCacheCaptionGenerator;
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractCdmPopupEditor;
/**
superCollectionCombobox = new ToOneRelatedEntityCombobox<Collection>("Super-collection", Collection.class);
superCollectionCombobox.addClickListenerAddEntity(e -> getEventBus().publishEvent(
- new CollectionEditorAction(AbstractEditorAction.Action.ADD, null, superCollectionCombobox, this)
+ new CollectionEditorAction(EditorActionType.ADD, null, superCollectionCombobox, this)
));
superCollectionCombobox.addClickListenerEditEntity(e -> {
if(superCollectionCombobox.getValue() != null){
getEventBus().publishEvent(
new CollectionEditorAction(
- AbstractEditorAction.Action.EDIT,
+ EditorActionType.EDIT,
superCollectionCombobox.getValue().getId(),
superCollectionCombobox,
this)
superCollectionCombobox.addClickListenerAddEntity( e -> getEventBus().publishEvent(
new CollectionEditorAction(
- Action.ADD,
+ EditorActionType.ADD,
null,
superCollectionCombobox,
this)
if(superCollectionCombobox.getValue() != null){
getEventBus().publishEvent(
new CollectionEditorAction(
- Action.EDIT,
+ EditorActionType.EDIT,
superCollectionCombobox.getValue().getId(),
superCollectionCombobox,
this
import eu.etaxonomy.cdm.vaadin.component.TextFieldNFix;
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField;
import eu.etaxonomy.cdm.vaadin.component.common.TimePeriodField;
-import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction;
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
import eu.etaxonomy.cdm.vaadin.util.converter.DoiConverter;
import eu.etaxonomy.cdm.vaadin.util.converter.UriConverter;
import eu.etaxonomy.vaadin.component.SwitchableTextField;
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox;
+import eu.etaxonomy.vaadin.event.EditorActionType;
import eu.etaxonomy.vaadin.mvp.AbstractCdmPopupEditor;
/**
inReferenceCombobox = new ToOneRelatedEntityCombobox<Reference>("In-reference", Reference.class);
inReferenceCombobox.setWidth(100, Unit.PERCENTAGE);
inReferenceCombobox.addClickListenerAddEntity(e -> getEventBus().publishEvent(
- new ReferenceEditorAction(AbstractEditorAction.Action.ADD, null, inReferenceCombobox, this)
+ new ReferenceEditorAction(EditorActionType.ADD, null, inReferenceCombobox, this)
));
inReferenceCombobox.addClickListenerEditEntity(e -> {
if(inReferenceCombobox.getValue() != null){
getEventBus().publishEvent(
new ReferenceEditorAction(
- AbstractEditorAction.Action.EDIT,
+ EditorActionType.EDIT,
inReferenceCombobox.getValue().getId(),
inReferenceCombobox,
this)
}
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).ADD && #event.sourceComponent == null")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD")
public void onReferenceEditorActionAdd(ReferenceEditorAction event) {
+
+ if(!checkFromOwnView(event)){
+ return;
+ }
+
ReferencePopupEditor popup = getNavigationManager().showInPopup(ReferencePopupEditor.class);
popup.loadInEditor(null);
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).EDIT && #event.sourceComponent == null")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).EDIT")
public void onReferenceEditorActionEdit(ReferenceEditorAction event) {
+
+ if(!checkFromOwnView(event)){
+ return;
+ }
ReferencePopupEditor popup = getNavigationManager().showInPopup(ReferencePopupEditor.class);
popup.withDeleteButton(true);
popup.loadInEditor(event.getEntityId());
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).EDIT && #event.sourceComponent == null")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).EDIT")
public void onRegistrationEditorAction(RegistrationEditorAction event) {
+
+ if(!checkFromOwnView(event)){
+ return;
+ }
+
RegistrationPopupEditor popup = getNavigationManager().showInPopup(RegistrationPopupEditor.class);
popup.loadInEditor(event.getEntityId());
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).EDIT")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).EDIT")
public void onTaxonNameEditorActionEdit(TaxonNameEditorAction event) {
if(!checkFromOwnView(event)){
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).ADD")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD")
public void onTaxonNameEditorActionAdd(TaxonNameEditorAction event) {
+ if(!checkFromOwnView(event)){
+ return;
+ }
+
newTaxonNameForRegistration = TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());
newTaxonNameForRegistration.setNomenclaturalReference(getRepo().getReferenceService().find(workingset.getCitationId()));
EntityChangeEvent nameSaveEvent = getTaxonNameStore().saveBean(newTaxonNameForRegistration);
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).EDIT")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).EDIT")
public void onTypeDesignationsEditorActionEdit(TypeDesignationWorkingsetEditorAction event) {
if(!checkFromOwnView(event)){
}
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).ADD && #event.sourceComponent == null")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD && #event.sourceComponent == null")
public void onAddNewTypeDesignationWorkingset(TypeDesignationWorkingsetEditorAction event) {
if(event.getWorkingSetType() == TypeDesignationWorkingSetType.SPECIMEN_TYPE_DESIGNATION_WORKINGSET){
import eu.etaxonomy.cdm.vaadin.component.registration.RegistrationItemEditButtonGroup.TypeDesignationWorkingSetButton;
import eu.etaxonomy.cdm.vaadin.component.registration.RegistrationStateLabel;
import eu.etaxonomy.cdm.vaadin.component.registration.RegistrationStyles;
-import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction;
-import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action;
import eu.etaxonomy.cdm.vaadin.event.RegistrationEditorAction;
import eu.etaxonomy.cdm.vaadin.event.ShowDetailsEvent;
import eu.etaxonomy.cdm.vaadin.event.TaxonNameEditorAction;
import eu.etaxonomy.cdm.vaadin.security.UserHelper;
import eu.etaxonomy.cdm.vaadin.util.converter.TypeDesignationSetManager.TypeDesignationWorkingSetType;
import eu.etaxonomy.cdm.vaadin.view.AbstractPageView;
+import eu.etaxonomy.vaadin.event.EditorActionType;
/**
* @author a.kohlbecker
addNewNameRegistrationButton = new Button("new name");
addNewNameRegistrationButton.setDescription("A name which is newly published in this publication.");
addNewNameRegistrationButton.addClickListener(
- e -> eventBus.publishEvent(new TaxonNameEditorAction(Action.ADD, addNewNameRegistrationButton))
+ e -> eventBus.publishEvent(new TaxonNameEditorAction(EditorActionType.ADD, addNewNameRegistrationButton))
);
addExistingNameButton = new Button("existing name:");
editRegistrationButton.setStyleName(ValoTheme.BUTTON_TINY);
editRegistrationButton.setDescription("Edit registration");
editRegistrationButton.addClickListener(e -> getEventBus().publishEvent(new RegistrationEditorAction(
- AbstractEditorAction.Action.EDIT,
+ EditorActionType.EDIT,
dto.getId(),
null,
this
editButtonGroup.getNameButton().getButton().addClickListener(e -> {
Integer nameId = editButtonGroup.getNameButton().getId();
getEventBus().publishEvent(new TaxonNameEditorAction(
- AbstractEditorAction.Action.EDIT,
+ EditorActionType.EDIT,
nameId,
e.getButton(),
this
TypeDesignationWorkingSetType workingsetType = workingsetButton.getType();
Integer registrationEntityID = dto.getId();
getEventBus().publishEvent(new TypeDesignationWorkingsetEditorAction(
- AbstractEditorAction.Action.EDIT,
+ EditorActionType.EDIT,
typeDesignationWorkingsetId,
workingsetType,
registrationEntityID,
protected void addNewTypeDesignationWorkingset(TypeDesignationWorkingSetType newWorkingsetType, Integer registrationEntityId, Window typeDesignationTypeCooser) {
UI.getCurrent().removeWindow(typeDesignationTypeCooser);
getEventBus().publishEvent(new TypeDesignationWorkingsetEditorAction(
- AbstractEditorAction.Action.ADD,
+ EditorActionType.ADD,
newWorkingsetType,
registrationEntityId,
null,
super.handleViewExit();
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).ADD")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD")
public void onReferenceEditorActionAdd(ReferenceEditorAction event) {
if(getView() == null || getView().getNewPublicationButton() != event.getSourceComponent()){
newReferencePopup.loadInEditor(null);
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).REMOVE")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).REMOVE")
public void onReferenceEditorActionRemove(ReferenceEditorAction event) {
if(getView().getRemoveNewPublicationButton() != event.getSourceComponent()){
}
}
- @EventListener(condition = "#event.type == T(eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action).ADD")
+ @EventListener(condition = "#event.type == T(eu.etaxonomy.vaadin.event.EditorActionType).ADD")
public void onRegistrationEditorActionAdd(RegistrationEditorAction event) {
if(getView().getContinueButton() != event.getSourceComponent()){
import com.vaadin.ui.themes.ValoTheme;
import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.vaadin.event.AbstractEditorAction.Action;
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
import eu.etaxonomy.cdm.vaadin.event.RegistrationEditorAction;
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
import eu.etaxonomy.cdm.vaadin.view.AbstractPageView;
+import eu.etaxonomy.vaadin.event.EditorActionType;
/**
* @author a.kohlbecker
newPublicationButton = new Button("New");
newPublicationButton.addClickListener( e -> eventBus.publishEvent(
- new ReferenceEditorAction(Action.ADD, newPublicationButton)
+ new ReferenceEditorAction(EditorActionType.ADD, newPublicationButton)
));
newPublicationButton.setCaption("New");
newPublicationButton.setWidth(ELEMENT_WIDTH);
removeNewPublicationButton.setStyleName(ValoTheme.BUTTON_DANGER);
removeNewPublicationButton.setWidth(ELEMENT_WIDTH);
removeNewPublicationButton.addClickListener( e -> eventBus.publishEvent(
- new ReferenceEditorAction(Action.REMOVE, removeNewPublicationButton)
+ new ReferenceEditorAction(EditorActionType.REMOVE, removeNewPublicationButton)
));
removeNewPublicationButton.setVisible(false);
refId = referenceCombobox.getValue().getId();
}
eventBus.publishEvent(
- new RegistrationEditorAction(Action.ADD,
+ new RegistrationEditorAction(EditorActionType.ADD,
// passing the refId is hack, bit for some reason the presenter is always referring to the wrong view
refId,
continueButton,
--- /dev/null
+/**
+* Copyright (C) 2018 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.vaadin.event;
+
+public enum EditorActionType {
+ ADD, // TODO change to CREATE?
+ EDIT,
+ REMOVE;
+}
\ No newline at end of file
--- /dev/null
+/**
+* Copyright (C) 2017 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.vaadin.event;
+
+import java.util.EnumSet;
+
+import com.vaadin.ui.AbstractField;
+
+/**
+ * An Event
+ * which represents the request to start an editor to enable the
+ * user to perform the <code>action</code> transported with this event.
+ *
+ * @author a.kohlbecker
+ *
+ */
+public class EntityEditorActionEvent<T> {
+
+ private Class<T> beanType;
+ private EditorActionType action;
+ private AbstractField<T> field;
+ private T bean;
+
+ /**
+ * @param type
+ * @param entityId
+ * @param field
+ */
+ public EntityEditorActionEvent(EditorActionType action, Class<T> beanType, AbstractField<T> field) {
+ this.action = action;
+ this.beanType = beanType;
+ this.field = field;
+ }
+
+ /**
+ *
+ * @param type
+ * @param entityId
+ * @param field
+ */
+ public EntityEditorActionEvent(EditorActionType action, Class<T> beanType, T bean, AbstractField<T> field) {
+ this.action = action;
+ this.beanType = beanType;
+ if(EnumSet.of(EditorActionType.REMOVE, EditorActionType.EDIT).contains(action) && bean == null){
+ throw new NullPointerException("bean must not be null when creating an event with " + action);
+ }
+ this.bean = bean;
+ this.field = field;
+ }
+
+ /**
+ * @return the beanType
+ */
+ public Class<?> getBeanType() {
+ return beanType;
+ }
+
+ /**
+ * @return the action
+ */
+ public EditorActionType getAction() {
+ return action;
+ }
+
+ /**
+ * @return the field which contains the bean
+ */
+ public AbstractField<T> getSource() {
+ return field;
+ }
+
+ /**
+ * @return the bean
+ */
+ public T getBean() {
+ return bean;
+ }
+
+}
--- /dev/null
+/**
+* Copyright (C) 2018 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.vaadin.event;
+
+/**
+ * @author a.kohlbecker
+ * @since Jan 17, 2018
+ *
+ */
+public interface EntityEditorActionListener {
+
+ public void onEntityEditorActionEvent(EntityEditorActionEvent action);
+
+}