customFormPopUp.show( sfc.getId(),
sfc.getValue() );
return;
}
final FormStylePopup form = new FormStylePopup( GuidedRuleEditorImages508.INSTANCE.Wizard(),
Constants.INSTANCE.FieldValue() );
Button lit = new Button( Constants.INSTANCE.LiteralValue() );
lit.addClickHandler( new ClickHandler() {
public void onClick( ClickEvent event ) {
con.setConstraintValueType( isDropDownDataEnum && dropDownData != null ? SingleFieldConstraint.TYPE_ENUM : SingleFieldConstraint.TYPE_LITERAL );
doTypeChosen( form );
}
} );
boolean showLiteralSelector = true;
boolean showFormulaSelector = !OperatorsOracle.operatorRequiresList( con.getOperator() );
boolean showVariableSelector = !OperatorsOracle.operatorRequiresList( con.getOperator() );
boolean showExpressionSelector = !OperatorsOracle.operatorRequiresList( con.getOperator() );
if ( con instanceof SingleFieldConstraint ) {
SingleFieldConstraint sfc = (SingleFieldConstraint) con;
String fieldName = sfc.getFieldName();
if ( fieldName.equals( DataType.TYPE_THIS ) ) {
showLiteralSelector = CEPOracle.isCEPOperator( sfc.getOperator() );
showFormulaSelector = showFormulaSelector && showLiteralSelector;
}
} else if ( con instanceof ConnectiveConstraint ) {
ConnectiveConstraint cc = (ConnectiveConstraint) con;
String fieldName = cc.getFieldName();
if ( fieldName.equals( DataType.TYPE_THIS ) ) {
showLiteralSelector = CEPOracle.isCEPOperator( cc.getOperator() );
showFormulaSelector = showFormulaSelector && showLiteralSelector;
}
}
//Literal value selector
if ( showLiteralSelector ) {
form.addAttribute( Constants.INSTANCE.LiteralValue() + ":",
widgets( lit,
new InfoPopup( Constants.INSTANCE.LiteralValue(),
Constants.INSTANCE.LiteralValTip() ) ) );
}
//Template key selector
if ( modeller.isTemplate() ) {
String templateKeyLabel = Constants.INSTANCE.TemplateKey();
Button templateKeyButton = new Button( templateKeyLabel );
templateKeyButton.addClickHandler( new ClickHandler() {
public void onClick( ClickEvent event ) {
con.setConstraintValueType( BaseSingleFieldConstraint.TYPE_TEMPLATE );
doTypeChosen( form );
}
} );
form.addAttribute( templateKeyLabel + ":",
widgets( templateKeyButton,
new InfoPopup( templateKeyLabel,
Constants.INSTANCE.LiteralValTip() ) ) );
}
//Divider, if we have any advanced options
if ( showVariableSelector || showFormulaSelector || showExpressionSelector ) {
form.addRow( new HTML( "<hr/>" ) );
form.addRow( new SmallLabel( Constants.INSTANCE.AdvancedOptions() ) );
}
//Show variables selector, if there are any variables in scope
if ( showVariableSelector ) {
List<String> bindingsInScope = this.model.getBoundVariablesInScope( this.constraint );
if ( bindingsInScope.size() > 0
|| DataType.TYPE_COLLECTION.equals( this.fieldType ) ) {
List<String> applicableBindingsInScope = getApplicableBindingsInScope( bindingsInScope );
if ( applicableBindingsInScope.size() > 0 ) {
Button variable = new Button( Constants.INSTANCE.BoundVariable() );
variable.addClickHandler( new ClickHandler() {
public void onClick( ClickEvent event ) {
con.setConstraintValueType( SingleFieldConstraint.TYPE_VARIABLE );
doTypeChosen( form );
}
} );
form.addAttribute( Constants.INSTANCE.AVariable(),
widgets( variable,
new InfoPopup( Constants.INSTANCE.ABoundVariable(),
Constants.INSTANCE.BoundVariableTip() ) ) );
}
}
}
//Formula selector
if ( showFormulaSelector ) {
Button formula = new Button( Constants.INSTANCE.NewFormula() );
formula.addClickHandler( new ClickHandler() {
public void onClick( ClickEvent event ) {
con.setConstraintValueType( SingleFieldConstraint.TYPE_RET_VALUE );
doTypeChosen( form );
}
} );
form.addAttribute( Constants.INSTANCE.AFormula() + ":",
widgets( formula,
new InfoPopup( Constants.INSTANCE.AFormula(),
Constants.INSTANCE.FormulaExpressionTip() ) ) );
}
//Expression selector
if ( showExpressionSelector ) {
Button expression = new Button( Constants.INSTANCE.ExpressionEditor() );
expression.addClickHandler( new ClickHandler() {
public void onClick( ClickEvent event ) {
con.setConstraintValueType( SingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE );
doTypeChosen( form );
}
} );
form.addAttribute( Constants.INSTANCE.ExpressionEditor() + ":",
widgets( expression,
new InfoPopup( Constants.INSTANCE.ExpressionEditor(),
Constants.INSTANCE.ExpressionEditor() ) ) );
}
form.show();
}