2018-05-08 12:23:11 +02:00
|
|
|
package org.gcube.portlets.widgets.wstaskexecutor.client.view.binder;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import org.gcube.common.workspacetaskexecutor.shared.TaskParameterType;
|
|
|
|
import org.gcube.portlets.widgets.wstaskexecutor.client.WsTaskExecutorWidget;
|
|
|
|
import org.gcube.portlets.widgets.wstaskexecutor.client.event.DeleteCustomFieldEvent;
|
|
|
|
|
|
|
|
import com.github.gwtbootstrap.client.ui.Button;
|
2018-05-09 12:36:54 +02:00
|
|
|
import com.github.gwtbootstrap.client.ui.ControlGroup;
|
2018-05-08 12:23:11 +02:00
|
|
|
import com.github.gwtbootstrap.client.ui.InputAddOn;
|
|
|
|
import com.github.gwtbootstrap.client.ui.ListBox;
|
|
|
|
import com.github.gwtbootstrap.client.ui.TextBox;
|
|
|
|
import com.google.gwt.core.client.GWT;
|
2018-05-09 12:36:54 +02:00
|
|
|
import com.google.gwt.dom.client.Style.Unit;
|
2018-05-08 12:23:11 +02:00
|
|
|
import com.google.gwt.event.dom.client.ClickEvent;
|
|
|
|
import com.google.gwt.event.shared.HandlerManager;
|
|
|
|
import com.google.gwt.uibinder.client.UiBinder;
|
|
|
|
import com.google.gwt.uibinder.client.UiField;
|
|
|
|
import com.google.gwt.uibinder.client.UiHandler;
|
2018-05-09 12:36:54 +02:00
|
|
|
import com.google.gwt.user.client.Random;
|
2018-05-08 12:23:11 +02:00
|
|
|
import com.google.gwt.user.client.Window;
|
|
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
|
|
import com.google.gwt.user.client.ui.Composite;
|
|
|
|
import com.google.gwt.user.client.ui.Widget;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The Class CustomFieldEntry.
|
|
|
|
*
|
|
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
|
|
|
* May 8, 2018
|
|
|
|
*/
|
|
|
|
public class CustomFieldEntry extends Composite {
|
|
|
|
|
|
|
|
private static CustomFieldEntryUiBinder uiBinder = GWT
|
|
|
|
.create(CustomFieldEntryUiBinder.class);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The Interface CustomFieldEntryUiBinder.
|
|
|
|
*
|
|
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
|
|
|
* May 8, 2018
|
|
|
|
*/
|
|
|
|
interface CustomFieldEntryUiBinder extends
|
|
|
|
UiBinder<Widget, CustomFieldEntry> {
|
|
|
|
}
|
|
|
|
|
|
|
|
@UiField InputAddOn keyFieldPrepend;
|
|
|
|
@UiField InputAddOn valueFieldPrepend;
|
|
|
|
@UiField Button removeCustomField;
|
|
|
|
@UiField ListBox field_select_parameter;
|
2018-05-09 12:36:54 +02:00
|
|
|
@UiField ControlGroup cg_parameter;
|
2018-05-08 12:23:11 +02:00
|
|
|
|
|
|
|
private List<TaskParameterType> parameterTypes;
|
|
|
|
|
|
|
|
//inserted values
|
|
|
|
private String value;
|
|
|
|
private String key;
|
2018-05-08 18:11:29 +02:00
|
|
|
//private boolean isCustomCreatedByUser;
|
2018-05-08 12:23:11 +02:00
|
|
|
|
|
|
|
// event bus
|
|
|
|
private HandlerManager eventBus;
|
2018-05-08 18:11:29 +02:00
|
|
|
private String parameterType;
|
2018-05-08 12:23:11 +02:00
|
|
|
|
2018-05-09 12:36:54 +02:00
|
|
|
|
2018-05-08 12:23:11 +02:00
|
|
|
/**
|
|
|
|
* Instantiates a new custom field entry.
|
|
|
|
*
|
|
|
|
* @param eventBus the event bus
|
|
|
|
* @param key the key
|
|
|
|
* @param value the value
|
2018-05-09 16:19:41 +02:00
|
|
|
* @param parameterType the parameter type
|
2018-05-08 12:23:11 +02:00
|
|
|
*/
|
2018-05-08 18:11:29 +02:00
|
|
|
public CustomFieldEntry(HandlerManager eventBus, String key, String value, final String parameterType) {
|
2018-05-08 12:23:11 +02:00
|
|
|
initWidget(uiBinder.createAndBindUi(this));
|
2018-05-09 12:36:54 +02:00
|
|
|
this.getElement().getStyle().setMarginTop(10, Unit.PX);
|
|
|
|
this.getElement().getStyle().setMarginBottom(20, Unit.PX);
|
|
|
|
cg_parameter.getElement().setId(Random.nextInt()+Random.nextInt()+"");
|
2018-05-08 12:23:11 +02:00
|
|
|
|
|
|
|
keyFieldPrepend.setTitle("This is the key of the parameter");
|
|
|
|
valueFieldPrepend.setTitle("This is the value of the parameter");
|
|
|
|
|
|
|
|
// save information
|
|
|
|
this.eventBus = eventBus;
|
|
|
|
this.key = key;
|
2018-05-08 18:11:29 +02:00
|
|
|
this.value = value;
|
|
|
|
this.parameterType = parameterType;
|
2018-05-08 12:23:11 +02:00
|
|
|
|
2018-05-08 18:11:29 +02:00
|
|
|
|
|
|
|
if(key!=null && !key.isEmpty()){
|
|
|
|
((TextBox)this.keyFieldPrepend.getWidget(1)).setText(key);
|
|
|
|
}
|
|
|
|
|
|
|
|
if(value!=null && !value.isEmpty()){
|
|
|
|
((TextBox)this.valueFieldPrepend.getWidget(1)).setText(value);
|
2018-05-08 12:23:11 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
WsTaskExecutorWidget.wsTaskService.getAvailableParameterTypes(new AsyncCallback<List<TaskParameterType>>() {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onFailure(Throwable caught) {
|
|
|
|
Window.alert(caught.getMessage());
|
|
|
|
field_select_parameter.setEnabled(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onSuccess(List<TaskParameterType> result) {
|
|
|
|
|
|
|
|
parameterTypes = result;
|
|
|
|
|
|
|
|
for (TaskParameterType taskParameterType : result) {
|
|
|
|
field_select_parameter.addItem(taskParameterType.getType(), taskParameterType.getType());
|
|
|
|
}
|
|
|
|
|
|
|
|
field_select_parameter.setEnabled(true);
|
2018-05-08 18:11:29 +02:00
|
|
|
|
|
|
|
if(parameterType!=null && !parameterType.isEmpty()){
|
|
|
|
field_select_parameter.setSelectedValue(parameterType);
|
|
|
|
field_select_parameter.setEnabled(false);
|
|
|
|
}
|
|
|
|
|
2018-05-08 12:23:11 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
field_select_parameter.setEnabled(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2018-05-09 16:19:41 +02:00
|
|
|
/**
|
|
|
|
* Sets the enable value.
|
|
|
|
*
|
|
|
|
* @param enabled the new enable value
|
|
|
|
*/
|
|
|
|
public void setEnableValue(boolean enabled){
|
|
|
|
((TextBox)this.valueFieldPrepend.getWidget(1)).setEnabled(enabled);
|
|
|
|
}
|
|
|
|
|
2018-05-09 12:36:54 +02:00
|
|
|
|
|
|
|
/**
|
2018-05-09 16:19:41 +02:00
|
|
|
* Gets the control group.
|
|
|
|
*
|
2018-05-09 12:36:54 +02:00
|
|
|
* @return the cg_parameter
|
|
|
|
*/
|
|
|
|
public ControlGroup getControlGroup() {
|
|
|
|
|
|
|
|
return cg_parameter;
|
|
|
|
}
|
2018-05-08 12:23:11 +02:00
|
|
|
/**
|
|
|
|
* Retrieve the key value.
|
|
|
|
*
|
|
|
|
* @return the key
|
|
|
|
*/
|
|
|
|
public String getKey(){
|
|
|
|
|
2018-05-08 18:11:29 +02:00
|
|
|
return ((TextBox)this.keyFieldPrepend.getWidget(1)).getText();
|
2018-05-08 12:23:11 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the value.
|
|
|
|
*
|
|
|
|
* @return the value
|
|
|
|
*/
|
|
|
|
public String getValue(){
|
|
|
|
|
2018-05-08 18:11:29 +02:00
|
|
|
return ((TextBox)this.valueFieldPrepend.getWidget(1)).getText();
|
2018-05-08 12:23:11 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* On remove custom field.
|
|
|
|
*
|
|
|
|
* @param e the e
|
|
|
|
*/
|
|
|
|
@UiHandler("removeCustomField")
|
|
|
|
void onRemoveCustomField(ClickEvent e){
|
|
|
|
|
|
|
|
// fire event
|
|
|
|
eventBus.fireEvent(new DeleteCustomFieldEvent(this));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Remove delete button.
|
|
|
|
*/
|
|
|
|
public void freeze() {
|
|
|
|
|
|
|
|
removeCustomField.setEnabled(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Gets the type.
|
|
|
|
*
|
|
|
|
* @return the type
|
|
|
|
*/
|
|
|
|
public String getType(){
|
|
|
|
return field_select_parameter.getSelectedValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|