[jboss-svn-commits] JBL Code SVN: r12861 - in labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder: ui and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 26 07:47:19 EDT 2007


Author: ahtik
Date: 2007-06-26 07:47:19 -0400 (Tue, 26 Jun 2007)
New Revision: 12861

Modified:
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
Log:
JBRULES-878: added rule name set from filename; added modify combobox; fixed add combobox so RHS can use LHS fact bindings; fixed a few threading issues for model update.

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java	2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java	2007-06-26 11:47:19 UTC (rev 12861)
@@ -129,13 +129,27 @@
             setPageText( 2,
                          "Generated DRL (read-only)" );
 
-            setPartName( xmlEditor.getTitle() );
+            updateName(false);
             
         } catch ( PartInitException e ) {
             e.printStackTrace();
         }
     }
 
+    private void updateName(boolean forced) {
+        String name = xmlEditor.getTitle();
+        setPartName( name );
+        
+        //TODO Add support for other than .brxml extensions
+        if (guidedEditor.getModeller()!=null && guidedEditor.getModeller().getModel()!=null && (guidedEditor.getModeller().getModel().name==null || forced)) {
+            String shortName = name.substring( 0, name.length()-".brxml".length() );
+            guidedEditor.getModeller().getModel().name=shortName;            
+        }
+        
+        updateDRLPage();
+        
+    }
+
     private IPath getCurrentDirectoryPath(IEditorInput editorInput) {
         return ((FileEditorInput) editorInput).getFile().getFullPath().removeLastSegments( 1 ).addTrailingSeparator();
     }
@@ -231,6 +245,7 @@
                 if ( newModel ) {
                     guidedEditor.getModeller().setDirty( false );
                 }
+                updateName(false);
             }
 
             guidedEditor.refresh();
@@ -249,21 +264,28 @@
                 guidedEditor.setModelXML( document.get() );
             }
 
-            String drl;
-            try {
-                drl = BRDRLPersistence.getInstance().marshal( guidedEditor.getRuleModel() );
-            } catch ( Throwable t ) {
+            updateDRLPage();
 
-                StringWriter strwriter = new StringWriter();
-                t.printStackTrace( new PrintWriter( strwriter ) );
-                drl = strwriter.toString();
-            }
-            drlPreviewText.setText( drl );
+            updateName(false);
 
         }
 
     }
 
+    private void updateDRLPage() {
+
+        String drl;
+        try {
+            drl = BRDRLPersistence.getInstance().marshal( guidedEditor.getRuleModel() );
+        } catch ( Throwable t ) {
+
+            StringWriter strwriter = new StringWriter();
+            t.printStackTrace( new PrintWriter( strwriter ) );
+            drl = strwriter.toString();
+        }
+        drlPreviewText.setText( drl );
+    }
+
     public void doSave(IProgressMonitor monitor) {
         IDocument document = getInputDocument();
 
@@ -291,7 +313,7 @@
     public void doSaveAs() {
         xmlEditor.doSaveAs();
         guidedEditor.getModeller().setDirty( false );
-        setPartName( xmlEditor.getTitle() );
+        updateName(true);
         setInput( xmlEditor.getEditorInput() );
         
         guidedEditor.refresh();

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java	2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java	2007-06-26 11:47:19 UTC (rev 12861)
@@ -70,9 +70,16 @@
                                                            "",
                                                            fieldType ) );
 
-                modeller.reloadRhs();
-                modeller.setDirty( true );
-                close();
+                
+                getShell().getDisplay().asyncExec( new Runnable() {
+
+                    public void run() {
+                        modeller.reloadRhs();
+                        modeller.setDirty( true );
+                        close();
+                    }
+
+                } );
             }
         } );
 

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java	2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java	2007-06-26 11:47:19 UTC (rev 12861)
@@ -1,9 +1,12 @@
 package org.drools.eclipse.rulebuilder.ui;
 
+import java.util.List;
+
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.brxml.ActionInsertFact;
 import org.drools.brms.client.modeldriven.brxml.ActionInsertLogicalFact;
 import org.drools.brms.client.modeldriven.brxml.ActionSetField;
+import org.drools.brms.client.modeldriven.brxml.ActionUpdateField;
 import org.drools.brms.client.modeldriven.brxml.DSLSentence;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Combo;
@@ -40,9 +43,12 @@
         Composite composite = (Composite) super.createDialogArea( parent );
         String heading = "Choose...";
 
-        createGlobalVariablesPart( composite,
+        createValuesOfFieldPart( composite,
                                    heading );
 
+        createModifyFieldPart( composite,
+                                 heading );
+
         String[] facts = getCompletion().getFactTypes();
 
         createFactAssertionPart( composite,
@@ -59,6 +65,38 @@
         return composite;
     }
 
+    private void createModifyFieldPart(Composite composite,
+                                       String heading) {
+        createLabel( composite,
+                     "Modify a field on a fact" );
+        final Combo factsCombo = new Combo( composite,
+                                                 SWT.READ_ONLY );
+        factsCombo.add( heading );
+
+        List boundFacts = modeller.getModel().getBoundFacts();
+
+        for ( int i = 0; i < boundFacts.size(); i++ ) {
+            factsCombo.add( (String) boundFacts.get( i ) );
+        }
+        factsCombo.select( 0 );
+
+        factsCombo.addListener( SWT.Selection,
+                                     new Listener() {
+                                         public void handleEvent(Event event) {
+                                             if ( factsCombo.getSelectionIndex() == 0 ) {
+                                                 return;
+                                             }
+
+                                             modeller.getModel().addRhsItem(new ActionUpdateField(factsCombo.getText()));
+                                             
+                                             modeller.setDirty( true );
+                                             modeller.reloadRhs();
+                                             close();
+                                         }
+                                     } );
+        
+    }
+
     private void createDslSentences(Composite composite,
                                     String heading) {
         if ( getCompletion().getDSLActions().length > 0 ) {
@@ -152,16 +190,18 @@
         return factsCombo;
     }
 
-    private void createGlobalVariablesPart(Composite composite,
+    private void createValuesOfFieldPart(Composite composite,
                                            String heading) {
         createLabel( composite,
                      "Set the values of a field on" );
         final Combo globalVarsCombo = new Combo( composite,
                                                  SWT.READ_ONLY );
         globalVarsCombo.add( heading );
-        String[] globalVars = getCompletion().getGlobalVariables();
-        for ( int i = 0; i < globalVars.length; i++ ) {
-            globalVarsCombo.add( globalVars[i] );
+        
+        List boundFacts = modeller.getModel().getBoundFacts();
+        
+        for ( int i = 0; i < boundFacts.size(); i++ ) {
+            globalVarsCombo.add( (String) boundFacts.get( i ) );
         }
         globalVarsCombo.select( 0 );
 

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java	2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java	2007-06-26 11:47:19 UTC (rev 12861)
@@ -574,6 +574,8 @@
             public void modifyText(ModifyEvent e) {
                 con.operator = HumanReadable.getOperatorName( box.getText() );
                 getModeller().setDirty( true );
+                
+                
             }
         } );
     }




More information about the jboss-svn-commits mailing list