Minor Update

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-expression-widget@91781 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-02-17 14:35:42 +00:00
parent 93a6c7c1bb
commit dbcd0f235e
4 changed files with 87 additions and 82 deletions

View File

@ -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);
}

View File

@ -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();
}

View File

@ -58,11 +58,8 @@ public class ConditionWidget extends SimpleContainer {
protected VerticalLayoutContainer vert;
protected ColumnData column;
ConditionWidget(ColumnData column){
this.column=column;
ConditionWidget(ColumnData column) {
this.column = column;
setBorders(true);
setHeight(HEIGHT);
@ -72,51 +69,52 @@ public class ConditionWidget extends SimpleContainer {
Radio radioAll = new Radio();
radioAll.setName("All");
radioAll.setBoxLabel("All conditions");
radioAll.setValue(true);
radioAll.setBoxLabel("All conditions");
radioAll.setValue(true);
Radio radioAny = new Radio();
radioAny.setName("Any");
radioAny.setBoxLabel("Any condition");
Radio radioAny = new Radio();
radioAny.setName("Any");
radioAny.setBoxLabel("Any condition");
HorizontalPanel matchPanel = new HorizontalPanel();
matchPanel.add(radioAll);
matchPanel.add(radioAny);
HorizontalPanel matchPanel = new HorizontalPanel();
matchPanel.add(radioAll);
matchPanel.add(radioAny);
matchLabel=new FieldLabel(matchPanel, "Match");
matchLabel.setVisible(false);
matchLabel = new FieldLabel(matchPanel, "Match");
matchLabel.setVisible(false);
baseLayout.add(matchLabel, new VerticalLayoutData(-1, -1, new Margins(2,1,2,1)));
baseLayout.add(matchLabel, new VerticalLayoutData(-1, -1, new Margins(
2, 1, 2, 1)));
groupMatch = new ToggleGroup();
groupMatch.add(radioAll);
groupMatch.add(radioAny);
groupMatch = new ToggleGroup();
groupMatch.add(radioAll);
groupMatch.add(radioAny);
vert = new VerticalLayoutContainer();
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("<div style='vertical-align:middle; margin-left:2px;margin-right:2px;margin-top:4px;'>and</div>");
final HTML andText = new HTML(
"<div style='vertical-align:middle; margin-left:2px;margin-right:2px;margin-top:4px;'>and</div>");
andText.setVisible(false);
final TextField secondArg = new TextField();
firstArg.setItemId(itemIdSecondArg);
secondArg.setItemId(itemIdSecondArg);
secondArg.setVisible(false);
final IconButton btnAdd = new IconButton();
@ -130,7 +128,6 @@ public class ConditionWidget extends SimpleContainer {
addCondition();
thisCont.forceLayout();
}
});
btnAdd.setVisible(false);
@ -143,11 +140,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);
}
}
@ -167,7 +164,6 @@ public class ConditionWidget extends SimpleContainer {
Log.debug("Combo created");
comboOp.addSelectionHandler(new SelectionHandler<Operation>() {
public void onSelection(SelectionEvent<Operation> 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("<div style='vertical-align:middle; margin-left:2px;margin-right:2px;margin-top:4px;'>and</div>");
final HTML andText = new HTML(
"<div style='vertical-align:middle; margin-left:2px;margin-right:2px;margin-top:4px;'>and</div>");
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);
}
}
@ -366,35 +360,44 @@ public class ConditionWidget extends SimpleContainer {
}
public C_Expression getExpression() {
C_Expression exp=null;
List<C_Expression> arguments=new ArrayList<C_Expression>();
C_Expression exp = null;
List<C_Expression> arguments = new ArrayList<C_Expression>();
TextField firstArg;
TextField secondArg;
C_Expression expression;
OperatorTypeMap mapOp=new OperatorTypeMap();
OperatorTypeMap mapOp = new OperatorTypeMap();
Iterator<Widget> iteratorVert = vert.iterator();
HBoxLayoutContainer horiz;
while (iteratorVert.hasNext()) {
HBoxLayoutContainer horiz = (HBoxLayoutContainer) iteratorVert
horiz = (HBoxLayoutContainer) iteratorVert
.next();
Log.debug("horiz:");
@SuppressWarnings("unchecked")
ComboBox<Operation> comboOp = (ComboBox<Operation>) 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!");
}
@ -402,9 +405,8 @@ public class ConditionWidget extends SimpleContainer {
}
}
Log.debug("C_Expression" + exp);
return exp;
}
}

View File

@ -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!");