156 lines
4.1 KiB
Java
156 lines
4.1 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.portlets.user.dataminermanager.client.form;
|
|
|
|
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ListParameter;
|
|
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.ObjectParameter;
|
|
import org.gcube.portlets.user.dataminermanager.client.bean.parameters.Parameter;
|
|
|
|
import com.allen_sauer.gwt.log.client.Log;
|
|
import com.google.gwt.user.client.ui.HTML;
|
|
import com.sencha.gxt.core.client.util.Margins;
|
|
import com.sencha.gxt.widget.core.client.container.HorizontalLayoutContainer;
|
|
import com.sencha.gxt.widget.core.client.container.HorizontalLayoutContainer.HorizontalLayoutData;
|
|
import com.sencha.gxt.widget.core.client.container.MarginData;
|
|
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
|
|
import com.sencha.gxt.widget.core.client.form.FieldLabel;
|
|
|
|
/**
|
|
* @author ceras
|
|
*
|
|
*/
|
|
public class OperatorFieldWidget extends SimpleContainer {
|
|
|
|
private Parameter parameter;
|
|
|
|
private AbstractFld field;
|
|
private HorizontalLayoutContainer horiz;
|
|
|
|
// private Field generalParameterField;
|
|
// private SimpleComboBox<String> inputDataParameterField;
|
|
// private TextField<String> outputDataParameterField;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public OperatorFieldWidget(Parameter p) {
|
|
super();
|
|
this.parameter = p;
|
|
horiz = new HorizontalLayoutContainer();
|
|
|
|
try {
|
|
// this.setStyleAttribute("margin", "10px");
|
|
if (p.isObject())
|
|
field = createObjectField((ObjectParameter) p);
|
|
else if (p.isEnum())
|
|
field = new EnumFld(p);
|
|
else if (p.isTabular())
|
|
field = new TabularFld(p);
|
|
else if (p.isTabularList())
|
|
field = new TabularListFld(p);
|
|
else if (p.isColumn())
|
|
field = new ColumnFld(p);
|
|
else if (p.isColumnList())
|
|
field = new ColumnListFld(p);
|
|
else if (p.isList())
|
|
field = createListField((ListParameter) p);
|
|
else if (p.isFile())
|
|
field = new FileFld(p);
|
|
|
|
FieldLabel label = new FieldLabel(field.getWidget(), p.getName());
|
|
horiz.add(label, new HorizontalLayoutData(-1, 1, new Margins(0)));
|
|
|
|
if (p.getDescription() != null) {
|
|
HTML descr = new HTML(p.getDescription());
|
|
descr.addStyleName("workflow-fieldDescription");
|
|
horiz.add(descr);
|
|
}
|
|
|
|
} catch (Throwable e) {
|
|
Log.error("Error: " + e.getLocalizedMessage());
|
|
e.printStackTrace();
|
|
horiz.add(new FieldLabel(new HTML("Error in field retrieving!"),p.getName()));
|
|
}
|
|
|
|
add(horiz, new MarginData(0));
|
|
}
|
|
|
|
/**
|
|
* @return the parameter
|
|
*/
|
|
public Parameter getParameter() {
|
|
return parameter;
|
|
}
|
|
|
|
public String getFieldValue() {
|
|
return field.getValue();
|
|
}
|
|
|
|
public String getValue() {
|
|
return getFieldValue();
|
|
}
|
|
|
|
/**
|
|
* @param p
|
|
* @return
|
|
*/
|
|
private AbstractFld createObjectField(ObjectParameter p) {
|
|
String type = p.getType();
|
|
if (type.contentEquals(Integer.class.getName())) {
|
|
return new IntFld(p);
|
|
} else if (type.contentEquals(String.class.getName())) {
|
|
return new StringFld(p);
|
|
} else if (type.contentEquals(Boolean.class.getName())) {
|
|
return new BooleanFld(p);
|
|
} else if (type.contentEquals(Double.class.getName())) {
|
|
return new DoubleFld(p);
|
|
} else if (type.contentEquals(Float.class.getName())) {
|
|
return new FloatFld(p);
|
|
} else
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
private AbstractFld createListField(ListParameter p) {
|
|
String type = p.getType();
|
|
|
|
if (type.contentEquals(String.class.getName())
|
|
|| type.contentEquals("STRING")) { // TODO REMOVE "STRING"
|
|
return new ListStringFld(p);
|
|
} else if (type.contentEquals(Integer.class.getName())
|
|
|| type.contentEquals("NUMBER")) {
|
|
return new ListIntFld(p);
|
|
}
|
|
// } else if (type.contentEquals(Boolean.class.getName())) {
|
|
// return new ListBooleanField(p);
|
|
// } else if (type.contentEquals(Double.class.getName())) {
|
|
// return new ListDoubleField(p);
|
|
// } else if (type.contentEquals(Float.class.getName())) {
|
|
// return new ListFloatField(p);
|
|
// }
|
|
else
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public void updateOperatorParameterValue() {
|
|
this.parameter.setValue(this.getFieldValue());
|
|
}
|
|
|
|
public AbstractFld getField() {
|
|
return field;
|
|
}
|
|
|
|
public boolean isValid() {
|
|
if (field != null)
|
|
return field.isValid();
|
|
else
|
|
return false;
|
|
}
|
|
}
|