geoportal-data-entry-app/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/events/RelationActionHandlerEvent....

143 lines
3.3 KiB
Java

package org.gcube.portlets.user.geoportaldataentry.client.events;
import org.gcube.application.geoportalcommon.shared.geoportal.ResultDocumentDV;
import org.gcube.application.geoportalcommon.shared.geoportal.ucd.RelationshipDefinitionDV;
import com.google.gwt.event.shared.GwtEvent;
/**
* The Class RelationActionHandlerEvent.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Oct 5, 2022
*/
public class RelationActionHandlerEvent extends GwtEvent<RelationActionHandler> {
/** The type. */
public static Type<RelationActionHandler> TYPE = new Type<RelationActionHandler>();
private ResultDocumentDV fromProject;
private RelationshipDefinitionDV relationSelected;
private ResultDocumentDV toProject;
private RELACTION_ACTION_TYPE relactionActionType;
private String relationName;
/**
* The Enum RELACTION_ACTION_TYPE.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Oct 5, 2022
*/
public static enum RELACTION_ACTION_TYPE {
CREATE, DELETE
}
/**
* Instantiates a new relation action handler event.
*
* @param fromProject the from project
* @param relationSelected the relation selected
* @param toProject the to project
*/
public RelationActionHandlerEvent(ResultDocumentDV fromProject, RelationshipDefinitionDV relationSelected,
ResultDocumentDV toProject) {
this.fromProject = fromProject;
this.relationSelected = relationSelected;
this.toProject = toProject;
this.relactionActionType = RELACTION_ACTION_TYPE.CREATE;
}
/**
* Instantiates a new relation action handler event.
*
* @param fromProject the from project
* @param relationName the relation name
* @param toProject the to project
*/
public RelationActionHandlerEvent(ResultDocumentDV fromProject, String relationName, ResultDocumentDV toProject) {
this.fromProject = fromProject;
this.toProject = toProject;
this.relationName = relationName;
this.relactionActionType = RELACTION_ACTION_TYPE.DELETE;
}
/**
* Gets the associated type.
*
* @return the associated type
*/
/*
* (non-Javadoc)
*
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/
@Override
public Type<RelationActionHandler> getAssociatedType() {
return TYPE;
}
/**
* Dispatch.
*
* @param handler the handler
*/
/*
* (non-Javadoc)
*
* @see
* com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.
* EventHandler)
*/
@Override
protected void dispatch(RelationActionHandler handler) {
handler.onCreateRelation(this);
}
/**
* Gets the from project.
*
* @return the from project
*/
public ResultDocumentDV getFromProject() {
return fromProject;
}
/**
* Gets the relation selected.
*
* @return the relation selected
*/
public RelationshipDefinitionDV getRelationSelected() {
return relationSelected;
}
/**
* Gets the to project.
*
* @return the to project
*/
public ResultDocumentDV getToProject() {
return toProject;
}
/**
* Gets the relaction action type.
*
* @return the relaction action type
*/
public RELACTION_ACTION_TYPE getRelactionActionType() {
return relactionActionType;
}
/**
* Gets the relation name.
*
* @return the relation name
*/
public String getRelationName() {
return relationName;
}
}