diff --git a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionDialog.java b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionDialog.java index 1520da3..feb1ea6 100644 --- a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionDialog.java +++ b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionDialog.java @@ -117,6 +117,7 @@ public class ColumnExpressionDialog extends Window { @Override public void hide() { ExpressionEvent expressionEvent= new ExpressionEvent(ExpressionType.EXPRESSIONNULL); + Log.debug(expressionEvent.toString()); eventBus.fireEvent(expressionEvent); hide(null); } diff --git a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionPanel.java b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionPanel.java index 6842391..60ab21f 100644 --- a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionPanel.java +++ b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ColumnExpressionPanel.java @@ -55,6 +55,8 @@ public class ColumnExpressionPanel extends FramedPanel { this.parent=parent; this.column = column; this.eventBus=eventBus; + Log.debug(column.toString()); + create(); } @@ -172,7 +174,6 @@ public class ColumnExpressionPanel extends FramedPanel { protected void applyRule() { - Log.debug("Apply"); C_Expression exp=conditionWidget.getExpression(); parent.setExpression(exp); ExpressionEvent expressionEvent= new ExpressionEvent(ExpressionType.CREATECOLUMNEXPRESSION); @@ -199,6 +200,7 @@ public class ColumnExpressionPanel extends FramedPanel { protected void close() { ExpressionEvent expressionEvent= new ExpressionEvent(ExpressionType.EXPRESSIONNULL); + Log.debug(expressionEvent.toString()); eventBus.fireEvent(expressionEvent); parent.hide(); } diff --git a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ConditionWidget.java b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ConditionWidget.java index 6075aa7..82bb4c5 100644 --- a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ConditionWidget.java +++ b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ConditionWidget.java @@ -49,7 +49,7 @@ public class ConditionWidget extends SimpleContainer { protected String HEIGHT = "210px"; protected FieldLabel matchLabel; protected ToggleGroup groupMatch; - + protected String itemIdCombo = "ComboConditions"; protected String itemIdFirstArg = "FirstArg"; protected String itemIdSecondArg = "SecondArg"; @@ -57,68 +57,66 @@ public class ConditionWidget extends SimpleContainer { protected String itemIdBtnDel = "BtnDel"; protected VerticalLayoutContainer vert; protected ColumnData column; - - - - ConditionWidget(ColumnData column){ - this.column=column; + ConditionWidget(ColumnData column) { + this.column = column; setBorders(true); setHeight(HEIGHT); thisCont = this; VerticalLayoutContainer baseLayout = new VerticalLayoutContainer(); - + Radio radioAll = new Radio(); radioAll.setName("All"); - radioAll.setBoxLabel("All conditions"); - radioAll.setValue(true); - - Radio radioAny = new Radio(); - radioAny.setName("Any"); - radioAny.setBoxLabel("Any condition"); - - HorizontalPanel matchPanel = new HorizontalPanel(); - matchPanel.add(radioAll); - matchPanel.add(radioAny); - - matchLabel=new FieldLabel(matchPanel, "Match"); - matchLabel.setVisible(false); - - baseLayout.add(matchLabel, new VerticalLayoutData(-1, -1, new Margins(2,1,2,1))); - - groupMatch = new ToggleGroup(); - groupMatch.add(radioAll); - groupMatch.add(radioAny); - - - vert = new VerticalLayoutContainer(); + radioAll.setBoxLabel("All conditions"); + radioAll.setValue(true); + + Radio radioAny = new Radio(); + radioAny.setName("Any"); + radioAny.setBoxLabel("Any condition"); + + HorizontalPanel matchPanel = new HorizontalPanel(); + matchPanel.add(radioAll); + matchPanel.add(radioAny); + + matchLabel = new FieldLabel(matchPanel, "Match"); + matchLabel.setVisible(false); + + baseLayout.add(matchLabel, new VerticalLayoutData(-1, -1, new Margins( + 2, 1, 2, 1))); + + groupMatch = new ToggleGroup(); + groupMatch.add(radioAll); + groupMatch.add(radioAny); + + vert = new VerticalLayoutContainer(); vert.setScrollMode(ScrollMode.AUTO); vert.setAdjustForScroll(true); - + setup(); - - baseLayout.add(vert,new VerticalLayoutData(-1, -1, new Margins(0))); + + baseLayout.add(vert, new VerticalLayoutData(-1, -1, new Margins(0))); add(baseLayout); show(); - + } - - protected void setup(){ + + protected void setup() { final HBoxLayoutContainer horiz = new HBoxLayoutContainer(); final TextField firstArg = new TextField(); firstArg.setItemId(itemIdFirstArg); firstArg.setVisible(false); - - final HTML andText=new HTML("
and
"); + + final HTML andText = new HTML( + "
and
"); andText.setVisible(false); - + final TextField secondArg = new TextField(); - firstArg.setItemId(itemIdSecondArg); + secondArg.setItemId(itemIdSecondArg); secondArg.setVisible(false); - + final IconButton btnAdd = new IconButton(); btnAdd.setItemId(itemIdBtnAdd); btnAdd.setIcon(ExpressionResources.INSTANCE.add()); @@ -129,12 +127,11 @@ public class ConditionWidget extends SimpleContainer { matchLabel.setVisible(true); addCondition(); thisCont.forceLayout(); - } }); btnAdd.setVisible(false); - + final IconButton btnDel = new IconButton(); btnAdd.setItemId(itemIdBtnDel); btnDel.setIcon(ExpressionResources.INSTANCE.delete()); @@ -143,20 +140,20 @@ public class ConditionWidget extends SimpleContainer { public void onClick(ClickEvent event) { Log.debug("Clicked btnDel"); vert.remove(horiz); - if(vert.getWidgetCount()==0){ + if (vert.getWidgetCount() == 0) { setup(); matchLabel.setVisible(false); } else { - if(vert.getWidgetCount()==1){ + if (vert.getWidgetCount() == 1) { matchLabel.setVisible(false); } } thisCont.forceLayout(); - + } }); btnDel.setVisible(false); - + OperationProperties props = GWT.create(OperationProperties.class); ListStore storeOp = new ListStore(props.id()); storeOp.addAll(OperationsStore.getAll(column.getDataTypeName())); @@ -164,10 +161,9 @@ public class ConditionWidget extends SimpleContainer { Log.debug("Store created"); ComboBox comboOp = new ComboBox(storeOp, props.label()); - + Log.debug("Combo created"); - comboOp.addSelectionHandler(new SelectionHandler() { public void onSelection(SelectionEvent event) { @@ -215,7 +211,6 @@ public class ConditionWidget extends SimpleContainer { } - } }); @@ -235,24 +230,23 @@ public class ConditionWidget extends SimpleContainer { vert.add(horiz, new VerticalLayoutData(-1, -1, new Margins(1))); - - } - protected void addCondition() { final HBoxLayoutContainer horiz = new HBoxLayoutContainer(); final TextField firstArg = new TextField(); + firstArg.setItemId(itemIdFirstArg); firstArg.setVisible(false); - - final HTML andText=new HTML("
and
"); + + final HTML andText = new HTML( + "
and
"); andText.setVisible(false); - + final TextField secondArg = new TextField(); + secondArg.setItemId(itemIdSecondArg); secondArg.setVisible(false); - - + final IconButton btnAdd = new IconButton(); btnAdd.setItemId(itemIdBtnAdd); btnAdd.setIcon(ExpressionResources.INSTANCE.add()); @@ -275,11 +269,11 @@ public class ConditionWidget extends SimpleContainer { public void onClick(ClickEvent event) { Log.debug("Clicked btnDel"); vert.remove(horiz); - if(vert.getWidgetCount()==0){ + if (vert.getWidgetCount() == 0) { setup(); matchLabel.setVisible(false); } else { - if(vert.getWidgetCount()==1){ + if (vert.getWidgetCount() == 1) { matchLabel.setVisible(false); } } @@ -338,7 +332,7 @@ public class ConditionWidget extends SimpleContainer { btnDel.setVisible(true); break; default: - break; + break; } thisCont.forceLayout(); @@ -366,45 +360,53 @@ public class ConditionWidget extends SimpleContainer { } public C_Expression getExpression() { - C_Expression exp=null; - List arguments=new ArrayList(); - - OperatorTypeMap mapOp=new OperatorTypeMap(); + C_Expression exp = null; + List arguments = new ArrayList(); + TextField firstArg; + TextField secondArg; + C_Expression expression; + + OperatorTypeMap mapOp = new OperatorTypeMap(); Iterator iteratorVert = vert.iterator(); + HBoxLayoutContainer horiz; while (iteratorVert.hasNext()) { - HBoxLayoutContainer horiz = (HBoxLayoutContainer) iteratorVert + horiz = (HBoxLayoutContainer) iteratorVert .next(); - Log.debug("horiz:"); @SuppressWarnings("unchecked") ComboBox comboOp = (ComboBox) horiz .getItemByItemId(itemIdCombo); Log.debug("combo:" + comboOp.getCurrentValue().toString()); - - TextField firstArg = (TextField) horiz.getItemByItemId(itemIdFirstArg); - TextField secondArg = (TextField) horiz.getItemByItemId(itemIdSecondArg); - C_Expression expression=mapOp.map(column,comboOp.getCurrentValue().getOperatorType(), firstArg.getCurrentValue(), secondArg.getCurrentValue()); + + firstArg = (TextField) horiz.getItemByItemId(itemIdFirstArg); + secondArg = (TextField) horiz.getItemByItemId(itemIdSecondArg); + Log.debug("argLeft:" + firstArg + " argRight:" + secondArg); + + expression = mapOp.map(column, comboOp.getCurrentValue() + .getOperatorType(), + firstArg == null ? null : firstArg.getCurrentValue(), + secondArg == null ? null : secondArg.getCurrentValue()); + Log.debug(expression.toString()); arguments.add(expression); } - if(arguments.size()>0){ - if(arguments.size()==1){ - exp=arguments.get(0); + if (arguments.size() > 0) { + if (arguments.size() == 1) { + exp = arguments.get(0); } else { - Radio radio=(Radio) groupMatch.getValue(); + Radio radio = (Radio) groupMatch.getValue(); if (radio.getName().compareTo("All") == 0) { } else { - exp=mapOp.createC_And(arguments); + exp = mapOp.createC_And(arguments); if (radio.getName().compareTo("Any") == 0) { - exp=mapOp.createC_Or(arguments); + exp = mapOp.createC_Or(arguments); } else { Log.error("No All or Any set!"); } } } - + } - + Log.debug("C_Expression" + exp); return exp; } - - + } diff --git a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ExpressionWidgetEntry.java b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ExpressionWidgetEntry.java index 4c4438c..a9b9943 100644 --- a/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ExpressionWidgetEntry.java +++ b/src/main/java/org/gcube/portlets/user/td/expressionwidget/client/ExpressionWidgetEntry.java @@ -19,7 +19,7 @@ public class ExpressionWidgetEntry implements EntryPoint { public void onModuleLoad() { EventBus eventBus= new SimpleEventBus(); - ColumnExpressionDialog expressionDialog=new ColumnExpressionDialog("0", ColumnTypeCode.ATTRIBUTE, ColumnDataType.Integer, eventBus); + ColumnExpressionDialog expressionDialog=new ColumnExpressionDialog("1", ColumnTypeCode.ATTRIBUTE, ColumnDataType.Integer, eventBus); RootPanel.get().add(expressionDialog); Log.info("Hello!");