[jboss-svn-commits] JBL Code SVN: r31257 - in labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src: main/java/org/drools/guvnor/client/decisiontable and 10 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 27 11:33:23 EST 2010
Author: baunax
Date: 2010-01-27 11:33:21 -0500 (Wed, 27 Jan 2010)
New Revision: 31257
Added:
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/FromAccumulateCompositeFactPatternWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java
Modified:
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableFlexTable.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableHorizontalPane.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionInsertColumn.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionSetColumn.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/HumanReadable.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/DataInputWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/FieldDataConstraintEditor.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFactWidget.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFieldConstraintEditor.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleAsset.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/FactTypeBrowser.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java
Log:
merge with https://svn.jboss.org/repos/labs/labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableFlexTable.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableFlexTable.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableFlexTable.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -15,10 +15,8 @@
* limitations under the License.
*/
-
-
import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.List;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Widget;
@@ -26,20 +24,14 @@
public class DirtyableFlexTable extends FlexTable implements DirtyableContainer {
private int length;
- private ArrayList list = new ArrayList();
+ private List<Pair> list = new ArrayList<Pair>();
public boolean hasDirty() {
-
- Pair coordinates;
- Widget element;
-
- for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
- coordinates = (Pair) iter.next();
- element = (Widget) getWidget( coordinates.getRow(), coordinates.getColumn() );
- if (element instanceof DirtyableWidget)
- if ( ((DirtyableWidget) element).isDirty() ) return true;
- if (element instanceof DirtyableContainer)
- if ( ((DirtyableContainer) element).hasDirty()) return true;
+ for (Pair coord : list) {
+ Widget element = getWidget( coord.getRow(), coord.getColumn() );
+ if ((element instanceof DirtyableWidget && ((DirtyableWidget) element).isDirty()) ||
+ (element instanceof DirtyableContainer && ((DirtyableContainer) element).hasDirty()))
+ return true;
}
return false;
}
@@ -47,9 +39,9 @@
public void setWidget(int row, int column , Widget arg2) {
super.setWidget( row, column, arg2 );
- if (( arg2 instanceof IDirtyable )) {
- list.add( length++, new Pair(row ,column) );
- }
+ if (arg2 instanceof IDirtyable) {
+ list.add(length++, new Pair(row, column));
+ }
}
}
@@ -70,7 +62,4 @@
public int getRow() {
return row;
}
-
-
-
}
\ No newline at end of file
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableHorizontalPane.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableHorizontalPane.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/common/DirtyableHorizontalPane.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -25,17 +25,16 @@
*/
public class DirtyableHorizontalPane extends HorizontalPanel implements DirtyableContainer {
- public boolean hasDirty() {
-
+
+ public boolean hasDirty() {
int widNumber = getWidgetCount();
Widget element;
for ( int i = 0; i < widNumber; i++ ) {
element = (Widget) getWidget(i);
- if (element instanceof DirtyableWidget)
- if ( ((DirtyableWidget) element).isDirty() ) return true;
- if (element instanceof DirtyableContainer)
- if ( ((DirtyableContainer) element).hasDirty()) return true;
+ if ((element instanceof DirtyableWidget && ((DirtyableWidget) element).isDirty()) ||
+ (element instanceof DirtyableContainer && ((DirtyableContainer) element).hasDirty()))
+ return true;
}
return false;
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionInsertColumn.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionInsertColumn.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionInsertColumn.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -261,8 +261,8 @@
final FormStylePopup pop = new FormStylePopup();
pop.setTitle( constants.NewFactSelectTheType() );
final ListBox types = new ListBox();
- for ( int i = 0; i < sce.factTypes.length; i++ ) {
- types.addItem( sce.factTypes[i] );
+ for ( int i = 0; i < sce.getFactTypes().length; i++ ) {
+ types.addItem( sce.getFactTypes()[i] );
}
pop.addAttribute( constants.FactType(),
types );
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionSetColumn.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionSetColumn.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/ActionSetColumn.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -226,8 +226,8 @@
}
private String getFactType() {
- if ( sce.globalTypes.containsKey( editingCol.boundName ) ) {
- return sce.globalTypes.get( editingCol.boundName );
+ if ( sce.isGlobalVariable( editingCol.boundName ) ) {
+ return sce.getGlobalVariable( editingCol.boundName );
}
return getFactType( this.editingCol.boundName );
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/decisiontable/GuidedDTColumnConfig.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -436,8 +436,8 @@
final FormStylePopup pop = new FormStylePopup();
pop.setTitle( constants.CreateANewFactPattern() );
final ListBox types = new ListBox();
- for ( int i = 0; i < sce.factTypes.length; i++ ) {
- types.addItem( sce.factTypes[i] );
+ for ( int i = 0; i < sce.getFactTypes().length; i++ ) {
+ types.addItem( sce.getFactTypes()[i] );
}
pop.addAttribute( constants.FactType(),
types );
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -1406,6 +1406,8 @@
String ChooseOtherConditionType();
String FreeFormDrl();
+
+ String ExpressionEditor();
String ConditionTypeButton();
@@ -1430,6 +1432,8 @@
String AdvancedOptionsColon();
+ String AddFromConditionColon();
+
String AddAnItemToACollection();
String InsertANewFact();
@@ -1845,6 +1849,8 @@
String clickToAddPatterns();
+ String clickToAddPattern();
+
String ChangeFieldValuesOf0();
String Retract0();
@@ -1871,6 +1877,8 @@
String ThereIsAAn0();
+ String All0with();
+
String AddFirstNewField();
String ImportedDRLContainsNoNameForThePackage();
@@ -1932,6 +1940,10 @@
String IncomingChanges();
String From();
+
+ String FromAccumulate();
+
+ String FromCollect();
String URLDocumentionDescription();
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties 2010-01-27 16:33:21 UTC (rev 31257)
@@ -617,6 +617,7 @@
AddSubFieldConstraint=Add sub-field constraint
MultipleConstraintsTip1=You can specify constraints that span multiple fields (and more). The results of all these constraints can be combined with a 'and' or an 'or' logically. You can also have other multiple field constraints nested inside these restrictions.
AdvancedOptionsColon=Advanced options:
+AddFromConditionColon=Add From condition:
AddANewFormulaStyleExpression=Add a new formula style expression
VariableName=Variable name
Add=Add
@@ -671,6 +672,7 @@
Fact1=Fact
ChooseOtherConditionType=Choose other condition type...
FreeFormDrl=Free form drl
+ExpressionEditor=Expression editor
ConditionTypeButton=Condition type
ChooseDotDotDot=Choose...
DSLSentence=DSL sentence
@@ -887,6 +889,7 @@
PleaseEnterANameThatIsNotAlreadyUsedByAnotherPattern=Please enter a name that is not already used by another pattern.
ThereIsAAn0With=There is a/an {0} with:
ThereIsAAn0=There is a/an {0}
+All0with=All {0} with:
AddFirstNewField=Add first new field.
PleaseEnterANameThatIsNotAlreadyUsedByAnotherPattern=Please enter a name that is not already used by another pattern.
ImportedDRLContainsNoNameForThePackage=Imported DRL contains no name for the package. Please name the package.
@@ -919,6 +922,8 @@
RecentlyEdited=Recently Edited
IncomingChanges=Incoming changes
From=From
+FromAccumulate=From Accumulate
+FromCollect=From Collect
URLDocumentionDescription=Use this url to download package documentation PDF.
URLForDocumention=URL for package documentation:
CanNotMoveColumnsFromOneTypeGroupToAnother=Can not move columns from one type group to another
@@ -955,4 +960,5 @@
CleaningLogMessages=Cleaning log messages...
Clean=Clean
MoveUp=Move up
-MoveDown=Move down
\ No newline at end of file
+MoveDown=Move down
+clickToAddPattern=click to add pattern...
\ No newline at end of file
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties 2010-01-27 16:33:21 UTC (rev 31257)
@@ -675,6 +675,7 @@
Fact1=Hecho
ChooseOtherConditionType=Seleccionar otro tipo de condici\u00F3n...
FreeFormDrl=Free form drl
+ExpressionEditor=Editor de expresiones
ConditionTypeButton=Tipo de condici\u00F3n
ChooseDotDotDot=Seleccione...
DSLSentence=Sentencia DSL
@@ -870,4 +871,24 @@
SavedOK=Guardado exitosamente
Actions=Acciones...
ChangeSet=Change Set:
-URLToChangeSetForDeploymentAgents=URL que utilizar\u00E1 el agente de distribuci\u00F3n para un change set espec\u00EDfico.
\ No newline at end of file
+URLToChangeSetForDeploymentAgents=URL que utilizar\u00E1 el agente de distribuci\u00F3n para un change set espec\u00EDfico.
+AddFromConditionColon=Agregar condici\u00F3n FROM
+AddADiscussionComment=Agregar un comentario...
+BuiltInSelector=Selector Built-in
+FromAccumulate=From Accumulate
+BuildPackageUsingCustomSelectorSelector=Seleccionador Com\u00FAn
+BuildWholePackageTip=Esto construir\u00E1 el paquete entero
+FrozenAreas=\u00C1reas congeladas
+optionsRuleModeller=(opciones)
+NoteNewLinkedAsset=NOTA:
+Retract0=Retractar {0}
+TypeRestored=Restaurado
+MoveUp=Mover arriba
+FreezeAreasForEditing=Congelar \u00E1reas para la edici\u00F3n:
+URLDocumentionDescription=Utilice esta url para descargar el paquete de documentaci\u00F3n PDF.
+Severity=Severidad
+AreYouSureYouWantToRemoveThisBlockOfData=Est\u00E1 seguro que desea remover este bloque de datos?
+CreateInGlobalArea=Crear en el \u00E1rea global
+TypeArchived=Archivado
+TypeDeleted=Eliminado
+clickToAddPattern=click para agregar patr\u00F3n...
\ No newline at end of file
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/HumanReadable.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/HumanReadable.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/HumanReadable.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -23,6 +23,7 @@
import java.util.Map;
import com.google.gwt.core.client.GWT;
+import org.drools.guvnor.client.modeldriven.brl.FromCompositeFactPattern;
/**
* This contains some simple mappings between operators, conditional elements and the human readable
@@ -39,6 +40,7 @@
public static Map ceDisplayMap = new HashMap();
public static Map actionDisplayMap = new HashMap();
public static final String[] CONDITIONAL_ELEMENTS = new String[] {"not", "exists", "or"};
+ public static final String[] FROM_CONDITIONAL_ELEMENTS = new String[] {"from","from accumulate","from collect"};
private static Constants constants;
@@ -79,6 +81,10 @@
ceDisplayMap.put( "exists", constants.ThereExists());
ceDisplayMap.put( "or", constants.AnyOf1());
+ ceDisplayMap.put( "from", constants.From());
+ ceDisplayMap.put( "from accumulate", constants.FromAccumulate());
+ ceDisplayMap.put( "from collect", constants.FromCollect());
+
actionDisplayMap.put( "assert", constants.Insert());
actionDisplayMap.put( "assertLogical", constants.LogicallyInsert());
actionDisplayMap.put( "retract", constants.Retract());
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionCallMethodWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -72,7 +72,7 @@
i++;
}
- this.variableClass = (String) completions.globalTypes.get( set.variable );
+ this.variableClass = (String) completions.getGlobalVariable( set.variable );
} else {
FactPattern pattern = mod.getModel().getBoundFact( set.variable );
if ( pattern != null ) {
@@ -216,7 +216,7 @@
String type = "";
if ( this.completions.isGlobalVariable( this.model.variable ) ) {
- type = (String) this.completions.globalTypes.get( this.model.variable );
+ type = (String) this.completions.getGlobalVariable( this.model.variable );
} else {
if ( this.modeller.getModel().getBoundFact( this.model.variable ) != null ) {
type = this.modeller.getModel().getBoundFact( this.model.variable ).factType;
@@ -273,9 +273,8 @@
private Widget actionSelector(final ActionFieldFunction val) {
final ListBox box = new ListBox();
- final Map modMap = this.completions.modifiers;
final String fieldType = val.type;
- final String[] modifiers = (String[]) modMap.get( fieldType );
+ final String[] modifiers = this.completions.getModifiers( fieldType );
if ( modifiers != null ) {
for ( int i = 0; i < modifiers.length; i++ ) {
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionSetFieldWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -67,7 +67,7 @@
layout.setStyleName( "model-builderInner-Background" );
if (completions.isGlobalVariable( set.variable )) {
this.fieldCompletions = completions.getFieldCompletionsForGlobalVariable( set.variable );
- this.variableClass = (String) completions.globalTypes.get( set.variable );
+ this.variableClass = (String) completions.getGlobalVariable( set.variable );
} else {
FactPattern pattern = mod.getModel().getBoundFact( set.variable );
if (pattern !=null){
@@ -204,7 +204,7 @@
String type = "";
if (this.completions.isGlobalVariable(this.model.variable)) {
- type = (String) this.completions.globalTypes.get(this.model.variable);
+ type = (String) this.completions.getGlobalVariable(this.model.variable);
} else {
type = this.modeller.getModel().getBoundFact(this.model.variable).factType;
/*
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/CompositeFactPatternWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -41,16 +41,15 @@
*/
public class CompositeFactPatternWidget extends DirtyableComposite {
- private final SuggestionCompletionEngine completions;
- private CompositeFactPattern pattern;
- private DirtyableFlexTable layout;
- private RuleModeller modeller;
- private Constants constants = ((Constants) GWT.create(Constants.class));
+ protected final SuggestionCompletionEngine completions;
+ protected CompositeFactPattern pattern;
+ protected DirtyableFlexTable layout;
+ protected RuleModeller modeller;
+ protected Constants constants = ((Constants) GWT.create(Constants.class));
public CompositeFactPatternWidget(RuleModeller modeller,
- CompositeFactPattern pattern,
- SuggestionCompletionEngine completions) {
- this.completions = completions;
+ CompositeFactPattern pattern) {
+ this.completions = modeller.getSuggestionCompletions();
this.pattern = pattern;
this.modeller = modeller;
@@ -61,7 +60,7 @@
initWidget( layout );
}
- private void doLayout() {
+ protected void doLayout() {
this.layout.setWidget( 0,
0,
getCompositeLabel() );
@@ -77,7 +76,6 @@
for ( int i = 0; i < facts.length; i++ ) {
vert.add( new FactPatternWidget( modeller,
facts[i],
- this.completions,
false ) );
}
this.layout.setWidget( 1,
@@ -86,7 +84,7 @@
}
}
- private Widget getCompositeLabel() {
+ protected Widget getCompositeLabel() {
ClickListener click = new ClickListener() {
public void onClick(Widget w) {
@@ -135,6 +133,4 @@
return layout.hasDirty();
}
-
-
}
\ No newline at end of file
Copied: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java (from rev 31255, labs/jbossrules/branches/guvnor_expressionEditor2_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 (rev 0)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ExpressionBuilder.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -0,0 +1,248 @@
+package org.drools.guvnor.client.modeldriven.ui;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.guvnor.client.common.DirtyableComposite;
+import org.drools.guvnor.client.messages.Constants;
+import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.guvnor.client.modeldriven.brl.ExpressionField;
+import org.drools.guvnor.client.modeldriven.brl.ExpressionFormLine;
+import org.drools.guvnor.client.modeldriven.brl.ExpressionMethod;
+import org.drools.guvnor.client.modeldriven.brl.ExpressionVariable;
+import org.drools.guvnor.client.modeldriven.brl.FactPattern;
+import org.drools.guvnor.client.modeldriven.brl.RuleModel;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.Widget;
+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) {
+ 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));
+ }
+ }
+ });
+ } else {
+ panel.add(new Label(expression.getText()));
+ panel.add(getWidgetForCurrentType());
+ }
+ initWidget(panel);
+ }
+
+ 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));
+ ExpressionVariable variable = new ExpressionVariable(fact);
+ expression.appendPart(variable);
+ w = getWidgetForCurrentType();
+
+ panel.add(new Label(expression.getText()));
+ if (w != null) {
+ panel.add(w);
+ }
+ }
+
+
+// panel.add(getWidgetFor(startPoint.getValue(index)));
+// ExpressionBuilder.this.expression.appendText(v);
+ }
+
+ private Widget getWidgetForCurrentType() {
+ String factName = getCompletionEngine().getFactNameFromType(getCurrentType());
+ if (factName != null) {
+ ListBox lb = new ListBox();
+ lb.setVisibleItemCount(1);
+ lb.addItem(constants.ChooseDotDotDot(), "");
+ for (Map.Entry<String, String> entry : getCompletionsForCurrentType()
+ .entrySet()) {
+ lb.addItem(entry.getKey(), entry.getValue());
+ }
+
+ lb.addChangeListener(new ChangeListener() {
+ public void onChange(Widget sender) {
+ ListBox box = (ListBox) sender;
+ panel.remove(box);
+ if (box.getSelectedIndex() > 0) {
+ onChangeSelection(box.getValue(box.getSelectedIndex()));
+ }
+ }
+ });
+ return lb;
+ } else if (isCollection()) {
+ ListBox lb = new ListBox();
+ lb.setVisibleItemCount(1);
+ lb.addItem(constants.ChooseDotDotDot(), "");
+ return lb;
+ }
+ return null;
+ }
+
+ private boolean isCollection() {
+ String previousType = expression.getPreviousType();
+ 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();
+
+
+ panel.clear();
+ 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);
+ 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();) {
+ String method = i.next();
+ if (method.startsWith(field)) {
+ completions.put(method, METHOD_VALUE_PREFIX + "." + method);
+ i.remove();
+ changed = true;
+ }
+ }
+ if (!changed) {
+ completions.put(field, FIElD_VALUE_PREFIX + "." + field);
+ }
+ }
+ return completions;
+ }
+
+ /*
+ 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();
+ }
+
+ private SuggestionCompletionEngine getCompletionEngine() {
+ return modeller.getSuggestionCompletions();
+ }
+
+ public String getCurrentType() {
+ return expression.getType();
+ }
+}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FactPatternWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -59,10 +59,17 @@
private boolean bindable;
private Constants constants = ((Constants) GWT.create(Constants.class));
+ private String customLabel;
+
public FactPatternWidget(RuleModeller mod, IPattern p,
- SuggestionCompletionEngine com, boolean canBind) {
+ boolean canBind) {
+ this(mod, p, null, canBind);
+ }
+
+ public FactPatternWidget(RuleModeller mod, IPattern p,
+ String customLabel, boolean canBind) {
this.pattern = (FactPattern) p;
- this.completions = com;
+ this.completions = mod.getSuggestionCompletions();
this.modeller = mod;
this.bindable = canBind;
@@ -77,6 +84,8 @@
this.popupCreator.setModeller(modeller);
this.popupCreator.setPattern(pattern);
+ this.customLabel = customLabel;
+
layout.setWidget( 0, 0, getPatternLabel() );
FlexCellFormatter formatter = layout.getFlexCellFormatter();
formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_BOTTOM );
@@ -93,7 +102,7 @@
}
/**
- * Render a hierarchy of constraints, hierarchy here means constaints that may
+ * Render a hierarchy of constraints, hierarchy here means constraints that may
* themselves depend on members of constraint objects. With this code, the GUI
* enables clicking rules of the form:
*
@@ -324,6 +333,7 @@
return pred;
}
+
/**
* This returns the pattern label.
*/
@@ -336,13 +346,19 @@
String patternName = (pattern.boundName != null) ? pattern.factType + " <b>[" + pattern.boundName + "]</b>" : pattern.factType;
- if (pattern.constraintList != null && pattern.constraintList.constraints.length > 0) {
- String desc = Format.format(constants.ThereIsAAn0With(), patternName);
- return new ClickableLabel( anA(desc, patternName) , click, !modeller.lockLHS()) ;
- } else {
- String desc = Format.format(constants.ThereIsAAn0(), patternName);
- return new ClickableLabel( anA(desc, patternName) , click, !modeller.lockLHS() );
+ String desc = this.getCustomLabel();
+ if (desc == null){
+ if (pattern.constraintList != null && pattern.constraintList.constraints.length > 0) {
+ desc = Format.format(constants.ThereIsAAn0With(), patternName);
+ } else {
+ desc = Format.format(constants.ThereIsAAn0(), patternName);
+ }
+ desc = anA(desc, patternName);
+ }else{
+ desc = Format.format(desc, patternName);
}
+
+ return new ClickableLabel( desc , click, !modeller.lockLHS()) ;
}
/** Change to an/a depending on context - only for english */
@@ -427,8 +443,17 @@
return ab;
}
+ public String getCustomLabel() {
+ return customLabel;
+ }
+ public void setCustomLabel(String customLabel) {
+ this.customLabel = customLabel;
+ }
+
+
+
public boolean isDirty() {
return layout.hasDirty();
}
Copied: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java (from rev 31255, labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java)
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java (rev 0)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromAccumulateCompositeFactPatternWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -0,0 +1,290 @@
+package org.drools.guvnor.client.modeldriven.ui;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TabPanel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+import org.drools.guvnor.client.common.ClickableLabel;
+import org.drools.guvnor.client.common.DirtyableFlexTable;
+import org.drools.guvnor.client.common.DirtyableVerticalPane;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.modeldriven.HumanReadable;
+import org.drools.guvnor.client.modeldriven.brl.FactPattern;
+import org.drools.guvnor.client.modeldriven.brl.FromAccumulateCompositeFactPattern;
+import org.drools.guvnor.client.modeldriven.brl.FromCollectCompositeFactPattern;
+import org.drools.guvnor.client.modeldriven.brl.FromCompositeFactPattern;
+import org.drools.guvnor.client.modeldriven.brl.IPattern;
+
+/**
+ *
+ * @author esteban
+ */
+public class FromAccumulateCompositeFactPatternWidget extends FromCompositeFactPatternWidget {
+
+ public FromAccumulateCompositeFactPatternWidget(RuleModeller modeller,
+ FromAccumulateCompositeFactPattern pattern) {
+ super(modeller, pattern);
+ }
+
+ @Override
+ protected Widget getCompositeLabel() {
+
+ ClickListener leftPatternclick = new ClickListener() {
+
+ public void onClick(Widget w) {
+ showFactTypeSelector(w);
+ }
+ };
+
+ ClickListener sourcePatternClick = new ClickListener() {
+
+ public void onClick(Widget w) {
+ showSourcePatternSelector(w);
+ }
+ };
+
+
+ String lbl = "<div class='x-form-field'>" + HumanReadable.getCEDisplayName("from accumulate") + "</div>";
+
+ DirtyableFlexTable panel = new DirtyableFlexTable();
+
+
+ int r = 0;
+
+ if (pattern.getFactPattern() == null) {
+ panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + constants.clickToAddPattern() + "</font>", leftPatternclick, !this.modeller.lockLHS()));
+ }
+
+
+ panel.setWidget(r++, 0, new HTML(lbl));
+
+ if (this.getFromAccumulatePattern().getSourcePattern() == null) {
+ panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + constants.clickToAddPattern() + "</font>", sourcePatternClick, !this.modeller.lockLHS()));
+ } else {
+ DirtyableVerticalPane vert = new DirtyableVerticalPane();
+ IPattern rPattern = this.getFromAccumulatePattern().getSourcePattern();
+
+ Widget patternWidget = null;
+ if (rPattern instanceof FactPattern) {
+ patternWidget = new FactPatternWidget(modeller, rPattern, constants.All0with(), true);
+ } else if (rPattern instanceof FromAccumulateCompositeFactPattern) {
+ patternWidget = new FromAccumulateCompositeFactPatternWidget(modeller, (FromAccumulateCompositeFactPattern) rPattern);
+ } else if (rPattern instanceof FromCollectCompositeFactPattern) {
+ patternWidget = new FromCollectCompositeFactPatternWidget(modeller, (FromCollectCompositeFactPattern) rPattern);
+ } else if (rPattern instanceof FromCompositeFactPattern) {
+ patternWidget = new FromCompositeFactPatternWidget(modeller, (FromCompositeFactPattern) rPattern);
+ } else {
+ throw new IllegalArgumentException("Unsuported pattern " + rPattern + " for right side of FROM ACCUMULATE");
+ }
+
+ vert.add(patternWidget);
+ panel.setWidget(r++,
+ 0,
+ vert);
+ }
+
+ TabPanel tPanel = new TabPanel();
+
+ DirtyableFlexTable codeTable = new DirtyableFlexTable();
+ int codeTableRow = 0;
+ int codeTableCol = 0;
+
+ codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='x-form-field'>Init:</div>"));
+ final TextBox initField = new TextBox();
+ initField.setTitle("init code");
+ initField.setText(getFromAccumulatePattern().getInitCode());
+ codeTable.setWidget(codeTableRow++, codeTableCol--, initField);
+
+ codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='x-form-field'>Action:</div>"));
+ final TextBox actionField = new TextBox();
+ actionField.setTitle("action code");
+ actionField.setText(getFromAccumulatePattern().getActionCode());
+ codeTable.setWidget(codeTableRow++, codeTableCol--, actionField);
+
+ codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='x-form-field'>Reverse:</div>"));
+ final TextBox reverseField = new TextBox();
+ reverseField.setTitle("reverse code.");
+ reverseField.setText(getFromAccumulatePattern().getReverseCode());
+ codeTable.setWidget(codeTableRow++, codeTableCol--, reverseField);
+
+ codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='x-form-field'>Result:</div>"));
+ final TextBox resultField = new TextBox();
+ resultField.setTitle("result code");
+ resultField.setText(getFromAccumulatePattern().getResultCode());
+ codeTable.setWidget(codeTableRow++, codeTableCol--, resultField);
+
+
+ //panel.setWidget(r++, 0, codeTable);
+
+ tPanel.add(codeTable, "Custom Code");
+
+ DirtyableFlexTable functionTable = new DirtyableFlexTable();
+
+ functionTable.setWidget(0, 0, new HTML("<div class='x-form-field'>Function:</div>"));
+ final TextBox functionField = new TextBox();
+ functionField.setTitle("function code");
+ functionField.setText(getFromAccumulatePattern().getFunction());
+ functionTable.setWidget(0, 1, functionField);
+
+// panel.setWidget(r++, 0, functionTable);
+
+ tPanel.add(functionTable, "Function");
+
+ ChangeListener changeListener = new ChangeListener() {
+
+ public void onChange(Widget sender) {
+
+ TextBox senderTB = (TextBox) sender;
+ String code = senderTB.getText();
+
+ if (sender == initField) {
+ getFromAccumulatePattern().setFunction(null);
+ functionField.setText("");
+ getFromAccumulatePattern().setInitCode(code);
+ } else if (sender == actionField) {
+ getFromAccumulatePattern().setFunction(null);
+ functionField.setText("");
+ getFromAccumulatePattern().setActionCode(code);
+ } else if (sender == reverseField) {
+ getFromAccumulatePattern().setFunction(null);
+ functionField.setText("");
+ getFromAccumulatePattern().setReverseCode(code);
+ } else if (sender == resultField) {
+ getFromAccumulatePattern().setFunction(null);
+ functionField.setText("");
+ getFromAccumulatePattern().setResultCode(code);
+ } else if (sender == functionField) {
+ getFromAccumulatePattern().clearCodeFields();
+ initField.setText("");
+ actionField.setText("");
+ reverseField.setText("");
+ resultField.setText("");
+ getFromAccumulatePattern().setFunction(code);
+ }
+ }
+ };
+
+ initField.addChangeListener(changeListener);
+ actionField.addChangeListener(changeListener);
+ reverseField.addChangeListener(changeListener);
+ resultField.addChangeListener(changeListener);
+ functionField.addChangeListener(changeListener);
+
+
+ boolean useFunction = getFromAccumulatePattern().useFunctionOrCode().equals(FromAccumulateCompositeFactPattern.USE_FUNCTION);
+
+ tPanel.selectTab(useFunction?1:0);
+
+// functionTable.setVisible(useFunction);
+// codeTable.setVisible(!useFunction);
+
+ panel.setWidget(r++, 0, tPanel);
+
+ return panel;
+ }
+
+ /**
+ * Pops up the fact selector.
+ */
+ @Override
+ protected void showFactTypeSelector(final Widget w) {
+ final ListBox box = new ListBox();
+ String[] facts = completions.getFactTypes();
+
+ box.addItem(constants.Choose());
+
+ for (int i = 0; i < facts.length; i++) {
+ box.addItem(facts[i]);
+ }
+ box.setSelectedIndex(0);
+
+ final FormStylePopup popup = new FormStylePopup();
+ popup.setTitle(constants.NewFactPattern());
+ popup.addAttribute(constants.chooseFactType(),
+ box);
+
+ box.addChangeListener(new ChangeListener() {
+
+ public void onChange(Widget w) {
+ pattern.setFactPattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ });
+
+ popup.show();
+ }
+
+ /**
+ * Pops up the fact selector.
+ */
+ protected void showSourcePatternSelector(final Widget w) {
+ final ListBox box = new ListBox();
+ String[] facts = completions.getFactTypes();
+
+ box.addItem(constants.Choose());
+ for (int i = 0; i < facts.length; i++) {
+ box.addItem(facts[i]);
+ }
+ box.setSelectedIndex(0);
+
+ final FormStylePopup popup = new FormStylePopup();
+ popup.setTitle(constants.NewFactPattern());
+ popup.addAttribute(constants.chooseFactType(),
+ box);
+
+ box.addChangeListener(new ChangeListener() {
+
+ public void onChange(Widget w) {
+ getFromAccumulatePattern().setSourcePattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ });
+
+
+
+
+ final Button fromBtn = new Button(constants.From());
+ final Button fromAccumulateBtn = new Button(constants.FromAccumulate());
+ final Button fromCollectBtn = new Button(constants.FromCollect());
+
+ ClickListener btnsClickListener = new ClickListener() {
+
+ public void onClick(Widget sender) {
+
+ if (sender == fromBtn) {
+ getFromAccumulatePattern().setSourcePattern(new FromCompositeFactPattern());
+ } else if (sender == fromAccumulateBtn) {
+ getFromAccumulatePattern().setSourcePattern(new FromAccumulateCompositeFactPattern());
+ } else if (sender == fromCollectBtn) {
+ getFromAccumulatePattern().setSourcePattern(new FromCollectCompositeFactPattern());
+ } else {
+ throw new IllegalArgumentException("Unknown sender: " + sender);
+ }
+
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ };
+
+ fromBtn.addClickListener(btnsClickListener);
+ fromAccumulateBtn.addClickListener(btnsClickListener);
+ fromCollectBtn.addClickListener(btnsClickListener);
+
+ popup.addAttribute("", fromBtn);
+ popup.addAttribute("", fromAccumulateBtn);
+ popup.addAttribute("", fromCollectBtn);
+
+ popup.show();
+ }
+
+ private FromAccumulateCompositeFactPattern getFromAccumulatePattern() {
+ return (FromAccumulateCompositeFactPattern) this.pattern;
+ }
+}
Copied: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java (from rev 31255, labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java)
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java (rev 0)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCollectCompositeFactPatternWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -0,0 +1,165 @@
+package org.drools.guvnor.client.modeldriven.ui;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.Widget;
+import org.drools.guvnor.client.common.ClickableLabel;
+import org.drools.guvnor.client.common.DirtyableFlexTable;
+import org.drools.guvnor.client.common.DirtyableVerticalPane;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.modeldriven.HumanReadable;
+import org.drools.guvnor.client.modeldriven.brl.FactPattern;
+import org.drools.guvnor.client.modeldriven.brl.FromCollectCompositeFactPattern;
+import org.drools.guvnor.client.modeldriven.brl.FromCompositeFactPattern;
+import org.drools.guvnor.client.modeldriven.brl.IPattern;
+
+/**
+ *
+ * @author esteban
+ */
+public class FromCollectCompositeFactPatternWidget extends FromCompositeFactPatternWidget {
+
+ public FromCollectCompositeFactPatternWidget(RuleModeller modeller,
+ FromCollectCompositeFactPattern pattern) {
+ super(modeller, pattern);
+ }
+
+ @Override
+ protected Widget getCompositeLabel() {
+
+ ClickListener leftPatternclick = new ClickListener() {
+
+ public void onClick(Widget w) {
+ showFactTypeSelector(w);
+ }
+ };
+
+ ClickListener rightPatternclick = new ClickListener() {
+
+ public void onClick(Widget w) {
+ showRightPatternSelector(w);
+ }
+ };
+
+
+ String lbl = "<div class='x-form-field'>" + HumanReadable.getCEDisplayName("from collect") + "</div>";
+
+ DirtyableFlexTable panel = new DirtyableFlexTable();
+
+ int r = 0;
+
+ if (pattern.getFactPattern() == null) {
+ panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + constants.clickToAddPatterns() + "</font>", leftPatternclick, !this.modeller.lockLHS()));
+ }
+
+
+ panel.setWidget(r++, 0, new HTML(lbl));
+
+ if (this.getFromCollectPattern().getRightPattern() == null) {
+ panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + constants.clickToAddPatterns() + "</font>", rightPatternclick, !this.modeller.lockLHS()));
+ } else {
+ DirtyableVerticalPane vert = new DirtyableVerticalPane();
+ IPattern rPattern = this.getFromCollectPattern().getRightPattern();
+
+ Widget patternWidget = null;
+ if (rPattern instanceof FactPattern){
+ patternWidget = new FactPatternWidget(modeller, rPattern,constants.All0with(), false);
+ }else if (rPattern instanceof FromCompositeFactPattern){
+ patternWidget = new FromCompositeFactPatternWidget(modeller, (FromCompositeFactPattern)rPattern);
+ }else{
+ throw new IllegalArgumentException("Unsuported pattern "+rPattern+" for right side of FROM COLLECT");
+ }
+
+ vert.add(patternWidget);
+ panel.setWidget(r++,
+ 0,
+ vert);
+ }
+
+ return panel;
+ }
+
+
+ @Override
+ protected void showFactTypeSelector(final Widget w) {
+
+ final FormStylePopup popup = new FormStylePopup();
+ popup.setTitle(constants.NewFactPattern());
+
+ final ListBox box = new ListBox();
+
+ box.addItem(constants.Choose());
+
+ box.addItem("java.util.ArrayList","java.util.ArrayList");
+ box.addItem("java.util.LinkedList","java.util.LinkedArrayList");
+ box.addItem("java.util.HashSet","java.util.HashSet");
+ box.addItem("java.util.LinkedHashSet","java.util.LinkedHashSet");
+ box.addItem("...");
+
+ box.addItem("TODO: Add Facts that extedns Collection");
+
+ box.setSelectedIndex( 0 );
+
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ pattern.setFactPattern( new FactPattern( box.getItemText( box.getSelectedIndex() ) ) );
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ } );
+
+ popup.addAttribute(constants.chooseFactType(),
+ box );
+
+ popup.show();
+ }
+
+ /**
+ * Pops up the fact selector.
+ */
+ protected void showRightPatternSelector(final Widget w) {
+ final ListBox box = new ListBox();
+ String[] facts = completions.getFactTypes();
+
+ box.addItem(constants.Choose());
+ for (int i = 0; i < facts.length; i++) {
+ box.addItem(facts[i]);
+ }
+ box.setSelectedIndex(0);
+
+ final FormStylePopup popup = new FormStylePopup();
+ popup.setTitle(constants.NewFactPattern());
+ popup.addAttribute(constants.chooseFactType(),
+ box);
+
+ box.addChangeListener(new ChangeListener() {
+
+ public void onChange(Widget w) {
+ getFromCollectPattern().setRightPattern(new FactPattern(box.getItemText(box.getSelectedIndex())));
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ });
+
+ final Button fromBtn = new Button(constants.From(), new ClickListener() {
+
+ public void onClick(Widget sender) {
+ getFromCollectPattern().setRightPattern(new FromCompositeFactPattern());
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ });
+
+ popup.addAttribute("",fromBtn );
+
+
+ popup.show();
+ }
+
+ private FromCollectCompositeFactPattern getFromCollectPattern() {
+ return (FromCollectCompositeFactPattern) this.pattern;
+ }
+}
Copied: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java (from rev 31255, labs/jbossrules/branches/guvnor_expressionEditor2_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java)
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java (rev 0)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/FromCompositeFactPatternWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -0,0 +1,129 @@
+package org.drools.guvnor.client.modeldriven.ui;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.Widget;
+import org.drools.guvnor.client.common.ClickableLabel;
+import org.drools.guvnor.client.common.DirtyableComposite;
+import org.drools.guvnor.client.common.DirtyableFlexTable;
+import org.drools.guvnor.client.common.DirtyableVerticalPane;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.modeldriven.HumanReadable;
+import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.guvnor.client.modeldriven.brl.FactPattern;
+import org.drools.guvnor.client.modeldriven.brl.FromCompositeFactPattern;
+import org.drools.guvnor.client.messages.Constants;
+
+/**
+ *
+ * @author esteban
+ */
+public class FromCompositeFactPatternWidget extends DirtyableComposite {
+
+ protected final SuggestionCompletionEngine completions;
+ protected FromCompositeFactPattern pattern;
+ protected DirtyableFlexTable layout;
+ protected RuleModeller modeller;
+ protected Constants constants = ((Constants) GWT.create(Constants.class));
+
+ public FromCompositeFactPatternWidget(RuleModeller modeller,
+ FromCompositeFactPattern pattern) {
+ this.completions = modeller.getSuggestionCompletions();
+ this.pattern = pattern;
+ this.modeller = modeller;
+
+ this.layout = new DirtyableFlexTable();
+ this.layout.setStyleName("model-builderInner-Background");
+
+ doLayout();
+ initWidget(layout);
+ }
+
+ protected void doLayout() {
+
+ int r = 0;
+
+ if (pattern.getFactPattern() != null) {
+ DirtyableVerticalPane vert = new DirtyableVerticalPane();
+ FactPattern fact = pattern.getFactPattern();
+ if (fact != null) {
+ vert.add(new FactPatternWidget(modeller,
+ fact,
+ true));
+ this.layout.setWidget(r,
+ 0,
+ vert);
+ r++;
+ }
+ }
+
+ this.layout.setWidget(r,
+ 0,
+ getCompositeLabel());
+
+ }
+
+ protected Widget getCompositeLabel() {
+
+ ClickListener click = new ClickListener() {
+
+ public void onClick(Widget w) {
+ showFactTypeSelector(w);
+ }
+ };
+ String lbl = "<div class='x-form-field'>" + HumanReadable.getCEDisplayName("from") + "</div>";
+
+ DirtyableFlexTable panel = new DirtyableFlexTable();
+
+ int r = 0;
+
+ if (pattern.getFactPattern() == null) {
+ panel.setWidget(r, 0, new ClickableLabel("<br> <font color='red'>" + constants.clickToAddPatterns() + "</font>", click, !this.modeller.lockLHS()));
+ r++;
+ }
+
+
+ panel.setWidget(r, 0, new HTML(lbl));
+ panel.setWidget(r, 1, new ExpressionBuilder(modeller, this.pattern.getExpression()));
+
+
+ return panel;
+ }
+
+ /**
+ * Pops up the fact selector.
+ */
+ protected void showFactTypeSelector(final Widget w) {
+ final ListBox box = new ListBox();
+ String[] facts = completions.getFactTypes();
+
+ box.addItem(constants.Choose());
+
+ for ( int i = 0; i < facts.length; i++ ) {
+ box.addItem( facts[i] );
+ }
+ box.setSelectedIndex( 0 );
+
+ final FormStylePopup popup = new FormStylePopup();
+ popup.setTitle(constants.NewFactPattern());
+ popup.addAttribute(constants.chooseFactType(),
+ box );
+
+ box.addChangeListener( new ChangeListener() {
+ public void onChange(Widget w) {
+ pattern.setFactPattern( new FactPattern( box.getItemText( box.getSelectedIndex() ) ) );
+ modeller.refreshWidget();
+ popup.hide();
+ }
+ } );
+
+ popup.show();
+ }
+
+ public boolean isDirty() {
+ return layout.hasDirty();
+ }
+}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/RuleModeller.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -115,16 +115,12 @@
layout.getColumnFormatter().setWidth(1, "87%");
layout.getColumnFormatter().setWidth(2, "5%");
-
-
layout.setWidget( 0, 0, new SmallLabel(constants.WHEN()) );
if (!lockLHS()) {
layout.setWidget( 0, 2, addPattern );
}
-
-
layout.setWidget( 1, 1, renderLhs(this.model) );
layout.getFlexCellFormatter().setHorizontalAlignment(1, 1, HasHorizontalAlignment.ALIGN_LEFT);
layout.getFlexCellFormatter().setVerticalAlignment(1, 1, HasVerticalAlignment.ALIGN_TOP);
@@ -352,7 +348,7 @@
* Pops up the fact selector.
*/
protected void showConditionSelector(final Widget w) {
-
+ //XXX {bauna} add actions for LHS
final FormStylePopup popup = new FormStylePopup();
popup.setWidth(-1);
popup.setTitle(constants.AddAConditionToTheRule());
@@ -361,15 +357,10 @@
final ListBox choices = new ListBox(true);
-
-
//
// The list of DSL sentences
//
if (completions.getDSLConditions().length > 0) {
-
-
-
for(int i = 0; i < completions.getDSLConditions().length; i++ ) {
final DSLSentence sen = completions.getDSLConditions()[i];
String key = "DSL" + i;
@@ -381,7 +372,6 @@
}
});
}
-
}
//
@@ -405,7 +395,6 @@
}
}
-
//
// The list of top level CEs
//
@@ -422,15 +411,23 @@
popup.hide();
}
});
+ }
+ String fces[] = HumanReadable.FROM_CONDITIONAL_ELEMENTS;
+ choices.addItem("..................");
+ for ( int i = 0; i < fces.length; i++ ) {
+ final String ce = fces[i];
+ String key = "FCE" + ce;
+ choices.addItem( HumanReadable.getCEDisplayName( ce ) + " ...", key );
+ cmds.put(key, new Command() {
+ public void execute() {
+ addNewFCE(ce);
+ popup.hide();
+ }
+ });
}
-
-
-
-
-
if (ExplorerLayoutManager.shouldShow(Capabilities.SHOW_PACKAGE_VIEW)) {
choices.addItem("..................");
choices.addItem(constants.FreeFormDrl(), "FF");
@@ -441,9 +438,18 @@
popup.hide();
}
});
+
+ choices.addItem("..................");
+ choices.addItem(constants.ExpressionEditor(), "EE");
+ cmds.put("EE", new Command() {
+ public void execute() {
+ model.addLhsItem(new ExpressionFormLine());
+ refreshWidget();
+ popup.hide();
+ }
+ });
}
-
-
+
if (completions.getDSLConditions().length == 0 && facts.length == 0) {
popup.addRow(new HTML("<div class='highlight'>" + constants.NoModelTip() + "</div>")); //NON-NLS
}
@@ -468,7 +474,6 @@
}
});
-
HorizontalPanel hp = new HorizontalPanel();
hp.add(choices);
Button b = new Button(constants.OK());
@@ -488,18 +493,15 @@
choices.setFocus(true);
}
});
-
}
-
protected void addNewDSLLhs(DSLSentence sentence) {
model.addLhsItem( sentence.copy() );
refreshWidget();
-
}
-
protected void showActionSelector(Widget w) {
+ //XXX {Bauna} add RHS Actions
final FormStylePopup popup = new FormStylePopup();
popup.setWidth(-1);
popup.setTitle(constants.AddANewAction());
@@ -540,8 +542,8 @@
//Do Set field (NOT modify)
- for ( Iterator iter = vars.iterator(); iter.hasNext(); ) {
- final String v = (String) iter.next();
+ for ( Iterator<String> iter = vars.iterator(); iter.hasNext(); ) {
+ final String v = iter.next();
//varBox.addItem( v );
choices.addItem(Format.format(constants.ChangeFieldValuesOf0(), v), "VAR" + v); //NON-NLS
@@ -568,8 +570,8 @@
//RETRACT
- for ( Iterator iter = vars.iterator(); iter.hasNext(); ) {
- final String v = (String) iter.next();
+ for ( Iterator<String> iter = vars.iterator(); iter.hasNext(); ) {
+ final String v = iter.next();
//retractBox.addItem( v );
choices.addItem(Format.format(constants.Retract0(), v), "RET" + v); //NON-NLS
cmds.put("RET" + v, new Command() { //NON-NLS
@@ -581,8 +583,8 @@
}
//MODIFY
- for ( Iterator iter = vars.iterator(); iter.hasNext(); ) {
- final String v = (String) iter.next();
+ for ( Iterator<String> iter = vars.iterator(); iter.hasNext(); ) {
+ final String v = iter.next();
// modifyBox.addItem( v );
choices.addItem(Format.format(constants.Modify0(), v), "MOD" + v); //NON-NLS
@@ -622,17 +624,12 @@
});
}
-
-
-
choices.addItem("................");
-
-
//now global collections
- if (completions.globalCollections.length > 0 && vars.size() > 0) {
+ if (completions.getGlobalCollections().length > 0 && vars.size() > 0) {
for (String bf : vars) {
- for(int i = 0; i < completions.globalCollections.length; i++) {
- final String glob = completions.globalCollections[i];
+ for(int i = 0; i < completions.getGlobalCollections().length; i++) {
+ final String glob = completions.getGlobalCollections()[i];
final String var = bf;
choices.addItem(Format.format(constants.Append0ToList1(), var, glob), "GLOBCOL" + glob + var); //NON-NLS
cmds.put("GLOBCOL" + glob + var, new Command() { //NON-NLS
@@ -649,7 +646,6 @@
}
}
-
if (ExplorerLayoutManager.shouldShow(Capabilities.SHOW_PACKAGE_VIEW)) {
choices.addItem(constants.AddFreeFormDrl(), "FF"); //NON-NLS
cmds.put("FF", new Command() { //NON-NLS
@@ -671,9 +667,9 @@
}
- //CALL methods
- for ( Iterator iter = vars.iterator(); iter.hasNext(); ) {
- final String v = (String) iter.next();
+ //CALL methods
+ for ( Iterator<String> iter = vars.iterator(); iter.hasNext(); ) {
+ final String v = iter.next();
choices.addItem(Format.format(constants.CallMethodOn0(), v ), "CALL" + v); //NON-NLS
cmds.put("CALL" + v, new Command() { //NON-NLS
@@ -684,8 +680,8 @@
});
}
//Do Set field (NOT modify)
- for ( Iterator iter = vars2.iterator(); iter.hasNext(); ) {
- final String v = (String) iter.next();
+ for ( Iterator<String> iter = vars2.iterator(); iter.hasNext(); ) {
+ final String v = iter.next();
choices.addItem(Format.format(constants.CallMethodOn0(), v), "CALL" + v); //NON-NLS
cmds.put("CALL" + v, new Command() { //NON-NLS
@@ -694,10 +690,7 @@
popup.hide();
}
});
-
-
}
-
}
HorizontalPanel hp = new HorizontalPanel();
@@ -729,13 +722,9 @@
choices.setFocus(true);
}
-
-
-
protected void addModify(String itemText) {
this.model.addRhsItem(new ActionUpdateField(itemText));
refreshWidget();
-
}
protected void addNewDSLRhs(DSLSentence sentence) {
@@ -761,9 +750,22 @@
protected void addNewCE(String s) {
this.model.addLhsItem( new CompositeFactPattern(s) );
refreshWidget();
-
}
+ protected void addNewFCE(String type) {
+ FromCompositeFactPattern p = null;
+ if (type.equals("from")){
+ p = new FromCompositeFactPattern();
+ }else if (type.equals("from accumulate")){
+ p = new FromAccumulateCompositeFactPattern();
+ }else if (type.equals("from collect")){
+ p = new FromCollectCompositeFactPattern();
+ }
+
+ this.model.addLhsItem(p);
+ refreshWidget();
+ }
+
/**
* Adds a fact to the model, and then refreshes the display.
*/
@@ -782,16 +784,28 @@
IPattern pattern = model.lhs[i];
Widget w = null;
if (pattern instanceof FactPattern) {
- w = new FactPatternWidget(this, pattern, completions, true) ;
+ w = new FactPatternWidget(this, pattern, true) ;
vert.add( wrapLHSWidget( model,
i,
w ) );
vert.add( spacerWidget() );
} else if (pattern instanceof CompositeFactPattern) {
- w = new CompositeFactPatternWidget(this, (CompositeFactPattern) pattern, completions) ;
+ w = new CompositeFactPatternWidget(this, (CompositeFactPattern) pattern) ;
vert.add( wrapLHSWidget( model, i, w ));
vert.add( spacerWidget() );
- } else if (pattern instanceof DSLSentence) {
+ }else if(pattern instanceof FromAccumulateCompositeFactPattern){
+ w = new FromAccumulateCompositeFactPatternWidget(this, (FromAccumulateCompositeFactPattern) pattern) ;
+ vert.add( wrapLHSWidget( model, i, w ));
+ vert.add( spacerWidget() );
+ }else if(pattern instanceof FromCollectCompositeFactPattern){
+ w = new FromCollectCompositeFactPatternWidget(this, (FromCollectCompositeFactPattern) pattern) ;
+ vert.add( wrapLHSWidget( model, i, w ));
+ vert.add( spacerWidget() );
+ }else if(pattern instanceof FromCompositeFactPattern){
+ w = new FromCompositeFactPatternWidget(this, (FromCompositeFactPattern) pattern) ;
+ vert.add( wrapLHSWidget( model, i, w ));
+ vert.add( spacerWidget() );
+ }else if (pattern instanceof DSLSentence) {
//ignore this time
} else if (pattern instanceof FreeFormLine){
final FreeFormLine ffl = (FreeFormLine) pattern;
@@ -805,13 +819,17 @@
});
vert.add(wrapLHSWidget(model, i, tb));
vert.add( spacerWidget() );
+ } else if (pattern instanceof ExpressionFormLine) {
+ ExpressionFormLine efl = (ExpressionFormLine) pattern;
+ ExpressionBuilder eb = new ExpressionBuilder(this, efl);
+ vert.add(wrapLHSWidget(model, i, eb));
+ vert.add( spacerWidget() );
} else {
throw new RuntimeException("I don't know what type of pattern that is.");
}
}
-
DirtyableVerticalPane dsls = new DirtyableVerticalPane();
for ( int i = 0; i < model.lhs.length; i++ ) {
IPattern pattern = model.lhs[i];
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/factPattern/PopupCreator.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -24,11 +24,11 @@
import com.gwtext.client.util.Format;
public class PopupCreator {
-
- private FactPattern pattern;
+
+ private FactPattern pattern;
private SuggestionCompletionEngine completions;
- private RuleModeller modeller;
- private boolean bindable;
+ private RuleModeller modeller;
+ private boolean bindable;
private Constants constants = ((Constants) GWT.create(Constants.class));
/**
@@ -92,19 +92,20 @@
*/
public void showBindFieldPopup(final Widget w, final SingleFieldConstraint con, String[] fields, final PopupCreator popupCreator) {
-
+
final FormStylePopup popup = new FormStylePopup();
popup.setWidth(500);
final HorizontalPanel vn = new HorizontalPanel();
final TextBox varName = new TextBox();
final Button ok = new Button(constants.Set());
- vn.add( varName );
- vn.add( ok );
+ vn.add(varName);
+ vn.add(ok);
- ok.addClickListener( new ClickListener() {
+ ok.addClickListener(new ClickListener() {
+
public void onClick(Widget w) {
String var = varName.getText();
- if (modeller.isVariableNameUsed( var )) {
+ if (modeller.isVariableNameUsed(var)) {
Window.alert(Format.format(constants.TheVariableName0IsAlreadyTaken(), var));
return;
}
@@ -112,12 +113,13 @@
modeller.refreshWidget();
popup.hide();
}
- } );
- popup.addAttribute(Format.format(constants.BindTheFieldCalled0ToAVariable(), con.fieldName), vn );
+ });
+ popup.addAttribute(Format.format(constants.BindTheFieldCalled0ToAVariable(), con.fieldName), vn);
if (fields != null) {
Button sub = new Button(constants.ShowSubFields());
popup.addAttribute(Format.format(constants.ApplyAConstraintToASubFieldOf0(), con.fieldName), sub);
sub.addClickListener(new ClickListener() {
+
public void onClick(Widget sender) {
popup.hide();
popupCreator.showPatternPopup(w, con.fieldType, con);
@@ -127,44 +129,46 @@
popup.show();
}
-
+
/**
* This shows a popup for adding fields to a composite
*/
public void showPatternPopupForComposite(Widget w, final CompositeFieldConstraint composite) {
- final FormStylePopup popup = new FormStylePopup( "images/newex_wiz.gif", //NON-NLS
+ final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", //NON-NLS
constants.AddFieldsToThisConstraint());
final ListBox box = new ListBox();
- box.addItem( "..." );
- String[] fields = this.completions.getFieldCompletions( this.pattern.factType );
- for ( int i = 0; i < fields.length; i++ ) {
- box.addItem( fields[i] );
+ box.addItem("...");
+ String[] fields = this.completions.getFieldCompletions(this.pattern.factType);
+ for (int i = 0; i < fields.length; i++) {
+ box.addItem(fields[i]);
}
- box.setSelectedIndex( 0 );
+ box.setSelectedIndex(0);
- box.addChangeListener( new ChangeListener() {
+ box.addChangeListener(new ChangeListener() {
+
public void onChange(Widget w) {
- composite.addConstraint( new SingleFieldConstraint( box.getItemText( box.getSelectedIndex() ) ) );
+ composite.addConstraint(new SingleFieldConstraint(box.getItemText(box.getSelectedIndex())));
modeller.refreshWidget();
popup.hide();
}
- } );
- popup.addAttribute(constants.AddARestrictionOnAField(), box );
+ });
+ popup.addAttribute(constants.AddARestrictionOnAField(), box);
final ListBox composites = new ListBox();
composites.addItem("..."); //NON-NLS
- composites.addItem(constants.AllOfAnd(), CompositeFieldConstraint.COMPOSITE_TYPE_AND );
- composites.addItem(constants.AnyOfOr(), CompositeFieldConstraint.COMPOSITE_TYPE_OR );
- composites.setSelectedIndex( 0 );
+ composites.addItem(constants.AllOfAnd(), CompositeFieldConstraint.COMPOSITE_TYPE_AND);
+ composites.addItem(constants.AnyOfOr(), CompositeFieldConstraint.COMPOSITE_TYPE_OR);
+ composites.setSelectedIndex(0);
- composites.addChangeListener( new ChangeListener() {
+ composites.addChangeListener(new ChangeListener() {
+
public void onChange(Widget w) {
CompositeFieldConstraint comp = new CompositeFieldConstraint();
- comp.compositeJunctionType = composites.getValue( composites.getSelectedIndex() );
- composite.addConstraint( comp );
+ comp.compositeJunctionType = composites.getValue(composites.getSelectedIndex());
+ composite.addConstraint(comp);
modeller.refreshWidget();
popup.hide();
}
@@ -173,9 +177,9 @@
InfoPopup infoComp = new InfoPopup(constants.MultipleFieldConstraints(), constants.MultipleConstraintsTip());
HorizontalPanel horiz = new HorizontalPanel();
- horiz.add( composites );
- horiz.add( infoComp );
- popup.addAttribute(constants.MultipleFieldConstraint(), horiz );
+ horiz.add(composites);
+ horiz.add(infoComp);
+ popup.addAttribute(constants.MultipleFieldConstraint(), horiz);
popup.show();
@@ -187,42 +191,44 @@
public void showPatternPopup(Widget w, final String factType, final FieldConstraint con) {
String title = (con == null) ? Format.format(constants.ModifyConstraintsFor0(), factType) : constants.AddSubFieldConstraint();
- final FormStylePopup popup = new FormStylePopup( "images/newex_wiz.gif", //NON-NLS
- title );
+ final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif", //NON-NLS
+ title);
final ListBox box = new ListBox();
- box.addItem( "..." );
- String[] fields = this.completions.getFieldCompletions( factType );
- for ( int i = 0; i < fields.length; i++ ) {
- box.addItem( fields[i] );
+ box.addItem("...");
+ String[] fields = this.completions.getFieldCompletions(factType);
+ for (int i = 0; i < fields.length; i++) {
+ box.addItem(fields[i]);
}
- box.setSelectedIndex( 0 );
+ box.setSelectedIndex(0);
- box.addChangeListener( new ChangeListener() {
+ box.addChangeListener(new ChangeListener() {
+
public void onChange(Widget w) {
- String fieldName = box.getItemText( box.getSelectedIndex() );
+ String fieldName = box.getItemText(box.getSelectedIndex());
String qualifiedName = factType + "." + fieldName;
- String fieldType = (String) completions.fieldTypes.get(qualifiedName);
- pattern.addConstraint( new SingleFieldConstraint( fieldName, fieldType, con ) );
+ String fieldType = (String) completions.getFieldType(qualifiedName);
+ pattern.addConstraint(new SingleFieldConstraint(fieldName, fieldType, con));
modeller.refreshWidget();
popup.hide();
}
- } );
- popup.addAttribute(constants.AddARestrictionOnAField(), box );
+ });
+ popup.addAttribute(constants.AddARestrictionOnAField(), box);
final ListBox composites = new ListBox();
composites.addItem("...");
- composites.addItem(constants.AllOfAnd(), CompositeFieldConstraint.COMPOSITE_TYPE_AND );
- composites.addItem(constants.AnyOfOr(), CompositeFieldConstraint.COMPOSITE_TYPE_OR );
- composites.setSelectedIndex( 0 );
+ composites.addItem(constants.AllOfAnd(), CompositeFieldConstraint.COMPOSITE_TYPE_AND);
+ composites.addItem(constants.AnyOfOr(), CompositeFieldConstraint.COMPOSITE_TYPE_OR);
+ composites.setSelectedIndex(0);
- composites.addChangeListener( new ChangeListener() {
+ composites.addChangeListener(new ChangeListener() {
+
public void onChange(Widget w) {
CompositeFieldConstraint comp = new CompositeFieldConstraint();
- comp.compositeJunctionType = composites.getValue( composites.getSelectedIndex() );
- pattern.addConstraint( comp );
+ comp.compositeJunctionType = composites.getValue(composites.getSelectedIndex());
+ pattern.addConstraint(comp);
modeller.refreshWidget();
popup.hide();
}
@@ -232,34 +238,35 @@
HorizontalPanel horiz = new HorizontalPanel();
- horiz.add( composites );
- horiz.add( infoComp );
+ horiz.add(composites);
+ horiz.add(infoComp);
if (con == null) {
- popup.addAttribute(constants.MultipleFieldConstraint(), horiz );
+ popup.addAttribute(constants.MultipleFieldConstraint(), horiz);
}
//popup.addRow( new HTML("<hr/>") );
if (con == null) {
- popup.addRow( new SmallLabel("<i>" + constants.AdvancedOptionsColon() + "</i>") ); //NON-NLS
+ popup.addRow(new SmallLabel("<i>" + constants.AdvancedOptionsColon() + "</i>")); //NON-NLS
final Button predicate = new Button(constants.NewFormula());
- predicate.addClickListener( new ClickListener() {
+ predicate.addClickListener(new ClickListener() {
+
public void onClick(Widget w) {
SingleFieldConstraint con = new SingleFieldConstraint();
con.constraintValueType = SingleFieldConstraint.TYPE_PREDICATE;
- pattern.addConstraint( con );
+ pattern.addConstraint(con);
modeller.refreshWidget();
popup.hide();
}
- } );
- popup.addAttribute(constants.AddANewFormulaStyleExpression(), predicate );
+ });
+ popup.addAttribute(constants.AddANewFormulaStyleExpression(), predicate);
- doBindingEditor( popup );
+ doBindingEditor(popup);
}
popup.show();
}
-
+
/**
* This adds in (optionally) the editor for changing the bound variable name.
* If its a bindable pattern, it will show the editor,
@@ -267,23 +274,24 @@
* not be editable.
*/
private void doBindingEditor(final FormStylePopup popup) {
- if ( bindable && !(modeller.getModel().isBoundFactUsed( pattern.boundName )) ) {
+ if (bindable && !(modeller.getModel().isBoundFactUsed(pattern.boundName))) {
HorizontalPanel varName = new HorizontalPanel();
final TextBox varTxt = new TextBox();
if (pattern.boundName == null) {
varTxt.setText("");
- }else {
- varTxt.setText( pattern.boundName );
+ } else {
+ varTxt.setText(pattern.boundName);
}
- varTxt.setVisibleLength( 6 );
- varName.add( varTxt );
+ varTxt.setVisibleLength(6);
+ varName.add(varTxt);
- Button bindVar = new Button( constants.Set() );
- bindVar.addClickListener( new ClickListener() {
+ Button bindVar = new Button(constants.Set());
+ bindVar.addClickListener(new ClickListener() {
+
public void onClick(Widget w) {
String var = varTxt.getText();
- if (modeller.isVariableNameUsed( var )) {
+ if (modeller.isVariableNameUsed(var)) {
Window.alert(Format.format(constants.TheVariableName0IsAlreadyTaken(), var));
return;
}
@@ -291,10 +299,10 @@
modeller.refreshWidget();
popup.hide();
}
- } );
+ });
- varName.add( bindVar );
- popup.addAttribute(constants.VariableName(), varName );
+ varName.add(bindVar);
+ popup.addAttribute(constants.VariableName(), varName);
}
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/SuggestionCompletionCache.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -94,6 +94,7 @@
public void loadPackage(final String packageName, final Command command) {
+
LoadingPopup.showMessage(Format.format(constants.InitialisingInfoFor0PleaseWait(), packageName));
RepositoryServiceFactory.getService().loadSuggestionCompletionEngine( packageName, new GenericCallback<SuggestionCompletionEngine>() {
public void onSuccess(SuggestionCompletionEngine engine) {
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/DataInputWidget.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/DataInputWidget.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/DataInputWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -104,7 +104,7 @@
}
}
- String[] fields = (String[]) sce.fieldsForType.get(type);
+ String[] fields = (String[]) sce.getModelFields(type);
final FormStylePopup pop = new FormStylePopup(); //NON-NLS
pop.setTitle(constants.ChooseDotDotDot());
final ListBox b = new ListBox();
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/FieldDataConstraintEditor.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/FieldDataConstraintEditor.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/FieldDataConstraintEditor.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -56,7 +56,7 @@
private void refreshEditor() {
String key = factType + "." + field.name;
- String flType = sce.fieldTypes.get( key );
+ String flType = sce.getFieldType(key);
panel.clear();
if ( flType.equals( SuggestionCompletionEngine.TYPE_NUMERIC ) ) {
final TextBox box = editableTextBox( callback,
@@ -75,7 +75,7 @@
},
DropDownData.create( c ) ) );
} else {
- String[] enums = sce.dataEnumLists.get( key );
+ String[] enums = sce.getDataEnumList( key );
if ( enums != null ) {
panel.add( new EnumDropDown( field.value,
new DropDownValueChanged() {
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -3,26 +3,18 @@
import java.util.*;
import org.drools.guvnor.client.common.*;
-import org.drools.guvnor.client.modeldriven.DropDownData;
import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
import org.drools.guvnor.client.modeldriven.testing.ActivateRuleFlowGroup;
import org.drools.guvnor.client.modeldriven.testing.ExecutionTrace;
import org.drools.guvnor.client.modeldriven.testing.FactData;
-import org.drools.guvnor.client.modeldriven.testing.FieldData;
import org.drools.guvnor.client.modeldriven.testing.Fixture;
import org.drools.guvnor.client.modeldriven.testing.RetractFact;
import org.drools.guvnor.client.modeldriven.testing.Scenario;
import org.drools.guvnor.client.modeldriven.testing.VerifyFact;
-import org.drools.guvnor.client.modeldriven.testing.VerifyField;
import org.drools.guvnor.client.modeldriven.testing.VerifyRuleFired;
-import org.drools.guvnor.client.modeldriven.ui.ActionValueEditor;
-import org.drools.guvnor.client.modeldriven.ui.ConstraintValueEditor;
import org.drools.guvnor.client.packages.SuggestionCompletionCache;
-import org.drools.guvnor.client.rpc.BuilderResult;
import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
import org.drools.guvnor.client.rpc.RuleAsset;
-import org.drools.guvnor.client.rpc.ScenarioRunResult;
-import org.drools.guvnor.client.rpc.SingleScenarioResult;
import org.drools.guvnor.client.ruleeditor.RuleViewer;
import org.drools.guvnor.client.messages.Constants;
@@ -34,17 +26,12 @@
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.KeyboardListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.ScrollPanel;
-import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
@@ -53,12 +40,12 @@
public class ScenarioWidget extends Composite {
- private String[] availableRules;
- private SuggestionCompletionEngine sce;
- private ChangeListener ruleSelectionCL;
- RuleAsset asset;
- VerticalPanel layout;
- boolean showResults;
+ private String[] availableRules;
+ private SuggestionCompletionEngine sce;
+ private ChangeListener ruleSelectionCL;
+ RuleAsset asset;
+ VerticalPanel layout;
+ boolean showResults;
private Constants constants = ((Constants) GWT.create(Constants.class));
public ScenarioWidget(RuleAsset asset, RuleViewer viewer) {
@@ -66,22 +53,22 @@
}
public ScenarioWidget(RuleAsset asset) {
- this.asset = asset;
- this.layout = new VerticalPanel();
- this.showResults = false;
+ this.asset = asset;
+ this.layout = new VerticalPanel();
+ this.showResults = false;
- this.sce = SuggestionCompletionCache.getInstance().getEngineFromCache(asset.metaData.packageName);
+ this.sce = SuggestionCompletionCache.getInstance().getEngineFromCache(asset.metaData.packageName);
- Scenario scenario = (Scenario) asset.content;
- if (scenario.fixtures.size() == 0) {
- scenario.fixtures.add(new ExecutionTrace());
- }
+ Scenario scenario = (Scenario) asset.content;
+ if (scenario.fixtures.size() == 0) {
+ scenario.fixtures.add(new ExecutionTrace());
+ }
- if (!asset.isreadonly) {
+ if (!asset.isreadonly) {
// layout.setWidget(0, 0, new TestRunnerWidget(this, asset.metaData.packageName));
- layout.add(new TestRunnerWidget(this, asset.metaData.packageName));
- }
+ layout.add(new TestRunnerWidget(this, asset.metaData.packageName));
+ }
renderEditor();
@@ -98,128 +85,128 @@
}
+ void renderEditor() {
+ if (this.layout.getWidgetCount() == 2) {
+ this.layout.remove(1);
+ }
- void renderEditor() {
- if (this.layout.getWidgetCount() == 2) {
- this.layout.remove(1);
- }
-
-
- final Scenario scenario = (Scenario) asset.content;
- DirtyableFlexTable editorLayout = new DirtyableFlexTable();
- editorLayout.clear();
- editorLayout.setWidth("100%");
- editorLayout.setStyleName("model-builder-Background");
+ final Scenario scenario = (Scenario) asset.content;
+ DirtyableFlexTable editorLayout = new DirtyableFlexTable();
+ editorLayout.clear();
+ editorLayout.setWidth("100%");
+ editorLayout.setStyleName("model-builder-Background");
// this.layout.setWidget(1, 0, editorLayout);
- this.layout.add(editorLayout);
- ScenarioHelper hlp = new ScenarioHelper();
- List fixtures = hlp.lumpyMap(scenario.fixtures);
+ this.layout.add(editorLayout);
+ ScenarioHelper hlp = new ScenarioHelper();
+ List fixtures = hlp.lumpyMap(scenario.fixtures);
List<ExecutionTrace> listExecutionTrace = new ArrayList<ExecutionTrace>();
for (int i = 0; i < fixtures.size(); i++) {
- final Object f = fixtures.get(i);
- if (f instanceof ExecutionTrace) {
- listExecutionTrace.add((ExecutionTrace)f);
+ final Object f = fixtures.get(i);
+ if (f instanceof ExecutionTrace) {
+ listExecutionTrace.add((ExecutionTrace) f);
}
- }
+ }
int layoutRow = 1;
- int executionTraceLine=0;
+ int executionTraceLine = 0;
ExecutionTrace previousEx = null;
for (int i = 0; i < fixtures.size(); i++) {
- final Object f = fixtures.get(i);
- if (f instanceof ExecutionTrace) {
- previousEx = (ExecutionTrace) f;
- HorizontalPanel h = new HorizontalPanel();
- h.add(getNewExpectationButton(previousEx, scenario));
- h.add(new SmallLabel(constants.EXPECT()));
- editorLayout.setWidget(layoutRow, 0, h);
+ final Object f = fixtures.get(i);
+ if (f instanceof ExecutionTrace) {
+ previousEx = (ExecutionTrace) f;
+ HorizontalPanel h = new HorizontalPanel();
+ h.add(getNewExpectationButton(previousEx, scenario));
+ h.add(new SmallLabel(constants.EXPECT()));
+ editorLayout.setWidget(layoutRow, 0, h);
final ExecutionTrace et = (ExecutionTrace) previousEx;
Image del = new ImageButton("images/delete_item_small.gif", constants.DeleteItem(), new ClickListener() {
+
public void onClick(Widget w) {
- if ( Window.confirm(constants.AreYouSureYouWantToRemoveThisItem()) ) {
- scenario.removeExecutionTrace( et );
- renderEditor();
- }
+ if (Window.confirm(constants.AreYouSureYouWantToRemoveThisItem())) {
+ scenario.removeExecutionTrace(et);
+ renderEditor();
+ }
}
});
h.add(del);
executionTraceLine++;
- if (executionTraceLine>= listExecutionTrace.size()){
- executionTraceLine= listExecutionTrace.size()-1;
+ if (executionTraceLine >= listExecutionTrace.size()) {
+ executionTraceLine = listExecutionTrace.size() - 1;
}
- editorLayout.setWidget(layoutRow, 1, new ExecutionWidget(previousEx, showResults));
- //layout.setWidget(layoutRow, 2, getNewExpectationButton(previousEx, scenario, availableRules));
- editorLayout.getFlexCellFormatter().setHorizontalAlignment(layoutRow, 2, HasHorizontalAlignment.ALIGN_LEFT);
+ editorLayout.setWidget(layoutRow, 1, new ExecutionWidget(previousEx, showResults));
+ //layout.setWidget(layoutRow, 2, getNewExpectationButton(previousEx, scenario, availableRules));
+ editorLayout.getFlexCellFormatter().setHorizontalAlignment(layoutRow, 2, HasHorizontalAlignment.ALIGN_LEFT);
- } else if (f instanceof Map) {
- HorizontalPanel h = new HorizontalPanel();
- h.add(getNewDataButton(previousEx, scenario,listExecutionTrace.get(executionTraceLine)));
- h.add(new SmallLabel(constants.GIVEN()));
+ } else if (f instanceof Map) {
+ HorizontalPanel h = new HorizontalPanel();
+ h.add(getNewDataButton(previousEx, scenario, listExecutionTrace.get(executionTraceLine)));
+ h.add(new SmallLabel(constants.GIVEN()));
- editorLayout.setWidget(layoutRow, 0, h);
+ editorLayout.setWidget(layoutRow, 0, h);
- layoutRow++;
- Map given = (Map) f;
- VerticalPanel vert = new VerticalPanel();
- for (Iterator iterator = given.entrySet().iterator(); iterator.hasNext();) {
- Map.Entry e = (Map.Entry) iterator.next();
- List itemList = (List) given.get(e.getKey());
- if ( e.getKey().equals( ScenarioHelper.RETRACT_KEY ) ) {
- vert.add( new RetractWidget( itemList,
- scenario ) );
- } else if ( e.getKey().equals( ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP ) ) {
- vert.add( new ActivateRuleFlowWidget( itemList,
- scenario ) );
+ layoutRow++;
+ Map given = (Map) f;
+ VerticalPanel vert = new VerticalPanel();
+ for (Iterator iterator = given.entrySet().iterator(); iterator.hasNext();) {
+ Map.Entry e = (Map.Entry) iterator.next();
+ List itemList = (List) given.get(e.getKey());
+ if (e.getKey().equals(ScenarioHelper.RETRACT_KEY)) {
+ vert.add(new RetractWidget(itemList,
+ scenario));
+ } else if (e.getKey().equals(ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP)) {
+ vert.add(new ActivateRuleFlowWidget(itemList,
+ scenario));
} else {
- vert.add( new DataInputWidget( (String) e.getKey(),
- itemList,
- false,
- scenario,
- sce,
- this,
- listExecutionTrace.get( executionTraceLine ) ) );
+ vert.add(new DataInputWidget((String) e.getKey(),
+ itemList,
+ false,
+ scenario,
+ sce,
+ this,
+ listExecutionTrace.get(executionTraceLine)));
}
- }
+ }
- if (given.size() > 0) {
- editorLayout.setWidget(layoutRow, 1, vert);
- } else {
- editorLayout.setWidget(layoutRow, 1, new HTML("<i><small>" + constants.AddInputDataAndExpectationsHere() + "</small></i>"));
- }
- } else {
- List l = (List) f;
- Fixture first = (Fixture) l.get(0);
- if ( first instanceof VerifyFact ) {
- doVerifyFacts( l,
- editorLayout,
- layoutRow,
- scenario,
- listExecutionTrace.get( executionTraceLine ) );
- } else if ( first instanceof VerifyRuleFired ) {
- editorLayout.setWidget( layoutRow,
- 1,
- new VerifyRulesFiredWidget( l,
- scenario,
- showResults ) );
+ if (given.size() > 0) {
+ editorLayout.setWidget(layoutRow, 1, vert);
+ } else {
+ editorLayout.setWidget(layoutRow, 1, new HTML("<i><small>" + constants.AddInputDataAndExpectationsHere() + "</small></i>"));
}
+ } else {
+ List l = (List) f;
+ Fixture first = (Fixture) l.get(0);
+ if (first instanceof VerifyFact) {
+ doVerifyFacts(l,
+ editorLayout,
+ layoutRow,
+ scenario,
+ listExecutionTrace.get(executionTraceLine));
+ } else if (first instanceof VerifyRuleFired) {
+ editorLayout.setWidget(layoutRow,
+ 1,
+ new VerifyRulesFiredWidget(l,
+ scenario,
+ showResults));
+ }
- }
- layoutRow++;
- }
+ }
+ layoutRow++;
+ }
//add more execution sections.
- Button addExecute = new Button(constants.MoreDotDot());
- addExecute.setTitle(constants.AddAnotherSectionOfDataAndExpectations());
- addExecute.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- scenario.fixtures.add(new ExecutionTrace());
- renderEditor();
- }
- });
+ Button addExecute = new Button(constants.MoreDotDot());
+ addExecute.setTitle(constants.AddAnotherSectionOfDataAndExpectations());
+ addExecute.addClickListener(new ClickListener() {
+
+ public void onClick(Widget w) {
+ scenario.fixtures.add(new ExecutionTrace());
+ renderEditor();
+ }
+ });
editorLayout.setWidget(layoutRow, 0, addExecute);
//layout.getFlexCellFormatter().setHorizontalAlignment(layoutRow, 1, HasHorizontalAlignment.ALIGN_CENTER);
layoutRow++;
@@ -239,7 +226,7 @@
VerticalPanel globalPanel = new VerticalPanel();
for (Iterator iterator = globals.entrySet().iterator(); iterator.hasNext();) {
Map.Entry e = (Map.Entry) iterator.next();
- globalPanel.add(new DataInputWidget((String)e.getKey(), (List) globals.get(e.getKey()), true, scenario, sce, this,previousEx));
+ globalPanel.add(new DataInputWidget((String) e.getKey(), (List) globals.get(e.getKey()), true, scenario, sce, this, previousEx));
}
HorizontalPanel h = new HorizontalPanel();
h.add(getNewGlobalButton(scenario));
@@ -248,338 +235,351 @@
//layoutRow++;
editorLayout.setWidget(layoutRow, 1, globalPanel);
- }
+ }
+ private Widget getNewGlobalButton(final Scenario scenario) {
+ Image newItem = new ImageButton("images/new_item.gif", constants.AddANewGlobalToThisScenario(), new ClickListener() {
+ public void onClick(Widget w) {
+ final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", constants.NewGlobal());
- private Widget getNewGlobalButton(final Scenario scenario) {
- Image newItem = new ImageButton("images/new_item.gif", constants.AddANewGlobalToThisScenario(), new ClickListener() {
- public void onClick(Widget w) {
+ final ListBox factTypes = new ListBox();
- final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", constants.NewGlobal());
+ for (String g : sce.getGlobalVariables()) {
+ factTypes.addItem(g);
+ }
- final ListBox factTypes = new ListBox();
- for (Iterator iterator = sce.globalTypes.keySet().iterator(); iterator
- .hasNext();) {
- String g = (String) iterator.next();
- factTypes.addItem(g);
- }
+ Button add = new Button("Add");
+ add.addClickListener(new ClickListener() {
- Button add = new Button("Add");
- add.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- String fn = factTypes.getItemText(factTypes.getSelectedIndex());
- if (scenario.isFactNameExisting(fn)) {
- Window.alert(Format.format(constants.TheName0IsAlreadyInUsePleaseChooseAnotherName(), fn));
- } else {
- FactData ng = new FactData((String) sce.globalTypes.get(fn), fn, new ArrayList(), false);
- scenario.globals.add(ng);
- renderEditor();
- pop.hide();
- }
- }
- });
+ public void onClick(Widget w) {
+ String fn = factTypes.getItemText(factTypes.getSelectedIndex());
+ if (scenario.isFactNameExisting(fn)) {
+ Window.alert(Format.format(constants.TheName0IsAlreadyInUsePleaseChooseAnotherName(), fn));
+ } else {
+ FactData ng = new FactData((String) sce.getGlobalVariable(fn), fn, new ArrayList(), false);
+ scenario.globals.add(ng);
+ renderEditor();
+ pop.hide();
+ }
+ }
+ });
- HorizontalPanel insertFact = new HorizontalPanel();
- insertFact.add(factTypes); insertFact.add(add);
- pop.addAttribute(constants.GlobalColon(), insertFact);
+ HorizontalPanel insertFact = new HorizontalPanel();
+ insertFact.add(factTypes);
+ insertFact.add(add);
+ pop.addAttribute(constants.GlobalColon(), insertFact);
- pop.show();
- }
- });
+ pop.show();
+ }
+ });
- return newItem;
- }
+ return newItem;
+ }
+ /**
+ * This button gives a choice of modifying data, based on the positional context.
+ * @param previousEx
+ */
+ private Widget getNewDataButton(final ExecutionTrace previousEx, final Scenario scenario, final ExecutionTrace currentEx) {
+ Image newItem = new ImageButton("images/new_item.gif", constants.AddANewDataInputToThisScenario(), new ClickListener() {
- /**
- * This button gives a choice of modifying data, based on the positional context.
- * @param previousEx
- */
- private Widget getNewDataButton(final ExecutionTrace previousEx, final Scenario scenario,final ExecutionTrace currentEx) {
- Image newItem = new ImageButton("images/new_item.gif", constants.AddANewDataInputToThisScenario(), new ClickListener() {
- public void onClick(Widget w) {
+ public void onClick(Widget w) {
- final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", constants.NewInput());
+ final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", constants.NewInput());
- final ListBox factTypes = new ListBox();
- for (int i = 0; i < sce.factTypes.length; i++) {
- factTypes.addItem(sce.factTypes[i]);
- }
- final TextBox factName = new TextBox();
- factName.setVisibleLength(5);
+ final ListBox factTypes = new ListBox();
+ for (int i = 0; i < sce.getFactTypes().length; i++) {
+ factTypes.addItem(sce.getFactTypes()[i]);
+ }
+ final TextBox factName = new TextBox();
+ factName.setVisibleLength(5);
- Button add = new Button(constants.Add());
- add.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- String fn = ("" + factName.getText()).trim();
- if (fn.equals("")
- || factName.getText().indexOf(' ') > -1) {
- Window.alert(constants.YouMustEnterAValidFactName());
- } else {
- if (scenario.isFactNameExisting(fn)) {
+ Button add = new Button(constants.Add());
+ add.addClickListener(new ClickListener() {
+
+ public void onClick(Widget w) {
+ String fn = ("" + factName.getText()).trim();
+ if (fn.equals("")
+ || factName.getText().indexOf(' ') > -1) {
+ Window.alert(constants.YouMustEnterAValidFactName());
+ } else {
+ if (scenario.isFactNameExisting(fn)) {
Window.alert(Format.format(constants.TheFactName0IsAlreadyInUsePleaseChooseAnotherName(), fn));
- } else {
- scenario.insertBetween(previousEx, new FactData(factTypes.getItemText(factTypes.getSelectedIndex()), factName.getText(), new ArrayList(), false ));
- renderEditor();
- pop.hide();
- }
- }
- }
- });
+ } else {
+ scenario.insertBetween(previousEx, new FactData(factTypes.getItemText(factTypes.getSelectedIndex()), factName.getText(), new ArrayList(), false));
+ renderEditor();
+ pop.hide();
+ }
+ }
+ }
+ });
- HorizontalPanel insertFact = new HorizontalPanel();
- insertFact.add(factTypes); insertFact.add(new SmallLabel(constants.FactName())); insertFact.add(factName); insertFact.add(add);
- pop.addAttribute(constants.InsertANewFact1(), insertFact);
+ HorizontalPanel insertFact = new HorizontalPanel();
+ insertFact.add(factTypes);
+ insertFact.add(new SmallLabel(constants.FactName()));
+ insertFact.add(factName);
+ insertFact.add(add);
+ pop.addAttribute(constants.InsertANewFact1(), insertFact);
- List varsInScope = scenario.getFactNamesInScope(currentEx, false);
- //now we do modifies & retracts
- if (varsInScope.size() > 0) {
- final ListBox modifyFacts = new ListBox();
- for (int j = 0; j < varsInScope.size(); j++) { modifyFacts.addItem((String) varsInScope.get(j));}
- add = new Button(constants.Add());
- add.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- String fn = modifyFacts.getItemText(modifyFacts.getSelectedIndex());
- String type = (String) scenario.getVariableTypes().get(fn);
- scenario.insertBetween(previousEx, new FactData(type, fn, new ArrayList(), true));
- renderEditor();
- pop.hide();
- }
- });
- HorizontalPanel modifyFact = new HorizontalPanel();
- modifyFact.add(modifyFacts); modifyFact.add(add);
- pop.addAttribute(constants.ModifyAnExistingFactScenario(), modifyFact);
+ List varsInScope = scenario.getFactNamesInScope(currentEx, false);
+ //now we do modifies & retracts
+ if (varsInScope.size() > 0) {
+ final ListBox modifyFacts = new ListBox();
+ for (int j = 0; j < varsInScope.size(); j++) {
+ modifyFacts.addItem((String) varsInScope.get(j));
+ }
+ add = new Button(constants.Add());
+ add.addClickListener(new ClickListener() {
- //now we do retracts
- final ListBox retractFacts = new ListBox();
- for (int j = 0; j < varsInScope.size(); j++) { retractFacts.addItem((String) varsInScope.get(j));}
- add = new Button(constants.Add());
- add.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- String fn = retractFacts.getItemText(retractFacts.getSelectedIndex());
- scenario.insertBetween(previousEx, new RetractFact(fn));
- renderEditor();
- pop.hide();
- }
- });
- HorizontalPanel retractFact = new HorizontalPanel();
- retractFact.add(retractFacts); retractFact.add(add);
- pop.addAttribute(constants.RetractAnExistingFactScenario(), retractFact);
+ public void onClick(Widget w) {
+ String fn = modifyFacts.getItemText(modifyFacts.getSelectedIndex());
+ String type = (String) scenario.getVariableTypes().get(fn);
+ scenario.insertBetween(previousEx, new FactData(type, fn, new ArrayList(), true));
+ renderEditor();
+ pop.hide();
+ }
+ });
+ HorizontalPanel modifyFact = new HorizontalPanel();
+ modifyFact.add(modifyFacts);
+ modifyFact.add(add);
+ pop.addAttribute(constants.ModifyAnExistingFactScenario(), modifyFact);
+ //now we do retracts
+ final ListBox retractFacts = new ListBox();
+ for (int j = 0; j < varsInScope.size(); j++) {
+ retractFacts.addItem((String) varsInScope.get(j));
+ }
+ add = new Button(constants.Add());
+ add.addClickListener(new ClickListener() {
- }
+ public void onClick(Widget w) {
+ String fn = retractFacts.getItemText(retractFacts.getSelectedIndex());
+ scenario.insertBetween(previousEx, new RetractFact(fn));
+ renderEditor();
+ pop.hide();
+ }
+ });
+ HorizontalPanel retractFact = new HorizontalPanel();
+ retractFact.add(retractFacts);
+ retractFact.add(add);
+ pop.addAttribute(constants.RetractAnExistingFactScenario(), retractFact);
- // Activate rule flows
- final TextBox ruleFlowName = new TextBox();
- final HorizontalPanel settingsPanel = new HorizontalPanel();
- settingsPanel.add( ruleFlowName);
-
- add = new Button( constants.Add() );
- add.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- scenario.insertBetween( previousEx,
- new ActivateRuleFlowGroup( ruleFlowName.getText() ) );
+
+ }
+
+ // Activate rule flows
+ final TextBox ruleFlowName = new TextBox();
+ final HorizontalPanel settingsPanel = new HorizontalPanel();
+ settingsPanel.add(ruleFlowName);
+
+ add = new Button(constants.Add());
+ add.addClickListener(new ClickListener() {
+
+ public void onClick(Widget w) {
+ scenario.insertBetween(previousEx,
+ new ActivateRuleFlowGroup(ruleFlowName.getText()));
// new RetractFact( ruleFlowName.getText() ) );
- renderEditor();
- pop.hide();
- }
- } );
+ renderEditor();
+ pop.hide();
+ }
+ });
- settingsPanel.add( add );
-
- pop.addAttribute( "Activate rule flow group", settingsPanel );
-
+ settingsPanel.add(add);
- pop.show();
+ pop.addAttribute("Activate rule flow group", settingsPanel);
- }
- });
- return newItem;
- }
+ pop.show();
+ }
+ });
+ return newItem;
+ }
- private Widget getNewExpectationButton(final ExecutionTrace ex,
- final Scenario sc) {
+ private Widget getNewExpectationButton(final ExecutionTrace ex,
+ final Scenario sc) {
- Image add = new ImageButton("images/new_item.gif", constants.AddANewExpectation(), new ClickListener() {
- public void onClick(Widget w) {
- final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", constants.NewExpectation());
+ Image add = new ImageButton("images/new_item.gif", constants.AddANewExpectation(), new ClickListener() {
- Widget selectRule = getRuleSelectionWidget(asset.metaData.packageName, new RuleSelectionEvent() {
+ public void onClick(Widget w) {
+ final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", constants.NewExpectation());
- public void ruleSelected(String name) {
- VerifyRuleFired vr = new VerifyRuleFired(name, null, new Boolean(true));
- sc.insertBetween(ex, vr);
- renderEditor();
- pop.hide();
- }
+ Widget selectRule = getRuleSelectionWidget(asset.metaData.packageName, new RuleSelectionEvent() {
- });
+ public void ruleSelected(String name) {
+ VerifyRuleFired vr = new VerifyRuleFired(name, null, new Boolean(true));
+ sc.insertBetween(ex, vr);
+ renderEditor();
+ pop.hide();
+ }
+ });
- pop.addAttribute(constants.Rule(), selectRule);
+ pop.addAttribute(constants.Rule(), selectRule);
- final ListBox facts = new ListBox();
- List names = sc.getFactNamesInScope(ex, true);
- for (Iterator iterator = names.iterator(); iterator.hasNext();) {
- facts.addItem((String) iterator.next());
- }
+ final ListBox facts = new ListBox();
+ List names = sc.getFactNamesInScope(ex, true);
+ for (Iterator iterator = names.iterator(); iterator.hasNext();) {
+ facts.addItem((String) iterator.next());
+ }
- Button ok = new Button(constants.Add());
- ok.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- String factName = facts.getItemText(facts.getSelectedIndex());
- sc.insertBetween(ex, new VerifyFact(factName, new ArrayList()));
- renderEditor();
- pop.hide();
- }
- });
+ Button ok = new Button(constants.Add());
+ ok.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ String factName = facts.getItemText(facts.getSelectedIndex());
+ sc.insertBetween(ex, new VerifyFact(factName, new ArrayList()));
+ renderEditor();
+ pop.hide();
+ }
+ });
- HorizontalPanel h = new HorizontalPanel();
- h.add(facts);
- h.add(ok);
- pop.addAttribute(constants.FactValue(), h);
- //add in list box for anon facts
- final ListBox factTypes = new ListBox();
- for (int i = 0; i < sce.factTypes.length; i++) {
- String ft = sce.factTypes[i];
- factTypes.addItem(ft);
- }
+ HorizontalPanel h = new HorizontalPanel();
+ h.add(facts);
+ h.add(ok);
+ pop.addAttribute(constants.FactValue(), h);
- ok = new Button(constants.Add());
- ok.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- String t = factTypes.getItemText(factTypes.getSelectedIndex());
- sc.insertBetween(ex, new VerifyFact(t, new ArrayList(), true));
- renderEditor();
- pop.hide();
- }
+ //add in list box for anon facts
+ final ListBox factTypes = new ListBox();
+ for (int i = 0; i < sce.getFactTypes().length; i++) {
+ String ft = sce.getFactTypes()[i];
+ factTypes.addItem(ft);
+ }
- });
+ ok = new Button(constants.Add());
+ ok.addClickListener(new ClickListener() {
- h = new HorizontalPanel();
- h.add(factTypes);
- h.add(ok);
- pop.addAttribute(constants.AnyFactThatMatches(), h);
+ public void onClick(Widget w) {
+ String t = factTypes.getItemText(factTypes.getSelectedIndex());
+ sc.insertBetween(ex, new VerifyFact(t, new ArrayList(), true));
+ renderEditor();
+ pop.hide();
+ }
+ });
+ h = new HorizontalPanel();
+ h.add(factTypes);
+ h.add(ok);
+ pop.addAttribute(constants.AnyFactThatMatches(), h);
- pop.show();
- }
- });
+ pop.show();
+ }
+ });
- return add;
- }
+ return add;
+ }
+ private void doVerifyFacts(List l, FlexTable layout, int layoutRow, final Scenario scenario, ExecutionTrace executionTrace) {
+ VerticalPanel vert = new VerticalPanel();
+ for (Iterator iterator = l.iterator(); iterator.hasNext();) {
+ final VerifyFact f = (VerifyFact) iterator.next();
+ HorizontalPanel h = new HorizontalPanel();
+ h.add(new VerifyFactWidget(f, scenario, sce, executionTrace, showResults));
+ Image del = new ImageButton("images/delete_item_small.gif", constants.DeleteTheExpectationForThisFact(), new ClickListener() { //NON-NLS
+ public void onClick(Widget w) {
+ if (Window.confirm(constants.AreYouSureYouWantToRemoveThisExpectation())) {
+ scenario.removeFixture(f);
+ renderEditor();
+ }
+ }
+ });
+ h.add(del);
+ vert.add(h);
+ }
+ layout.setWidget(layoutRow, 1, vert);
+ }
+ public Widget getRuleSelectionWidget(final String packageName, final RuleSelectionEvent selected) {
+ final HorizontalPanel h = new HorizontalPanel();
+ final TextBox t = new TextBox();
+ t.setTitle(constants.EnterRuleNameScenario());
+ h.add(t);
+ if (!(availableRules == null)) {
+ final ListBox availableRulesBox = new ListBox();
- private void doVerifyFacts(List l, FlexTable layout, int layoutRow, final Scenario scenario,ExecutionTrace executionTrace) {
- VerticalPanel vert = new VerticalPanel();
- for (Iterator iterator = l.iterator(); iterator.hasNext();) {
- final VerifyFact f = (VerifyFact) iterator.next();
- HorizontalPanel h = new HorizontalPanel();
- h.add(new VerifyFactWidget(f, scenario, sce,executionTrace,showResults));
- Image del = new ImageButton("images/delete_item_small.gif", constants.DeleteTheExpectationForThisFact(), new ClickListener() { //NON-NLS
- public void onClick(Widget w) {
- if (Window.confirm(constants.AreYouSureYouWantToRemoveThisExpectation())) {
- scenario.removeFixture(f);
- renderEditor();
- }
- }
- });
- h.add(del);
- vert.add(h);
- }
- layout.setWidget(layoutRow, 1, vert);
+ availableRulesBox.addItem(constants.pleaseChoose1());
+ for (int i = 0; i < availableRules.length; i++) {
+ availableRulesBox.addItem(availableRules[i]);
+ }
+ availableRulesBox.setSelectedIndex(0);
+ availableRulesBox.removeChangeListener(ruleSelectionCL);
+ ruleSelectionCL = new ChangeListener() {
- }
+ public void onChange(Widget w) {
+ t.setText(availableRulesBox.getItemText(availableRulesBox.getSelectedIndex()));
+ }
+ };
- public Widget getRuleSelectionWidget(final String packageName, final RuleSelectionEvent selected) {
- final HorizontalPanel h = new HorizontalPanel();
- final TextBox t = new TextBox();
- t.setTitle(constants.EnterRuleNameScenario());
- h.add(t);
- if (!(availableRules == null)) {
- final ListBox availableRulesBox = new ListBox();
+ availableRulesBox.addChangeListener(ruleSelectionCL);
+ h.add(availableRulesBox);
- availableRulesBox.addItem(constants.pleaseChoose1());
- for (int i = 0; i < availableRules.length; i++) {
- availableRulesBox.addItem(availableRules[i]);
- }
- availableRulesBox.setSelectedIndex(0);
- availableRulesBox.removeChangeListener(ruleSelectionCL);
- ruleSelectionCL = new ChangeListener() {
- public void onChange(Widget w) {
- t.setText(availableRulesBox.getItemText(availableRulesBox.getSelectedIndex()));
- }
- };
+ } else {
- availableRulesBox.addChangeListener(ruleSelectionCL);
- h.add(availableRulesBox);
+ final Button showList = new Button(constants.showListButton());
+ h.add(showList);
+ showList.addClickListener(new ClickListener() {
- } else {
+ public void onClick(Widget w) {
+ h.remove(showList);
+ final Image busy = new Image("images/searching.gif"); //NON-NLS
+ final Label loading = new SmallLabel(constants.loadingList1());
+ h.add(busy);
+ h.add(loading);
- final Button showList = new Button(constants.showListButton());
- h.add(showList);
- showList.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- h.remove(showList);
- final Image busy = new Image("images/searching.gif"); //NON-NLS
- final Label loading = new SmallLabel(constants.loadingList1());
- h.add(busy);
- h.add(loading);
+ DeferredCommand.addCommand(new Command() {
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- RepositoryServiceFactory.getService().listRulesInPackage(packageName, new GenericCallback<String[]>() {
- public void onSuccess(String[] list) {
- availableRules = (list);
- final ListBox availableRulesBox = new ListBox();
- availableRulesBox.addItem(constants.pleaseChoose1());
- for (int i = 0; i < list.length; i++) {
- availableRulesBox.addItem(list[i]);
- }
- ruleSelectionCL = new ChangeListener() {
- public void onChange(Widget w) {
- t.setText(availableRulesBox.getItemText(availableRulesBox.getSelectedIndex()));
- }
- };
- availableRulesBox.addChangeListener(ruleSelectionCL);
- availableRulesBox.setSelectedIndex(0);
- h.add(availableRulesBox);
- h.remove(busy);
- h.remove(loading);
- }
- });
- }
- });
+ public void execute() {
+ RepositoryServiceFactory.getService().listRulesInPackage(packageName, new GenericCallback<String[]>() {
+ public void onSuccess(String[] list) {
+ availableRules = (list);
+ final ListBox availableRulesBox = new ListBox();
+ availableRulesBox.addItem(constants.pleaseChoose1());
+ for (int i = 0; i < list.length; i++) {
+ availableRulesBox.addItem(list[i]);
+ }
+ ruleSelectionCL = new ChangeListener() {
- }
- });
+ public void onChange(Widget w) {
+ t.setText(availableRulesBox.getItemText(availableRulesBox.getSelectedIndex()));
+ }
+ };
+ availableRulesBox.addChangeListener(ruleSelectionCL);
+ availableRulesBox.setSelectedIndex(0);
+ h.add(availableRulesBox);
+ h.remove(busy);
+ h.remove(loading);
+ }
+ });
+ }
+ });
- }
- Button ok = new Button(constants.OK());
- ok.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- selected.ruleSelected(t.getText());
- }
- });
- h.add(ok);
- return h;
- }
+ }
+ });
+ }
+
+ Button ok = new Button(constants.OK());
+ ok.addClickListener(new ClickListener() {
+
+ public void onClick(Widget w) {
+ selected.ruleSelected(t.getText());
+ }
+ });
+ h.add(ok);
+ return h;
+ }
+
// public static Widget editableCell(final ValueChanged changeEvent, String factType, String fieldName, String initialValue, SuggestionCompletionEngine sce) {
// String key = factType + "." + fieldName;
// String flType = sce.fieldTypes.get(key);
@@ -615,34 +615,27 @@
//
// return tb;
// }
+ /**
+ * Use some CSS trickery to get a percent bar.
+ */
+ public static Widget getBar(String colour, int width, float percent) {
+ int pixels = (int) (width * (percent / 100));
+ String h = "<div class=\"smallish-progress-wrapper\" style=\"width: " + width + "px\">"
+ + "<div class=\"smallish-progress-bar\" style=\"width: " + pixels + "px; background-color: " + colour + ";\"></div>"
+ + "<div class=\"smallish-progress-text\" style=\"width: " + width + "px\">" + (int) percent
+ + "%</div></div>"; //NON-NLS
+ return new HTML(h);
+ }
- /**
- * Use some CSS trickery to get a percent bar.
- */
- public static Widget getBar(String colour, int width, float percent) {
- int pixels = (int) (width * (percent / 100));
- String h = "<div class=\"smallish-progress-wrapper\" style=\"width: " + width + "px\">" +
- "<div class=\"smallish-progress-bar\" style=\"width: " + pixels + "px; background-color: " + colour + ";\"></div>" +
- "<div class=\"smallish-progress-text\" style=\"width: " + width + "px\">" + (int)percent
- + "%</div></div>"; //NON-NLS
- return new HTML(h);
+ public static Widget getBar(String colour, int width, int numerator, int denominator) {
+ int percent = 0;
- }
-
- public static Widget getBar(String colour, int width, int numerator, int denominator) {
- int percent = 0;
-
- if (denominator != 0) {
- percent = (int) ((((float)denominator - (float)numerator) / (float)denominator) * 100);
- }
- return getBar(colour, width, percent);
- }
-
-
-
-
-
+ if (denominator != 0) {
+ percent = (int) ((((float) denominator - (float) numerator) / (float) denominator) * 100);
+ }
+ return getBar(colour, width, percent);
+ }
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFactWidget.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFactWidget.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFactWidget.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -52,7 +52,7 @@
Image add = new ImageButton("images/add_field_to_fact.gif", constants.AddAFieldToThisExpectation(), new ClickListener() { //NON-NLS
public void onClick(Widget w) {
- String[] fields = (String[]) sce.fieldsForType.get(type);
+ String[] fields = (String[]) sce.getModelFields(type);
final FormStylePopup pop = new FormStylePopup("images/rule_asset.gif", constants.ChooseAFieldToAdd()); //NON-NLS
final ListBox b = new ListBox();
for (int i = 0; i < fields.length; i++) {
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFieldConstraintEditor.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFieldConstraintEditor.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/VerifyFieldConstraintEditor.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -56,7 +56,7 @@
private void refreshEditor() {
String key = factType + "." + field.fieldName;
- String flType = sce.fieldTypes.get( key );
+ String flType = sce.getFieldType( key );
panel.clear();
if ( flType.equals( SuggestionCompletionEngine.TYPE_NUMERIC ) ) {
final TextBox box = editableTextBox( callback,
@@ -75,7 +75,7 @@
},
DropDownData.create( c ) ) );
} else {
- String[] enums = sce.dataEnumLists.get( key );
+ String[] enums = sce.getDataEnumList( key );
if ( enums != null ) {
panel.add( new EnumDropDown( field.expected,
new DropDownValueChanged() {
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleAsset.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleAsset.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RuleAsset.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -31,7 +31,7 @@
*/
public class RuleAsset
implements
- Serializable {
+ Serializable, IsSerializable {
public MetaData metaData;
public PortableObject content;
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/FactTypeBrowser.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/FactTypeBrowser.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/FactTypeBrowser.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -28,14 +28,14 @@
panel.add(hp);
panel.add(tree);
- if (sce.factTypes != null) {
- for (String type : sce.factTypes) {
+ if (sce.getFactTypes() != null) {
+ for (String type : sce.getFactTypes()) {
TreeItem it = new TreeItem();
it.setHTML("<img src=\"images/class.gif\"/><small>" + type + "</small>");
it.setUserObject(type + "( )");
tree.addItem(it);
- String[] fields = (String[]) sce.fieldsForType.get(type);
+ String[] fields = (String[]) sce.getModelFields(type);
if (fields != null) {
for (String field : fields) {
TreeItem fi = new TreeItem();
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/PopulateDataTest.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -109,8 +109,8 @@
SuggestionCompletionEngine eng = serv.loadSuggestionCompletionEngine( "com.billasurf.manufacturing.plant" );
assertNotNull(eng);
- assertEquals(2, eng.factTypes.length);
- String[] fields = (String[]) eng.fieldsForType.get( "Board" );
+ assertEquals(2, eng.getFactTypes().length);
+ String[] fields = (String[]) eng.getModelFields( "Board" );
assertTrue(fields.length >= 3);
String[] globalVars = eng.getGlobalVariables();
@@ -118,7 +118,7 @@
assertEquals("prs", globalVars[0]);
assertTrue(eng.getFieldCompletionsForGlobalVariable( "prs" ).length >= 2);
- fields = (String[]) eng.fieldsForType.get( "Person" );
+ fields = (String[]) eng.getModelFields( "Person" );
assertTrue(fields.length >= 2);
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -1467,9 +1467,9 @@
SuggestionCompletionEngine eng = impl
.loadSuggestionCompletionEngine(pkg.getName());
assertNotNull(eng);
- assertEquals(2, eng.factTypes.length);
+ assertEquals(2, eng.getFactTypes().length);
- for (String ft : eng.factTypes) {
+ for (String ft : eng.getFactTypes()) {
if (!(ft.equals("Board") || ft.equals("Whee"))) {
fail("Should be one of the above...");
}
Modified: labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java 2010-01-27 15:11:01 UTC (rev 31256)
+++ labs/jbossrules/branches/guvnor_expressionEditor3_baunax_esteban/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java 2010-01-27 16:33:21 UTC (rev 31257)
@@ -52,7 +52,7 @@
public void testStripUnNeededFields() {
SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
- String[] result = loader.removeIrrelevantFields( new String[] {"foo", "toString", "class", "hashCode"} );
+ String[] result = loader.removeIrrelevantFields( Arrays.asList(new String[] {"foo", "toString", "class", "hashCode"} ));
assertEquals(1, result.length);
assertEquals("foo", result[0]);
}
@@ -134,8 +134,7 @@
SuggestionCompletionEngine eng = loader.getSuggestionEngine( item );
- assertNotNull(eng.dataEnumLists);
- assertEquals(Collections.EMPTY_MAP, eng.dataEnumLists);
+ assertFalse(eng.hasDataEnumLists());
assertFalse(loader.hasErrors());
assertEquals(1, eng.actionDSLSentences.length);
assertEquals(1, eng.conditionDSLSentences.length);
@@ -159,7 +158,7 @@
SuggestionCompletionEngine sce = loader.getSuggestionEngine( item );
assertFalse(loader.hasErrors());
- assertEquals(1, sce.dataEnumLists.size());
+ assertEquals(1, sce.getDataEnumListsSize());
asset.updateContent( "goober boy" );
More information about the jboss-svn-commits
mailing list