[jboss-svn-commits] JBL Code SVN: r31268 - in labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban: drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 27 16:23:31 EST 2010
Author: baunax
Date: 2010-01-27 16:23:31 -0500 (Wed, 27 Jan 2010)
New Revision: 31268
Modified:
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionFormLine.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionPart.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java
Log:
remove support
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionFormLine.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionFormLine.java 2010-01-27 19:51:57 UTC (rev 31267)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionFormLine.java 2010-01-27 21:23:31 UTC (rev 31268)
@@ -21,7 +21,11 @@
public void removeLast() {
if (!parts.isEmpty()) {
- parts.removeLast();
+ ExpressionPart last = parts.removeLast();
+ if (last.getPrevious() != null) {
+ last.getPrevious().setNext(null);
+ last.setPrevious(null);
+ }
}
}
@@ -33,4 +37,8 @@
public String getType() {
return parts.getLast().getType();
}
+
+ public boolean isEmpty() {
+ return parts.isEmpty();
+ }
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionPart.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionPart.java 2010-01-27 19:51:57 UTC (rev 31267)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/brl/ExpressionPart.java 2010-01-27 21:23:31 UTC (rev 31268)
@@ -18,7 +18,9 @@
public void setPrevious(ExpressionPart prev) {
this.prev = prev;
- prev.next = this;
+ if (prev != null) {
+ prev.next = this;
+ }
}
public ExpressionPart getNext() {
@@ -27,7 +29,9 @@
public void setNext(ExpressionPart next) {
this.next = next;
- next.prev = this;
+ if (next != null) {
+ next.prev = this;
+ }
}
@Override
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java 2010-01-27 19:51:57 UTC (rev 31267)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java 2010-01-27 21:23:31 UTC (rev 31268)
@@ -1,6 +1,5 @@
package org.drools.guvnor.client.modeldriven.ui;
-import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
@@ -24,50 +23,26 @@
import com.gwtext.client.widgets.form.Label;
public class ExpressionBuilder extends DirtyableComposite {
-
+
private static final String FIElD_VALUE_PREFIX = "fl";
private static final String VARIABLE_VALUE_PREFIX = "va";
private static final String GLOBAL_COLLECTION_VALUE_PREFIX = "gc";
private static final String GLOBAL_VARIABLE_VALUE_PREFIX = "gv";
private static final String METHOD_VALUE_PREFIX = "mt";
-
+
private Constants constants = ((Constants) GWT.create(Constants.class));
private FlowPanel panel = new FlowPanel();
private RuleModeller modeller;
private ExpressionFormLine expression;
-
- public ExpressionBuilder(RuleModeller modeller, ExpressionFormLine expression) {
+
+ public ExpressionBuilder(RuleModeller modeller,
+ ExpressionFormLine expression) {
super();
this.expression = expression;
this.modeller = modeller;
if (expression == null || expression.getText().isEmpty()) {
- final ListBox startPoint = new ListBox();
- panel.add(startPoint);
-
- startPoint.addItem(constants.ChooseDotDotDot(), "");
- for (String gc : getCompletionEngine().getGlobalCollections()) {
- startPoint.addItem(gc, GLOBAL_COLLECTION_VALUE_PREFIX + "." + gc);
- }
-
- for (String gv : getCompletionEngine().getGlobalVariables()) {
- startPoint.addItem(gv, GLOBAL_VARIABLE_VALUE_PREFIX + "." + gv);
- }
-
- for (String v : getRuleModel().getBoundFacts()) {
- startPoint.addItem(v, VARIABLE_VALUE_PREFIX + "." + v);
- }
-
- startPoint.setVisibleItemCount(1);
- startPoint.addChangeListener(new ChangeListener() {
- public void onChange(Widget sender) {
- int index = startPoint.getSelectedIndex();
- if (index > 0) {
- ExpressionBuilder.this.makeDirty();
- startPointChange(startPoint.getValue(index));
- }
- }
- });
+ panel.add(createStartPointWidget());
} else {
panel.add(new Label(expression.getText()));
panel.add(getWidgetForCurrentType());
@@ -75,32 +50,70 @@
initWidget(panel);
}
+ private Widget createStartPointWidget() {
+ ListBox startPoint = new ListBox();
+ panel.add(startPoint);
+
+ startPoint.addItem(constants.ChooseDotDotDot(), "");
+ for (String gc : getCompletionEngine().getGlobalCollections()) {
+ startPoint.addItem(gc, GLOBAL_COLLECTION_VALUE_PREFIX + "." + gc);
+ }
+
+ for (String gv : getCompletionEngine().getGlobalVariables()) {
+ startPoint.addItem(gv, GLOBAL_VARIABLE_VALUE_PREFIX + "." + gv);
+ }
+
+ for (String v : getRuleModel().getBoundFacts()) {
+ startPoint.addItem(v, VARIABLE_VALUE_PREFIX + "." + v);
+ }
+
+ startPoint.setVisibleItemCount(1);
+ startPoint.addChangeListener(new ChangeListener() {
+ public void onChange(Widget sender) {
+ ListBox lb = (ListBox) sender;
+ int index = lb.getSelectedIndex();
+ if (index > 0) {
+ ExpressionBuilder.this.makeDirty();
+ startPointChange(lb.getValue(index));
+ }
+ }
+ });
+ return startPoint;
+ }
+
private void startPointChange(String value) {
panel.clear();
Widget w;
if (value.startsWith(VARIABLE_VALUE_PREFIX)) {
- FactPattern fact = getRuleModel().getBoundFact(value.substring(VARIABLE_VALUE_PREFIX.length() + 1));
+ FactPattern fact = getRuleModel().getBoundFact(
+ value.substring(VARIABLE_VALUE_PREFIX.length() + 1));
ExpressionVariable variable = new ExpressionVariable(fact);
expression.appendPart(variable);
w = getWidgetForCurrentType();
-
- panel.add(new Label(expression.getText()));
+
+ if (!expression.isEmpty()) {
+ panel.add(new Label(expression.getText()));
+ }
if (w != null) {
panel.add(w);
}
}
-
-
-// panel.add(getWidgetFor(startPoint.getValue(index)));
-// ExpressionBuilder.this.expression.appendText(v);
+
+ // panel.add(getWidgetFor(startPoint.getValue(index)));
+ // ExpressionBuilder.this.expression.appendText(v);
}
-
+
private Widget getWidgetForCurrentType() {
- String factName = getCompletionEngine().getFactNameFromType(getCurrentType());
+ if (expression.isEmpty()) {
+ return createStartPointWidget();
+ }
+ String factName = getCompletionEngine().getFactNameFromType(
+ getCurrentType());
if (factName != null) {
ListBox lb = new ListBox();
lb.setVisibleItemCount(1);
lb.addItem(constants.ChooseDotDotDot(), "");
+ lb.addItem("<==" + constants.DeleteItem(), "_delete_");
for (Map.Entry<String, String> entry : getCompletionsForCurrentType()
.entrySet()) {
lb.addItem(entry.getKey(), entry.getValue());
@@ -124,44 +137,55 @@
}
return null;
}
-
+
private boolean isCollection() {
String previousType = expression.getPreviousType();
- String factName = getCompletionEngine().getFactNameFromType(previousType);
+ String factName = getCompletionEngine().getFactNameFromType(
+ previousType);
return true;
}
private void onChangeSelection(String value) {
- int dotPos = value.indexOf('.');
- String prefix = value.substring(0, dotPos);
- String option = value.substring(dotPos + 1);
- Widget w = null;
- String factName = getCompletionEngine().getFactNameFromType(getCurrentType());
-
- if (FIElD_VALUE_PREFIX.equals(prefix)) {
- String fieldClassName = getCompletionEngine().getFieldClassName(factName, option);
- expression.appendPart(new ExpressionField(option, fieldClassName));
- } else if (METHOD_VALUE_PREFIX.equals(prefix)) {
- String methodType = getCompletionEngine().getMethodClassType(factName, option);
- expression.appendPart(new ExpressionMethod(
- option.substring(0, option.indexOf('(')),
- methodType));
- }
- w = getWidgetForCurrentType();
-
-
+ if ("_delete_".equals(value)) {
+ expression.removeLast();
+ } else {
+ int dotPos = value.indexOf('.');
+ String prefix = value.substring(0, dotPos);
+ String option = value.substring(dotPos + 1);
+
+ String factName = getCompletionEngine().getFactNameFromType(
+ getCurrentType());
+
+ if (FIElD_VALUE_PREFIX.equals(prefix)) {
+ String fieldClassName = getCompletionEngine()
+ .getFieldClassName(factName, option);
+ expression.appendPart(new ExpressionField(option,
+ fieldClassName));
+ } else if (METHOD_VALUE_PREFIX.equals(prefix)) {
+ String methodType = getCompletionEngine().getMethodClassType(
+ factName, option);
+ expression.appendPart(new ExpressionMethod(option.substring(0,
+ option.indexOf('(')), methodType));
+ }
+ }
+ Widget w = getWidgetForCurrentType();
+
panel.clear();
- panel.add(new Label(expression.getText()));
+ if (!expression.isEmpty()) {
+ panel.add(new Label(expression.getText()));
+ }
if (w != null) {
panel.add(w);
}
}
private Map<String, String> getCompletionsForCurrentType() {
- String factName = getCompletionEngine().getFactNameFromType(getCurrentType());
- List<String> methodNames = getCompletionEngine().getMethodFullNames(factName);
+ String factName = getCompletionEngine().getFactNameFromType(
+ getCurrentType());
+ List<String> methodNames = getCompletionEngine().getMethodFullNames(
+ factName);
Map<String, String> completions = new LinkedHashMap<String, String>();
-
+
for (String field : getCompletionEngine().getFieldCompletions(factName)) {
boolean changed = false;
for (Iterator<String> i = methodNames.iterator(); i.hasNext();) {
@@ -180,59 +204,46 @@
}
/*
- protected Widget getWidgetFor(String value) {
- if (value == null || value.isEmpty()) {
- throw new IllegalArgumentException("value is empty");
- }
- if (value.startsWith(VARIABLE_VALUE_PREFIX)) {
- FactPattern fact = getRuleModel().getBoundFact(value.substring(VARIABLE_VALUE_PREFIX.length() + 1));
-
- ListBox lb = new ListBox();
- lb.setVisibleItemCount(1);
- lb.addItem(constants.ChooseDotDotDot(), "");
-
- List<String> methodNames = getCompletionEngine().getMethodFullNames(fact.factType);
-
- for (String field : getCompletionEngine().getFieldCompletions(fact.factType)) {
- boolean changed = false;
- for (Iterator<String> i = methodNames.iterator(); i.hasNext();) {
- String method = i.next();
- if (method.startsWith(field)) {
- lb.addItem(method, METHOD_VALUE_PREFIX + "." + method);
- i.remove();
- changed = true;
- }
- }
- if (!changed) {
- lb.addItem(field, FIElD_VALUE_PREFIX + "." + field);
- }
- }
-
- lb.addChangeListener(new ChangeListener() {
-
- public void onChange(Widget sender) {
- ExpressionBuilder.this.makeDirty();
- ListBox box = (ListBox) sender;
- if (box.getSelectedIndex() > 0);
- panel.remove(panel.getWidgetCount() - 1);
- String v = box.getValue(box.getSelectedIndex());
- panel.add(new Label(v.substring(v.indexOf('.') + 1)));
- panel.add(getWidgetFor(v));
- }
- });
-
- return lb;
- } else if (value.startsWith(GLOBAL_COLLECTION_VALUE_PREFIX)) {
- return new Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented");
- } else if (value.startsWith(GLOBAL_VARIABLE_VALUE_PREFIX)) {
- return new Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented");
- } else if (value.startsWith(METHOD_VALUE_PREFIX)) {
- return new Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented");
- } else if (value.startsWith(FIElD_VALUE_PREFIX)) {
- return new Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented");
- }
- throw new IllegalArgumentException("value has invalidad prefix: '" + value + "'");
- }*/
+ * protected Widget getWidgetFor(String value) { if (value == null ||
+ * value.isEmpty()) { throw new IllegalArgumentException("value is empty");
+ * } if (value.startsWith(VARIABLE_VALUE_PREFIX)) { FactPattern fact =
+ * getRuleModel
+ * ().getBoundFact(value.substring(VARIABLE_VALUE_PREFIX.length() + 1));
+ *
+ * ListBox lb = new ListBox(); lb.setVisibleItemCount(1);
+ * lb.addItem(constants.ChooseDotDotDot(), "");
+ *
+ * List<String> methodNames =
+ * getCompletionEngine().getMethodFullNames(fact.factType);
+ *
+ * for (String field :
+ * getCompletionEngine().getFieldCompletions(fact.factType)) { boolean
+ * changed = false; for (Iterator<String> i = methodNames.iterator();
+ * i.hasNext();) { String method = i.next(); if (method.startsWith(field)) {
+ * lb.addItem(method, METHOD_VALUE_PREFIX + "." + method); i.remove();
+ * changed = true; } } if (!changed) { lb.addItem(field, FIElD_VALUE_PREFIX
+ * + "." + field); } }
+ *
+ * lb.addChangeListener(new ChangeListener() {
+ *
+ * public void onChange(Widget sender) { ExpressionBuilder.this.makeDirty();
+ * ListBox box = (ListBox) sender; if (box.getSelectedIndex() > 0);
+ * panel.remove(panel.getWidgetCount() - 1); String v =
+ * box.getValue(box.getSelectedIndex()); panel.add(new
+ * Label(v.substring(v.indexOf('.') + 1))); panel.add(getWidgetFor(v)); }
+ * });
+ *
+ * return lb; } else if (value.startsWith(GLOBAL_COLLECTION_VALUE_PREFIX)) {
+ * return new Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented"); }
+ * else if (value.startsWith(GLOBAL_VARIABLE_VALUE_PREFIX)) { return new
+ * Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented"); } else if
+ * (value.startsWith(METHOD_VALUE_PREFIX)) { return new
+ * Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented"); } else if
+ * (value.startsWith(FIElD_VALUE_PREFIX)) { return new
+ * Label("GLOBAL_COLLECTION_VALUE_PREFIX not implemented"); } throw new
+ * IllegalArgumentException("value has invalidad prefix: '" + value + "'");
+ * }
+ */
private RuleModel getRuleModel() {
return modeller.getModel();
More information about the jboss-svn-commits
mailing list