[jboss-svn-commits] JBL Code SVN: r35067 - in labs/jbossrules/trunk: drools-guvnor/src/main/java/org/drools/guvnor/client/messages and 10 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 8 10:21:23 EDT 2010


Author: nheron
Date: 2010-09-08 10:21:23 -0400 (Wed, 08 Sep 2010)
New Revision: 35067

Added:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodLabelButton.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnGivenPanel.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnNewDataButton.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/MethodParameterCallValueEditor.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/FieldNature.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFieldValue.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFixtureMap.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallMethod.java
Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ErrorPopup.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/MethodParameterValueEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/FieldDataConstraintEditor.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/NewDataButton.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioHelper.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioWidget.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/TestScenarioButton.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ActionFieldValue.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/Scenario.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java
   labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/testframework/ScenarioRunner.java
   labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/ActionFieldValueTest.java
Log:
https://jira.jboss.org/browse/GUVNOR-333

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ErrorPopup.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ErrorPopup.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/ErrorPopup.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -105,7 +105,7 @@
     }
 
     private void addMessage(String message, String longMessage) {
-        if (message.contains("ItemExistsException")) {    //NON-NLS
+        if (message!=null && message.contains("ItemExistsException")) {    //NON-NLS
             longMessage = message;
             message = constants.SorryAnItemOfThatNameAlreadyExistsInTheRepositoryPleaseChooseAnother();
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -613,11 +613,11 @@
     String AddAnOptionToTheRule();
 
     String AddMetadataToTheRule();
-
+    
     String UseRowNumber();
-
+    
     String ReverseOrder();
-
+    
     String Metadata1();
 
     String Attribute();
@@ -1507,6 +1507,10 @@
     String ModifyAnExistingFactScenario();
 
     String RetractAnExistingFactScenario();
+    
+    String CallAMethodOnAFactScenario();
+    
+    String CALL();
 
     String AddANewExpectation();
 
@@ -1753,11 +1757,11 @@
     String HideThisColumn();
 
     String PleaseSelectOrEnterField();
-
+    
     String NotifyNoSelectedOrEnteredField();
 
     String PleaseSelectAnOperator();
-
+    
     String NotifyNoSelectedOperator();
 
     String January();
@@ -2091,45 +2095,45 @@
     String ActivateRuleFlowGroup();
 
     String CantRemoveThisBlockAsOneOfTheNamesIsBeingUsed();
-
+    
     String FillInColumnWithValue();
-
+    
     String LoadTemplateData();
-
+    
     String RepositoryConfiguration();
-
+    
     String RepositoryConfig();
-
+    
     String ManageRepositoryConfig();
-
+    
     String ManageRepositoryConfigDesc();
-
+    
     String SelectRdbmsType();
-
+    
     String UseJndi();
-
+    
     String PleaseSelectRdbmsType();
-
+    
     String PleaseEnterDriver();
-
+    
     String PleaseEnterUrl();
-
+    
     String PleaseEnterUserName();
-
+    
     String PleaseEnterPassword();
-
+    
     String PleaseEnterJndiName();
-
+    
     String GenerateRepositoryConfiguration();
-
+    
     String RepositoryXml();
-
+    
     String UnableToProcessRepositoryConfiguration();
-
+    
     String SaveRepo();
-
+    
     String SaveTheRepositoryConfig();
-
+    
     String SaveRepoInfo();
 
     String Inbox();

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-09-08 14:21:23 UTC (rev 35067)
@@ -1,1055 +1,1057 @@
-ActionColumnConfigurationInsertingANewFact=Action column configuration (inserting a new fact)
+ActionColumnConfigurationInsertingANewFact=Action column configuration (inserting a new fact)
 CantRemoveThisBlockAsOneOfTheNamesIsBeingUsed=Can't remove this block as one of the names is being used.
-ChooseAPatternThatThisColumnAddsDataTo=Choose a pattern that this column adds data to
-Pattern=Pattern:
-Assets=Assets
-CreateNew=Create New
-Category=Category
-CategoryColon=Category:
-RemoveThisItem=Remove this item?
-AddAnotherFieldToThisSoYouCanSetItsValue=Add another field to this so you can set its value.
-ChooseAMethodToInvoke=Choose a method to invoke
-AddField=Add field
-EditTheFieldThatThisColumnOperatesOn=Edit the field that this column operates on
-Field=Field:
-ValueListsExplanation=Value lists are an optional comma separated list of values to show as a drop down.
-ValueList=Value list
-optionalValueList=(optional) value list:
-ColumnHeaderDescription=Column header (description):
-ApplyChanges=Apply changes
-YouMustEnterAColumnHeaderValueDescription=You must enter a column header value (description)
-ThatColumnNameIsAlreadyInUsePleasePickAnother=That column name is already in use - please pick another
-OK=OK
-pleaseChooseFactType=(please choose fact type)
-ChooseExistingPatternToAddColumnTo=Choose existing pattern to add column to:
-ORwithEmphasis=<i><b>---OR---</i></b>
-CreateNewFactPattern=Create new fact pattern
-NewFactSelectTheType=New fact - select the type
-FactType=Fact type:
-name=name:
-AddAField=Add a field
-ColumnConfigurationSetAFieldOnAFact=Column configuration (set a field on a fact)
-ChooseABoundFactThatThisColumnPertainsTo=Choose a bound fact that this column pertains to
-UpdateEngineWithChanges=Update engine with changes:
-UpdateFact=Update fact
-UpdateDescription=Checking this will tell the engine that the value has changed. This will cause the rules that depend on it to be re-evaluated. Use with care !
-pleaseChooseAFactPatternFirst=(please choose a fact pattern first)
-ChooseFact=Choose fact:
-pleaseChooseABoundFactForThisColumn=(please choose a bound fact for this column)
-setterLabel={0} value of {1}
-statusIs=<i>Status: [{0}]</i>
-SaveChanges=Save changes
-CommitAnyChangesForThisAsset=Commit any changes for this asset.
-Copy=Copy
-CopyThisAsset=Copy this asset.
-Archive=Archive
-ArchiveThisAssetThisWillNotPermanentlyDeleteIt=Archive this asset. This will not permanently delete it.
-AreYouSureYouWantToArchiveThisItem=Are you sure you want to archive this item?
-ArchivedItemOn=Archived Item on :
-Delete=Delete
-DeleteAssetTooltip=Permanently delete this asset. This will only be enabled before the asset is checked in.
-DeleteAreYouSure=Are you sure you want to permanently delete this (unversioned) item?
-ChangeStatus=Change status
-ChangeStatusTip=Change the status of this asset.
-CopyThisItem=Copy this item
-NewName=New name:
-CreateCopy=Create copy
-AssetNameMustNotBeEmpty=Asset name must not be empty.
-CreatedANewItemSuccess=Created a new item called [{0}] in package: [{1}] successfully.
-CheckInChanges=Check in changes.
-Fact=Fact:
-FieldValue=Field value
-LiteralValue=Literal value
-LiteralValTip=A literal value means the constraint is directly against the value that you type (ie. what you see on screen).
-Literal=Literal
-AdvancedSection=<i>Advanced</i>
-Formula=Formula
-FormulaTip=A formula is used when values are calculated, or a variable is used.
-Administration=Administration
-CategoryManager=Category Manager
-ArchivedManager=Archived Manager
-StateManager=State Manager
-ImportExport=Import Export
-EventLog=Event Log
-UserPermissionMappings=User Permission mappings
-About=About
-WebDAVURL=WebDAV URL:
-Version=Version
-Errors=Errors
-Warnings=Warnings
-Notes=Notes
-ShowFactUsages=Show fact usages...
-FactUsages=Fact usages
-FieldsUsed=<i>Fields used:</i>
-ShowRulesAffected=<i>Show rules affected ...</i>
-RulesAffected=<i>Rules affected:</i>
-Reason=Reason
-Cause=Cause
-AnalysingPackage=<b>Analysing package: {0}</b>
-RunAnalysis=Run analysis
-AnalysingPackageRunning=Analysing package...
-ArchivedItems=<b>Archived items</b>
-RestoreSelectedPackage=Restore selected package
-PermanentlyDeletePackage=Permanently delete package
-AreYouSurePackageDelete=Are you sure you want to permanently delete this package? This can not be undone.
-ArchivedPackagesList=Archived packages
-RestoreSelectedAsset=Restore selected asset
-PleaseSelectAnItemToRestore=Please select an item to restore.
-ItemRestored=Item restored.
-DeleteSelectedAsset=Delete selected asset
-PleaseSelectAnItemToPermanentlyDelete=Please select an item to permanently delete.
-AreYouSureDeletingAsset=Are you sure you want to permanently delete this asset ? This can not be undone.
-ItemDeleted=Item deleted.
-ArchivedAssets=Archived assets
-PackageDeleted=Package deleted
-PackageRestored=Package restored.
-noArchivedPackages=-- no archived packages --
-analysisResultSummary=<b>{0}</b> ({1} items).
-Upload=Upload
-UploadNewVersion=Upload new version:
-Download=Download
-DownloadCurrentVersion=Download current version:
-FileWasUploadedSuccessfully=File was uploaded successfully.
-UnableToUploadTheFile=Unable to upload the file.
-Uploading=Uploading...
-AddANewCategory=Add a new category.
-RemoveThisCategory=Remove this category
-SelectCategoryToAdd=Select category to add
-ShowingNofXItems=Showing X items out of Y.
-NItems=X items.
-refreshList=[refresh list]
-openSelected=[open selected]
-Opening=Opening:
-Next=Next ->
-Previous=<- Previous
-goToFirst=(go to first)
-ImportOrExport=<b>Import/Export</b>
-ImportFromAnXmlFile=Import from an xml file
-ExportToAZipFile=Export to a zip file
-Export=Export
-Import=Import
-ImportConfirm=Are you sure you want to import? This will erase any content in the repository currently?
-ImportingInProgress=Importing repository, please wait, as this could take some time...
-ImportDone=Rules repository imported successfully. Browser will now refresh to show the new content.
-ImportFailed=Unable to import into the repository. Consult the server logs for error messages.
-NoExportFilename=You did not specify an exported repository filename !
-PleaseSpecifyAValidRepositoryXmlFile=Please specify a valid repository xml file.
-ImportPackageConfirm=Are you sure you want to import? This will erase any content in the package currently?
-ImportingPackage=Importing package to repository, please wait, as this could take some time...
-PackageImportDone=Rules package imported successfully. Please refresh your browser (F5) to show the new content.
-PackageImportFailed=Unable to import into the repository. Consult the server logs for error messages.
-PackageExportNoName=You did not specify an exported repository package filename !
-PackageExportName=Please specify a valid repository package xml file.
-ExportRepoWarning=Export the repository? This may take some time.
-ExportRepoWait=Exporting repository, please wait, as this could take some time...
-ExportThePackage=Export the package?
-PleaseWait=Please Wait...
-TestFailureBulkFailures=[{0} failures out of {1}]
-Open=Open
-failuresOutOFExpectations={0} failures out of {1} expectations.
-OverallResult=Overall result:
-SuccessOverall=<b>SUCCESS</b>
-FailureOverall=<b>FAILURE</b>
-Results=Results:
-RuleCoveragePercent={0}% of the rules were tested.
-RulesCovered=Rules covered:
-UncoveredRules=Uncovered rules:
-Scenarios=Scenarios
-Close=Close
-BuildErrorsUnableToRunScenarios=Build errors - unable to run scenarios
-UserName=User name:
-Password=Password:
-Authenticating=Authenticating...
-IncorrectUsernameOrPassword=Incorrect username or password.
-Login=Login
-LastModified=Last Modified
-Name=Name
-Description=Description
-Status=Status
-Package=Package
-Categories=Categories
-LastContributor=Last contributor
-Created=Created
-PackageName=Package name
-UnableToRunTests=Unable to run tests
-NoTestScenariosFound=No test scenarios found.
-CategoryName=Category name
-CreateANewTopLevelCategory=Create a new top level category.
-CreateNewCategoryUnder0=Create new category under: [{0}]
-CategoryWasNotSuccessfullyCreated=Category was not successfully created.
-CanNotHaveAnEmptyCategoryName=Can't have an empty category name.
-
-
-NoCategoriesCreatedYetTip=No categories created yet. Add some categories from the administration screen.
-Refresh=Refresh
-CategoriesPurposeTip=Categories aid in managing large numbers of rules/assets. A shallow hierarchy is recommended.
-EditCategories=<b>Edit categories</b>
-CurrentCategories=Current categories:
-NewCategory=New category
-CreateANewCategory=Create a new category
-RenameSelected=Rename selected
-PleaseSelectACategoryToRename=Please select a category to rename
-DeleteSelected=Delete selected
-PleaseSelectACategoryToDelete=Please select a category to delete.
-DeleteSelectedCat=Deletes the currently selected category. You won't be able to delete if the category is in use.
-CategoryNewNamePleaseEnter=Please enter the name you would like to change this category to
-CategoryRenamed=Category renamed
-AreYouSureYouWantToDeleteCategory=Are you sure you want to delete category:
-AddAnOptionalCheckInComment=Add an optional check in comment
-CheckIn=Check in
-enterTextToFilterList=<enter text to filter list>
-AddFactToContraint=Add a fact to this constraint. If it is an 'or' type, it will need at least 2.
-Choose=Choose...
-NewFactPattern=New fact pattern...
-chooseFactType=choose fact type
-pleaseChoose=--- please choose ---
-FormulaEvaluateToAValue=This is a formula expression which will evaluate to a value.
-LiteralValueTip=This is a literal value. What is shown is what the field is checked against.
-RefreshingList=Refreshing list...
-UnableToLoadList=Unable to load list...
-AdvancedOptions=<i>Advanced options:</i>
-BoundVariable=Bound variable
-AVariable=A variable:
-ABoundVariable=A bound variable
-BoundVariableTip=Will apply a constraint that compares a field to a bound variable.
-NewFormula=New formula
-AFormula=A formula
-FormulaExpressionTip=A formula is an expression that calculates and returns a value. That value is used to enforce the constraint.
-DecisionTableWidgetDescription=<small><i>This is a decision table in a spreadsheet (XLS). Typically they contain many rules in one sheet.</i></small>
-UploadNewVersionDescription=<small><i>Upload new version...</i></small>
-PackageSnapshots=Package snapshots
-Deploy=Deploy...
-NewDeploymentSnapshot=New Deployment snapshot
-RebuildAllSnapshotBinaries=Rebuild all snapshot binaries
-PleaseWaitDotDotDot=Please wait...
-AddANewCondition=Add a new condition
-AddAnAction=Add an action
-TheValue0IsNotValidForThisField=The value {0} is not valid for this field
-Error=Error
-ShowDetail=Show detail
-Navigate=Navigate
-BusinessRuleAssets=Business rule assets
-TechnicalRuleAssets=Technical rule assets
-Functions=Functions
-DSLConfigurations=DSL configurations
-Model=Model
-RuleFlows=Processes
-Enumerations=Enumerations
-TestScenarios=Test Scenarios
-XMLProperties=XML, Properties
-OtherAssetsDocumentation=Other assets, documentation
-Admin=Admin
-UserPermission=User permission
-AssetsTreeView=Assets
-Find=Find
-ByCategory=By Category
-ByStatus=By Status
-QA=QA
-TestScenariosInPackages=Test Scenarios in packages
-Analysis=Analysis
-ScenariosForPackage=Scenarios for {0}
-AnalysisForPackage=Analysis for {0}
-AreYouSureCloseWarningUnsaved=Are you sure you want to close this item? Any unsaved changes will be lost.
-CloseAllItems=Close all items
-AreYouSureYouWantToCloseOpenItems=Are you sure you want to close open items?
-LoadingAsset=Loading asset...
-LoadingPackageInformation=Loading package information...
-LoadingSnapshot=Loading snapshot...
-SnapshotLabel=Snapshot: {0}
-WholeNumberInteger=Whole number (integer)
-TrueOrFalse=True or False
-Date=Date
-DecimalNumber=Decimal number
-Text=Text
-FieldName=<b><small>{0}:</small></b>
-AreYouSureYouWantToRemoveTheField0=Are you sure you want to remove the field {0} ?
-AddNewFactType=Add new fact type
-NewType=New type
-EnterNewTypeName=Enter new type name
-TypeNameExistsWarning=The type name [{0}] already exists, please choose another name.
-chooseType=-- choose type --
-FieldNameAttribute=Field name
-Type=Type
-ChangeName=Change name
-NameTakenForModel=The name [{0}] is already taken - please choose another
-ModelNameChangeWarning=Are you sure you want to change the name? Its possible that rules will need to be changed to reflect the new name.
-ChangeFactName=Change fact name
-AreYouSureYouWantToRemoveThisFact=Are you sure you want to remove this fact?
-RemoveThisFactType=Remove this fact type
-RefreshingModel=Refreshing model...
-RemoveThisWholeRestriction=Remove this whole restriction
-AddAFieldToThisNestedConstraint=Add a field to this nested constraint.
-AllOf=all of the following
-AnyOf=any of the following
-RemoveThisNestedRestriction=Remove this (nested) restriction
-RemoveThisItemFromNestedConstraint=Remove this item from nested constraint?
-AddMoreOptionsToThisFieldsValues=Add more options to this fields values.
-FormulaBooleanTip=This is a formula expression that is evaluated to be true or false.
-AddOrBindToCondition=Add a field to this condition, or bind a variable to this fact.
-GiveFieldVarName=Give this field a variable name that can be used elsewhere.
-FactTypes=Fact types:
-Cancel=Cancel
-CreateANewFactTemplate=Create a new fact template
-Name1=Name:
-FactAttributes=Fact attributes:
-SessionExpiredMessage=<i><strong>Your session expired due to inactivity.</strong></i><p/> Please <a href='{0}'>[Log in].</a>
-DecisionTable=Decision table
-ConditionColumns=Condition columns
-ActionColumns=Action columns
-options=(options)
-none=-- none --
-GroupByColumn=Group by column:
-Apply=Apply
-EditThisActionColumnConfiguration=Edit this action column configuration
-CreateANewActionColumn=Create a new action column
-SetTheValueOfAField=Set the value of a field
-SetTheValueOfAFieldOnANewFact=Set the value of a field on a new fact
-TypeOfActionColumn=Type of action column:
-RemoveThisActionColumn=Remove this action column
-AddANewConditionColumn=Add a new condition column
-EditThisColumnsConfiguration=Edit this columns configuration
-RemoveThisConditionColumn=Remove this condition column
-DeleteConditionColumnWarning=Are you sure you want to delete the column for {0} - all data in that column will be removed?
-DeleteActionColumnWarning=Are you sure you want to delete the column for {0} - all data in that column will be removed?
-Metadata=Metadata:
-Attributes=Attributes:
-AddANewAttributeMetadata=Add a new attribute/metadata.
-AddAnOptionToTheRule=Add an option to the rule
-AddMetadataToTheRule=Add Metadata to the rule.
-Metadata1=Metadata:
-Attribute=Attribute:
-AddAttributeMetadata=Add Attribute/Metadata:
-RemoveThisAttribute=Remove this attribute
-RemoveThisMetadata=Remove this metadata
-ConfigureColumnsNote=Configure the columns first, then add rows (rules). A fact model (in the current package) will be needed to provide the facts and fields to configure this decision table.
-Items=Items
-Item=Item
-AddRow=Add row...
-RemoveSelectedRowS=Remove selected row(s)...
-AreYouSureYouWantToDeleteTheSelectedRowS=Are you sure you want to delete the selected row(s)?
-CopySelectedRowS=Copy selected row(s)...
-Modify=Modify
-ConditionColumnConfiguration=Condition column configuration
-ChooseAnExistingPatternThatThisColumnAddsTo=Choose an existing pattern that this column adds to
-Predicate=Predicate
-CalculationType=Calculation type:
-EditTheOperatorThatIsUsedToCompareDataWithThisField=Edit the operator that is used to compare data with this field
-Operator=Operator:
-notNeededForPredicate=(not needed for predicate)
-pleaseSelectAPatternFirst=(please select a pattern first)
-pleaseChooseAFieldFirst=(please choose a field first)
-pleaseSelectAField=(please select a field)
-SetTheOperator=Set the operator
-noOperator=(no operator)
-CreateANewFactPattern=Create a new fact pattern
-isEqualTo=equal to
-isNotEqualTo=not equal to
-isLessThan=less than
-lessThanOrEqualTo=less than or equal to
-greaterThan=greater than
-greaterThanOrEqualTo=greater than or equal to
-orEqualTo=or equal to
-orNotEqualTo=or not equal to
-andNotEqualTo=and not equal to
-andGreaterThan=and greater than
-andLessThan=and less than
-orGreaterThan=or greater than
-orLessThan=or less than
-orGreaterThanOrEqualTo=or greater than (or equal to)
-orLessThanOrEqualTo=or less than (or equal to)
-andGreaterThanOrEqualTo=and greater than (or equal to)
-andLessThanOrEqualTo=and less than (or equal to)
-andContains=and contains
-orContains=or contains
-andMatches=and matches
-orMatches=or matches
-orExcludes=or excludes
-andExcludes=and excludes
-soundsLike=sounds like
-ThereIsNo=The following does not exist
-ThereExists=The following exists
-AnyOf1=Any of the following are true
-Insert=Insert
-LogicallyInsert=Logically insert
-Retract=Retract
-Set=Set
-CallMethod=Call
-LoadingUserPermissions=Loading user permissions...
-WelcomeUser=Welcome: &nbsp;{0}
-SignOut=Sign Out
-LoadingLogMessages=Loading log messages...
-Timestamp=Timestamp
-Message=Message
-ShowRecentLogTip=Showing recent INFO and ERROR messages from the log
-Reload=Reload
-showMoreInfo=[show more info...]
-RenameThisAsset=Rename this asset
-Title=Title:
-CategoriesMetaData=Categories:
-ModifiedOnMetaData=Modified on:
-ModifiedByMetaData=by:
-NoteMetaData=Note:
-CreatedOnMetaData=Created on:
-CreatedByMetaData=Created by:
-FormatMetaData=Format:
-PackageMetaData=Package:
-IsDisabledMetaData=Is Disabled:
-DisableTip=Disables this asset. It will not be included in any processing.
-OtherMetaData=Other meta data ...
-SubjectMetaData=Subject:
-AShortDescriptionOfTheSubjectMatter=A short description of the subject matter.
-TypeMetaData=Type:
-TypeTip=This is for classification purposes.
-ExternalLinkMetaData=External link:
-ExternalLinkTip=This is for relating the asset to an external system.
-SourceMetaData=Source:
-SourceMetaDataTip=A short description or code indicating the source of the rule.
-VersionHistory=Version history ...
-CurrentVersionNumber=Current version number:
-RenameThisItem=Rename this item
-NewNameAsset=New name
-RenameItem=Rename item
-ItemHasBeenRenamed=Item has been renamed
-MoveThisItemToAnotherPackage=Move this item to another package
-CurrentPackage=Current package:
-NewPackage=New package:
-ChangePackage=Change package
-YouNeedToPickADifferentPackageToMoveThisTo=You need to pick a different package to move this to.
-MovedFromPackage=Moved from : {0}
-NotCheckedInYet=<i>Not checked in yet</i>
-InitialCategory=Initial category:
-TypeFormatOfRule=Type (format) of rule:
-FileExtensionTypeFormat=File extension (type/format):
-DSLMappingTip=A dsl is a language mapping from a domain specific language to the rule language.
-NewEnumDoco=An enumeration is a mapping from fields to a list of values. This will mean the rule editor will show a drop down for fields, instead of a text box. The format of this is\: 'FactType.fieldName'\: ['Value1', 'Value2']\nYou can add more mappings by adding in more lines. \nFor example\:\n\n'Person.sex' \: ['M', 'F']\n'Person.rating' \: ['High', 'Low']\n\nYou can also add display aliases (so the value used in the rule is separate to the one displayed\:\n'Person.sex' \: ['M\=Male', 'F\=Female']\nin the above case, the 'M\=Male' means that 'Male' will be displayed as an item in a drop down box, but the value 'M' will be used in the rule.
-InitialDescription=Initial description:
-BusinessRuleGuidedEditor=Business Rule (Guided editor)
-DSLBusinessRuleTextEditor=DSL Business Rule (Text editor)
-DRLRuleTechnicalRuleTextEditor=DRL Rule (Technical rule - text editor)
-DecisionTableSpreadsheet=Decision Table (Spreadsheet)
-DecisionTableWebGuidedEditor=Decision Table (Web - guided editor)
-YouHaveToPickAnInitialCategory=You have to pick an initial category.
-PleaseEnterAFormatFileType=Please enter a format/file type
-AssetNameAlreadyExistsPickAnother=An asset with that name already exists in the chosen package. Please use another name
-emptyNameIsNotAllowed=empty name is not allowed
-NonValidJCRName='{0}' is not valid. '{1}' is not a valid name character
-CreateANewPackage=Create a new package
-CreateANewSubPackage=Create a new subpackage
-ParentPackage=Parent Package
-ImportDRLDesc1=Importing a package from an existing DRL will create the package in the BRMS if it does not already exist. If it does exist, any new rules found will be merged into the package.
-ImportDRLDesc2=Any new rules created will not have any categories assigned initially, but rules and functions will be stored individually (ie normalised). Queries, imports etc will show up in the package configuration.
-ImportDRLDesc3=Any DSLs or models required by the imported package will need to be uploaded separately.
-NameColon=Name:
-DescriptionColon=Description:
-PackageNameTip=The name of the package. Avoid spaces, use underscore instead.
-CreateNewPackageRadio=Create new package
-ImportFromDrlRadio=Import from drl file
-DRLFileToImport=DRL file to import:
-CreatePackage=Create package
-PackageNameCorrectHint=Invalid package name. Please use a name that is of the style [abc] or perhaps [abc.def].
-CreatingPackagePleaseWait=Creating package - please wait...
-upload=upload:
-ImportMergeWarning=Are you sure you want to import this package? If the package already exists in the repository it will be merged.
-ImportingDRLPleaseWait=Importing drl package, please wait, as this could take some time...
-PackageWasImportedSuccessfully=Package was imported successfully.
-UnableToImportIntoThePackage0=Unable to import into the package. [{0}]
-YouDidNotChooseADrlFileToImport=You did not choose a drl file to import !
-YouCanOnlyImportDrlFiles=You can only import '.drl' files.
-WelcomeToGuvnor=Welcome to Guvnor
-BrandNewRepositoryNote=<b>This looks like a brand new repository.<br/>Would you like to install a sample repository?</b>
-YesPleaseInstallSamples=Yes, please install samples
-NoThanks=No thanks
-AboutToInstallSampleRepositoryAreYouSure=About to install sample repository. Are you sure?
-ImportingAndProcessing=Importing and processing...
-RepositoryInstalledSuccessfully=Repository installed successfully.
-BuildPackage=Build package
-ThisWillValidateAndCompileAllTheAssetsInAPackage=This will validate and compile all the assets in a package.
-OptionalSelectorName=(Optional) selector name
-CustomSelector=Custom selector
-SelectorTip=A selector is configured by administrators to choose what assets form part of a package build. If no selector is chosen, the whole package will be built. This is configured on the server side. See the WEB-INF/classes/selectors.properties for details.
-BuildBinaryPackage=Build binary package:
-BuildingPackageNote=Building a package will collect all the assets, validate and compile into a deployable package.
-CreateSnapshotForDeployment=Create snapshot for deployment
-TakeSnapshot=Take snapshot:
-AssemblingPackageSource=Assembling package source...
-ViewingSourceFor0=Viewing source for: {0}
-ReadOnlySourceNote=THIS IS READ ONLY - you may copy and paste, but not edit.
-ValidatingAndBuildingPackagePleaseWait=Validating and building package, please wait...
-PackageBuiltSuccessfully=Package built successfully. Last modified on 
-DownloadBinaryPackage=Download binary package
-Format=Format
-Message1=Message
-LoadingExistingSnapshots=Loading existing snapshots...
-CreateASnapshotForDeployment=Create a snapshot for deployment.
-SnapshotDescription=<i>A package snapshot is a read only 'locked in' and labelled view of a package at a point in time, which can be used for deployment.</i><b>You should build the package before taking a snapshot, generally.</b>
-ChooseOrCreateSnapshotName=Choose or create snapshot name:
-NEW=NEW
-Comment=Comment:
-CreateNewSnapshot=Create new snapshot
-YouHaveToEnterOrChoseALabelNameForTheSnapshot=You have to enter or choose a label (name) for the snapshot.
-TheSnapshotCalled0WasSuccessfullyCreated=The snapshot called: {0} was successfully created.
-ConfigurationSection=Configuration
-Configuration=Configuration:
-CategoryRules=Category Rules:
-SaveAndValidateConfiguration=Save and validate configuration
-BuildAndValidate=Build and validate
-InformationAndImportantURLs=Information and important URLs
-DateCreated=Date created:
-ShowPackageSource=Show package source
-URLForPackageSource=URL for package source:
-URLSourceDescription=Use this URL to download the source, or in the 'runtime agent' to access the rules in source form
-URLForPackageBinary=URL for package binary:
-UseThisUrlInTheRuntimeAgentToFetchAPreCompiledBinary=Use this url in the 'runtime agent' to fetch a pre compiled binary.
-URLForRunningTests=URL for running tests:
-URLRunTestsRemote=Use this url to run the scenarios remotely and collect results.
-ChangeStatusDot=Change status.
-Tip=Tip...
-AllRulesForCategory0WillNowExtendTheRule1=All rules for Category: [{0}] will now extend the rule: [{1}]
-RemoveThisCategoryRule=Remove this Category Rule?
-AddCatRuleToThePackage=Add a Category Rule to the Package, to automatically add rule LHS to all rules in this category.
-CategoryParentRules=Category parent rules
-CatRulesInfo=This allows you to set 'parent rules' for a category. Any rules appearing in the given category will 'extend' the rule specified - ie inherit the conditions/LHS.
-AddACategoryRuleToThePackage=Add a Category Rule to the Package
-CreateCategoryRule=Create Category Rule.
-AllTheRulesInFollowingCategory=All the rules in category:
-WillExtendTheFollowingRuleCalled=Will extend the rule called:
-ThereWereErrorsValidatingThisPackageConfiguration=There were errors validating this package configuration.
-ViewErrors=View errors
-Rename=Rename
-AreYouSureYouWantToArchiveRemoveThisPackage=Are you sure you want to archive (remove) this package?
-RenameThePackage=Rename the package
-RenamePackageTip=<i>Rename the package. A new unique name is required.</i>
-NewPackageNameIs=New package name:
-PackageRenamedSuccessfully=Package renamed successfully.
-CopyThePackage=Copy the package
-CopyThePackageTip=<i>Copy the package and all its assets. A new unique name is required.</i>
-NotAValidPackageName=Not a valid package name.
-PackageCopiedSuccessfully=Package copied successfully.
-SavingPackageConfigurationPleaseWait=Saving package configuration. Please wait ...
-PackageConfigurationUpdatedSuccessfullyRefreshingContentCache=Package configuration updated successfully, refreshing content cache...
-RefreshingPackageData=Refreshing package data...
-ImportedTypes=Imported types
-FactTypesJarTip=Fact types are classes from 'jar' files that have been uploaded to the current package.
-AreYouSureYouWantToRemoveThisFactType=Are you sure you want to remove this fact type?
-Globals=Globals
-GlobalTypesAreClassesFromJarFilesThatHaveBeenUploadedToTheCurrentPackage=Global types are classes from 'jar' files that have been uploaded to the current package.
-AreYouSureYouWantToRemoveThisGlobal=Are you sure you want to remove this global?
-AdvancedView=Advanced view
-SwitchToTextModeEditing=Switch to text mode editing.
-SwitchToAdvancedTextModeForPackageEditing=Switch to advanced text mode for package editing?
-BasicView=Basic view
-SwitchToGuidedModeEditing=Switch to guided mode editing.
-SwitchToGuidedModeForPackageEditing=Switch to guided mode for package editing? This is not always possible with some advanced package configurations. 
-ChooseAFactType=Choose a fact type
-loadingList=loading list ....
-TypesInThePackage=Types in the package
-IfNoTypesTip=If no types appear in the list, create a model asset, and upload a jar file to it for this package. The jar file should contain the .class files for the types needed by the rules only.
-ChooseClassType=Choose class type:
-GlobalName=Global name:
-EnteringATypeClassName=Entering a type class name
-EnterTypeNameTip=You should only need to do this if a fact class is on the BRMS classpath itself. Otherwise it should be in the list above.
-advancedClassName=(advanced) class name:
-YouMustEnterAGlobalVariableName=You must enter a global variable name.
-Packages=Packages
-NewPackage1=New Package
-NewSubPackage=New SubPackage
-NewRule=New Rule
-UploadPOJOModelJar=Upload POJO Model jar
-NewModelArchiveJar=New model archive (jar)
-NewDeclarativeModel=New Declarative Model
-NewDeclarativeModelUsingGuidedEditor=New declarative model (using guided editor).
-NewFunction=New Function
-CreateANewFunction=Create a new function
-NewDSL=New DSL
-CreateANewDSLConfiguration=Create a new DSL configuration
-NewRuleFlow=New RuleFlow
-CreateANewRuleFlow=Create a new RuleFlow
-NewEnumeration=New Enumeration
-CreateANewEnumerationDropDownMapping=Create a new enumeration (drop down mapping).
-NewTestScenario=New Test Scenario
-CreateATestScenario=Create a test scenario.
-NewFile=New File
-CreateAFile=Create a file.
-RebuildAllPackageBinariesQ=Rebuild all package binaries
-RebuildConfirmWarning=You should only run this if Drools has been upgraded recently (and you have been experiencing errors). This may take some time - are you sure you want to do this?
-RebuildingPackageBinaries=Rebuilding package binaries...
-TipAuthEnable=TIP: To enable or disable authorization, open components.xml in WEB-INF
-EnablingAuthorization=Enabling authorization
-EnablingAuthPopupTip=In components.xml, edit enable-role-based-authorization attribute
-UserName1=User name
-Administrator=Administrator
-HasPackagePermissions=Has package permissions
-HasCategoryPermissions=Has category permissions
-Reload1=Reload
-CurrentlyConfiguredUsers=Currently configured users:
-CreateNewUserMapping=Create new user mapping
-EnterNewUserName=Enter new userName
-NewUserName=New user name
-DeleteSelectedUser=Delete selected user
-AreYouSureYouWantToDeleteUser0=Are you sure you want to delete user [{0}]
-LoadingUsersPermissions=Loading users permissions...
-EditUser0=Edit user: {0}
-UserAuthenticationTip=Users are authenticated by a directory service, here you can define Guvnor specific permissions as needed.
-Updating=Updating...
-ThisUserIsAnAdministrator=This user is an administrator:
-RemoveAdminRights=Remove Admin rights
-AreYouSureYouWantToRemoveAdministratorPermissions=Are you sure you want to remove Administrator permissions?
-RemovePermission=Remove permission.
-AreYouSureYouWantToRemovePermission0=Are you sure you want to remove permission [{0}] ?
-AddANewPermission=Add a new permission
-Loading=Loading...
-PermissionType=Permission type:
-pleaseChoose1=-- please choose --
-MakeThisUserAdmin=Make this user admin:
-SelectCategoryToProvidePermissionFor=Select category to provide permission for:
-SelectPackageToApplyPermissionTo=Select package to apply permission to:
-Yes=Yes
-PermissionDetails=Permission details
-PermissionDetailsTip=The 'analyst' permission applies to a category(s), and their sub categories. A user with only 'analyst' permissions will see a subset of the user interface. 'package' permissions apply to a specific package. A 'package.admin' can build and create snapshots, but a 'package.developer' can only edit items inside their specified packages.
-TheVariableName0IsAlreadyTaken=The variable name [{0}] is already taken.
-BindTheFieldCalled0ToAVariable=Bind the field called [{0}] to a variable:
-BindTheExpressionToAVariable=Bind the Expression to a new variable:
-ShowSubFields=Show sub fields...
-ApplyAConstraintToASubFieldOf0=Apply a constraint to a sub-field of [{0}]:
-AddFieldsToThisConstraint=Add fields to this constraint
-AddARestrictionOnAField=Add a restriction on a field
-AllOfAnd=All of (And)
-AnyOfOr=Any of (Or)
-MultipleFieldConstraints=Multiple field constraints
-MultipleConstraintsTip=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.
-MultipleFieldConstraint=Multiple field constraint
-ModifyConstraintsFor0=Modify constraints for {0}
-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
-Clear=Clear
-Properties=Properties
-QA1=QA
-AttributeSearch=Attribute search ...
-CreatedBy=Created by
-Format1=Format
-Subject=Subject
-Type1=Type
-ExternalLink=External link
-Source=Source
-Description1=Description
-LastModifiedBy=Last modified by
-CheckinComment=Checkin comment
-WildCardsSearchTip=Use * for wildcards, separate different options with a comma.
-AfterColon=After:
-BeforeColon=Before:
-Before=Before
-DateCreated1=Date created
-LastModified1=Last modified
-Search=Search
-NameSearch=Name search ...
-TextSearch=Text search ...
-SearchFor=Search for:
-Search1=Search
-PleaseEnterSomeSearchText=Please enter some search text
-FindItemsWithANameMatching=Find items with a name matching:
-IncludeArchivedAssetsInResults=Include archived assets in results:
-EnterSearchString=Enter the name or part of a name. Alternatively, use the categories to browse.
-SearchingDotDotDot=Searching...
-ThereAreMoreItemsTryNarrowingTheSearchTerms=There are more items... try narrowing the search terms..
-Metadata2=Metadata:
-Attributes1=Attributes:
-RemoveThisRuleOption=Remove this rule option?
-RuleDocHint=This is rule documentation. Human friendly descriptions of the business logic.
-documentationDefault=<documentation>
-RuleFlowUploadTip=Ruleflows allow flow control between rules. The eclipse plugin provides a graphical editor. Upload ruleflow .rf files for inclusion in this package.
-CalculatingSource=Calculating source...
-ViewingDiagram=Viewing diagram
-Parameters=Parameters
-CouldNotCreateTheRuleflowDiagramItIsPossibleThatTheRuleflowFileIsInvalid=Could not create the ruleflow diagram. It is possible that the ruleflow file is invalid.
-AddAConditionToThisRule=Add a condition to this rule.
-AddAnOptionToTheRuleToModifyItsBehaviorWhenEvaluatedOrExecuted=Add an option to the rule, to modify its behavior when evaluated or executed.
-Metadata3=Metadata:
-Attribute1=Attribute:
-AddXToListY=Add <b>[{0}]</b> to the list <b>[{1}]</b>
-RemoveThisAction=Remove this action.
-AddAConditionToTheRule=Add a condition to the rule...
-ChooseFactType=Choose fact type...
-Fact1=Fact
-ChooseOtherConditionType=Choose other condition type...
-FreeFormDrl=Free form drl
-ExpressionEditor=Expression editor
-ConditionTypeButton=Condition type
-ChooseDotDotDot=Choose...
-DSLSentence=DSL sentence
-NoModelTip=Note: No model has been defined.<br/>Tip: You will want to import or define a model for this user interface to work !
-AddANewAction=Add a new action...
-NotifyEngineOfChanges=Notify engine of changes
-NotifyEngineOfChangesUpdateModify=Notify engine of changes (update/modify)
-ModifyEngineTip=Modify a field on a fact, and notify the engine to re-evaluate rules.\nWARNING\: this can cause infinite loops - use with care.
-SetFieldValues=Set field values
-RetractTheFact=Retract the fact
-AddAnItemToACollection=Add an item to a collection:
-InsertANewFact=Insert a new fact
-LogicallyAssertAFactTheFactWillBeRetractedWhenTheSupportingEvidenceIsRemoved=Logically assert a fact - the fact will be retracted when the supporting evidence is removed.
-LogicallyInsertANewFact=Logically insert a new fact
-CallAMethodOnFollowing=Call a method on
-AddFreeFormDrl=Add free form drl
-FreeFormAction=Free form action
-ThisIsADrlExpressionFreeForm=This is a drl expression (free form)
-RemoveThisENTIREConditionAndAllTheFieldConstraintsThatBelongToIt=Remove this ENTIRE condition, and all the field constraints that belong to it.
-RemoveThisEntireConditionQ=Remove this entire condition?
-CanTRemoveThatItemAsItIsUsedInTheActionPartOfTheRule=Can't remove that item as it is used in the action part of the rule.
-NewBusinessRuleGuidedEditor=New Business Rule (Guided editor)
-NewRuleUsingDSL=New Rule using DSL
-NewDRL=New DRL
-NewDecisionTableSpreadsheet=New Decision Table (Spreadsheet)
-NewDecisionTableGuidedEditor=New Decision Table (Guided editor)
-TestScenario=Test Scenario
-ViewSource=View source
-Validate=Validate
-ValidatingItemPleaseWait=Validating item, please wait...
-ValidationResultsDotDot=Validation results...
-ItemValidatedSuccessfully=Item validated successfully.
-ValidationResults=Validation results
-packageConfigurationProblem=[package configuration problem]
-SavingPleaseWait=Saving, please wait...
-FailedToCheckInTheItemPleaseContactYourSystemAdministrator=Failed to check in the item. Please contact your system administrator.
-RefreshingContentAssistance=Refreshing content assistance...
-RefreshingItem=Refreshing item...
-WARNINGUnCommittedChanges=WARNING: Un-committed changes.
-Discard=Discard
-AreYouSureYouWantToDiscardChanges=Are you sure you want to discard changes?
-ScenariosForPackage1=Scenarios for package:
-RunAllScenarios=Run all scenarios
-BuildingAndRunningScenarios=Building and running scenarios...
-EXPECT=EXPECT
-DeleteItem=Delete item.
-AreYouSureYouWantToRemoveThisItem=Are you sure you want to remove this item?
-GIVEN=GIVEN
-AddInputDataAndExpectationsHere=Add input data and expectations here.
-MoreDotDot=More...
-AddAnotherSectionOfDataAndExpectations=Add another section of data and expectations.
-configuration=(configuration)
-globals=(globals)
-AddANewGlobalToThisScenario=Add a new global to this scenario.
-NewGlobal=New global
-TheName0IsAlreadyInUsePleaseChooseAnotherName=The name [{0}] is already in use. Please choose another name.
-GlobalColon=Global:
-AddANewDataInputToThisScenario=Add a new data input to this scenario.
-NewInput=New input
-YouMustEnterAValidFactName=You must enter a valid fact name.
-TheFactName0IsAlreadyInUsePleaseChooseAnotherName=The fact name [{0}] is already in use. Please choose another name.
-FactName=Fact name:
-InsertANewFact1=Insert a new fact:
-ModifyAnExistingFactScenario=Modify an existing fact:
-RetractAnExistingFactScenario=Retract an existing fact:
-AddANewExpectation=Add a new expectation.
-NewExpectation=New expectation
-Rule=Rule:
-FactValue=Fact value:
-AnyFactThatMatches=Any fact that matches:
-DeleteTheExpectationForThisFact=Delete the expectation for this fact.
-AreYouSureYouWantToRemoveThisExpectation=Are you sure you want to remove this expectation?
-EnterRuleNameScenario=Enter name of rule, or pick from a list. If there are a very large number of rules, you will need to type in the name.
-showListButton=(show list)
-loadingList1=(loading list)
-ValueFor0=Value for: {0}
-globalForScenario=global [{0}]
-modifyForScenario=modify [{0}]
-insertForScenario=insert [{0}]
-ChooseAFieldToAdd=Choose a field to add
-RemoveThisRow=Remove this row.
-AreYouSureYouWantToRemoveRow0=Are you sure you want to remove row [{0}]?
-RemoveTheColumnForScenario=Remove the column for [{0}]
-CanTRemoveThisColumnAsTheName0IsBeingUsed=Can't remove this column as the name [{0}] is being used.
-AreYouSureYouWantToRemoveColumn0=Are you sure you want to remove column [{0}]?
-AddANewRule=Add a new rule.
-RemoveSelectedRule=Remove selected rule.
-PleaseChooseARuleToRemove=Please choose a rule to remove.
-AllowTheseRulesToFire=Allow these rules to fire:
-PreventTheseRulesFromFiring=Prevent these rules from firing:
-AllRulesMayFire=All rules may fire
-SelectRule=Select rule
-UseRealDateAndTime=Use real date and time
-UseASimulatedDateAndTime=Use a simulated date and time
-property0RulesFiredIn1Ms={0} rules fired in {1}ms.
-ShowRulesFired=Show rules fired
-RulesFired=Rules fired:
-currentDateAndTime=<current date and time>
-BadDateFormatPleaseTryAgainTryTheFormatOf0=Bad date format - please try again (try the format of {0}).
-scenarioFactTypeHasValues={0} [{1}] has values:
-AFactOfType0HasValues=A fact of type [{0}] has values:
-AddAFieldToThisExpectation=Add a field to this expectation.
-equalsScenario=equals
-doesNotEqualScenario=does not equal
-RemoveThisFieldExpectation=Remove this field expectation.
-AreYouSureYouWantToRemoveThisFieldExpectation=Are you sure you want to remove this field expectation?
-ActualResult=(Actual: {0})
-ExpectRules=Expect rules
-firedAtLeastOnce=fired at least once
-didNotFire=did not fire
-firedThisManyTimes=fired this many times:
-RemoveThisRuleExpectation=Remove this rule expectation.
-AreYouSureYouWantToRemoveThisRuleExpectation=Are you sure you want to remove this rule expectation?
-RetractFacts=Retract facts
-RemoveThisRetractStatement=Remove this retract statement.
-RunScenario=Run scenario
-RunScenarioTip=Run this scenario. This will build the package if it is not already built (which may take some time).
-BuildingAndRunningScenario=Building and running scenario
-packageConfigurationProblem1=[package configuration problem]
-MaxRuleFiringsReachedWarning=WARNING: The maximum number of rule firings ({0}) was reached. It is likely that there is an infinite loop occurring.
-SummaryColon=Summary:
-AuditLogColon=Audit log:
-ShowEventsButton=Show events
-ViewingSnapshot=Viewing snapshot:
-ForPackage=For package:
-clickHereToDownloadBinaryOrCopyURLForDeploymentAgent=click here to download binary (or copy URL for deployment agent)
-DeploymentURL=Deployment URL:
-SnapshotCreatedOn=Snapshot created on:
-CommentColon=Comment:
-SnapshotDeleteConfirm=Are you sure you want to delete the snapshot labelled [{0}] from the package [{1}] ?
-SnapshotWasDeleted=Snapshot was deleted.
-CopySnapshotText=Copy snapshot {0}
-ExistingSnapshots=To an existing snapshot or a new snapshot:
-NewSnapshotNameIs=New Snapshot name:
-CreatedSnapshot0ForPackage1=Created snapshot [{0}] for package [{1}]
-Snapshot0ForPackage1WasCopiedFrom2=Snapshot [{0}] for package [{1}] was copied from [{2}]
-PleaseEnterANonExistingSnapshotName=Please enter a non existing Snapshot name
-SnapshotListingFor=Snapshot listing for:
-SnapshotItems=Snapshot items
-NewSnapshot=New snapshot
-SnapshotRebuildWarning=Rebuilding the snapshot binaries will take some time, and only needs to be done if the BRMS itself has been updated recently. This will also cause the rule agents to load the rules anew. Are you sure you want to do this?
-RebuildingSnapshotsPleaseWaitThisMayTakeSomeTime=Rebuilding snapshots. Please wait, this may take some time...
-SnapshotsWereRebuiltSuccessfully=Snapshots were rebuilt successfully.
-Type2=Type
-Priority= Priority:
-ValueRuleFlow= Value:
-ManageStatuses=Manage statuses
-StatusTagsAreForTheLifecycleOfAnAsset=Status tags are for the lifecycle of an asset.
-CurrentStatuses=Current statuses:
-NewStatus=New status
-PleaseSelectAStatusToRename=Please select a status to rename.
-PleaseSelectAStatusToRemove=Please select a status to remove.
-AddNewStatus=Add new status:
-StatusRemoved=Status removed.
-PleaseEnterTheNameYouWouldLikeToChangeThisStatusTo=Please enter the name you would like to change this status to
-StatusRenamed=Status renamed.
-LoadingStatuses=Loading statuses...
-ChooseOne=-- Choose one --
-UpdatingStatus=Updating status...
-CreateNewStatus=Create new status
-StatusName=Status name
-CanTHaveAnEmptyStatusName=Can't have an empty status name.
-CreatingStatus=Creating status
-StatusWasNotSuccessfullyCreated=Status was not successfully created.
-UnableToGetContentAssistanceForThisRule=Unable to get content assistance for this rule.
-UnableToValidatePackageForSCE=Unable to validate package configuration (eg, DSLs, models) for [{0}]. Suggestion completions may not operate correctly for graphical editors for this package.
-Detail=Detail:
-VersionHistory1=Version history
-NoHistory=No history.
-View=View
-LoadingVersionFromHistory=Loading version
-VersionNumber0Of1=Version number [{0}] of [{1}]
-RestoreThisVersion=Restore this version
-RestoreThisVersionQ=Restore this version?
-NoteNewPackageDrlImportWarning=Note:
-PleaseEnterANameForFact=Please enter a name.
-PleaseEnterANameThatIsNotTheSameAsTheFactType=Please enter a name that is not the same as the fact type.
-ThatNameIsInUsePleaseTryAnother=That name is in use, please try another.
-Browse=Browse
-KnowledgeBases=Knowledge Bases
-DefaultValue=Default value:
-UseRowNumber=Use row number
-ReverseOrder=Reverse order
-HideThisColumn=Hide this column
-PleaseSelectOrEnterField=Please select or enter field
-NotifyNoSelectedOrEnteredField=Field has not been selected or entered
-PleaseSelectAnOperator=Please select an operator
-NotifyNoSelectedOperator=Operator has not been selected
-January=January
-February=February
-March=March
-April=April
-May=May
-June=June
-July=July
-August=August
-October=October
-September=September
-November=November
-December=December
-SorryAnItemOfThatNameAlreadyExistsInTheRepositoryPleaseChooseAnother=Sorry, an item of that name already exists in the repository. Please choose another.
-ALiteralValueMeansTheValueAsTypedInIeItsNotACalculation=A literal value means the value as typed in (ie it is not a calculation).
-WHEN=WHEN
-THEN=THEN
-AddAnActionToThisRule=Add an action to this rule.
-optionsRuleModeller=(options)
-clickToAddPatterns=(click to add patterns...)
-ChangeFieldValuesOf0=Change field values of {0}...
-Retract0=Retract {0}
-Modify0=Modify {0}...
-InsertFact0=Insert fact {0}...
-LogicallyInsertFact0=Logically Insert fact {0}...
-Append0ToList1=Append {0} to list: {1}
-CallMethodOn0=Call method on {0}...
-hide=(hide)
-RemoveThisBlockOfData=Remove this block of data
-AreYouSureYouWantToRemoveThisBlockOfData=Are you sure you want to remove this block of data?
-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.
-ImportedDRLContainsNoNameForThePackage=Imported DRL contains no name for the package. Please name the package.
-InitialisingInfoFor0PleaseWait=Initialising info for {0}, please wait...
-SavedOK=(Saved OK)
-Actions=Actions...
-ChangeSet=Change Set:
-URLToChangeSetForDeploymentAgents=URL to change set for deployment agents.
-FrozenAreas=Frozen areas...
-FrozenExplanation=Frozen areas mean that the rule can only have its fields edited, no extra conditions added or removed or the structure changed.
-FreezeAreasForEditing=Freeze areas for editing:
-Conditions=Conditions
-smallCommentBy0On1Small=<small>Comment by {0} on {1}:</small>
-AddADiscussionComment=Add a discussion comment
-EraseAllComments=Erase all comments
-EraseAllCommentsWarning=Erase ALL discussion items? NOTE that this CAN NOT be undone. Are you sure?
-Discussion=Discussion
-SaveAndClose=Save and close
-Predicates=Predicates
-PredicatesInfo=Predicates are expressions that resolve to a true or a false. You can place $param in the field and the value from the cell will be substituted in place of param. For example [this.callMethod($param)]
-NewBPELPackage=New BPEL package
-CreateANewBPELPackage=Create a new BPEL package
-OpenEditorInNewWindow=Open editor in new window.
-BPELPackages=BPEL Packages
-ValueCanNotBeEmpty=Value can not be empty
-Value=Value
-property0ModifiedOn12={0} modified on: {1} ({2})
-isContainedInTheFollowingList=is contained in the a (comma separated) list
-RecentlyOpened=Recently Opened
-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
-PleaseSelectARow=Please select a row
-AddRowBeforeSelectedRow=Add row before selected row...
-CreateNewAsset=Create new\: 
-CreateLinkedAsset=Import asset from global area\: 
-CreateLinkedAssetFromUUID=UUID of the existing asset\: 
-NoteNewLinkedAsset=NOTE\: 
-NewLinkedAssetDesc1=This will import a shared asset from global area. 
-NewLinkedAssetDesc2=you need to open the existing asset that you want to link to, copy and paste its 
-NewLinkedAssetDesc3=UUID to the text box above.
-BuildWholePackageTip=This will build the whole package.  
-BuiltInSelectorTip=The built-in selector allows you to choose what assets form part of a package build according to asset's status, category and meta data. Please use a custom selector if the built-in selector does not satisfy your requirement.
-BuildWholePackage=Build whole package  
-BuildPackageUsingBuiltInSelector=Use built-in selector 
-BuildPackageUsingCustomSelector=Use custom selector  
-BuildPackageUsingFollowingAssets=Build package using following assets:
-BuildPackageUsingBuiltInSelectorStatus=When status :
-BuildPackageUsingBuiltInSelectorCat=When category :
-BuiltInSelector=Built-in selector
-BuildPackageUsingCustomSelectorSelector=Custom Selector :
-CreateInPackage=Create in Package\: 
-CreateInGlobalArea=Create in Global area
-AssetToImport=Asset to import\: 
-Older0=Older : {0}
-Newer0=Newer: {0}
-TypeAdded=Added
-TypeArchived=Archived
-TypeDeleted=Deleted
-TypeRestored=Restored
-TypeUpdated=Updated
-Severity=Severity
-CleaningLogMessages=Cleaning log messages...
-Clean=Clean
-MoveUp=Move up
-MoveDown=Move down
-clickToAddPattern=click to add pattern...
-Top=Top
-Bottom=Bottom
-Line0=Line {0}
-PositionColon=Position:
-ConditionPositionExplanation=Select the position where the Condition will be added.
-ActionPositionExplanation=Select the position where the Action will be added.
-AddAConditionBelow=Add a condition below.
-AddAnActionBelow=Add an action below.
-openSelectedToSingleTab=[open selected to single tab]
-SaveAllChanges=Save all changes
-SaveAndCloseAll=Save and close all
-DescriptionAndDiscussion=Description and discussion
-Show=Show
-Asset0IsAlreadyOpenPleaseCloseItBeforeOpeningMultiview=Asset {0} is already open, please close it before opening multiview.
-PromoteToGlobal=Promote to Global
-PromoteAreYouSure=Are you sure you want to promote this item to global area?
-Promoted=The item has been moved to global area. 
-ItemAlreadyInGlobalArea=The item is already in global area.
-VerifyingItemPleaseWait=Verifying item, please wait.
-Verify=Verify
-VerificationReport=Verification report
-CanNotSwitchToBasicView=There are errors in this view. Can not switch to guided mode until the errors are resolved
-Causes=Causes
-ImpactedRules=Impacted rules
-SelectWorkingSets=Select Working Sets
-WorkingSets=WorkingSets
-NewWorkingSet=New WorkingSet
-CreateWorkingSet=Create a WorkingSet
-ErrorLoadingRules=Error loading rules.
-WorkingSetName=WorkingSet name
-CopyTheWorkingSet=Copy the WorkingSet
-CopyTheWorkingSetTip=<i>Copy the WorkingSet and all its facts and restrictions. A new unique name is required.</i>
-NewWorkingSetNameIs=New WorkingSet name:
-NotAValidWorkingSetName=Not a valid WorkingSet name.
-WorkingSetCopiedSuccessfully=WorkingSet copied successfully.
-RenameTheWorkingSet=Rename the WorkingSet.
-RenameTheWorkingSetTip=<i>Rename the WorkingSet. A new unique name is required.</i>
-WorkingSetRenamedSuccessfully=WorkingSet successfully renamed.
-ConstraintsSection=Constraints Section
-AddNewConstraint=Add New Constraint
-removeConstraint=Remove Constraint
-AElementToDelInCollectionList=Delete element in the list
-AElementToAddInCollectionList=Add element to the list
-GuidedList=Guided list
-AGuidedList=A guide list
-AGuidedListTip=Helps you enter data to a collect/list
-AddElementBelow=Add an element below
-MoveUpList=Move element in list up
-MoveDownListMove= element in list down
-theRuleHasErrorsOrWarningsDotDoYouWantToContinue=The Rule has errors or warnings. Do you want to continue?
-RulesVerification=Rules Verification
-RulesVerificationManager=Rules Verification Manager
-EditRulesVerificationConfiguration=Edit Rules Verification Configuration
-AutomaticVerification=Automatic Verification
-Enabled=Enabled
-NewRuleTemplate=New rule template
-TemplateKey=Template key
-AllChangesHaveBeenSaved=All changes have been saved
-TemplateEditor=Template Editor
-TemplateData=Template Data
-ActivateRuleFlowGroup=Activate rule flow group 
-FillInColumnWithValue=Please fill in this column with a {0} value.
-LoadTemplateData=Load Template Data
-RepositoryConfiguration=Repository Configuration
-RepositoryConfig=Repository Config
-ManageRepositoryConfig=Manage Repository Configuration
-ManageRepositoryConfigDesc=Generate configuration for your RDBMS
-SelectRdbmsType=Select RDBMS type:
-UseJndi=Use JNDI:
-PleaseSelectRdbmsType=Please select RDBMS type 
-PleaseEnterDriver=Please enter the driver
-PleaseEnterUrl=Please enter the URL
-PleaseEnterUserName=Please enter user name
-PleaseEnterJndiName=Please enter JNDI name
-PleaseEnterPassword=Please enter password
-GenerateRepositoryConfiguration=Generate repository config
-RepositoryXml=repository.xml
-UnableToProcessRepositoryConfiguration=Unable to Process Repository Configuration
-SaveRepo=Save Configuration
-SaveTheRepositoryConfig=Save the configuration?
-SaveRepoInfo=Save the repository configuration to a file. Alternatively you can cut/paste it from this page. Don't forget to back up your repository (Import/Export) before replacing your existing repository.xml and restart your server for changes to take effect.
+ChooseAPatternThatThisColumnAddsDataTo=Choose a pattern that this column adds data to
+Pattern=Pattern:
+Assets=Assets
+CreateNew=Create New
+Category=Category
+CategoryColon=Category:
+RemoveThisItem=Remove this item?
+AddAnotherFieldToThisSoYouCanSetItsValue=Add another field to this so you can set its value.
+ChooseAMethodToInvoke=Choose a method to invoke
+AddField=Add field
+EditTheFieldThatThisColumnOperatesOn=Edit the field that this column operates on
+Field=Field:
+ValueListsExplanation=Value lists are an optional comma separated list of values to show as a drop down.
+ValueList=Value list
+optionalValueList=(optional) value list:
+ColumnHeaderDescription=Column header (description):
+ApplyChanges=Apply changes
+YouMustEnterAColumnHeaderValueDescription=You must enter a column header value (description)
+ThatColumnNameIsAlreadyInUsePleasePickAnother=That column name is already in use - please pick another
+OK=OK
+pleaseChooseFactType=(please choose fact type)
+ChooseExistingPatternToAddColumnTo=Choose existing pattern to add column to:
+ORwithEmphasis=<i><b>---OR---</i></b>
+CreateNewFactPattern=Create new fact pattern
+NewFactSelectTheType=New fact - select the type
+FactType=Fact type:
+name=name:
+AddAField=Add a field
+ColumnConfigurationSetAFieldOnAFact=Column configuration (set a field on a fact)
+ChooseABoundFactThatThisColumnPertainsTo=Choose a bound fact that this column pertains to
+UpdateEngineWithChanges=Update engine with changes:
+UpdateFact=Update fact
+UpdateDescription=Checking this will tell the engine that the value has changed. This will cause the rules that depend on it to be re-evaluated. Use with care !
+pleaseChooseAFactPatternFirst=(please choose a fact pattern first)
+ChooseFact=Choose fact:
+pleaseChooseABoundFactForThisColumn=(please choose a bound fact for this column)
+setterLabel={0} value of {1}
+statusIs=<i>Status: [{0}]</i>
+SaveChanges=Save changes
+CommitAnyChangesForThisAsset=Commit any changes for this asset.
+Copy=Copy
+CopyThisAsset=Copy this asset.
+Archive=Archive
+ArchiveThisAssetThisWillNotPermanentlyDeleteIt=Archive this asset. This will not permanently delete it.
+AreYouSureYouWantToArchiveThisItem=Are you sure you want to archive this item?
+ArchivedItemOn=Archived Item on :
+Delete=Delete
+DeleteAssetTooltip=Permanently delete this asset. This will only be enabled before the asset is checked in.
+DeleteAreYouSure=Are you sure you want to permanently delete this (unversioned) item?
+ChangeStatus=Change status
+ChangeStatusTip=Change the status of this asset.
+CopyThisItem=Copy this item
+NewName=New name:
+CreateCopy=Create copy
+AssetNameMustNotBeEmpty=Asset name must not be empty.
+CreatedANewItemSuccess=Created a new item called [{0}] in package: [{1}] successfully.
+CheckInChanges=Check in changes.
+Fact=Fact:
+FieldValue=Field value
+LiteralValue=Literal value
+LiteralValTip=A literal value means the constraint is directly against the value that you type (ie. what you see on screen).
+Literal=Literal
+AdvancedSection=<i>Advanced</i>
+Formula=Formula
+FormulaTip=A formula is used when values are calculated, or a variable is used.
+Administration=Administration
+CategoryManager=Category Manager
+ArchivedManager=Archived Manager
+StateManager=State Manager
+ImportExport=Import Export
+EventLog=Event Log
+UserPermissionMappings=User Permission mappings
+About=About
+WebDAVURL=WebDAV URL:
+Version=Version
+Errors=Errors
+Warnings=Warnings
+Notes=Notes
+ShowFactUsages=Show fact usages...
+FactUsages=Fact usages
+FieldsUsed=<i>Fields used:</i>
+ShowRulesAffected=<i>Show rules affected ...</i>
+RulesAffected=<i>Rules affected:</i>
+Reason=Reason
+Cause=Cause
+AnalysingPackage=<b>Analysing package: {0}</b>
+RunAnalysis=Run analysis
+AnalysingPackageRunning=Analysing package...
+ArchivedItems=<b>Archived items</b>
+RestoreSelectedPackage=Restore selected package
+PermanentlyDeletePackage=Permanently delete package
+AreYouSurePackageDelete=Are you sure you want to permanently delete this package? This can not be undone.
+ArchivedPackagesList=Archived packages
+RestoreSelectedAsset=Restore selected asset
+PleaseSelectAnItemToRestore=Please select an item to restore.
+ItemRestored=Item restored.
+DeleteSelectedAsset=Delete selected asset
+PleaseSelectAnItemToPermanentlyDelete=Please select an item to permanently delete.
+AreYouSureDeletingAsset=Are you sure you want to permanently delete this asset ? This can not be undone.
+ItemDeleted=Item deleted.
+ArchivedAssets=Archived assets
+PackageDeleted=Package deleted
+PackageRestored=Package restored.
+noArchivedPackages=-- no archived packages --
+analysisResultSummary=<b>{0}</b> ({1} items).
+Upload=Upload
+UploadNewVersion=Upload new version:
+Download=Download
+DownloadCurrentVersion=Download current version:
+FileWasUploadedSuccessfully=File was uploaded successfully.
+UnableToUploadTheFile=Unable to upload the file.
+Uploading=Uploading...
+AddANewCategory=Add a new category.
+RemoveThisCategory=Remove this category
+SelectCategoryToAdd=Select category to add
+ShowingNofXItems=Showing X items out of Y.
+NItems=X items.
+refreshList=[refresh list]
+openSelected=[open selected]
+Opening=Opening:
+Next=Next ->
+Previous=<- Previous
+goToFirst=(go to first)
+ImportOrExport=<b>Import/Export</b>
+ImportFromAnXmlFile=Import from an xml file
+ExportToAZipFile=Export to a zip file
+Export=Export
+Import=Import
+ImportConfirm=Are you sure you want to import? This will erase any content in the repository currently?
+ImportingInProgress=Importing repository, please wait, as this could take some time...
+ImportDone=Rules repository imported successfully. Browser will now refresh to show the new content.
+ImportFailed=Unable to import into the repository. Consult the server logs for error messages.
+NoExportFilename=You did not specify an exported repository filename !
+PleaseSpecifyAValidRepositoryXmlFile=Please specify a valid repository xml file.
+ImportPackageConfirm=Are you sure you want to import? This will erase any content in the package currently?
+ImportingPackage=Importing package to repository, please wait, as this could take some time...
+PackageImportDone=Rules package imported successfully. Please refresh your browser (F5) to show the new content.
+PackageImportFailed=Unable to import into the repository. Consult the server logs for error messages.
+PackageExportNoName=You did not specify an exported repository package filename !
+PackageExportName=Please specify a valid repository package xml file.
+ExportRepoWarning=Export the repository? This may take some time.
+ExportRepoWait=Exporting repository, please wait, as this could take some time...
+ExportThePackage=Export the package?
+PleaseWait=Please Wait...
+TestFailureBulkFailures=[{0} failures out of {1}]
+Open=Open
+failuresOutOFExpectations={0} failures out of {1} expectations.
+OverallResult=Overall result:
+SuccessOverall=<b>SUCCESS</b>
+FailureOverall=<b>FAILURE</b>
+Results=Results:
+RuleCoveragePercent={0}% of the rules were tested.
+RulesCovered=Rules covered:
+UncoveredRules=Uncovered rules:
+Scenarios=Scenarios
+Close=Close
+BuildErrorsUnableToRunScenarios=Build errors - unable to run scenarios
+UserName=User name:
+Password=Password:
+Authenticating=Authenticating...
+IncorrectUsernameOrPassword=Incorrect username or password.
+Login=Login
+LastModified=Last Modified
+Name=Name
+Description=Description
+Status=Status
+Package=Package
+Categories=Categories
+LastContributor=Last contributor
+Created=Created
+PackageName=Package name
+UnableToRunTests=Unable to run tests
+NoTestScenariosFound=No test scenarios found.
+CategoryName=Category name
+CreateANewTopLevelCategory=Create a new top level category.
+CreateNewCategoryUnder0=Create new category under: [{0}]
+CategoryWasNotSuccessfullyCreated=Category was not successfully created.
+CanNotHaveAnEmptyCategoryName=Can't have an empty category name.
+
+
+NoCategoriesCreatedYetTip=No categories created yet. Add some categories from the administration screen.
+Refresh=Refresh
+CategoriesPurposeTip=Categories aid in managing large numbers of rules/assets. A shallow hierarchy is recommended.
+EditCategories=<b>Edit categories</b>
+CurrentCategories=Current categories:
+NewCategory=New category
+CreateANewCategory=Create a new category
+RenameSelected=Rename selected
+PleaseSelectACategoryToRename=Please select a category to rename
+DeleteSelected=Delete selected
+PleaseSelectACategoryToDelete=Please select a category to delete.
+DeleteSelectedCat=Deletes the currently selected category. You won't be able to delete if the category is in use.
+CategoryNewNamePleaseEnter=Please enter the name you would like to change this category to
+CategoryRenamed=Category renamed
+AreYouSureYouWantToDeleteCategory=Are you sure you want to delete category:
+AddAnOptionalCheckInComment=Add an optional check in comment
+CheckIn=Check in
+enterTextToFilterList=<enter text to filter list>
+AddFactToContraint=Add a fact to this constraint. If it is an 'or' type, it will need at least 2.
+Choose=Choose...
+NewFactPattern=New fact pattern...
+chooseFactType=choose fact type
+pleaseChoose=--- please choose ---
+FormulaEvaluateToAValue=This is a formula expression which will evaluate to a value.
+LiteralValueTip=This is a literal value. What is shown is what the field is checked against.
+RefreshingList=Refreshing list...
+UnableToLoadList=Unable to load list...
+AdvancedOptions=<i>Advanced options:</i>
+BoundVariable=Bound variable
+AVariable=A variable:
+ABoundVariable=A bound variable
+BoundVariableTip=Will apply a constraint that compares a field to a bound variable.
+NewFormula=New formula
+AFormula=A formula
+FormulaExpressionTip=A formula is an expression that calculates and returns a value. That value is used to enforce the constraint.
+DecisionTableWidgetDescription=<small><i>This is a decision table in a spreadsheet (XLS). Typically they contain many rules in one sheet.</i></small>
+UploadNewVersionDescription=<small><i>Upload new version...</i></small>
+PackageSnapshots=Package snapshots
+Deploy=Deploy...
+NewDeploymentSnapshot=New Deployment snapshot
+RebuildAllSnapshotBinaries=Rebuild all snapshot binaries
+PleaseWaitDotDotDot=Please wait...
+AddANewCondition=Add a new condition
+AddAnAction=Add an action
+TheValue0IsNotValidForThisField=The value {0} is not valid for this field
+Error=Error
+ShowDetail=Show detail
+Navigate=Navigate
+BusinessRuleAssets=Business rule assets
+TechnicalRuleAssets=Technical rule assets
+Functions=Functions
+DSLConfigurations=DSL configurations
+Model=Model
+RuleFlows=Processes
+Enumerations=Enumerations
+TestScenarios=Test Scenarios
+XMLProperties=XML, Properties
+OtherAssetsDocumentation=Other assets, documentation
+Admin=Admin
+UserPermission=User permission
+AssetsTreeView=Assets
+Find=Find
+ByCategory=By Category
+ByStatus=By Status
+QA=QA
+TestScenariosInPackages=Test Scenarios in packages
+Analysis=Analysis
+ScenariosForPackage=Scenarios for {0}
+AnalysisForPackage=Analysis for {0}
+AreYouSureCloseWarningUnsaved=Are you sure you want to close this item? Any unsaved changes will be lost.
+CloseAllItems=Close all items
+AreYouSureYouWantToCloseOpenItems=Are you sure you want to close open items?
+LoadingAsset=Loading asset...
+LoadingPackageInformation=Loading package information...
+LoadingSnapshot=Loading snapshot...
+SnapshotLabel=Snapshot: {0}
+WholeNumberInteger=Whole number (integer)
+TrueOrFalse=True or False
+Date=Date
+DecimalNumber=Decimal number
+Text=Text
+FieldName=<b><small>{0}:</small></b>
+AreYouSureYouWantToRemoveTheField0=Are you sure you want to remove the field {0} ?
+AddNewFactType=Add new fact type
+NewType=New type
+EnterNewTypeName=Enter new type name
+TypeNameExistsWarning=The type name [{0}] already exists, please choose another name.
+chooseType=-- choose type --
+FieldNameAttribute=Field name
+Type=Type
+ChangeName=Change name
+NameTakenForModel=The name [{0}] is already taken - please choose another
+ModelNameChangeWarning=Are you sure you want to change the name? Its possible that rules will need to be changed to reflect the new name.
+ChangeFactName=Change fact name
+AreYouSureYouWantToRemoveThisFact=Are you sure you want to remove this fact?
+RemoveThisFactType=Remove this fact type
+RefreshingModel=Refreshing model...
+RemoveThisWholeRestriction=Remove this whole restriction
+AddAFieldToThisNestedConstraint=Add a field to this nested constraint.
+AllOf=all of the following
+AnyOf=any of the following
+RemoveThisNestedRestriction=Remove this (nested) restriction
+RemoveThisItemFromNestedConstraint=Remove this item from nested constraint?
+AddMoreOptionsToThisFieldsValues=Add more options to this fields values.
+FormulaBooleanTip=This is a formula expression that is evaluated to be true or false.
+AddOrBindToCondition=Add a field to this condition, or bind a variable to this fact.
+GiveFieldVarName=Give this field a variable name that can be used elsewhere.
+FactTypes=Fact types:
+Cancel=Cancel
+CreateANewFactTemplate=Create a new fact template
+Name1=Name:
+FactAttributes=Fact attributes:
+SessionExpiredMessage=<i><strong>Your session expired due to inactivity.</strong></i><p/> Please <a href='{0}'>[Log in].</a>
+DecisionTable=Decision table
+ConditionColumns=Condition columns
+ActionColumns=Action columns
+options=(options)
+none=-- none --
+GroupByColumn=Group by column:
+Apply=Apply
+EditThisActionColumnConfiguration=Edit this action column configuration
+CreateANewActionColumn=Create a new action column
+SetTheValueOfAField=Set the value of a field
+SetTheValueOfAFieldOnANewFact=Set the value of a field on a new fact
+TypeOfActionColumn=Type of action column:
+RemoveThisActionColumn=Remove this action column
+AddANewConditionColumn=Add a new condition column
+EditThisColumnsConfiguration=Edit this columns configuration
+RemoveThisConditionColumn=Remove this condition column
+DeleteConditionColumnWarning=Are you sure you want to delete the column for {0} - all data in that column will be removed?
+DeleteActionColumnWarning=Are you sure you want to delete the column for {0} - all data in that column will be removed?
+Metadata=Metadata:
+Attributes=Attributes:
+AddANewAttributeMetadata=Add a new attribute/metadata.
+AddAnOptionToTheRule=Add an option to the rule
+AddMetadataToTheRule=Add Metadata to the rule.
+Metadata1=Metadata:
+Attribute=Attribute:
+AddAttributeMetadata=Add Attribute/Metadata:
+RemoveThisAttribute=Remove this attribute
+RemoveThisMetadata=Remove this metadata
+ConfigureColumnsNote=Configure the columns first, then add rows (rules). A fact model (in the current package) will be needed to provide the facts and fields to configure this decision table.
+Items=Items
+Item=Item
+AddRow=Add row...
+RemoveSelectedRowS=Remove selected row(s)...
+AreYouSureYouWantToDeleteTheSelectedRowS=Are you sure you want to delete the selected row(s)?
+CopySelectedRowS=Copy selected row(s)...
+Modify=Modify
+ConditionColumnConfiguration=Condition column configuration
+ChooseAnExistingPatternThatThisColumnAddsTo=Choose an existing pattern that this column adds to
+Predicate=Predicate
+CalculationType=Calculation type:
+EditTheOperatorThatIsUsedToCompareDataWithThisField=Edit the operator that is used to compare data with this field
+Operator=Operator:
+notNeededForPredicate=(not needed for predicate)
+pleaseSelectAPatternFirst=(please select a pattern first)
+pleaseChooseAFieldFirst=(please choose a field first)
+pleaseSelectAField=(please select a field)
+SetTheOperator=Set the operator
+noOperator=(no operator)
+CreateANewFactPattern=Create a new fact pattern
+isEqualTo=equal to
+isNotEqualTo=not equal to
+isLessThan=less than
+lessThanOrEqualTo=less than or equal to
+greaterThan=greater than
+greaterThanOrEqualTo=greater than or equal to
+orEqualTo=or equal to
+orNotEqualTo=or not equal to
+andNotEqualTo=and not equal to
+andGreaterThan=and greater than
+andLessThan=and less than
+orGreaterThan=or greater than
+orLessThan=or less than
+orGreaterThanOrEqualTo=or greater than (or equal to)
+orLessThanOrEqualTo=or less than (or equal to)
+andGreaterThanOrEqualTo=and greater than (or equal to)
+andLessThanOrEqualTo=and less than (or equal to)
+andContains=and contains
+orContains=or contains
+andMatches=and matches
+orMatches=or matches
+orExcludes=or excludes
+andExcludes=and excludes
+soundsLike=sounds like
+ThereIsNo=The following does not exist
+ThereExists=The following exists
+AnyOf1=Any of the following are true
+Insert=Insert
+LogicallyInsert=Logically insert
+Retract=Retract
+Set=Set
+CallMethod=Call
+CALL=CALL METHOD
+LoadingUserPermissions=Loading user permissions...
+WelcomeUser=Welcome: &nbsp;{0}
+SignOut=Sign Out
+LoadingLogMessages=Loading log messages...
+Timestamp=Timestamp
+Message=Message
+ShowRecentLogTip=Showing recent INFO and ERROR messages from the log
+Reload=Reload
+showMoreInfo=[show more info...]
+RenameThisAsset=Rename this asset
+Title=Title:
+CategoriesMetaData=Categories:
+ModifiedOnMetaData=Modified on:
+ModifiedByMetaData=by:
+NoteMetaData=Note:
+CreatedOnMetaData=Created on:
+CreatedByMetaData=Created by:
+FormatMetaData=Format:
+PackageMetaData=Package:
+IsDisabledMetaData=Is Disabled:
+DisableTip=Disables this asset. It will not be included in any processing.
+OtherMetaData=Other meta data ...
+SubjectMetaData=Subject:
+AShortDescriptionOfTheSubjectMatter=A short description of the subject matter.
+TypeMetaData=Type:
+TypeTip=This is for classification purposes.
+ExternalLinkMetaData=External link:
+ExternalLinkTip=This is for relating the asset to an external system.
+SourceMetaData=Source:
+SourceMetaDataTip=A short description or code indicating the source of the rule.
+VersionHistory=Version history ...
+CurrentVersionNumber=Current version number:
+RenameThisItem=Rename this item
+NewNameAsset=New name
+RenameItem=Rename item
+ItemHasBeenRenamed=Item has been renamed
+MoveThisItemToAnotherPackage=Move this item to another package
+CurrentPackage=Current package:
+NewPackage=New package:
+ChangePackage=Change package
+YouNeedToPickADifferentPackageToMoveThisTo=You need to pick a different package to move this to.
+MovedFromPackage=Moved from : {0}
+NotCheckedInYet=<i>Not checked in yet</i>
+InitialCategory=Initial category:
+TypeFormatOfRule=Type (format) of rule:
+FileExtensionTypeFormat=File extension (type/format):
+DSLMappingTip=A dsl is a language mapping from a domain specific language to the rule language.
+NewEnumDoco=An enumeration is a mapping from fields to a list of values. This will mean the rule editor will show a drop down for fields, instead of a text box. The format of this is\: 'FactType.fieldName'\: ['Value1', 'Value2']\nYou can add more mappings by adding in more lines. \nFor example\:\n\n'Person.sex' \: ['M', 'F']\n'Person.rating' \: ['High', 'Low']\n\nYou can also add display aliases (so the value used in the rule is separate to the one displayed\:\n'Person.sex' \: ['M\=Male', 'F\=Female']\nin the above case, the 'M\=Male' means that 'Male' will be displayed as an item in a drop down box, but the value 'M' will be used in the rule.
+InitialDescription=Initial description:
+BusinessRuleGuidedEditor=Business Rule (Guided editor)
+DSLBusinessRuleTextEditor=DSL Business Rule (Text editor)
+DRLRuleTechnicalRuleTextEditor=DRL Rule (Technical rule - text editor)
+DecisionTableSpreadsheet=Decision Table (Spreadsheet)
+DecisionTableWebGuidedEditor=Decision Table (Web - guided editor)
+YouHaveToPickAnInitialCategory=You have to pick an initial category.
+PleaseEnterAFormatFileType=Please enter a format/file type
+AssetNameAlreadyExistsPickAnother=An asset with that name already exists in the chosen package. Please use another name
+emptyNameIsNotAllowed=empty name is not allowed
+NonValidJCRName='{0}' is not valid. '{1}' is not a valid name character
+CreateANewPackage=Create a new package
+CreateANewSubPackage=Create a new subpackage
+ParentPackage=Parent Package
+ImportDRLDesc1=Importing a package from an existing DRL will create the package in the BRMS if it does not already exist. If it does exist, any new rules found will be merged into the package.
+ImportDRLDesc2=Any new rules created will not have any categories assigned initially, but rules and functions will be stored individually (ie normalised). Queries, imports etc will show up in the package configuration.
+ImportDRLDesc3=Any DSLs or models required by the imported package will need to be uploaded separately.
+NameColon=Name:
+DescriptionColon=Description:
+PackageNameTip=The name of the package. Avoid spaces, use underscore instead.
+CreateNewPackageRadio=Create new package
+ImportFromDrlRadio=Import from drl file
+DRLFileToImport=DRL file to import:
+CreatePackage=Create package
+PackageNameCorrectHint=Invalid package name. Please use a name that is of the style [abc] or perhaps [abc.def].
+CreatingPackagePleaseWait=Creating package - please wait...
+upload=upload:
+ImportMergeWarning=Are you sure you want to import this package? If the package already exists in the repository it will be merged.
+ImportingDRLPleaseWait=Importing drl package, please wait, as this could take some time...
+PackageWasImportedSuccessfully=Package was imported successfully.
+UnableToImportIntoThePackage0=Unable to import into the package. [{0}]
+YouDidNotChooseADrlFileToImport=You did not choose a drl file to import !
+YouCanOnlyImportDrlFiles=You can only import '.drl' files.
+WelcomeToGuvnor=Welcome to Guvnor
+BrandNewRepositoryNote=<b>This looks like a brand new repository.<br/>Would you like to install a sample repository?</b>
+YesPleaseInstallSamples=Yes, please install samples
+NoThanks=No thanks
+AboutToInstallSampleRepositoryAreYouSure=About to install sample repository. Are you sure?
+ImportingAndProcessing=Importing and processing...
+RepositoryInstalledSuccessfully=Repository installed successfully.
+BuildPackage=Build package
+ThisWillValidateAndCompileAllTheAssetsInAPackage=This will validate and compile all the assets in a package.
+OptionalSelectorName=(Optional) selector name
+CustomSelector=Custom selector
+SelectorTip=A selector is configured by administrators to choose what assets form part of a package build. If no selector is chosen, the whole package will be built. This is configured on the server side. See the WEB-INF/classes/selectors.properties for details.
+BuildBinaryPackage=Build binary package:
+BuildingPackageNote=Building a package will collect all the assets, validate and compile into a deployable package.
+CreateSnapshotForDeployment=Create snapshot for deployment
+TakeSnapshot=Take snapshot:
+AssemblingPackageSource=Assembling package source...
+ViewingSourceFor0=Viewing source for: {0}
+ReadOnlySourceNote=THIS IS READ ONLY - you may copy and paste, but not edit.
+ValidatingAndBuildingPackagePleaseWait=Validating and building package, please wait...
+PackageBuiltSuccessfully=Package built successfully. Last modified on 
+DownloadBinaryPackage=Download binary package
+Format=Format
+Message1=Message
+LoadingExistingSnapshots=Loading existing snapshots...
+CreateASnapshotForDeployment=Create a snapshot for deployment.
+SnapshotDescription=<i>A package snapshot is a read only 'locked in' and labelled view of a package at a point in time, which can be used for deployment.</i><b>You should build the package before taking a snapshot, generally.</b>
+ChooseOrCreateSnapshotName=Choose or create snapshot name:
+NEW=NEW
+Comment=Comment:
+CreateNewSnapshot=Create new snapshot
+YouHaveToEnterOrChoseALabelNameForTheSnapshot=You have to enter or choose a label (name) for the snapshot.
+TheSnapshotCalled0WasSuccessfullyCreated=The snapshot called: {0} was successfully created.
+ConfigurationSection=Configuration
+Configuration=Configuration:
+CategoryRules=Category Rules:
+SaveAndValidateConfiguration=Save and validate configuration
+BuildAndValidate=Build and validate
+InformationAndImportantURLs=Information and important URLs
+DateCreated=Date created:
+ShowPackageSource=Show package source
+URLForPackageSource=URL for package source:
+URLSourceDescription=Use this URL to download the source, or in the 'runtime agent' to access the rules in source form
+URLForPackageBinary=URL for package binary:
+UseThisUrlInTheRuntimeAgentToFetchAPreCompiledBinary=Use this url in the 'runtime agent' to fetch a pre compiled binary.
+URLForRunningTests=URL for running tests:
+URLRunTestsRemote=Use this url to run the scenarios remotely and collect results.
+ChangeStatusDot=Change status.
+Tip=Tip...
+AllRulesForCategory0WillNowExtendTheRule1=All rules for Category: [{0}] will now extend the rule: [{1}]
+RemoveThisCategoryRule=Remove this Category Rule?
+AddCatRuleToThePackage=Add a Category Rule to the Package, to automatically add rule LHS to all rules in this category.
+CategoryParentRules=Category parent rules
+CatRulesInfo=This allows you to set 'parent rules' for a category. Any rules appearing in the given category will 'extend' the rule specified - ie inherit the conditions/LHS.
+AddACategoryRuleToThePackage=Add a Category Rule to the Package
+CreateCategoryRule=Create Category Rule.
+AllTheRulesInFollowingCategory=All the rules in category:
+WillExtendTheFollowingRuleCalled=Will extend the rule called:
+ThereWereErrorsValidatingThisPackageConfiguration=There were errors validating this package configuration.
+ViewErrors=View errors
+Rename=Rename
+AreYouSureYouWantToArchiveRemoveThisPackage=Are you sure you want to archive (remove) this package?
+RenameThePackage=Rename the package
+RenamePackageTip=<i>Rename the package. A new unique name is required.</i>
+NewPackageNameIs=New package name:
+PackageRenamedSuccessfully=Package renamed successfully.
+CopyThePackage=Copy the package
+CopyThePackageTip=<i>Copy the package and all its assets. A new unique name is required.</i>
+NotAValidPackageName=Not a valid package name.
+PackageCopiedSuccessfully=Package copied successfully.
+SavingPackageConfigurationPleaseWait=Saving package configuration. Please wait ...
+PackageConfigurationUpdatedSuccessfullyRefreshingContentCache=Package configuration updated successfully, refreshing content cache...
+RefreshingPackageData=Refreshing package data...
+ImportedTypes=Imported types
+FactTypesJarTip=Fact types are classes from 'jar' files that have been uploaded to the current package.
+AreYouSureYouWantToRemoveThisFactType=Are you sure you want to remove this fact type?
+Globals=Globals
+GlobalTypesAreClassesFromJarFilesThatHaveBeenUploadedToTheCurrentPackage=Global types are classes from 'jar' files that have been uploaded to the current package.
+AreYouSureYouWantToRemoveThisGlobal=Are you sure you want to remove this global?
+AdvancedView=Advanced view
+SwitchToTextModeEditing=Switch to text mode editing.
+SwitchToAdvancedTextModeForPackageEditing=Switch to advanced text mode for package editing?
+BasicView=Basic view
+SwitchToGuidedModeEditing=Switch to guided mode editing.
+SwitchToGuidedModeForPackageEditing=Switch to guided mode for package editing? This is not always possible with some advanced package configurations. 
+ChooseAFactType=Choose a fact type
+loadingList=loading list ....
+TypesInThePackage=Types in the package
+IfNoTypesTip=If no types appear in the list, create a model asset, and upload a jar file to it for this package. The jar file should contain the .class files for the types needed by the rules only.
+ChooseClassType=Choose class type:
+GlobalName=Global name:
+EnteringATypeClassName=Entering a type class name
+EnterTypeNameTip=You should only need to do this if a fact class is on the BRMS classpath itself. Otherwise it should be in the list above.
+advancedClassName=(advanced) class name:
+YouMustEnterAGlobalVariableName=You must enter a global variable name.
+Packages=Packages
+NewPackage1=New Package
+NewSubPackage=New SubPackage
+NewRule=New Rule
+UploadPOJOModelJar=Upload POJO Model jar
+NewModelArchiveJar=New model archive (jar)
+NewDeclarativeModel=New Declarative Model
+NewDeclarativeModelUsingGuidedEditor=New declarative model (using guided editor).
+NewFunction=New Function
+CreateANewFunction=Create a new function
+NewDSL=New DSL
+CreateANewDSLConfiguration=Create a new DSL configuration
+NewRuleFlow=New RuleFlow
+CreateANewRuleFlow=Create a new RuleFlow
+NewEnumeration=New Enumeration
+CreateANewEnumerationDropDownMapping=Create a new enumeration (drop down mapping).
+NewTestScenario=New Test Scenario
+CreateATestScenario=Create a test scenario.
+NewFile=New File
+CreateAFile=Create a file.
+RebuildAllPackageBinariesQ=Rebuild all package binaries
+RebuildConfirmWarning=You should only run this if Drools has been upgraded recently (and you have been experiencing errors). This may take some time - are you sure you want to do this?
+RebuildingPackageBinaries=Rebuilding package binaries...
+TipAuthEnable=TIP: To enable or disable authorization, open components.xml in WEB-INF
+EnablingAuthorization=Enabling authorization
+EnablingAuthPopupTip=In components.xml, edit enable-role-based-authorization attribute
+UserName1=User name
+Administrator=Administrator
+HasPackagePermissions=Has package permissions
+HasCategoryPermissions=Has category permissions
+Reload1=Reload
+CurrentlyConfiguredUsers=Currently configured users:
+CreateNewUserMapping=Create new user mapping
+EnterNewUserName=Enter new userName
+NewUserName=New user name
+DeleteSelectedUser=Delete selected user
+AreYouSureYouWantToDeleteUser0=Are you sure you want to delete user [{0}]
+LoadingUsersPermissions=Loading users permissions...
+EditUser0=Edit user: {0}
+UserAuthenticationTip=Users are authenticated by a directory service, here you can define Guvnor specific permissions as needed.
+Updating=Updating...
+ThisUserIsAnAdministrator=This user is an administrator:
+RemoveAdminRights=Remove Admin rights
+AreYouSureYouWantToRemoveAdministratorPermissions=Are you sure you want to remove Administrator permissions?
+RemovePermission=Remove permission.
+AreYouSureYouWantToRemovePermission0=Are you sure you want to remove permission [{0}] ?
+AddANewPermission=Add a new permission
+Loading=Loading...
+PermissionType=Permission type:
+pleaseChoose1=-- please choose --
+MakeThisUserAdmin=Make this user admin:
+SelectCategoryToProvidePermissionFor=Select category to provide permission for:
+SelectPackageToApplyPermissionTo=Select package to apply permission to:
+Yes=Yes
+PermissionDetails=Permission details
+PermissionDetailsTip=The 'analyst' permission applies to a category(s), and their sub categories. A user with only 'analyst' permissions will see a subset of the user interface. 'package' permissions apply to a specific package. A 'package.admin' can build and create snapshots, but a 'package.developer' can only edit items inside their specified packages.
+TheVariableName0IsAlreadyTaken=The variable name [{0}] is already taken.
+BindTheFieldCalled0ToAVariable=Bind the field called [{0}] to a variable:
+BindTheExpressionToAVariable=Bind the Expression to a new variable:
+ShowSubFields=Show sub fields...
+ApplyAConstraintToASubFieldOf0=Apply a constraint to a sub-field of [{0}]:
+AddFieldsToThisConstraint=Add fields to this constraint
+AddARestrictionOnAField=Add a restriction on a field
+AllOfAnd=All of (And)
+AnyOfOr=Any of (Or)
+MultipleFieldConstraints=Multiple field constraints
+MultipleConstraintsTip=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.
+MultipleFieldConstraint=Multiple field constraint
+ModifyConstraintsFor0=Modify constraints for {0}
+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
+Clear=Clear
+Properties=Properties
+QA1=QA
+AttributeSearch=Attribute search ...
+CreatedBy=Created by
+Format1=Format
+Subject=Subject
+Type1=Type
+ExternalLink=External link
+Source=Source
+Description1=Description
+LastModifiedBy=Last modified by
+CheckinComment=Checkin comment
+WildCardsSearchTip=Use * for wildcards, separate different options with a comma.
+AfterColon=After:
+BeforeColon=Before:
+Before=Before
+DateCreated1=Date created
+LastModified1=Last modified
+Search=Search
+NameSearch=Name search ...
+TextSearch=Text search ...
+SearchFor=Search for:
+Search1=Search
+PleaseEnterSomeSearchText=Please enter some search text
+FindItemsWithANameMatching=Find items with a name matching:
+IncludeArchivedAssetsInResults=Include archived assets in results:
+EnterSearchString=Enter the name or part of a name. Alternatively, use the categories to browse.
+SearchingDotDotDot=Searching...
+ThereAreMoreItemsTryNarrowingTheSearchTerms=There are more items... try narrowing the search terms..
+Metadata2=Metadata:
+Attributes1=Attributes:
+RemoveThisRuleOption=Remove this rule option?
+RuleDocHint=This is rule documentation. Human friendly descriptions of the business logic.
+documentationDefault=<documentation>
+RuleFlowUploadTip=Ruleflows allow flow control between rules. The eclipse plugin provides a graphical editor. Upload ruleflow .rf files for inclusion in this package.
+CalculatingSource=Calculating source...
+ViewingDiagram=Viewing diagram
+Parameters=Parameters
+CouldNotCreateTheRuleflowDiagramItIsPossibleThatTheRuleflowFileIsInvalid=Could not create the ruleflow diagram. It is possible that the ruleflow file is invalid.
+AddAConditionToThisRule=Add a condition to this rule.
+AddAnOptionToTheRuleToModifyItsBehaviorWhenEvaluatedOrExecuted=Add an option to the rule, to modify its behavior when evaluated or executed.
+Metadata3=Metadata:
+Attribute1=Attribute:
+AddXToListY=Add <b>[{0}]</b> to the list <b>[{1}]</b>
+RemoveThisAction=Remove this action.
+AddAConditionToTheRule=Add a condition to the rule...
+ChooseFactType=Choose fact type...
+Fact1=Fact
+ChooseOtherConditionType=Choose other condition type...
+FreeFormDrl=Free form drl
+ExpressionEditor=Expression editor
+ConditionTypeButton=Condition type
+ChooseDotDotDot=Choose...
+DSLSentence=DSL sentence
+NoModelTip=Note: No model has been defined.<br/>Tip: You will want to import or define a model for this user interface to work !
+AddANewAction=Add a new action...
+NotifyEngineOfChanges=Notify engine of changes
+NotifyEngineOfChangesUpdateModify=Notify engine of changes (update/modify)
+ModifyEngineTip=Modify a field on a fact, and notify the engine to re-evaluate rules.\nWARNING\: this can cause infinite loops - use with care.
+SetFieldValues=Set field values
+RetractTheFact=Retract the fact
+AddAnItemToACollection=Add an item to a collection:
+InsertANewFact=Insert a new fact
+LogicallyAssertAFactTheFactWillBeRetractedWhenTheSupportingEvidenceIsRemoved=Logically assert a fact - the fact will be retracted when the supporting evidence is removed.
+LogicallyInsertANewFact=Logically insert a new fact
+CallAMethodOnFollowing=Call a method on
+AddFreeFormDrl=Add free form drl
+FreeFormAction=Free form action
+ThisIsADrlExpressionFreeForm=This is a drl expression (free form)
+RemoveThisENTIREConditionAndAllTheFieldConstraintsThatBelongToIt=Remove this ENTIRE condition, and all the field constraints that belong to it.
+RemoveThisEntireConditionQ=Remove this entire condition?
+CanTRemoveThatItemAsItIsUsedInTheActionPartOfTheRule=Can't remove that item as it is used in the action part of the rule.
+NewBusinessRuleGuidedEditor=New Business Rule (Guided editor)
+NewRuleUsingDSL=New Rule using DSL
+NewDRL=New DRL
+NewDecisionTableSpreadsheet=New Decision Table (Spreadsheet)
+NewDecisionTableGuidedEditor=New Decision Table (Guided editor)
+TestScenario=Test Scenario
+ViewSource=View source
+Validate=Validate
+ValidatingItemPleaseWait=Validating item, please wait...
+ValidationResultsDotDot=Validation results...
+ItemValidatedSuccessfully=Item validated successfully.
+ValidationResults=Validation results
+packageConfigurationProblem=[package configuration problem]
+SavingPleaseWait=Saving, please wait...
+FailedToCheckInTheItemPleaseContactYourSystemAdministrator=Failed to check in the item. Please contact your system administrator.
+RefreshingContentAssistance=Refreshing content assistance...
+RefreshingItem=Refreshing item...
+WARNINGUnCommittedChanges=WARNING: Un-committed changes.
+Discard=Discard
+AreYouSureYouWantToDiscardChanges=Are you sure you want to discard changes?
+ScenariosForPackage1=Scenarios for package:
+RunAllScenarios=Run all scenarios
+BuildingAndRunningScenarios=Building and running scenarios...
+EXPECT=EXPECT
+DeleteItem=Delete item.
+AreYouSureYouWantToRemoveThisItem=Are you sure you want to remove this item?
+GIVEN=GIVEN
+AddInputDataAndExpectationsHere=Add input data and expectations here.
+MoreDotDot=More...
+AddAnotherSectionOfDataAndExpectations=Add another section of data and expectations.
+configuration=(configuration)
+globals=(globals)
+AddANewGlobalToThisScenario=Add a new global to this scenario.
+NewGlobal=New global
+TheName0IsAlreadyInUsePleaseChooseAnotherName=The name [{0}] is already in use. Please choose another name.
+GlobalColon=Global:
+AddANewDataInputToThisScenario=Add a new data input to this scenario.
+NewInput=New input
+YouMustEnterAValidFactName=You must enter a valid fact name.
+TheFactName0IsAlreadyInUsePleaseChooseAnotherName=The fact name [{0}] is already in use. Please choose another name.
+FactName=Fact name:
+InsertANewFact1=Insert a new fact:
+ModifyAnExistingFactScenario=Modify an existing fact:
+RetractAnExistingFactScenario=Retract an existing fact:
+CallAMethodOnAFactScenario=Call a method on an existing fact:
+AddANewExpectation=Add a new expectation.
+NewExpectation=New expectation
+Rule=Rule:
+FactValue=Fact value:
+AnyFactThatMatches=Any fact that matches:
+DeleteTheExpectationForThisFact=Delete the expectation for this fact.
+AreYouSureYouWantToRemoveThisExpectation=Are you sure you want to remove this expectation?
+EnterRuleNameScenario=Enter name of rule, or pick from a list. If there are a very large number of rules, you will need to type in the name.
+showListButton=(show list)
+loadingList1=(loading list)
+ValueFor0=Value for: {0}
+globalForScenario=global [{0}]
+modifyForScenario=modify [{0}]
+insertForScenario=insert [{0}]
+ChooseAFieldToAdd=Choose a field to add
+RemoveThisRow=Remove this row.
+AreYouSureYouWantToRemoveRow0=Are you sure you want to remove row [{0}]?
+RemoveTheColumnForScenario=Remove the column for [{0}]
+CanTRemoveThisColumnAsTheName0IsBeingUsed=Can't remove this column as the name [{0}] is being used.
+AreYouSureYouWantToRemoveColumn0=Are you sure you want to remove column [{0}]?
+AddANewRule=Add a new rule.
+RemoveSelectedRule=Remove selected rule.
+PleaseChooseARuleToRemove=Please choose a rule to remove.
+AllowTheseRulesToFire=Allow these rules to fire:
+PreventTheseRulesFromFiring=Prevent these rules from firing:
+AllRulesMayFire=All rules may fire
+SelectRule=Select rule
+UseRealDateAndTime=Use real date and time
+UseASimulatedDateAndTime=Use a simulated date and time
+property0RulesFiredIn1Ms={0} rules fired in {1}ms.
+ShowRulesFired=Show rules fired
+RulesFired=Rules fired:
+currentDateAndTime=<current date and time>
+BadDateFormatPleaseTryAgainTryTheFormatOf0=Bad date format - please try again (try the format of {0}).
+scenarioFactTypeHasValues={0} [{1}] has values:
+AFactOfType0HasValues=A fact of type [{0}] has values:
+AddAFieldToThisExpectation=Add a field to this expectation.
+equalsScenario=equals
+doesNotEqualScenario=does not equal
+RemoveThisFieldExpectation=Remove this field expectation.
+AreYouSureYouWantToRemoveThisFieldExpectation=Are you sure you want to remove this field expectation?
+ActualResult=(Actual: {0})
+ExpectRules=Expect rules
+firedAtLeastOnce=fired at least once
+didNotFire=did not fire
+firedThisManyTimes=fired this many times:
+RemoveThisRuleExpectation=Remove this rule expectation.
+AreYouSureYouWantToRemoveThisRuleExpectation=Are you sure you want to remove this rule expectation?
+RetractFacts=Retract facts
+RemoveThisRetractStatement=Remove this retract statement.
+RunScenario=Run scenario
+RunScenarioTip=Run this scenario. This will build the package if it is not already built (which may take some time).
+BuildingAndRunningScenario=Building and running scenario
+packageConfigurationProblem1=[package configuration problem]
+MaxRuleFiringsReachedWarning=WARNING: The maximum number of rule firings ({0}) was reached. It is likely that there is an infinite loop occurring.
+SummaryColon=Summary:
+AuditLogColon=Audit log:
+ShowEventsButton=Show events
+ViewingSnapshot=Viewing snapshot:
+ForPackage=For package:
+clickHereToDownloadBinaryOrCopyURLForDeploymentAgent=click here to download binary (or copy URL for deployment agent)
+DeploymentURL=Deployment URL:
+SnapshotCreatedOn=Snapshot created on:
+CommentColon=Comment:
+SnapshotDeleteConfirm=Are you sure you want to delete the snapshot labelled [{0}] from the package [{1}] ?
+SnapshotWasDeleted=Snapshot was deleted.
+CopySnapshotText=Copy snapshot {0}
+ExistingSnapshots=To an existing snapshot or a new snapshot:
+NewSnapshotNameIs=New Snapshot name:
+CreatedSnapshot0ForPackage1=Created snapshot [{0}] for package [{1}]
+Snapshot0ForPackage1WasCopiedFrom2=Snapshot [{0}] for package [{1}] was copied from [{2}]
+PleaseEnterANonExistingSnapshotName=Please enter a non existing Snapshot name
+SnapshotListingFor=Snapshot listing for:
+SnapshotItems=Snapshot items
+NewSnapshot=New snapshot
+SnapshotRebuildWarning=Rebuilding the snapshot binaries will take some time, and only needs to be done if the BRMS itself has been updated recently. This will also cause the rule agents to load the rules anew. Are you sure you want to do this?
+RebuildingSnapshotsPleaseWaitThisMayTakeSomeTime=Rebuilding snapshots. Please wait, this may take some time...
+SnapshotsWereRebuiltSuccessfully=Snapshots were rebuilt successfully.
+Type2=Type
+Priority= Priority:
+ValueRuleFlow= Value:
+ManageStatuses=Manage statuses
+StatusTagsAreForTheLifecycleOfAnAsset=Status tags are for the lifecycle of an asset.
+CurrentStatuses=Current statuses:
+NewStatus=New status
+PleaseSelectAStatusToRename=Please select a status to rename.
+PleaseSelectAStatusToRemove=Please select a status to remove.
+AddNewStatus=Add new status:
+StatusRemoved=Status removed.
+PleaseEnterTheNameYouWouldLikeToChangeThisStatusTo=Please enter the name you would like to change this status to
+StatusRenamed=Status renamed.
+LoadingStatuses=Loading statuses...
+ChooseOne=-- Choose one --
+UpdatingStatus=Updating status...
+CreateNewStatus=Create new status
+StatusName=Status name
+CanTHaveAnEmptyStatusName=Can't have an empty status name.
+CreatingStatus=Creating status
+StatusWasNotSuccessfullyCreated=Status was not successfully created.
+UnableToGetContentAssistanceForThisRule=Unable to get content assistance for this rule.
+UnableToValidatePackageForSCE=Unable to validate package configuration (eg, DSLs, models) for [{0}]. Suggestion completions may not operate correctly for graphical editors for this package.
+Detail=Detail:
+VersionHistory1=Version history
+NoHistory=No history.
+View=View
+LoadingVersionFromHistory=Loading version
+VersionNumber0Of1=Version number [{0}] of [{1}]
+RestoreThisVersion=Restore this version
+RestoreThisVersionQ=Restore this version?
+NoteNewPackageDrlImportWarning=Note:
+PleaseEnterANameForFact=Please enter a name.
+PleaseEnterANameThatIsNotTheSameAsTheFactType=Please enter a name that is not the same as the fact type.
+ThatNameIsInUsePleaseTryAnother=That name is in use, please try another.
+Browse=Browse
+KnowledgeBases=Knowledge Bases
+DefaultValue=Default value:
+UseRowNumber=Use row number
+ReverseOrder=Reverse order
+HideThisColumn=Hide this column
+PleaseSelectOrEnterField=Please select or enter field
+NotifyNoSelectedOrEnteredField=Field has not been selected or entered
+PleaseSelectAnOperator=Please select an operator
+NotifyNoSelectedOperator=Operator has not been selected
+January=January
+February=February
+March=March
+April=April
+May=May
+June=June
+July=July
+August=August
+October=October
+September=September
+November=November
+December=December
+SorryAnItemOfThatNameAlreadyExistsInTheRepositoryPleaseChooseAnother=Sorry, an item of that name already exists in the repository. Please choose another.
+ALiteralValueMeansTheValueAsTypedInIeItsNotACalculation=A literal value means the value as typed in (ie it is not a calculation).
+WHEN=WHEN
+THEN=THEN
+AddAnActionToThisRule=Add an action to this rule.
+optionsRuleModeller=(options)
+clickToAddPatterns=(click to add patterns...)
+ChangeFieldValuesOf0=Change field values of {0}...
+Retract0=Retract {0}
+Modify0=Modify {0}...
+InsertFact0=Insert fact {0}...
+LogicallyInsertFact0=Logically Insert fact {0}...
+Append0ToList1=Append {0} to list: {1}
+CallMethodOn0=Call method on {0}...
+hide=(hide)
+RemoveThisBlockOfData=Remove this block of data
+AreYouSureYouWantToRemoveThisBlockOfData=Are you sure you want to remove this block of data?
+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.
+ImportedDRLContainsNoNameForThePackage=Imported DRL contains no name for the package. Please name the package.
+InitialisingInfoFor0PleaseWait=Initialising info for {0}, please wait...
+SavedOK=(Saved OK)
+Actions=Actions...
+ChangeSet=Change Set:
+URLToChangeSetForDeploymentAgents=URL to change set for deployment agents.
+FrozenAreas=Frozen areas...
+FrozenExplanation=Frozen areas mean that the rule can only have its fields edited, no extra conditions added or removed or the structure changed.
+FreezeAreasForEditing=Freeze areas for editing:
+Conditions=Conditions
+smallCommentBy0On1Small=<small>Comment by {0} on {1}:</small>
+AddADiscussionComment=Add a discussion comment
+EraseAllComments=Erase all comments
+EraseAllCommentsWarning=Erase ALL discussion items? NOTE that this CAN NOT be undone. Are you sure?
+Discussion=Discussion
+SaveAndClose=Save and close
+Predicates=Predicates
+PredicatesInfo=Predicates are expressions that resolve to a true or a false. You can place $param in the field and the value from the cell will be substituted in place of param. For example [this.callMethod($param)]
+NewBPELPackage=New BPEL package
+CreateANewBPELPackage=Create a new BPEL package
+OpenEditorInNewWindow=Open editor in new window.
+BPELPackages=BPEL Packages
+ValueCanNotBeEmpty=Value can not be empty
+Value=Value
+property0ModifiedOn12={0} modified on: {1} ({2})
+isContainedInTheFollowingList=is contained in the a (comma separated) list
+RecentlyOpened=Recently Opened
+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
+PleaseSelectARow=Please select a row
+AddRowBeforeSelectedRow=Add row before selected row...
+CreateNewAsset=Create new\: 
+CreateLinkedAsset=Import asset from global area\: 
+CreateLinkedAssetFromUUID=UUID of the existing asset\: 
+NoteNewLinkedAsset=NOTE\: 
+NewLinkedAssetDesc1=This will import a shared asset from global area. 
+NewLinkedAssetDesc2=you need to open the existing asset that you want to link to, copy and paste its 
+NewLinkedAssetDesc3=UUID to the text box above.
+BuildWholePackageTip=This will build the whole package.  
+BuiltInSelectorTip=The built-in selector allows you to choose what assets form part of a package build according to asset's status, category and meta data. Please use a custom selector if the built-in selector does not satisfy your requirement.
+BuildWholePackage=Build whole package  
+BuildPackageUsingBuiltInSelector=Use built-in selector 
+BuildPackageUsingCustomSelector=Use custom selector  
+BuildPackageUsingFollowingAssets=Build package using following assets:
+BuildPackageUsingBuiltInSelectorStatus=When status :
+BuildPackageUsingBuiltInSelectorCat=When category :
+BuiltInSelector=Built-in selector
+BuildPackageUsingCustomSelectorSelector=Custom Selector :
+CreateInPackage=Create in Package\: 
+CreateInGlobalArea=Create in Global area
+AssetToImport=Asset to import\: 
+Older0=Older : {0}
+Newer0=Newer: {0}
+TypeAdded=Added
+TypeArchived=Archived
+TypeDeleted=Deleted
+TypeRestored=Restored
+TypeUpdated=Updated
+Severity=Severity
+CleaningLogMessages=Cleaning log messages...
+Clean=Clean
+MoveUp=Move up
+MoveDown=Move down
+clickToAddPattern=click to add pattern...
+Top=Top
+Bottom=Bottom
+Line0=Line {0}
+PositionColon=Position:
+ConditionPositionExplanation=Select the position where the Condition will be added.
+ActionPositionExplanation=Select the position where the Action will be added.
+AddAConditionBelow=Add a condition below.
+AddAnActionBelow=Add an action below.
+openSelectedToSingleTab=[open selected to single tab]
+SaveAllChanges=Save all changes
+SaveAndCloseAll=Save and close all
+DescriptionAndDiscussion=Description and discussion
+Show=Show
+Asset0IsAlreadyOpenPleaseCloseItBeforeOpeningMultiview=Asset {0} is already open, please close it before opening multiview.
+PromoteToGlobal=Promote to Global
+PromoteAreYouSure=Are you sure you want to promote this item to global area?
+Promoted=The item has been moved to global area. 
+ItemAlreadyInGlobalArea=The item is already in global area.
+VerifyingItemPleaseWait=Verifying item, please wait.
+Verify=Verify
+VerificationReport=Verification report
+CanNotSwitchToBasicView=There are errors in this view. Can not switch to guided mode until the errors are resolved
+Causes=Causes
+ImpactedRules=Impacted rules
+SelectWorkingSets=Select Working Sets
+WorkingSets=WorkingSets
+NewWorkingSet=New WorkingSet
+CreateWorkingSet=Create a WorkingSet
+ErrorLoadingRules=Error loading rules.
+WorkingSetName=WorkingSet name
+CopyTheWorkingSet=Copy the WorkingSet
+CopyTheWorkingSetTip=<i>Copy the WorkingSet and all its facts and restrictions. A new unique name is required.</i>
+NewWorkingSetNameIs=New WorkingSet name:
+NotAValidWorkingSetName=Not a valid WorkingSet name.
+WorkingSetCopiedSuccessfully=WorkingSet copied successfully.
+RenameTheWorkingSet=Rename the WorkingSet.
+RenameTheWorkingSetTip=<i>Rename the WorkingSet. A new unique name is required.</i>
+WorkingSetRenamedSuccessfully=WorkingSet successfully renamed.
+ConstraintsSection=Constraints Section
+AddNewConstraint=Add New Constraint
+removeConstraint=Remove Constraint
+AElementToDelInCollectionList=Delete element in the list
+AElementToAddInCollectionList=Add element to the list
+GuidedList=Guided list
+AGuidedList=A guide list
+AGuidedListTip=Helps you enter data to a collect/list
+AddElementBelow=Add an element below
+MoveUpList=Move element in list up
+MoveDownListMove= element in list down
+theRuleHasErrorsOrWarningsDotDoYouWantToContinue=The Rule has errors or warnings. Do you want to continue?
+RulesVerification=Rules Verification
+RulesVerificationManager=Rules Verification Manager
+EditRulesVerificationConfiguration=Edit Rules Verification Configuration
+AutomaticVerification=Automatic Verification
+Enabled=Enabled
+NewRuleTemplate=New rule template
+TemplateKey=Template key
+AllChangesHaveBeenSaved=All changes have been saved
+TemplateEditor=Template Editor
+TemplateData=Template Data
+ActivateRuleFlowGroup=Activate rule flow group 
+FillInColumnWithValue=Please fill in this column with a {0} value.
+LoadTemplateData=Load Template Data
+RepositoryConfiguration=Repository Configuration
+RepositoryConfig=Repository Config
+ManageRepositoryConfig=Manage Repository Configuration
+ManageRepositoryConfigDesc=Generate configuration for your RDBMS
+SelectRdbmsType=Select RDBMS type:
+UseJndi=Use JNDI:
+PleaseSelectRdbmsType=Please select RDBMS type 
+PleaseEnterDriver=Please enter the driver
+PleaseEnterUrl=Please enter the URL
+PleaseEnterUserName=Please enter user name
+PleaseEnterJndiName=Please enter JNDI name
+PleaseEnterPassword=Please enter password
+GenerateRepositoryConfiguration=Generate repository config
+RepositoryXml=repository.xml
+UnableToProcessRepositoryConfiguration=Unable to Process Repository Configuration
+SaveRepo=Save Configuration
+SaveTheRepositoryConfig=Save the configuration?
+SaveRepoInfo=Save the repository configuration to a file. Alternatively you can cut/paste it from this page. Don't forget to back up your repository (Import/Export) before replacing your existing repository.xml and restart your server for changes to take effect.
 Inbox=Inbox
 GlobalArea=Global Area
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/ActionValueEditor.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -30,6 +30,7 @@
 import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.messages.Constants;
 import org.drools.ide.common.client.modeldriven.DropDownData;
+import org.drools.ide.common.client.modeldriven.FieldNature;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldValue;
 import org.drools.ide.common.client.modeldriven.brl.ActionInsertFact;
@@ -115,23 +116,23 @@
             // bons editeurs suivant le type
             // si la valeur vaut 0 il faut mettre un stylo (
 
-            if (value.value != null && value.value.length() > 0 && value.nature == ActionFieldValue.TYPE_UNDEFINED) {
+            if (value.value != null && value.value.length() > 0 && value.nature == FieldNature.TYPE_UNDEFINED) {
                 ///JBDS-894
                 if (value.value.charAt(0) == '=') {
-                    value.nature = ActionFieldValue.TYPE_VARIABLE;
+                    value.nature = FieldNature.TYPE_VARIABLE;
                 } else {
-                    value.nature = ActionFieldValue.TYPE_LITERAL;
+                    value.nature = FieldNature.TYPE_LITERAL;
                 }
             }
-            if (value.nature == ActionFieldValue.TYPE_UNDEFINED) {
+            if (value.nature == FieldNature.TYPE_UNDEFINED) {
                 // we have a blank slate..
                 // have to give them a choice
                 root.add(choice());
             } else {
-                if (value.nature == ActionFieldValue.TYPE_VARIABLE) {
+                if (value.nature == FieldNature.TYPE_VARIABLE) {
                     Widget list = boundVariable(value);
                     root.add(list);
-                } else if(value.nature == ActionFieldValue.TYPE_TEMPLATE){
+                } else if(value.nature == FieldNature.TYPE_TEMPLATE){
                 	value.type = SuggestionCompletionEngine.TYPE_STRING;
                     Widget box = boundTextBox(this.value);
                     root.add(box);
@@ -146,7 +147,7 @@
         }
     }
 
-    private Widget boundVariable(final ActionFieldValue c) {
+    private Widget boundVariable(final FieldNature c) {
         /*
          * If there is a bound variable that is the same type of the current
          * variable type, then propose a list
@@ -212,7 +213,7 @@
         return listVariable;
     }
 
-    private Widget boundEnum(final ActionFieldValue c) {
+    private Widget boundEnum(final FieldNature c) {
         EnumDropDown enumDropDown = new EnumDropDown(value.value, new DropDownValueChanged() {
 
             public void valueChanged(String newText, String newValue) {
@@ -324,7 +325,7 @@
         lit.addClickListener(new ClickListener() {
 
             public void onClick(Widget w) {
-                value.nature = ActionFieldValue.TYPE_LITERAL;
+                value.nature = FieldNature.TYPE_LITERAL;
                 value.value = " ";
                 makeDirty();
                 executeOnChageCommand();
@@ -341,7 +342,7 @@
         if(model.isTemplate()){
 	        Button templateButton = new Button(constants.TemplateKey(), new ClickListener() {
 	            public void onClick(Widget arg0) {
-	                value.nature = ActionFieldValue.TYPE_TEMPLATE;
+	                value.nature = FieldNature.TYPE_TEMPLATE;
 	                value.value = " ";
 	                makeDirty();
 	                refresh();
@@ -361,7 +362,7 @@
         formula.addClickListener(new ClickListener() {
 
             public void onClick(Widget w) {
-                value.nature = ActionFieldValue.TYPE_FORMULA;
+                value.nature = FieldNature.TYPE_FORMULA;
                 value.value = "=";
                 makeDirty();
                 refresh();
@@ -398,7 +399,7 @@
                 variable.addClickHandler(new ClickHandler() {
 					
 					public void onClick(ClickEvent event) {
-                        value.nature = ActionFieldValue.TYPE_VARIABLE;
+                        value.nature = FieldNature.TYPE_VARIABLE;
                         value.value = "=";
                         makeDirty();
                         refresh();

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/MethodParameterValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/MethodParameterValueEditor.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/modeldriven/ui/MethodParameterValueEditor.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -27,6 +27,7 @@
 import org.drools.guvnor.client.common.ValueChanged;
 import org.drools.guvnor.client.messages.Constants;
 import org.drools.ide.common.client.modeldriven.DropDownData;
+import org.drools.ide.common.client.modeldriven.FieldNature;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldFunction;
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldValue;
@@ -101,12 +102,12 @@
             // bons editeurs suivant le type
             // si la valeur vaut 0 il faut mettre un stylo (
 
-            if ( methodParameter.nature == ActionFieldValue.TYPE_UNDEFINED ) {
+            if ( methodParameter.nature == FieldNature.TYPE_UNDEFINED ) {
                 // we have a blank slate..
                 // have to give them a choice
                 root.add( choice() );
             } else {
-                if ( methodParameter.nature == ActionFieldValue.TYPE_VARIABLE ) {
+                if ( methodParameter.nature == FieldNature.TYPE_VARIABLE ) {
                     ListBox list = boundVariable( methodParameter );
                     root.add( list );
                 } else {
@@ -119,7 +120,7 @@
         }
     }
 
-    private ListBox boundVariable(final ActionFieldValue c) {
+    private ListBox boundVariable(final FieldNature c) {
         /*
          * If there is a bound variable that is the same type of the current
          * variable type, then propose a list
@@ -267,7 +268,7 @@
         Button lit = new Button( constants.LiteralValue() );
         lit.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
-                methodParameter.nature = ActionFieldValue.TYPE_LITERAL;
+                methodParameter.nature = FieldNature.TYPE_LITERAL;
                 methodParameter.value = " ";
                 makeDirty();
                 refresh();
@@ -326,7 +327,7 @@
                                    variable );
                 variable.addClickListener( new ClickListener() {
                     public void onClick(Widget w) {
-                        methodParameter.nature = ActionFieldValue.TYPE_VARIABLE;
+                        methodParameter.nature = FieldNature.TYPE_VARIABLE;
                         methodParameter.value = "=";
                         makeDirty();
                         refresh();

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodLabelButton.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodLabelButton.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodLabelButton.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,45 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.guvnor.client.qa.testscenarios;
+
+import org.drools.guvnor.client.common.SmallLabel;
+import org.drools.guvnor.client.messages.Constants;
+import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
+import org.drools.ide.common.client.modeldriven.testing.Scenario;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+
+/**
+ * 
+ * @author nheron
+ * 
+ */
+public class CallMethodLabelButton extends HorizontalPanel {
+
+	private Constants constants = ((Constants) GWT.create(Constants.class));
+
+	public CallMethodLabelButton(ExecutionTrace previousEx, Scenario scenario,
+			ExecutionTrace executionTrace, ScenarioWidget scenarioWidget) {
+
+		add(new CallMethodOnNewDataButton(previousEx, scenario, executionTrace,
+				scenarioWidget));
+		add(new SmallLabel(constants.CALL()));
+
+	}
+
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnGivenPanel.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnGivenPanel.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnGivenPanel.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,37 @@
+package org.drools.guvnor.client.qa.testscenarios;
+
+import java.util.List;
+import java.util.Map;
+
+import org.drools.ide.common.client.modeldriven.testing.CallFixtureMap;
+import org.drools.ide.common.client.modeldriven.testing.CallMethod;
+import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
+import org.drools.ide.common.client.modeldriven.testing.FactData;
+import org.drools.ide.common.client.modeldriven.testing.Fixture;
+import org.drools.ide.common.client.modeldriven.testing.FixtureList;
+import org.drools.ide.common.client.modeldriven.testing.FixturesMap;
+import org.drools.ide.common.client.modeldriven.testing.Scenario;
+
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+/**
+ * 
+ * @author nheron
+ * 
+ */
+public class CallMethodOnGivenPanel extends VerticalPanel {
+	public CallMethodOnGivenPanel(List<ExecutionTrace> listExecutionTrace,
+			int executionTraceLine, CallFixtureMap given,
+			final Scenario scenario, final ScenarioWidget parent) {
+
+		for (Map.Entry<String, FixtureList> e : given.entrySet()) {
+			FixtureList itemList = given.get(e.getKey());
+			for (Fixture f : itemList) {
+				CallMethod mCall = (CallMethod) f;
+				add(new CallMethodWidget(e.getKey(), parent, scenario, mCall,
+						listExecutionTrace.get(executionTraceLine)));
+			}
+			;
+		}
+	}
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnNewDataButton.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnNewDataButton.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodOnNewDataButton.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.guvnor.client.qa.testscenarios;
+
+import java.util.List;
+
+import org.drools.guvnor.client.common.SmallLabel;
+import org.drools.guvnor.client.util.Format;
+import org.drools.ide.common.client.modeldriven.testing.ActivateRuleFlowGroup;
+import org.drools.ide.common.client.modeldriven.testing.CallMethod;
+import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
+import org.drools.ide.common.client.modeldriven.testing.FactData;
+import org.drools.ide.common.client.modeldriven.testing.Fixture;
+import org.drools.ide.common.client.modeldriven.testing.RetractFact;
+import org.drools.ide.common.client.modeldriven.testing.Scenario;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.TextBox;
+
+/**
+ * 
+ * This button gives a choice of modifying data, based on the positional
+ * context.
+ * 
+ * @author rikkola
+ * 
+ */
+public class CallMethodOnNewDataButton extends TestScenarioButton {
+
+	private final ExecutionTrace currentEx;
+
+	public CallMethodOnNewDataButton(final ExecutionTrace previousEx,
+			final Scenario scenario, final ExecutionTrace currentEx,
+			ScenarioWidget scenarioWidget) {
+		super("images/new_item.gif",
+				constants.AddANewDataInputToThisScenario(), previousEx,
+				scenario, scenarioWidget);
+
+		this.currentEx = currentEx;
+	}
+
+	@Override
+	protected TestScenarioButtonPopup getPopUp() {
+		return new NewInputPopup();
+	}
+
+	class NewInputPopup extends TestScenarioButtonPopup {
+		public NewInputPopup() {
+			super("images/rule_asset.gif", constants.NewInput());
+			List<String> varsInScope = scenario.getFactNamesInScope(currentEx,
+					false);
+			// now we do modifies & retracts
+			if (varsInScope.size() > 0) {
+				addAttribute(constants.CallAMethodOnAFactScenario(),
+						new CallMethodFactPanel(varsInScope));
+			}
+		}
+
+		class CallMethodFactPanel extends ListBoxBasePanel {
+
+			public CallMethodFactPanel(List<String> listItems) {
+				super(listItems);
+			}
+
+			@Override
+			public Fixture getFixture() {
+				String factName = valueWidget.getItemText(valueWidget
+						.getSelectedIndex());
+				return new CallMethod(factName);
+			}
+		}
+
+	}
+
+}

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodWidget.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/CallMethodWidget.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,286 @@
+package org.drools.guvnor.client.qa.testscenarios;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.guvnor.client.common.DirtyableComposite;
+import org.drools.guvnor.client.common.DirtyableFlexTable;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.common.ImageButton;
+import org.drools.guvnor.client.common.SmallLabel;
+import org.drools.guvnor.client.messages.Constants;
+import org.drools.guvnor.client.modeldriven.HumanReadable;
+import org.drools.ide.common.client.modeldriven.DropDownData;
+import org.drools.ide.common.client.modeldriven.MethodInfo;
+import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.ide.common.client.modeldriven.brl.ActionCallMethod;
+import org.drools.ide.common.client.modeldriven.brl.ActionFieldFunction;
+import org.drools.ide.common.client.modeldriven.testing.CallFieldValue;
+import org.drools.ide.common.client.modeldriven.testing.CallMethod;
+import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
+import org.drools.ide.common.client.modeldriven.testing.FactData;
+import org.drools.ide.common.client.modeldriven.testing.Scenario;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.ClickListener;
+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.ListBox;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+public class CallMethodWidget extends DirtyableComposite {
+
+	protected static Constants constants = ((Constants) GWT
+			.create(Constants.class));
+
+	protected final ScenarioWidget parent;
+	protected final Scenario scenario;
+	protected final CallMethod mCall;
+	protected final String factName;
+	private final ExecutionTrace executionTrace;
+
+	final private DirtyableFlexTable layout;
+	private boolean isBoundFact = false;
+
+	private String[] fieldCompletionTexts;
+	private String[] fieldCompletionValues;
+	private String variableClass;
+
+	private final SuggestionCompletionEngine suggestionCompletionEngine;
+
+	public CallMethodWidget(String factName, ScenarioWidget parent,
+			Scenario scenario, CallMethod mCall, ExecutionTrace executionTrace) {
+		super();
+		this.factName = factName;
+		this.parent = parent;
+		this.scenario = scenario;
+		this.mCall = mCall;
+		this.executionTrace = executionTrace;
+		this.suggestionCompletionEngine = parent.suggestionCompletionEngine;
+
+		this.layout = new DirtyableFlexTable();
+
+		layout.setStyleName("model-builderInner-Background"); // NON-NLS
+
+		if (suggestionCompletionEngine.isGlobalVariable(mCall.variable)) {
+
+			List<MethodInfo> infos = suggestionCompletionEngine
+					.getMethodInfosForGlobalVariable(mCall.variable);
+			this.fieldCompletionTexts = new String[infos.size()];
+			this.fieldCompletionValues = new String[infos.size()];
+			int i = 0;
+			for (MethodInfo info : infos) {
+				this.fieldCompletionTexts[i] = info.getName();
+				this.fieldCompletionValues[i] = info.getNameWithParameters();
+				i++;
+			}
+
+			this.variableClass = (String) suggestionCompletionEngine
+					.getGlobalVariable(mCall.variable);
+		} else {
+			String varType=scenario.getVariableTypes().get(mCall.variable);
+			FactData pattern = (FactData) scenario.getFactTypes().get(mCall.variable);
+			if (pattern != null) {
+				List<String> methodList = suggestionCompletionEngine
+						.getMethodNames(pattern.type);
+				fieldCompletionTexts = new String[methodList.size()];
+				fieldCompletionValues = new String[methodList.size()];
+				int i = 0;
+				for (String methodName : methodList) {
+					fieldCompletionTexts[i] = methodName;
+					fieldCompletionValues[i] = methodName;
+					i++;
+				}
+				this.variableClass = pattern.type;
+				this.isBoundFact = true;
+			}
+		}
+
+		doLayout();
+		initWidget(this.layout);
+	}
+
+	private void doLayout() {
+		layout.clear();
+		layout.setWidget(0, 0, getSetterLabel());
+		DirtyableFlexTable inner = new DirtyableFlexTable();
+		for (int i = 0; i < mCall.callFieldValues.length; i++) {
+			CallFieldValue val = mCall.callFieldValues[i];
+
+			inner.setWidget(i, 0, fieldSelector(val));
+			inner.setWidget(i, 1, valueEditor(val));
+			final int idx = i;
+			/*
+			 * It is not possible to remove a parameter of a function
+			 * 
+			 * Image remove = new ImageButton("images/delete_item_small.gif");
+			 * //NON-NLS remove.addClickListener( new ClickListener() { public
+			 * void onClick(Widget w) { if
+			 * (Window.confirm(constants.RemoveThisItem())) { model.removeField(
+			 * idx ); modeller.refreshWidget(); }; } }); inner.setWidget( i, 3,
+			 * remove );
+			 */
+		}
+		layout.setWidget(0, 1, inner);
+	}
+
+	private Widget getSetterLabel() {
+		HorizontalPanel horiz = new HorizontalPanel();
+
+		if (mCall.state == ActionCallMethod.TYPE_UNDEFINED) {
+			Image edit = new ImageButton("images/add_field_to_fact.gif"); // NON-
+			// NLS
+			edit.setTitle(constants.AddAnotherFieldToThisSoYouCanSetItsValue());
+			edit.addClickListener(new ClickListener() {
+				public void onClick(Widget w) {
+					showAddFieldPopup(w);
+				}
+			});
+			horiz.add(new SmallLabel(HumanReadable.getActionDisplayName("call")
+					+ " [" + mCall.variable + "]")); // NON-NLS
+                horiz.add( edit );
+		} else {
+			horiz.add(new SmallLabel(HumanReadable.getActionDisplayName("call")
+					+ " [" + mCall.variable + "." + mCall.methodName + "]")); // NON-NLS
+		}
+
+		return horiz;
+	}
+
+	protected void showAddFieldPopup(Widget w) {
+
+		final FormStylePopup popup = new FormStylePopup("images/newex_wiz.gif",
+				constants.ChooseAMethodToInvoke()); // NON-NLS
+		final ListBox box = new ListBox();
+		box.addItem("...");
+
+		for (int i = 0; i < fieldCompletionTexts.length; i++) {
+			box.addItem(fieldCompletionTexts[i], fieldCompletionValues[i]);
+		}
+
+		box.setSelectedIndex(0);
+
+		popup.addAttribute(constants.ChooseAMethodToInvoke(), box);
+		box.addChangeListener(new ChangeListener() {
+			public void onChange(Widget w) {
+				mCall.state = ActionCallMethod.TYPE_DEFINED;
+
+				String methodName = box.getItemText(box.getSelectedIndex());
+				String methodNameWithParams = box.getValue(box
+						.getSelectedIndex());
+
+				mCall.methodName = methodName;
+				List<String> fieldList = new ArrayList<String>();
+
+				fieldList.addAll(suggestionCompletionEngine.getMethodParams(variableClass,
+						methodNameWithParams));
+
+				// String fieldType = completions.getFieldType( variableClass,
+				// fieldName );
+				int i = 0;
+				for (String fieldParameter : fieldList) {
+					mCall.addFieldValue(new CallFieldValue(methodName,
+							String.valueOf(i), fieldParameter));
+					i++;
+				}
+
+				parent.renderEditor();
+				popup.hide();
+			}
+		});
+		popup.setPopupPosition(w.getAbsoluteLeft(), w.getAbsoluteTop());
+		popup.show();
+
+	}
+
+	private Widget valueEditor(final CallFieldValue val) {
+
+
+		String type = "";
+		if (suggestionCompletionEngine.isGlobalVariable(this.mCall.variable)) {
+			type = suggestionCompletionEngine.getGlobalVariable(this.mCall.variable);
+		} else {
+			Map<String, String> mFactTypes = scenario.getVariableTypes();
+			type	= mFactTypes.get(this.mCall.variable);
+		}
+
+		DropDownData enums = suggestionCompletionEngine.getEnums(type, this.mCall.callFieldValues,
+				val.field);
+		return new MethodParameterCallValueEditor(val, enums, executionTrace,scenario,
+				val.type, new Command() {
+
+					public void execute() {
+						//setModified(true);
+					}
+				});
+	}
+
+	/**
+	 * This will return a keyboard listener for field setters, which will obey
+	 * numeric conventions - it will also allow formulas (a formula is when the
+	 * first value is a "=" which means it is meant to be taken as the user
+	 * typed)
+	 */
+	public static KeyboardListener getNumericFilter(final TextBox box) {
+		return new KeyboardListener() {
+
+			public void onKeyDown(Widget arg0, char arg1, int arg2) {
+
+			}
+
+			public void onKeyPress(Widget w, char c, int i) {
+				if (Character.isLetter(c) && c != '='
+						&& !(box.getText().startsWith("="))) {
+					((TextBox) w).cancelKey();
+				}
+			}
+
+			public void onKeyUp(Widget arg0, char arg1, int arg2) {
+			}
+
+		};
+	}
+
+	private Widget fieldSelector(final CallFieldValue val) {
+		return new SmallLabel(val.type);
+	}
+
+	private Widget actionSelector(final ActionFieldFunction val) {
+
+		final ListBox box = new ListBox();
+		final String fieldType = val.type;
+		final String[] modifiers = suggestionCompletionEngine.getModifiers(fieldType);
+
+		if (modifiers != null) {
+			for (int i = 0; i < modifiers.length; i++) {
+				box.addItem(modifiers[i]);
+			}
+		}
+		box.addChangeListener(new ChangeListener() {
+
+			public void onChange(Widget arg0) {
+				String methodName = box.getItemText(box.getSelectedIndex());
+				val.setMethod(methodName);
+			}
+
+		});
+		return box;
+	}
+
+	/**
+	 * This returns true if the values being set are on a fact.
+	 */
+	public boolean isBoundFact() {
+		return isBoundFact;
+	}
+
+	public boolean isDirty() {
+		return layout.hasDirty();
+	}
+
+}

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/FieldDataConstraintEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/FieldDataConstraintEditor.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/FieldDataConstraintEditor.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -314,7 +314,7 @@
     
 
         if (this.field.collectionFieldList.size()==0){
-            Image add = new ImageButton("images/new_item.gif", Format.format(constants.AElementToAddInCollectionList(), "tt"), new ClickListener() {
+            Image add = new ImageButton("images/new_item.gif",Format.format(constants.AElementToAddInCollectionList(),"tt") , new ClickListener() {
                 public void onClick(Widget w) {
                     FieldData newFieldData = new FieldData();
                     newFieldData.name = field.name;

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/MethodParameterCallValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/MethodParameterCallValueEditor.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/MethodParameterCallValueEditor.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,334 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.guvnor.client.qa.testscenarios;
+
+import java.util.List;
+
+import org.drools.guvnor.client.common.DirtyableComposite;
+import org.drools.guvnor.client.common.DropDownValueChanged;
+import org.drools.guvnor.client.common.FieldEditListener;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.common.InfoPopup;
+import org.drools.guvnor.client.common.SmallLabel;
+import org.drools.guvnor.client.messages.Constants;
+import org.drools.guvnor.client.modeldriven.ui.EnumDropDown;
+import org.drools.ide.common.client.modeldriven.DropDownData;
+import org.drools.ide.common.client.modeldriven.FieldNature;
+import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.ide.common.client.modeldriven.brl.ActionInsertFact;
+import org.drools.ide.common.client.modeldriven.brl.FactPattern;
+import org.drools.ide.common.client.modeldriven.testing.CallFieldValue;
+import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
+import org.drools.ide.common.client.modeldriven.testing.FactData;
+import org.drools.ide.common.client.modeldriven.testing.Scenario;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
+import com.google.gwt.user.client.Command;
+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.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.KeyboardListener;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This provides for editing of fields in the RHS of a rule.
+ * 
+ * @author Nicolas Heron
+ * 
+ */
+public class MethodParameterCallValueEditor extends DirtyableComposite {
+
+    private CallFieldValue methodParameter;
+    private DropDownData        enums;
+    private SimplePanel         root;
+    private Constants           constants     = GWT.create( Constants.class );
+    private Scenario        model         = null;
+    private String              parameterType = null;
+    private Command             onValueChangeCommand = null;
+    private ExecutionTrace    ex;
+
+    public MethodParameterCallValueEditor(final CallFieldValue val,
+                                      final DropDownData enums,
+                                      ExecutionTrace ex,
+                                      Scenario model,
+                                      String parameterType, Command onValueChangeCommand) {
+        if ( val.type.equals( SuggestionCompletionEngine.TYPE_BOOLEAN ) ) {
+            this.enums = DropDownData.create( new String[]{"true", "false"} );
+        } else {
+            this.enums = enums;
+        }
+        this.root = new SimplePanel();
+        this.ex=ex;
+        this.methodParameter = val;
+        this.model = model;
+        this.parameterType = parameterType;
+        this.onValueChangeCommand = onValueChangeCommand;
+        refresh();
+        initWidget( root );
+    }
+
+    private void refresh() {
+        root.clear();
+        if ( enums != null && (enums.fixedList != null || enums.queryExpression != null) ) {
+            root.add( new EnumDropDown( methodParameter.value,
+                                        new DropDownValueChanged() {
+                                            public void valueChanged(String newText,
+                                                                     String newValue) {
+                                                methodParameter.value = newValue;
+                                                if (onValueChangeCommand != null){
+                                                    onValueChangeCommand.execute();
+                                                }
+                                                makeDirty();
+                                            }
+                                        },
+                                        enums ) );
+        } else {
+            // FIX nheron il faut ajouter les autres choix pour appeller les
+            // bons editeurs suivant le type
+            // si la valeur vaut 0 il faut mettre un stylo (
+
+            if ( methodParameter.nature == FieldNature.TYPE_UNDEFINED ) {
+                // we have a blank slate..
+                // have to give them a choice
+                root.add( choice() );
+            } else {
+                if ( methodParameter.nature == FieldNature.TYPE_VARIABLE ) {
+                    ListBox list = boundVariable( methodParameter );
+                    root.add( list );
+                } else {
+                    TextBox box = boundTextBox( this.methodParameter );
+                    root.add( box );
+                }
+
+            }
+
+        }
+    }
+
+    private ListBox boundVariable(final FieldNature c) {
+        /*
+         * If there is a bound variable that is the same type of the current
+         * variable type, then propose a list
+         */
+        final ListBox listVariable = new ListBox();
+        List<String> vars = model.getFactNamesInScope(ex, true);
+        for ( String v : vars ) {
+        	FactData factData=(FactData)model.getFactTypes().get(v);
+            if ( factData.type.equals( this.methodParameter.type ) ) {
+                // First selection is empty
+                if ( listVariable.getItemCount() == 0 ) {
+                    listVariable.addItem( "..." );
+                }
+
+                listVariable.addItem( "="+v );
+            }
+        }
+        if ( methodParameter.value.equals( "=" ) ) {
+            listVariable.setSelectedIndex( 0 );
+        } else {
+            for ( int i = 0; i < listVariable.getItemCount(); i++ ) {
+                if ( listVariable.getItemText( i ).equals( methodParameter.value ) ) {
+                    listVariable.setSelectedIndex( i );
+                }
+            }
+        }
+        if ( listVariable.getItemCount() > 0 ) {
+
+        	listVariable.addChangeHandler(new ChangeHandler() {
+				
+				public void onChange(ChangeEvent event) {
+                    methodParameter.value = listVariable.getValue( listVariable.getSelectedIndex() );
+                    if (onValueChangeCommand != null){
+                        onValueChangeCommand.execute();
+                    }
+                    makeDirty();
+                    refresh();
+                }
+			});
+        	
+//            listVariable.addChangeListener( new ChangeListener() {
+//                public void onChange(Widget arg0) {
+//                    ListBox w = (ListBox) arg0;
+//                    methodParameter.value = w.getValue( w.getSelectedIndex() );
+//                    if (onValueChangeCommand != null){
+//                        onValueChangeCommand.execute();
+//                    }
+//                    makeDirty();
+//                    refresh();
+//                }
+//
+//            } );
+        }
+        return listVariable;
+    }
+
+    private TextBox boundTextBox(final CallFieldValue c) {
+        final TextBox box = new TextBox();
+        box.setStyleName( "constraint-value-Editor" );
+        if ( c.value == null ) {
+            box.setText( "" );
+        } else {
+            if ( c.value.trim().equals( "" ) ) {
+                c.value = "";
+            }
+            box.setText( c.value );
+        }
+
+        if ( c.value == null || c.value.length() < 5 ) {
+            box.setVisibleLength( 6 );
+        } else {
+            box.setVisibleLength( c.value.length() - 1 );
+        }
+
+        box.addChangeListener( new ChangeListener() {
+            public void onChange(Widget w) {
+                c.value = box.getText();
+                if (onValueChangeCommand != null) {
+                    onValueChangeCommand.execute();
+                }
+                makeDirty();
+            }
+
+        } );
+
+        box.addKeyboardListener( new FieldEditListener( new Command() {
+            public void execute() {
+                box.setVisibleLength( box.getText().length() );
+            }
+        } ) );
+
+        if ( methodParameter.type.equals( SuggestionCompletionEngine.TYPE_NUMERIC ) ) {
+            box.addKeyboardListener( getNumericFilter( box ) );
+        }
+
+        return box;
+    }
+
+    /**
+     * This will return a keyboard listener for field setters, which will obey
+     * numeric conventions - it will also allow formulas (a formula is when the
+     * first value is a "=" which means it is meant to be taken as the user
+     * typed)
+     */
+    public static KeyboardListener getNumericFilter(final TextBox box) {
+        return new KeyboardListener() {
+
+            public void onKeyDown(Widget arg0,
+                                  char arg1,
+                                  int arg2) {
+
+            }
+
+            public void onKeyPress(Widget w,
+                                   char c,
+                                   int i) {
+                if ( Character.isLetter( c ) && c != '=' && !(box.getText().startsWith( "=" )) ) {
+                    ((TextBox) w).cancelKey();
+                }
+            }
+
+            public void onKeyUp(Widget arg0,
+                                char arg1,
+                                int arg2) {
+            }
+
+        };
+    }
+
+    private Widget choice() {
+        Image clickme = new Image( "images/edit.gif" );
+        clickme.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                showTypeChoice( w );
+            }
+        } );
+        return clickme;
+    }
+
+    protected void showTypeChoice(Widget w) {
+        final FormStylePopup form = new FormStylePopup( "images/newex_wiz.gif",
+                                                        constants.FieldValue() );
+        Button lit = new Button( constants.LiteralValue() );
+        lit.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                methodParameter.nature = FieldNature.TYPE_LITERAL;
+                methodParameter.value = " ";
+                makeDirty();
+                refresh();
+                form.hide();
+            }
+
+        } );
+        form.addAttribute( constants.LiteralValue() + ":",
+                           widgets( lit,
+                                    new InfoPopup( constants.Literal(),
+                                                   constants.LiteralValTip() ) ) );
+        form.addRow( new HTML( "<hr/>" ) );
+        form.addRow( new SmallLabel( constants.AdvancedSection() ) );
+
+
+        /*
+         * If there is a bound variable that is the same type of the current
+         * variable type, then show abutton
+         */
+        
+        
+        List<String> vars = model.getFactNamesInScope(ex, true);
+         for ( String v : vars ) {
+            boolean createButton = false;
+            Button variable = new Button( constants.BoundVariable() );
+            FactData factData=(FactData)model.getFactTypes().get(v);
+            if ( factData.type.equals( this.parameterType ) ) {
+            	createButton = true;
+            }
+            if ( createButton == true ) {
+                form.addAttribute( constants.BoundVariable() + ":",
+                                   variable );
+                variable.addClickListener( new ClickListener() {
+                    public void onClick(Widget w) {
+                        methodParameter.nature = FieldNature.TYPE_VARIABLE;
+                        methodParameter.value = "=";
+                        makeDirty();
+                        refresh();
+                        form.hide();
+                    }
+
+                } );
+                break;
+            }
+
+        }
+        form.show();
+    }
+
+    private Widget widgets(Button lit,
+                           InfoPopup popup) {
+        HorizontalPanel h = new HorizontalPanel();
+        h.add( lit );
+        h.add( popup );
+        return h;
+    }
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/NewDataButton.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/NewDataButton.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/NewDataButton.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -21,6 +21,7 @@
 import org.drools.guvnor.client.common.SmallLabel;
 import org.drools.guvnor.client.util.Format;
 import org.drools.ide.common.client.modeldriven.testing.ActivateRuleFlowGroup;
+import org.drools.ide.common.client.modeldriven.testing.CallMethod;
 import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
 import org.drools.ide.common.client.modeldriven.testing.FactData;
 import org.drools.ide.common.client.modeldriven.testing.Fixture;
@@ -78,6 +79,7 @@
 
                 addAttribute( constants.RetractAnExistingFactScenario(),
                               new ExtractFactPanel( varsInScope ) );
+                
 
             }
 
@@ -97,7 +99,7 @@
                 return new ActivateRuleFlowGroup( valueWidget.getText() );
             }
         }
-
+        
         class ExtractFactPanel extends ListBoxBasePanel {
 
             public ExtractFactPanel(List<String> listItems) {

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioHelper.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioHelper.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -23,6 +23,8 @@
 import java.util.Map;
 
 import org.drools.ide.common.client.modeldriven.testing.ActivateRuleFlowGroup;
+import org.drools.ide.common.client.modeldriven.testing.CallFixtureMap;
+import org.drools.ide.common.client.modeldriven.testing.CallMethod;
 import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
 import org.drools.ide.common.client.modeldriven.testing.FactData;
 import org.drools.ide.common.client.modeldriven.testing.FieldData;
@@ -38,122 +40,131 @@
  */
 public class ScenarioHelper {
 
-    static final String RETRACT_KEY              = "retract";
-    static final String ACTIVATE_RULE_FLOW_GROUP = "activate_rule_flow_group";
+	static final String RETRACT_KEY = "retract";
+	static final String ACTIVATE_RULE_FLOW_GROUP = "activate_rule_flow_group";
 
-    /**
-     * Called lumpy map - as this takes a flat list of fixtures, and groups things together.
-     * It will return a list - of which each element will either be a list - or a map.
-     * If its a map - then its a map of FactData to the fact type. If its a list, then it will be
-     * expectations or retractions.
-     *
-     * Man, this will be so much nicer with generics.
-     * @return List<List<VeryifyRuleFired or VerifyFact or RetractFact> OR Map<String, List<FactData>> OR ExecutionTrace>
-     */
-    public List<Fixture> lumpyMap(List<Fixture> fixtures) {
-        List<Fixture> output = new ArrayList<Fixture>();
+	/**
+	 * Called lumpy map - as this takes a flat list of fixtures, and groups
+	 * things together. It will return a list - of which each element will
+	 * either be a list - or a map. If its a map - then its a map of FactData to
+	 * the fact type. If its a list, then it will be expectations or
+	 * retractions.
+	 * 
+	 * Man, this will be so much nicer with generics.
+	 * 
+	 * @return List<List<VeryifyRuleFired or VerifyFact or RetractFact> OR
+	 *         Map<String, List<FactData>> OR ExecutionTrace>
+	 */
+	public List<Fixture> lumpyMap(List<Fixture> fixtures) {
+		List<Fixture> output = new ArrayList<Fixture>();
 
-        FixturesMap dataInput = new FixturesMap();
-        FixtureList verifyFact = new FixtureList();
-        FixtureList verifyRule = new FixtureList();
-        FixtureList retractFacts = new FixtureList();
+		FixturesMap dataInput = new FixturesMap();
+		CallFixtureMap callOnDataInput = new CallFixtureMap();
+		FixtureList verifyFact = new FixtureList();
+		FixtureList verifyRule = new FixtureList();
+		FixtureList retractFacts = new FixtureList();
 
-        for ( Iterator<Fixture> iterator = fixtures.iterator(); iterator.hasNext(); ) {
-            Fixture fixture = iterator.next();
-            if ( fixture instanceof FactData ) {
-                accumulateData( dataInput,
-                                fixture );
-            } else if ( fixture instanceof ActivateRuleFlowGroup ) {
-                accumulateData( dataInput,
-                                fixture );
-            } else if ( fixture instanceof RetractFact ) {
-                retractFacts.add( (RetractFact) fixture );
-            } else if ( fixture instanceof VerifyRuleFired ) {
-                verifyRule.add( (VerifyRuleFired) fixture );
-            } else if ( fixture instanceof VerifyFact ) {
-                verifyFact.add( (VerifyFact) fixture );
-            } else if ( fixture instanceof ExecutionTrace ) {
-                gatherFixtures( output,
-                                dataInput,
-                                verifyFact,
-                                verifyRule,
-                                retractFacts,
-                                false );
+		for (Iterator<Fixture> iterator = fixtures.iterator(); iterator
+				.hasNext();) {
+			Fixture fixture = iterator.next();
+			if (fixture instanceof FactData) {
+				accumulateData(dataInput, fixture);
+			} else if (fixture instanceof CallMethod) {
+				accumulateCallMethode(callOnDataInput, fixture);
+			} else if (fixture instanceof ActivateRuleFlowGroup) {
+				accumulateData(dataInput, fixture);
+			} else if (fixture instanceof RetractFact) {
+				retractFacts.add((RetractFact) fixture);
+			} else if (fixture instanceof VerifyRuleFired) {
+				verifyRule.add((VerifyRuleFired) fixture);
+			} else if (fixture instanceof VerifyFact) {
+				verifyFact.add((VerifyFact) fixture);
+			} else if (fixture instanceof ExecutionTrace) {
+				gatherFixtures(output, dataInput, callOnDataInput, verifyFact,
+						verifyRule, retractFacts, false);
 
-                output.add( fixture );
+				output.add(fixture);
 
-                verifyRule = new FixtureList();
-                verifyFact = new FixtureList();
-                retractFacts = new FixtureList();
-                dataInput = new FixturesMap();
-            }
-        }
-        gatherFixtures( output,
-                        dataInput,
-                        verifyFact,
-                        verifyRule,
-                        retractFacts,
-                        true );
+				verifyRule = new FixtureList();
+				verifyFact = new FixtureList();
+				retractFacts = new FixtureList();
+				callOnDataInput = new CallFixtureMap();
+				dataInput = new FixturesMap();
+			}
+		}
+		gatherFixtures(output, dataInput, callOnDataInput, verifyFact,
+				verifyRule, retractFacts, true);
 
-        return output;
-    }
+		return output;
+	}
 
-    private void gatherFixtures(List<Fixture> output,
-                                FixturesMap dataInput,
-                                FixtureList verifyFact,
-                                FixtureList verifyRule,
-                                FixtureList retractFacts,
-                                boolean end) {
-        if ( verifyRule.size() > 0 ) output.add( verifyRule );
-        if ( verifyFact.size() > 0 ) output.add( verifyFact );
-        if ( retractFacts.size() > 0 ) dataInput.put( RETRACT_KEY,
-                                                      retractFacts );
-        if ( dataInput.size() > 0 || !end ) output.add( dataInput ); //want to have a place holder for the GUI
-    }
+	private void gatherFixtures(List<Fixture> output, FixturesMap dataInput,
+			CallFixtureMap callOnDataInput, FixtureList verifyFact,
+			FixtureList verifyRule, FixtureList retractFacts, boolean end) {
+		if (verifyRule.size() > 0)
+			output.add(verifyRule);
+		if (verifyFact.size() > 0)
+			output.add(verifyFact);
+		if (retractFacts.size() > 0)
+			dataInput.put(RETRACT_KEY, retractFacts);
+		if (dataInput.size() > 0 || !end)
+			output.add(dataInput); // want to have a place holder for the GUI
+		if (callOnDataInput.size() > 0 || !end)
+			output.add(callOnDataInput);
+	}
 
-    /**
-     * Group the globals together by fact type.
-     */
-    public Map<String, FixtureList> lumpyMapGlobals(List<FactData> globals) {
-        Map<String, FixtureList> map = new HashMap<String, FixtureList>();
-        for ( FactData factData : globals ) {
-            accumulateData( map,
-                            factData );
-        }
-        return map;
-    }
+	/**
+	 * Group the globals together by fact type.
+	 */
+	public Map<String, FixtureList> lumpyMapGlobals(List<FactData> globals) {
+		Map<String, FixtureList> map = new HashMap<String, FixtureList>();
+		for (FactData factData : globals) {
+			accumulateData(map, factData);
+		}
+		return map;
+	}
 
-    private void accumulateData(Map<String, FixtureList> dataInput,
-                                Fixture f) {
-        if ( f instanceof FactData ) {
-            FactData fd = (FactData) f;
-            if ( !dataInput.containsKey( fd.type ) ) {
-                dataInput.put( fd.type,
-                               new FixtureList() );
-            }
-            ((FixtureList) dataInput.get( fd.type )).add( fd );
-        } else if ( f instanceof ActivateRuleFlowGroup ) {
-            if ( !dataInput.containsKey( ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP ) ) {
-                dataInput.put( ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP,
-                               new FixtureList() );
-            }
-            ((FixtureList) dataInput.get( ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP )).add( f );
-        }
-    }
+	private void accumulateData(Map<String, FixtureList> dataInput, Fixture f) {
+		if (f instanceof FactData) {
+			FactData fd = (FactData) f;
+			if (!dataInput.containsKey(fd.type)) {
+				dataInput.put(fd.type, new FixtureList());
+			}
+			((FixtureList) dataInput.get(fd.type)).add(fd);
+		} else if (f instanceof ActivateRuleFlowGroup) {
+			if (!dataInput.containsKey(ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP)) {
+				dataInput.put(ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP,
+						new FixtureList());
+			}
+			((FixtureList) dataInput
+					.get(ScenarioHelper.ACTIVATE_RULE_FLOW_GROUP)).add(f);
+		}
+	}
 
-    static void removeFields(List<Fixture> factDatas,
-                             String field) {
-        for ( Fixture fixture : factDatas ) {
-            if ( fixture instanceof FactData ) {
-                FactData factData = (FactData) fixture;
-                for ( Iterator<FieldData> fieldDataIterator = factData.fieldData.iterator(); fieldDataIterator.hasNext(); ) {
-                    FieldData fieldData = fieldDataIterator.next();
-                    if ( fieldData.name.equals( field ) ) {
-                        fieldDataIterator.remove();
-                    }
-                }
-            }
-        }
-    }
+	private void accumulateCallMethode(Map<String, FixtureList> dataInput,
+			Fixture f) {
+		if (f instanceof CallMethod) {
+			CallMethod fd = (CallMethod) f;
+			if (!dataInput.containsKey(fd.variable)) {
+				dataInput.put(fd.variable, new FixtureList());
+			}
+			((FixtureList) dataInput.get(fd.variable)).add(fd);
+		}
+	}
 
+	static void removeFields(List<Fixture> factDatas, String field) {
+		for (Fixture fixture : factDatas) {
+			if (fixture instanceof FactData) {
+				FactData factData = (FactData) fixture;
+				for (Iterator<FieldData> fieldDataIterator = factData.fieldData
+						.iterator(); fieldDataIterator.hasNext();) {
+					FieldData fieldData = fieldDataIterator.next();
+					if (fieldData.name.equals(field)) {
+						fieldDataIterator.remove();
+					}
+				}
+			}
+		}
+	}
+
 }

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioWidget.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/ScenarioWidget.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -29,6 +29,7 @@
 import org.drools.guvnor.client.rpc.RuleAsset;
 import org.drools.guvnor.client.ruleeditor.RuleViewer;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.ide.common.client.modeldriven.testing.CallFixtureMap;
 import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
 import org.drools.ide.common.client.modeldriven.testing.Fixture;
 import org.drools.ide.common.client.modeldriven.testing.FixtureList;
@@ -146,7 +147,7 @@
                                                                             2,
                                                                             HasHorizontalAlignment.ALIGN_LEFT );
 
-            } else if ( fixture instanceof FixturesMap ) {
+			} else if (fixture instanceof FixturesMap) {
                 editorLayout.setWidget( layoutRow,
                                         0,
                                         new GivenLabelButton( previousEx,
@@ -163,7 +164,19 @@
                                                            executionTraceLine,
                                                            (FixturesMap) fixture ) );
                 }
-            } else {
+            } else if (fixture instanceof CallFixtureMap) {
+				editorLayout.setWidget(layoutRow, 0,
+						new CallMethodLabelButton(previousEx, scenario,
+								listExecutionTrace.get(executionTraceLine),
+								this));
+
+				layoutRow++;
+				editorLayout.setWidget(
+						layoutRow,
+						1,
+						newCallMethodOnGivenPanel(listExecutionTrace,
+								executionTraceLine, (CallFixtureMap) fixture));
+			} else {
                 FixtureList fixturesList = (FixtureList) fixture;
                 Fixture first = fixturesList.get( 0 );
                 if ( first instanceof VerifyFact ) {
@@ -240,6 +253,21 @@
         }
     }
 
+	private Widget newCallMethodOnGivenPanel(
+			List<ExecutionTrace> listExecutionTrace, int executionTraceLine,
+			CallFixtureMap given) {
+
+		if (given.size() > 0) {
+			return new CallMethodOnGivenPanel(listExecutionTrace, executionTraceLine,
+					given, scenario, this);
+
+		} else {
+			return new HTML("<i><small>"
+					+ constants.AddInputDataAndExpectationsHere()
+					+ "</small></i>");
+		}
+	}
+    
     public Widget getRuleSelectionWidget(final String packageName,
                                          final RuleSelectionEvent selected) {
         final HorizontalPanel horizontalPanel = new HorizontalPanel();

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/TestScenarioButton.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/TestScenarioButton.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/testscenarios/TestScenarioButton.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -99,9 +99,8 @@
                 add.addClickHandler( new ClickHandler() {
 
                     public void onClick(ClickEvent event) {
-
                         scenario.insertBetween( previousEx,
-                                                getFixture() );
+                        		getFixture() );
                         parent.renderEditor();
                         hide();
                     }

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/util/BRDRTPersistenceTest.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -20,6 +20,7 @@
 
 import junit.framework.TestCase;
 
+import org.drools.ide.common.client.modeldriven.FieldNature;
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldValue;
 import org.drools.ide.common.client.modeldriven.brl.ActionInsertFact;
 import org.drools.ide.common.client.modeldriven.brl.FactPattern;
@@ -142,7 +143,7 @@
 
 		ActionInsertFact aif = new ActionInsertFact("Person");
 		ActionFieldValue afv = new ActionFieldValue("age", "age", ""); 
-		afv.nature = ActionFieldValue.TYPE_TEMPLATE;
+		afv.nature = FieldNature.TYPE_TEMPLATE;
 
 		aif.addFieldValue(afv);
 		m.rhs[0] = aif;
@@ -198,7 +199,7 @@
         
         ActionInsertFact aif = new ActionInsertFact("Person");
         ActionFieldValue afv = new ActionFieldValue("age", "age", ""); 
-        afv.nature = ActionFieldValue.TYPE_TEMPLATE;
+        afv.nature = FieldNature.TYPE_TEMPLATE;
         
         aif.addFieldValue(afv);
         m.rhs[0] = aif;

Added: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/FieldNature.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/FieldNature.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/FieldNature.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,64 @@
+package org.drools.ide.common.client.modeldriven;
+
+import org.drools.ide.common.client.modeldriven.brl.PortableObject;
+
+public interface FieldNature{
+
+	/**
+	 * This is used only when action is first created. This means that there is
+	 * no value yet for the constraint.
+	 */
+	public static final int TYPE_UNDEFINED = 0;
+	/**
+	 * This may be string, or number, anything really.
+	 */
+	public static final int TYPE_LITERAL = 1;
+	/**
+	 * This is when it is set to a valid previously bound variable.
+	 */
+	public static final int TYPE_VARIABLE = 2;
+	/**
+	 * This is for a "formula" that calculates a value.
+	 */
+	public static final int TYPE_FORMULA = 3;
+	/**
+	 * This is not used yet. ENUMs are not suitable for business rules until we
+	 * can get data driven non code enums.
+	 */
+	public static final int TYPE_ENUM = 4;
+	/**
+	 * The fieldName and fieldBinding is not used in the case of a predicate.
+	 */
+	public static final int TYPE_PREDICATE = 5;
+	/**
+	 * This is for a field to be a placeholder for a template
+	 */
+	public static final int TYPE_TEMPLATE = 7;
+
+	/**
+	 * This will return true if the value is really a "formula" - in the sense
+	 * of like an excel spreadsheet.
+	 * 
+	 * If it IS a formula, then the value should never be turned into a string,
+	 * always left as-is.
+	 * 
+	 */
+	public abstract boolean isFormula();
+
+	public abstract String getField();
+
+	public abstract void setField(String field);
+
+	public abstract String getValue();
+
+	public abstract void setValue(String value);
+
+	public abstract long getNature();
+
+	public abstract void setNature(long nature);
+
+	public abstract String getType();
+
+	public abstract void setType(String type);
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/SuggestionCompletionEngine.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -353,7 +353,7 @@
      * Similar to the one above - but this one is for RHS.
      */
     public DropDownData getEnums(String type,
-                                 ActionFieldValue[] currentValues,
+                                 FieldNature[] currentValues,
                                  String field) {
 
         if ( currentValues != null ) {
@@ -363,9 +363,9 @@
             if ( _typeField instanceof String ) {
                 String typeField = (String) dataEnumLookupFields.get( type + "." + field );
                 for ( int i = 0; i < currentValues.length; i++ ) {
-                    ActionFieldValue val = currentValues[i];
-                    if ( val.field.equals( typeField ) ) {
-                        String key = type + "." + field + "[" + typeField + "=" + val.value + "]";
+                	FieldNature val = currentValues[i];
+                    if ( val.getField().equals( typeField ) ) {
+                        String key = type + "." + field + "[" + typeField + "=" + val.getValue() + "]";
                         return DropDownData.create( this.getDataEnumList( key ) );
                     }
                 }
@@ -381,9 +381,9 @@
                 // as a string...
                 for ( int i = 0; i < fieldsNeeded.length; i++ ) {
                     for ( int j = 0; j < currentValues.length; j++ ) {
-                        ActionFieldValue con = currentValues[j];
-                        if ( con.field.equals( fieldsNeeded[i] ) ) {
-                            valuePairs[i] = fieldsNeeded[i] + "=" + con.value;
+                    	FieldNature con = currentValues[j];
+                        if ( con.getField().equals( fieldsNeeded[i] ) ) {
+                            valuePairs[i] = fieldsNeeded[i] + "=" + con.getValue();
                         }
                     }
                 }

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ActionFieldValue.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ActionFieldValue.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/brl/ActionFieldValue.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -16,81 +16,94 @@
 
 package org.drools.ide.common.client.modeldriven.brl;
 
+import org.drools.ide.common.client.modeldriven.FieldNature;
+
 /**
  * Holds field and value for "action" parts of the rule.
- *
+ * 
  * @author Michael Neale
  */
-public class ActionFieldValue
-    implements
-    PortableObject {
+public class ActionFieldValue implements PortableObject, FieldNature {
 
-    public String field;
-    public String value;
-    public long nature;
-    /**
-     * This is used only when action is first created.
-     * This means that there is no value yet for the constraint.
-     */
-    public static final int TYPE_UNDEFINED = 0;
+	public String field;
+	public String value;
+	public long nature;
+	/**
+	 * This is the datatype archectype (eg String, Numeric etc).
+	 */
+	public String type;
 
-    /**
-     * This may be string, or number, anything really.
-     */
-    public static final int TYPE_LITERAL   = 1;
+	public ActionFieldValue(final String field, final String value,
+			final String type) {
+		this.field = field;
+		this.value = value;
+		this.type = type;
+	}
 
-    /**
-     * This is when it is set to a valid previously bound variable.
-     */
-    public static final int TYPE_VARIABLE  = 2;
+	public ActionFieldValue() {
+	}
 
-    /**
-     * This is for a "formula" that calculates a value.
-     */
-    public static final int TYPE_FORMULA = 3;
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#isFormula()
+	 */
+	public boolean isFormula() {
+		return this.value != null && this.value.trim().startsWith("=");
+	}
 
-    /**
-     * This is not used yet. ENUMs are not suitable for business rules
-     * until we can get data driven non code enums.
-     */
-    public static final int TYPE_ENUM      = 4;
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#getField()
+	 */
+	public String getField() {
+		return field;
+	}
 
-    /**
-     * The fieldName and fieldBinding is not used in the case of a predicate.
-     */
-    public static final int TYPE_PREDICATE = 5;
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#setField(java.lang.String)
+	 */
+	public void setField(String field) {
+		this.field = field;
+	}
 
-    /**
-     * This is for a field to be a placeholder for a template
-     */
-    public static final int TYPE_TEMPLATE = 7;
-    
-    /**
-     * This is the datatype archectype (eg String, Numeric etc).
-     */
-    public String type;
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#getValue()
+	 */
+	public String getValue() {
+		return value;
+	}
 
-    public ActionFieldValue(final String field,
-                            final String value,
-                            final String type) {
-        this.field = field;
-        this.value = value;
-        this.type = type;
-    }
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#setValue(java.lang.String)
+	 */
+	public void setValue(String value) {
+		this.value = value;
+	}
 
-    public ActionFieldValue() {
-    }
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#getNature()
+	 */
+	public long getNature() {
+		return nature;
+	}
 
-    /**
-     * This will return true if the value is really a "formula" - in
-     * the sense of like an excel spreadsheet.
-     *
-     *  If it IS a formula, then the value should never be turned into a
-     *  string, always left as-is.
-     *
-     */
-    public boolean isFormula() {
-        return this.value != null && this.value.trim().startsWith( "=" );
-    }
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#setNature(long)
+	 */
+	public void setNature(long nature) {
+		this.nature = nature;
+	}
 
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#getType()
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.drools.ide.common.client.modeldriven.brl.FieldNature#setType(java.lang.String)
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
 }

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/dt/TemplateModel.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.ide.common.client.modeldriven.FieldNature;
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldList;
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldValue;
 import org.drools.ide.common.client.modeldriven.brl.CompositeFactPattern;
@@ -222,7 +223,7 @@
         
         private void visitActionFieldList(ActionFieldList afl) {
             for (ActionFieldValue afv : afl.fieldValues) {
-            	if (afv.nature == ActionFieldValue.TYPE_TEMPLATE && !vars.containsKey(afv.value)) {
+            	if (afv.nature == FieldNature.TYPE_TEMPLATE && !vars.containsKey(afv.value)) {
             		vars.put(afv.value, vars.size());
             	}
             }

Added: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFieldValue.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFieldValue.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFieldValue.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,92 @@
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.ide.common.client.modeldriven.testing;
+
+import org.drools.ide.common.client.modeldriven.FieldNature;
+import org.drools.ide.common.client.modeldriven.brl.PortableObject;
+
+/**
+ * Holds field and value for "action" parts of the rule.
+ * 
+ * @author Michael Neale
+ */
+public class CallFieldValue implements  FieldNature,PortableObject {
+
+	public String field;
+	public String value;
+	public long nature;
+	/**
+	 * This is the datatype archectype (eg String, Numeric etc).
+	 */
+	public String type;
+
+
+
+	public CallFieldValue(final String field, final String value,
+			final String type) {
+		this.field = field;
+		this.value = value;
+		this.type = type;
+	}
+
+	public CallFieldValue() {
+	}
+
+	/**
+	 * This will return true if the value is really a "formula" - in the sense
+	 * of like an excel spreadsheet.
+	 * 
+	 * If it IS a formula, then the value should never be turned into a string,
+	 * always left as-is.
+	 * 
+	 */
+	public boolean isFormula() {
+		return this.value != null && this.value.trim().startsWith("=");
+	}
+
+	public String getField() {
+		return this.field;
+	}
+
+	public void setField(String field) {
+		this.field = field;
+	}
+
+	public String getValue() {
+		return this.value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	public long getNature() {
+		return this.nature;
+	}
+
+	public void setNature(long nature) {
+		this.nature = nature;
+	}
+
+	public String getType() {
+		return this.type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+}

Added: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFixtureMap.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFixtureMap.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallFixtureMap.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,12 @@
+package org.drools.ide.common.client.modeldriven.testing;
+
+import java.util.HashMap;
+
+import org.drools.ide.common.client.modeldriven.brl.PortableObject;
+
+public class CallFixtureMap extends HashMap<String, FixtureList> implements
+		Fixture,PortableObject {
+
+	
+
+}

Added: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallMethod.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallMethod.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/CallMethod.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -0,0 +1,63 @@
+package org.drools.ide.common.client.modeldriven.testing;
+
+
+public class CallMethod implements Fixture {
+
+	/*
+	 * the function name was not yet choose
+	 */
+
+	public static final int TYPE_UNDEFINED = 0;
+
+	/**
+	 * The function has been choosen
+	 */
+	public static final int TYPE_DEFINED = 1;
+	/*
+	 * shows the state of the method call TYPE_UNDEFINED => the user has not
+	 * choosen a method or TYPE_DEFINED => The user has choosen a function
+	 */
+	public int state;
+
+	public String methodName;
+
+	public String variable;
+	public CallFieldValue[] callFieldValues = new CallFieldValue[0];
+
+	public CallMethod() {
+	}
+
+	public CallMethod(String variable) {
+		super();
+		this.variable = variable;
+	}
+
+	public void removeField(final int idx) {
+
+		final CallFieldValue[] newList = new CallFieldValue[this.callFieldValues.length - 1];
+		int newIdx = 0;
+		for (int i = 0; i < this.callFieldValues.length; i++) {
+
+			if (i != idx) {
+				newList[newIdx] = this.callFieldValues[i];
+				newIdx++;
+			}
+
+		}
+		this.callFieldValues = newList;
+	}
+
+	public void addFieldValue(final CallFieldValue val) {
+		if (this.callFieldValues == null) {
+			this.callFieldValues = new CallFieldValue[1];
+			this.callFieldValues[0] = val;
+		} else {
+			final CallFieldValue[] newList = new CallFieldValue[this.callFieldValues.length + 1];
+			for (int i = 0; i < this.callFieldValues.length; i++) {
+				newList[i] = this.callFieldValues[i];
+			}
+			newList[this.callFieldValues.length] = val;
+			this.callFieldValues = newList;
+		}
+	}
+}

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/Scenario.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/Scenario.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/client/modeldriven/testing/Scenario.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -91,13 +91,15 @@
     public void insertBetween(Fixture fix,
                               Fixture toAdd) {
 
-        boolean inserted = false;
+    	boolean inserted = false;
         int start = (fix == null) ? 0 : fixtures.indexOf( fix ) + 1;
+      
         for ( int j = start; j < fixtures.size(); j++ ) {
             Fixture f = (Fixture) fixtures.get( j );
             if ( f instanceof ExecutionTrace ) {
                 fixtures.add( j,
                               toAdd );
+                System.out.println(toAdd.toString());
                 return;
             }
         }

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/ide/common/server/util/BRDRLPersistence.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -17,6 +17,7 @@
 package org.drools.ide.common.server.util;
 
 import org.drools.core.util.ReflectiveVisitor;
+import org.drools.ide.common.client.modeldriven.FieldNature;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.*;
 
@@ -640,7 +641,7 @@
                 buf.append("( ");
                 if (fieldValues[i].isFormula()) {
                     buf.append(fieldValues[i].value.substring(1));
-                } else if (fieldValues[i].nature == ActionFieldValue.TYPE_TEMPLATE) {
+                } else if (fieldValues[i].nature == FieldNature.TYPE_TEMPLATE) {
                 	buf.append("@{").append(fieldValues[i].value).append("}");
                 } else if (SuggestionCompletionEngine.TYPE_STRING.equals(fieldValues[i].type)) {
                     buf.append("\"");
@@ -658,7 +659,7 @@
 		}
 
         private void generateSetMethodCallsMethod(final ActionCallMethod action,
-                final ActionFieldValue[] fieldValues) {
+                final FieldNature[] fieldValues) {
             buf.append("\t\t");
             if (isDSLEnhanced) {
                 buf.append(">");

Modified: labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/testframework/ScenarioRunner.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/testframework/ScenarioRunner.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-ide-common/src/main/java/org/drools/testframework/ScenarioRunner.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -34,6 +34,8 @@
 import org.drools.common.InternalRuleBase;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.ide.common.client.modeldriven.testing.ActivateRuleFlowGroup;
+import org.drools.ide.common.client.modeldriven.testing.CallFieldValue;
+import org.drools.ide.common.client.modeldriven.testing.CallMethod;
 import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
 import org.drools.ide.common.client.modeldriven.testing.Expectation;
 import org.drools.ide.common.client.modeldriven.testing.FactData;
@@ -179,7 +181,12 @@
                 RetractFact retractFact = (RetractFact) fixture;
                 this.workingMemory.retract( this.factHandles.get( retractFact.name ) );
                 this.populatedData.remove( retractFact.name );
+            } else if (fixture instanceof CallMethod){
+            	CallMethod aCall = (CallMethod)(fixture);
+            	Object targetInstance = populatedData.get(aCall.variable);
+            	executeMethodOnObject(aCall,targetInstance);
             } else if ( fixture instanceof ActivateRuleFlowGroup ) {
+       
                 workingMemory.getAgenda().activateRuleFlowGroup( ((ActivateRuleFlowGroup) fixture).name );
             } else if ( fixture instanceof ExecutionTrace ) {
                 doPopulate( toPopulate );
@@ -349,6 +356,34 @@
         return factObject;
     }
 
+	Object executeMethodOnObject(CallMethod fact, Object factObject) {
+		Map<String, Object> vars = new HashMap<String, Object>();
+		vars.put("__fact__", factObject);
+		String methodName = "__fact__." + fact.methodName + "(";
+		for (int i = 0; i < fact.callFieldValues.length; i++) {
+			CallFieldValue field = (CallFieldValue) fact.callFieldValues[i];
+			Object val;
+			if (field.value != null && !field.value.equals("")) {
+				if (field.value.startsWith("=")) {
+					// eval the val into existence
+					val = populatedData.get(field.value.substring(1));
+				} else {
+					val = field.value;
+				}
+				vars.put("__val" + i + "__", val);
+				methodName = methodName + "__val" + i + "__";
+				if (i < fact.callFieldValues.length - 1) {
+					methodName = methodName + ",";
+				}
+
+			}
+		}
+		methodName = methodName + ")";
+		eval(methodName, vars);
+		return factObject;
+	}
+    
+
     /**
      * True if the scenario was run with 100% success.
      */

Modified: labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/ActionFieldValueTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/ActionFieldValueTest.java	2010-09-08 14:19:20 UTC (rev 35066)
+++ labs/jbossrules/trunk/drools-ide-common/src/test/java/org/drools/ide/common/modeldriven/ActionFieldValueTest.java	2010-09-08 14:21:23 UTC (rev 35067)
@@ -18,13 +18,14 @@
 
 import junit.framework.TestCase;
 
+import org.drools.ide.common.client.modeldriven.FieldNature;
 import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.ide.common.client.modeldriven.brl.ActionFieldValue;
 
 public class ActionFieldValueTest extends TestCase {
 
     public void testFormula() {
-        ActionFieldValue val = new ActionFieldValue( "x",
+        FieldNature val = new ActionFieldValue( "x",
                                                      "y",
                                                      SuggestionCompletionEngine.TYPE_NUMERIC );
         assertFalse( val.isFormula() );



More information about the jboss-svn-commits mailing list