Minor Update
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-expression-widget@99958 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
78fa7df755
commit
3f8baf4909
|
@ -33,20 +33,22 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
|
||||||
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class ReplaceColumnByExpressionDialog extends Window implements MonitorDialogListener {
|
public class ReplaceColumnByExpressionDialog extends Window implements
|
||||||
|
MonitorDialogListener {
|
||||||
protected String WIDTH = "660px";
|
protected String WIDTH = "660px";
|
||||||
protected String HEIGHT = "400px";
|
protected String HEIGHT = "400px";
|
||||||
protected ReplaceColumnByExpressionPanel replaceColumnByExpressionPanel;
|
protected ReplaceColumnByExpressionPanel replaceColumnByExpressionPanel;
|
||||||
protected C_Expression exp = null;
|
protected C_Expression cConditionExpression = null;
|
||||||
|
protected C_Expression cReplaceExpression = null;
|
||||||
protected String replaceValue;
|
protected String replaceValue;
|
||||||
protected ColumnData column = null;
|
protected ColumnData column = null;
|
||||||
protected TRId trId;
|
protected TRId trId;
|
||||||
protected String columnName = null;
|
protected String columnName = null;
|
||||||
protected EventBus eventBus;
|
protected EventBus eventBus;
|
||||||
private ReplaceColumnByExpressionSession replaceColumnByExpressionSession;
|
|
||||||
|
|
||||||
public ReplaceColumnByExpressionDialog(String columnId, ColumnTypeCode columnTypeCode,
|
public ReplaceColumnByExpressionDialog(String columnId,
|
||||||
ColumnDataType dataTypeName, EventBus eventBus) {
|
ColumnTypeCode columnTypeCode, ColumnDataType dataTypeName,
|
||||||
|
EventBus eventBus) {
|
||||||
initWindow();
|
initWindow();
|
||||||
this.eventBus = eventBus;
|
this.eventBus = eventBus;
|
||||||
column = new ColumnData();
|
column = new ColumnData();
|
||||||
|
@ -57,7 +59,8 @@ public class ReplaceColumnByExpressionDialog extends Window implements MonitorDi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReplaceColumnByExpressionDialog(TRId trId, String columnName, EventBus eventBus) {
|
public ReplaceColumnByExpressionDialog(TRId trId, String columnName,
|
||||||
|
EventBus eventBus) {
|
||||||
initWindow();
|
initWindow();
|
||||||
this.eventBus = eventBus;
|
this.eventBus = eventBus;
|
||||||
this.trId = trId;
|
this.trId = trId;
|
||||||
|
@ -73,7 +76,8 @@ public class ReplaceColumnByExpressionDialog extends Window implements MonitorDi
|
||||||
setResizable(false);
|
setResizable(false);
|
||||||
setHeadingText("Replace Column By Expression");
|
setHeadingText("Replace Column By Expression");
|
||||||
setClosable(true);
|
setClosable(true);
|
||||||
getHeader().setIcon(ExpressionResources.INSTANCE.columnReplaceByExpression());
|
getHeader().setIcon(
|
||||||
|
ExpressionResources.INSTANCE.columnReplaceByExpression());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,8 +110,8 @@ public class ReplaceColumnByExpressionDialog extends Window implements MonitorDi
|
||||||
ColumnTypeCode.CODENAME.toString()) == 0
|
ColumnTypeCode.CODENAME.toString()) == 0
|
||||||
|| column.getTypeCode().compareTo(
|
|| column.getTypeCode().compareTo(
|
||||||
ColumnTypeCode.MEASURE.toString()) == 0) {
|
ColumnTypeCode.MEASURE.toString()) == 0) {
|
||||||
replaceColumnByExpressionPanel = new ReplaceColumnByExpressionPanel(this, column,
|
replaceColumnByExpressionPanel = new ReplaceColumnByExpressionPanel(
|
||||||
eventBus);
|
this, column, eventBus);
|
||||||
add(replaceColumnByExpressionPanel);
|
add(replaceColumnByExpressionPanel);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -120,18 +124,31 @@ public class ReplaceColumnByExpressionDialog extends Window implements MonitorDi
|
||||||
}
|
}
|
||||||
|
|
||||||
public C_Expression getExpression() {
|
public C_Expression getExpression() {
|
||||||
return exp;
|
return cConditionExpression;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setExpression(C_Expression exp) {
|
protected void setExpression(C_Expression exp) {
|
||||||
Log.debug("New Expression set:" + exp.toString());
|
Log.debug("New Expression set:" + exp.toString());
|
||||||
this.exp = exp;
|
this.cConditionExpression = exp;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyReplaceColumnByExpression(C_Expression exp, String replaceValue) {
|
protected void applyReplaceColumnByExpression(C_Expression cConditionExpression,
|
||||||
this.exp = exp;
|
String replaceValue) {
|
||||||
|
this.cConditionExpression = cConditionExpression;
|
||||||
this.replaceValue = replaceValue;
|
this.replaceValue = replaceValue;
|
||||||
callApplyReplaceByExpression();
|
|
||||||
|
ReplaceColumnByExpressionSession replaceColumnByExpressionSession = new ReplaceColumnByExpressionSession(
|
||||||
|
column, cConditionExpression, replaceValue);
|
||||||
|
callApplyReplaceByExpression(replaceColumnByExpressionSession);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void applyReplaceColumnByExpression(C_Expression cConditionExpression,
|
||||||
|
C_Expression cReplaceExpression) {
|
||||||
|
this.cConditionExpression = cConditionExpression;
|
||||||
|
this.cReplaceExpression = cReplaceExpression;
|
||||||
|
ReplaceColumnByExpressionSession replaceColumnByExpressionSession = new ReplaceColumnByExpressionSession(
|
||||||
|
column, cConditionExpression, cReplaceExpression);
|
||||||
|
callApplyReplaceByExpression(replaceColumnByExpressionSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void load(TRId trId, String columnName) {
|
protected void load(TRId trId, String columnName) {
|
||||||
|
@ -162,12 +179,12 @@ public class ReplaceColumnByExpressionDialog extends Window implements MonitorDi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void callApplyReplaceByExpression() {
|
protected void callApplyReplaceByExpression(
|
||||||
replaceColumnByExpressionSession = new ReplaceColumnByExpressionSession(column, exp,replaceValue);
|
ReplaceColumnByExpressionSession replaceColumnByExpressionSession) {
|
||||||
Log.debug(replaceColumnByExpressionSession.toString());
|
Log.debug("Replace Column By Expression Session "+replaceColumnByExpressionSession);
|
||||||
|
|
||||||
ExpressionServiceAsync.INSTANCE.startReplaceColumnByExpression(replaceColumnByExpressionSession,
|
ExpressionServiceAsync.INSTANCE.startReplaceColumnByExpression(
|
||||||
new AsyncCallback<String>() {
|
replaceColumnByExpressionSession, new AsyncCallback<String>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String taskId) {
|
public void onSuccess(String taskId) {
|
||||||
|
@ -185,8 +202,8 @@ public class ReplaceColumnByExpressionDialog extends Window implements MonitorDi
|
||||||
Log.error("Error submitting replace column by expression: "
|
Log.error("Error submitting replace column by expression: "
|
||||||
+ caught.getLocalizedMessage());
|
+ caught.getLocalizedMessage());
|
||||||
caught.printStackTrace();
|
caught.printStackTrace();
|
||||||
UtilsGXT3.alert(
|
UtilsGXT3
|
||||||
"Error submitting replace column by expression",
|
.alert("Error submitting replace column by expression",
|
||||||
caught.getLocalizedMessage());
|
caught.getLocalizedMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,27 @@
|
||||||
package org.gcube.portlets.user.td.expressionwidget.client;
|
package org.gcube.portlets.user.td.expressionwidget.client;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import org.gcube.portlets.user.td.expressionwidget.client.resources.ExpressionResources;
|
import org.gcube.portlets.user.td.expressionwidget.client.resources.ExpressionResources;
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.leaf.TD_Value;
|
||||||
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
|
||||||
|
import org.gcube.portlets.user.td.monitorwidget.client.utils.UtilsGXT3;
|
||||||
import org.gcube.portlets.user.td.widgetcommonevent.shared.expression.C_Expression;
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.expression.C_Expression;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnTypeMap;
|
||||||
|
|
||||||
import com.allen_sauer.gwt.log.client.Log;
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
import com.google.gwt.event.logical.shared.ValueChangeEvent;
|
||||||
|
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||||
|
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||||
|
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
|
||||||
|
import com.google.gwt.user.client.ui.HasValue;
|
||||||
|
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||||
import com.google.web.bindery.event.shared.EventBus;
|
import com.google.web.bindery.event.shared.EventBus;
|
||||||
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
|
||||||
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
|
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
|
||||||
import com.sencha.gxt.core.client.util.Margins;
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
|
import com.sencha.gxt.core.client.util.ToggleGroup;
|
||||||
import com.sencha.gxt.widget.core.client.FramedPanel;
|
import com.sencha.gxt.widget.core.client.FramedPanel;
|
||||||
import com.sencha.gxt.widget.core.client.button.TextButton;
|
import com.sencha.gxt.widget.core.client.button.TextButton;
|
||||||
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
|
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
|
||||||
|
@ -19,8 +32,10 @@ import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
|
||||||
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
||||||
import com.sencha.gxt.widget.core.client.event.SelectEvent;
|
import com.sencha.gxt.widget.core.client.event.SelectEvent;
|
||||||
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
|
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
|
||||||
|
import com.sencha.gxt.widget.core.client.form.DateField;
|
||||||
import com.sencha.gxt.widget.core.client.form.FieldLabel;
|
import com.sencha.gxt.widget.core.client.form.FieldLabel;
|
||||||
import com.sencha.gxt.widget.core.client.form.FieldSet;
|
import com.sencha.gxt.widget.core.client.form.FieldSet;
|
||||||
|
import com.sencha.gxt.widget.core.client.form.Radio;
|
||||||
import com.sencha.gxt.widget.core.client.form.TextField;
|
import com.sencha.gxt.widget.core.client.form.TextField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,9 +47,10 @@ import com.sencha.gxt.widget.core.client.form.TextField;
|
||||||
public class ReplaceColumnByExpressionPanel extends FramedPanel {
|
public class ReplaceColumnByExpressionPanel extends FramedPanel {
|
||||||
protected static final String WIDTH = "648px";
|
protected static final String WIDTH = "648px";
|
||||||
protected static final String HEIGHT = "364px";
|
protected static final String HEIGHT = "364px";
|
||||||
|
|
||||||
protected static final String CONDITIONWIDTH = "612px";
|
protected static final String CONDITIONWIDTH = "612px";
|
||||||
protected static final String CONDITIONHEIGHT = "150px";
|
protected static final String CONDITIONHEIGHT = "120px";
|
||||||
|
protected static final String REPLACEWIDTH = "612px";
|
||||||
|
protected static final String REPLACEHEIGHT = "120px";
|
||||||
|
|
||||||
protected EventBus eventBus;
|
protected EventBus eventBus;
|
||||||
|
|
||||||
|
@ -42,12 +58,22 @@ public class ReplaceColumnByExpressionPanel extends FramedPanel {
|
||||||
|
|
||||||
protected ColumnData column;
|
protected ColumnData column;
|
||||||
|
|
||||||
|
private DateTimeFormat sdf = DateTimeFormat.getFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
private TextButton btnApply;
|
private TextButton btnApply;
|
||||||
private TextButton btnClose;
|
private TextButton btnClose;
|
||||||
|
|
||||||
private FieldSet conditionsFieldSet;
|
private FieldSet conditionsFieldSet;
|
||||||
private ConditionWidget conditionWidget;
|
private ConditionWidget conditionWidget;
|
||||||
|
|
||||||
|
private ReplaceWidget replaceWidget;
|
||||||
private TextField replaceValue;
|
private TextField replaceValue;
|
||||||
|
private DateField replaceValueDate;
|
||||||
|
|
||||||
|
private VerticalLayoutContainer conditionsVerticalLayout;
|
||||||
|
private FieldLabel allRowsField;
|
||||||
|
private boolean allRows;
|
||||||
|
|
||||||
|
|
||||||
public ReplaceColumnByExpressionPanel(
|
public ReplaceColumnByExpressionPanel(
|
||||||
ReplaceColumnByExpressionDialog parent, ColumnData column,
|
ReplaceColumnByExpressionDialog parent, ColumnData column,
|
||||||
|
@ -100,9 +126,53 @@ public class ReplaceColumnByExpressionPanel extends FramedPanel {
|
||||||
conditionsFieldSet.setHeadingText("Conditions");
|
conditionsFieldSet.setHeadingText("Conditions");
|
||||||
conditionsFieldSet.setCollapsible(false);
|
conditionsFieldSet.setCollapsible(false);
|
||||||
|
|
||||||
conditionWidget = new ConditionWidget(column,CONDITIONWIDTH, CONDITIONHEIGHT);
|
conditionsVerticalLayout = new VerticalLayoutContainer();
|
||||||
|
conditionsVerticalLayout.setWidth("612px");
|
||||||
|
|
||||||
|
Radio radioAllRowsTrue = new Radio();
|
||||||
|
radioAllRowsTrue.setBoxLabel("true");
|
||||||
|
|
||||||
|
Radio radioAllRowsFalse = new Radio();
|
||||||
|
radioAllRowsFalse.setBoxLabel("false");
|
||||||
|
|
||||||
|
radioAllRowsTrue.setValue(true);
|
||||||
|
allRows = true;
|
||||||
|
|
||||||
|
ToggleGroup toggleGroup = new ToggleGroup();
|
||||||
|
toggleGroup.add(radioAllRowsTrue);
|
||||||
|
toggleGroup.add(radioAllRowsFalse);
|
||||||
|
|
||||||
|
toggleGroup
|
||||||
|
.addValueChangeHandler(new ValueChangeHandler<HasValue<Boolean>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onValueChange(
|
||||||
|
ValueChangeEvent<HasValue<Boolean>> event) {
|
||||||
|
callAllRowChange(event);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
HorizontalPanel hp = new HorizontalPanel();
|
||||||
|
hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
|
||||||
|
hp.add(radioAllRowsTrue);
|
||||||
|
hp.add(radioAllRowsFalse);
|
||||||
|
hp.setWidth("100px");
|
||||||
|
|
||||||
|
allRowsField = new FieldLabel(hp, "All rows");
|
||||||
|
allRowsField.setWidth("612px");
|
||||||
|
|
||||||
|
conditionWidget = new ConditionWidget(column, CONDITIONWIDTH,
|
||||||
|
CONDITIONHEIGHT);
|
||||||
|
conditionWidget.setEnabled(false);
|
||||||
Log.debug("ConditionWidget" + conditionWidget);
|
Log.debug("ConditionWidget" + conditionWidget);
|
||||||
conditionsFieldSet.add(conditionWidget);
|
|
||||||
|
conditionsVerticalLayout.add(allRowsField, new VerticalLayoutData(100,
|
||||||
|
-1, new Margins(0)));
|
||||||
|
conditionsVerticalLayout.add(conditionWidget, new VerticalLayoutData(
|
||||||
|
-1, -1, new Margins(0)));
|
||||||
|
|
||||||
|
conditionsFieldSet.add(conditionsVerticalLayout);
|
||||||
|
|
||||||
// Value
|
// Value
|
||||||
FieldSet replaceValueFieldSet = new FieldSet();
|
FieldSet replaceValueFieldSet = new FieldSet();
|
||||||
|
@ -112,16 +182,29 @@ public class ReplaceColumnByExpressionPanel extends FramedPanel {
|
||||||
VerticalLayoutContainer replaceValueFieldSetLayout = new VerticalLayoutContainer();
|
VerticalLayoutContainer replaceValueFieldSetLayout = new VerticalLayoutContainer();
|
||||||
replaceValueFieldSet.add(replaceValueFieldSetLayout);
|
replaceValueFieldSet.add(replaceValueFieldSetLayout);
|
||||||
|
|
||||||
|
if (column.getDataTypeName().compareTo(ColumnDataType.Date.toString()) == 0) {
|
||||||
|
replaceValueDate = new DateField();
|
||||||
|
replaceValueDate.setToolTip("Replace Value");
|
||||||
|
replaceValueFieldSetLayout.add(new FieldLabel(replaceValueDate,
|
||||||
|
"Replace Value"), new VerticalLayoutData(1, -1));
|
||||||
|
} else {
|
||||||
|
if (column.getDataTypeName().compareTo(
|
||||||
|
ColumnDataType.Text.toString()) == 0) {
|
||||||
|
replaceWidget=new ReplaceWidget(column, REPLACEWIDTH, REPLACEHEIGHT);
|
||||||
|
replaceValueFieldSetLayout.add(replaceWidget, new VerticalLayoutData(1, -1));
|
||||||
|
} else {
|
||||||
replaceValue = new TextField();
|
replaceValue = new TextField();
|
||||||
replaceValue.setToolTip("Replace Value");
|
replaceValue.setToolTip("Replace Value");
|
||||||
replaceValue.setValue("");
|
replaceValue.setValue("");
|
||||||
replaceValueFieldSetLayout.add(new FieldLabel(replaceValue,
|
replaceValueFieldSetLayout.add(new FieldLabel(replaceValue,
|
||||||
"Replace Value"), new VerticalLayoutData(1, -1));
|
"Replace Value"), new VerticalLayoutData(1, -1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
btnApply = new TextButton("Apply");
|
btnApply = new TextButton("Apply");
|
||||||
btnApply.setIcon(ExpressionResources.INSTANCE.columnReplaceByExpression());
|
btnApply.setIcon(ExpressionResources.INSTANCE
|
||||||
|
.columnReplaceByExpression());
|
||||||
btnApply.setIconAlign(IconAlign.RIGHT);
|
btnApply.setIconAlign(IconAlign.RIGHT);
|
||||||
btnApply.setTitle("Apply replace by expression");
|
btnApply.setTitle("Apply replace by expression");
|
||||||
btnApply.addSelectHandler(new SelectHandler() {
|
btnApply.addSelectHandler(new SelectHandler() {
|
||||||
|
@ -152,8 +235,8 @@ public class ReplaceColumnByExpressionPanel extends FramedPanel {
|
||||||
1)));
|
1)));
|
||||||
basicLayout.add(conditionsFieldSet, new VerticalLayoutData(-1, -1,
|
basicLayout.add(conditionsFieldSet, new VerticalLayoutData(-1, -1,
|
||||||
new Margins(1)));
|
new Margins(1)));
|
||||||
basicLayout.add(replaceValueFieldSet, new VerticalLayoutData(-1, -1, new Margins(
|
basicLayout.add(replaceValueFieldSet, new VerticalLayoutData(-1, -1,
|
||||||
1)));
|
new Margins(1)));
|
||||||
|
|
||||||
basicLayout.add(flowButton, new VerticalLayoutData(-1, 36, new Margins(
|
basicLayout.add(flowButton, new VerticalLayoutData(-1, 36, new Margins(
|
||||||
5, 2, 5, 2)));
|
5, 2, 5, 2)));
|
||||||
|
@ -161,14 +244,101 @@ public class ReplaceColumnByExpressionPanel extends FramedPanel {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyReplaceColumnByExpression() {
|
protected void callAllRowChange(ValueChangeEvent<HasValue<Boolean>> event) {
|
||||||
C_Expression exp = conditionWidget.getExpression();
|
ToggleGroup group = (ToggleGroup) event.getSource();
|
||||||
String value = replaceValue.getCurrentValue();
|
Radio radio = (Radio) group.getValue();
|
||||||
parent.applyReplaceColumnByExpression(exp,value);
|
if (radio.getBoxLabel().compareTo("true") == 0) {
|
||||||
|
conditionWidget.setEnabled(false);
|
||||||
|
allRows = true;
|
||||||
|
} else {
|
||||||
|
conditionWidget.setEnabled(true);
|
||||||
|
allRows = false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void applyReplaceColumnByExpression() {
|
||||||
|
C_Expression cConditionExpression;
|
||||||
|
if (allRows) {
|
||||||
|
cConditionExpression = new TD_Value(ColumnDataType.Boolean, "true");
|
||||||
|
} else {
|
||||||
|
cConditionExpression = conditionWidget.getExpression();
|
||||||
|
}
|
||||||
|
String value = null;
|
||||||
|
if (column.getDataTypeName().compareTo(ColumnDataType.Date.toString()) == 0) {
|
||||||
|
Date valueDate = replaceValueDate.getCurrentValue();
|
||||||
|
if (valueDate == null) {
|
||||||
|
UtilsGXT3.alert("Error replace value",
|
||||||
|
"Select a valid date as replace value!");
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
value = sdf.format(valueDate);
|
||||||
|
} catch (Throwable e) {
|
||||||
|
UtilsGXT3.alert("Error replace value",
|
||||||
|
"Select a valid date as replace value!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
parent.applyReplaceColumnByExpression(cConditionExpression, value);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (column.getDataTypeName().compareTo(
|
||||||
|
ColumnDataType.Text.toString()) == 0) {
|
||||||
|
C_Expression replaceExpression=replaceWidget.getExpression();
|
||||||
|
parent.applyReplaceColumnByExpression(cConditionExpression, replaceExpression);
|
||||||
|
} else {
|
||||||
|
value = replaceValue.getCurrentValue();
|
||||||
|
if (checkValue(value)) {
|
||||||
|
parent.applyReplaceColumnByExpression(cConditionExpression, value);
|
||||||
|
} else {
|
||||||
|
UtilsGXT3.alert("Error replace value", "Insert a valid value!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkValue(String value) {
|
||||||
|
try {
|
||||||
|
boolean ok = false;
|
||||||
|
ColumnDataType columnDataType = ColumnTypeMap
|
||||||
|
.getColumnDataType(column.getDataTypeName());
|
||||||
|
switch (columnDataType) {
|
||||||
|
case Boolean:
|
||||||
|
Boolean.valueOf(value);
|
||||||
|
ok = true;
|
||||||
|
break;
|
||||||
|
case Date:
|
||||||
|
ok = true;
|
||||||
|
break;
|
||||||
|
case Geometry:
|
||||||
|
ok = true;
|
||||||
|
break;
|
||||||
|
case Integer:
|
||||||
|
Integer.parseInt(value);
|
||||||
|
break;
|
||||||
|
case Numeric:
|
||||||
|
Double.parseDouble(value);
|
||||||
|
break;
|
||||||
|
case Text:
|
||||||
|
ok = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return ok;
|
||||||
|
|
||||||
|
} catch (Throwable e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void close() {
|
protected void close() {
|
||||||
parent.close();
|
parent.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,155 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.client;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.client.properties.ReplaceElement;
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.client.properties.ReplaceElementProperties;
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.client.properties.ReplaceElementStore;
|
||||||
|
import org.gcube.portlets.user.td.gwtservice.shared.tr.ColumnData;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.expression.C_Expression;
|
||||||
|
|
||||||
|
import com.allen_sauer.gwt.log.client.Log;
|
||||||
|
import com.google.gwt.core.client.GWT;
|
||||||
|
import com.google.gwt.event.logical.shared.SelectionEvent;
|
||||||
|
import com.google.gwt.event.logical.shared.SelectionHandler;
|
||||||
|
import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
|
||||||
|
import com.sencha.gxt.core.client.util.Margins;
|
||||||
|
import com.sencha.gxt.core.client.util.ToggleGroup;
|
||||||
|
import com.sencha.gxt.data.shared.ListStore;
|
||||||
|
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
|
||||||
|
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer;
|
||||||
|
import com.sencha.gxt.widget.core.client.container.SimpleContainer;
|
||||||
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
|
||||||
|
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
|
||||||
|
import com.sencha.gxt.widget.core.client.event.BeforeShowEvent;
|
||||||
|
import com.sencha.gxt.widget.core.client.form.ComboBox;
|
||||||
|
import com.sencha.gxt.widget.core.client.form.FieldLabel;
|
||||||
|
import com.sencha.gxt.widget.core.client.form.TextField;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ReplaceWidget extends SimpleContainer {
|
||||||
|
|
||||||
|
private ReplaceWidget thisCont;
|
||||||
|
protected static final String HEIGHT = "210px";
|
||||||
|
protected static final String WIDTH = "612px";
|
||||||
|
protected FieldLabel matchLabel;
|
||||||
|
protected ToggleGroup groupMatch;
|
||||||
|
|
||||||
|
|
||||||
|
protected VerticalLayoutContainer vert;
|
||||||
|
protected ColumnData column;
|
||||||
|
|
||||||
|
protected String readableExpression;
|
||||||
|
private TextField replaceValue;
|
||||||
|
|
||||||
|
public ReplaceWidget(ColumnData column) {
|
||||||
|
super();
|
||||||
|
create(column, WIDTH, HEIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReplaceWidget(ColumnData column, String width, String height) {
|
||||||
|
super();
|
||||||
|
create(column, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void create(ColumnData column, String width, String height) {
|
||||||
|
this.column = column;
|
||||||
|
setBorders(true);
|
||||||
|
setWidth(width);
|
||||||
|
setHeight(height);
|
||||||
|
forceLayoutOnResize = true;
|
||||||
|
thisCont = this;
|
||||||
|
|
||||||
|
setup();
|
||||||
|
addBeforeShowHandler(new BeforeShowEvent.BeforeShowHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBeforeShow(BeforeShowEvent event) {
|
||||||
|
forceLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setup() {
|
||||||
|
vert = new VerticalLayoutContainer();
|
||||||
|
|
||||||
|
|
||||||
|
final HBoxLayoutContainer horiz = new HBoxLayoutContainer();
|
||||||
|
|
||||||
|
//
|
||||||
|
ReplaceElementProperties props = GWT
|
||||||
|
.create(ReplaceElementProperties.class);
|
||||||
|
Log.debug("Props: " + props);
|
||||||
|
ListStore<ReplaceElement> storeReplaceElement = new ListStore<ReplaceElement>(
|
||||||
|
props.id());
|
||||||
|
Log.debug("Store: " + storeReplaceElement);
|
||||||
|
ReplaceElementStore factory = new ReplaceElementStore();
|
||||||
|
storeReplaceElement.addAll(factory.replaceElements);
|
||||||
|
|
||||||
|
|
||||||
|
Log.debug("Store created");
|
||||||
|
ComboBox<ReplaceElement> comboReplaceElement = new ComboBox<ReplaceElement>(
|
||||||
|
storeReplaceElement, props.label());
|
||||||
|
|
||||||
|
Log.debug("Combo created");
|
||||||
|
|
||||||
|
comboReplaceElement
|
||||||
|
.addSelectionHandler(new SelectionHandler<ReplaceElement>() {
|
||||||
|
|
||||||
|
public void onSelection(SelectionEvent<ReplaceElement> event) {
|
||||||
|
if (event.getSelectedItem() != null) {
|
||||||
|
ReplaceElement re = event.getSelectedItem();
|
||||||
|
Log.debug("Condition selected:" + re.toString());
|
||||||
|
switch (re.getReplaceType()) {
|
||||||
|
case Concat:
|
||||||
|
break;
|
||||||
|
case Equals:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
thisCont.forceLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
comboReplaceElement.setEmptyText("Select...");
|
||||||
|
comboReplaceElement.setWidth("230px");
|
||||||
|
comboReplaceElement.setEditable(false);
|
||||||
|
comboReplaceElement.setTriggerAction(TriggerAction.ALL);
|
||||||
|
|
||||||
|
comboReplaceElement.setValue(storeReplaceElement.get(0), true);
|
||||||
|
//
|
||||||
|
replaceValue = new TextField();
|
||||||
|
replaceValue.setToolTip("Replace Value");
|
||||||
|
replaceValue.setValue("");
|
||||||
|
|
||||||
|
horiz.add(comboReplaceElement, new BoxLayoutData(new Margins(1)));
|
||||||
|
horiz.add(replaceValue, new BoxLayoutData(new Margins(1)));
|
||||||
|
|
||||||
|
vert.add(horiz, new VerticalLayoutData(-1, -1, new Margins(1)));
|
||||||
|
|
||||||
|
add(vert);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_Expression getExpression() {
|
||||||
|
C_Expression exp = null;
|
||||||
|
|
||||||
|
Log.debug("C_Expression:" + exp);
|
||||||
|
return exp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReadableExpression() {
|
||||||
|
return readableExpression;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.client.properties;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author giancarlo email: <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ReplaceElement implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -1278177714679767844L;
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
private ReplaceType replaceType;
|
||||||
|
|
||||||
|
public ReplaceElement() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReplaceElement(Integer id, ReplaceType replaceType) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.replaceType = replaceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return replaceType.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReplaceType getReplaceType() {
|
||||||
|
return replaceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReplaceType(ReplaceType replaceType) {
|
||||||
|
this.replaceType = replaceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ReplaceElement [id=" + id + ", replaceType=" + replaceType
|
||||||
|
+ "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.client.properties;
|
||||||
|
|
||||||
|
import com.google.gwt.editor.client.Editor.Path;
|
||||||
|
import com.sencha.gxt.data.shared.LabelProvider;
|
||||||
|
import com.sencha.gxt.data.shared.ModelKeyProvider;
|
||||||
|
import com.sencha.gxt.data.shared.PropertyAccess;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi"
|
||||||
|
* <a href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface ReplaceElementProperties extends PropertyAccess<ReplaceElement> {
|
||||||
|
|
||||||
|
@Path("id")
|
||||||
|
ModelKeyProvider<ReplaceElement> id();
|
||||||
|
|
||||||
|
LabelProvider<ReplaceElement> label();
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.client.properties;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ReplaceElementStore {
|
||||||
|
|
||||||
|
public ArrayList<ReplaceElement> replaceElements = new ArrayList<ReplaceElement>() {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1690916203781730778L;
|
||||||
|
|
||||||
|
{
|
||||||
|
add(new ReplaceElement(1, ReplaceType.Equals));
|
||||||
|
add(new ReplaceElement(2, ReplaceType.Concat));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.client.properties;
|
||||||
|
|
||||||
|
public enum ReplaceType {
|
||||||
|
Equals("Equals"),
|
||||||
|
Concat("Concat");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param text
|
||||||
|
*/
|
||||||
|
private ReplaceType(final String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
private final String id;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -16,6 +16,10 @@ import org.gcube.data.analysis.tabulardata.expression.composite.comparable.LessT
|
||||||
import org.gcube.data.analysis.tabulardata.expression.composite.comparable.NotEquals;
|
import org.gcube.data.analysis.tabulardata.expression.composite.comparable.NotEquals;
|
||||||
import org.gcube.data.analysis.tabulardata.expression.composite.comparable.NotGreater;
|
import org.gcube.data.analysis.tabulardata.expression.composite.comparable.NotGreater;
|
||||||
import org.gcube.data.analysis.tabulardata.expression.composite.comparable.NotLess;
|
import org.gcube.data.analysis.tabulardata.expression.composite.comparable.NotLess;
|
||||||
|
import org.gcube.data.analysis.tabulardata.expression.composite.text.Concat;
|
||||||
|
import org.gcube.data.analysis.tabulardata.expression.composite.text.SubstringByIndex;
|
||||||
|
import org.gcube.data.analysis.tabulardata.expression.composite.text.SubstringByRegex;
|
||||||
|
import org.gcube.data.analysis.tabulardata.expression.composite.text.SubstringPosition;
|
||||||
import org.gcube.data.analysis.tabulardata.expression.composite.text.TextBeginsWith;
|
import org.gcube.data.analysis.tabulardata.expression.composite.text.TextBeginsWith;
|
||||||
import org.gcube.data.analysis.tabulardata.expression.composite.text.TextContains;
|
import org.gcube.data.analysis.tabulardata.expression.composite.text.TextContains;
|
||||||
import org.gcube.data.analysis.tabulardata.expression.composite.text.TextEndsWith;
|
import org.gcube.data.analysis.tabulardata.expression.composite.text.TextEndsWith;
|
||||||
|
@ -55,6 +59,10 @@ import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.compar
|
||||||
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotEquals;
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotEquals;
|
||||||
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotGreater;
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotGreater;
|
||||||
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotLess;
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotLess;
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_Concat;
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_SubstringByIndex;
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_SubstringByRegex;
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_SubstringPosition;
|
||||||
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextBeginsWith;
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextBeginsWith;
|
||||||
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextContains;
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextContains;
|
||||||
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextEndsWith;
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextEndsWith;
|
||||||
|
@ -158,6 +166,18 @@ public class C_ExpressionParser {
|
||||||
case "ValueIsIn":
|
case "ValueIsIn":
|
||||||
ex = getValueIsIn(exp);
|
ex = getValueIsIn(exp);
|
||||||
break;
|
break;
|
||||||
|
case "Concat":
|
||||||
|
ex = getConcat(exp);
|
||||||
|
break;
|
||||||
|
case "SubstringByIndex":
|
||||||
|
ex =getSubstringByIndex(exp);
|
||||||
|
break;
|
||||||
|
case "SubstringByRegex":
|
||||||
|
ex =getSubstringByRegex(exp);
|
||||||
|
break;
|
||||||
|
case "SubstringPosition":
|
||||||
|
ex =getSubstringPosition(exp);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -463,4 +483,37 @@ public class C_ExpressionParser {
|
||||||
return eq;
|
return eq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Expression getConcat(C_Expression exp) {
|
||||||
|
C_Concat concat = (C_Concat) exp;
|
||||||
|
Concat conc = new Concat(
|
||||||
|
parse(concat.getLeftArgument()),
|
||||||
|
parse(concat.getRightArgument()));
|
||||||
|
return conc;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Expression getSubstringByIndex(C_Expression exp) {
|
||||||
|
C_SubstringByIndex subByIndex = (C_SubstringByIndex) exp;
|
||||||
|
SubstringByIndex sByIndex = new SubstringByIndex(
|
||||||
|
parse(subByIndex.getSourceString()),
|
||||||
|
parse(subByIndex.getFromIndex()), parse(subByIndex.getToIndex()));
|
||||||
|
return sByIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Expression getSubstringByRegex(C_Expression exp) {
|
||||||
|
C_SubstringByRegex subByRegex = (C_SubstringByRegex) exp;
|
||||||
|
SubstringByRegex sByRegex = new SubstringByRegex(
|
||||||
|
parse(subByRegex.getSourceString()),
|
||||||
|
parse(subByRegex.getRegex()));
|
||||||
|
return sByRegex;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Expression getSubstringPosition(C_Expression exp) {
|
||||||
|
C_SubstringPosition subPosition = (C_SubstringPosition) exp;
|
||||||
|
SubstringPosition sPosition = new SubstringPosition(
|
||||||
|
parse(subPosition.getLeftArgument()),
|
||||||
|
parse(subPosition.getRightArgument()));
|
||||||
|
return sPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ public class ExpressionServiceImpl extends RemoteServiceServlet implements
|
||||||
ExpressionSession.setReplaceColumnByExpressionSession(session, replaceColumnByExpressionSession);
|
ExpressionSession.setReplaceColumnByExpressionSession(session, replaceColumnByExpressionSession);
|
||||||
|
|
||||||
C_ExpressionParser parser=new C_ExpressionParser();
|
C_ExpressionParser parser=new C_ExpressionParser();
|
||||||
Expression expression=parser.parse(replaceColumnByExpressionSession.getCexpression());
|
Expression expression=parser.parse(replaceColumnByExpressionSession.getcConditionExpression());
|
||||||
logger.debug("Service Expression:"+expression);
|
logger.debug("Service Expression:"+expression);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ public enum C_OperatorType {
|
||||||
|
|
||||||
NOT_BEGINS_WITH, NOT_ENDS_WITH, NOT_CONTAINS, NOT_MATCH_REGEX,
|
NOT_BEGINS_WITH, NOT_ENDS_WITH, NOT_CONTAINS, NOT_MATCH_REGEX,
|
||||||
|
|
||||||
|
CONCAT, SUBSTRINGBYINDEX, SUBSTRINGBYREGEX, SUBSTRINGPOSITION,
|
||||||
|
|
||||||
// COMPLEX
|
// COMPLEX
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.C_OperatorType;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.expression.C_Expression;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class C_Concat extends C_Expression {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5871179766613405166L;
|
||||||
|
protected String id = "Concat";
|
||||||
|
protected C_Expression leftArgument;
|
||||||
|
protected C_Expression rightArgument;
|
||||||
|
|
||||||
|
public C_Concat(){
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_Concat(C_Expression leftArgument,
|
||||||
|
C_Expression rightArgument) {
|
||||||
|
super();
|
||||||
|
this.leftArgument = leftArgument;
|
||||||
|
this.rightArgument = rightArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_OperatorType getOperator() {
|
||||||
|
return C_OperatorType.CONCAT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReturnedDataType() {
|
||||||
|
return "Text";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_Expression getLeftArgument() {
|
||||||
|
return leftArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLeftArgument(C_Expression leftArgument) {
|
||||||
|
this.leftArgument = leftArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_Expression getRightArgument() {
|
||||||
|
return rightArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRightArgument(C_Expression rightArgument) {
|
||||||
|
this.rightArgument = rightArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "C_Concat [id=" + id + ", leftArgument=" + leftArgument
|
||||||
|
+ ", rightArgument=" + rightArgument + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.C_OperatorType;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.expression.C_Expression;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class C_SubstringByIndex extends C_Expression {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5871179766613405166L;
|
||||||
|
protected String id = "SubstringByIndex";
|
||||||
|
|
||||||
|
private C_Expression sourceString;
|
||||||
|
private C_Expression fromIndex;
|
||||||
|
private C_Expression toIndex;
|
||||||
|
|
||||||
|
public C_SubstringByIndex(){
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_SubstringByIndex(C_Expression sourceString, C_Expression fromIndex, C_Expression toIndex) {
|
||||||
|
super();
|
||||||
|
this.sourceString = sourceString;
|
||||||
|
this.fromIndex=fromIndex;
|
||||||
|
this.toIndex=toIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_OperatorType getOperator() {
|
||||||
|
return C_OperatorType.SUBSTRINGBYINDEX;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReturnedDataType() {
|
||||||
|
return "Text";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_Expression getSourceString() {
|
||||||
|
return sourceString;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setSourceString(C_Expression sourceString) {
|
||||||
|
this.sourceString = sourceString;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_Expression getFromIndex() {
|
||||||
|
return fromIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setFromIndex(C_Expression fromIndex) {
|
||||||
|
this.fromIndex = fromIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_Expression getToIndex() {
|
||||||
|
return toIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setToIndex(C_Expression toIndex) {
|
||||||
|
this.toIndex = toIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "C_SubstringByIndex [id=" + id + ", sourceString="
|
||||||
|
+ sourceString + ", fromIndex=" + fromIndex + ", toIndex="
|
||||||
|
+ toIndex + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.C_OperatorType;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.expression.C_Expression;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class C_SubstringByRegex extends C_Expression {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5871179766613405166L;
|
||||||
|
protected String id = "SubstringByRegex";
|
||||||
|
|
||||||
|
private C_Expression sourceString;
|
||||||
|
private C_Expression regex;
|
||||||
|
|
||||||
|
public C_SubstringByRegex() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_SubstringByRegex(String id, C_Expression sourceString,
|
||||||
|
C_Expression regex) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.sourceString = sourceString;
|
||||||
|
this.regex = regex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_OperatorType getOperator() {
|
||||||
|
return C_OperatorType.SUBSTRINGBYREGEX;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReturnedDataType() {
|
||||||
|
return "Text";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_Expression getSourceString() {
|
||||||
|
return sourceString;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSourceString(C_Expression sourceString) {
|
||||||
|
this.sourceString = sourceString;
|
||||||
|
}
|
||||||
|
|
||||||
|
public C_Expression getRegex() {
|
||||||
|
return regex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRegex(C_Expression regex) {
|
||||||
|
this.regex = regex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "C_SubstringByRegex [id=" + id + ", sourceString="
|
||||||
|
+ sourceString + ", regex=" + regex + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
package org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.td.expressionwidget.shared.model.C_OperatorType;
|
||||||
|
import org.gcube.portlets.user.td.widgetcommonevent.shared.expression.C_Expression;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author "Giancarlo Panichi" <a
|
||||||
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class C_SubstringPosition extends C_Expression {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5871179766613405166L;
|
||||||
|
protected String id = "SubstringPosition";
|
||||||
|
|
||||||
|
private C_Expression leftArgument;
|
||||||
|
private C_Expression rightArgument;
|
||||||
|
|
||||||
|
public C_SubstringPosition() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_SubstringPosition(C_Expression leftArgument,
|
||||||
|
C_Expression rightArgument) {
|
||||||
|
super();
|
||||||
|
this.leftArgument = leftArgument;
|
||||||
|
this.rightArgument = rightArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public C_OperatorType getOperator() {
|
||||||
|
return C_OperatorType.SUBSTRINGBYREGEX;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReturnedDataType() {
|
||||||
|
return "Integer";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_Expression getLeftArgument() {
|
||||||
|
return leftArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setLeftArgument(C_Expression leftArgument) {
|
||||||
|
this.leftArgument = leftArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public C_Expression getRightArgument() {
|
||||||
|
return rightArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setRightArgument(C_Expression rightArgument) {
|
||||||
|
this.rightArgument = rightArgument;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "C_SubstringPosition [id=" + id + ", leftArgument="
|
||||||
|
+ leftArgument + ", rightArgument=" + rightArgument + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue