[jboss-svn-commits] JBL Code SVN: r14005 - 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
Fri Aug 3 10:52:35 EDT 2007


Author: ahtik
Date: 2007-08-03 10:52:35 -0400 (Fri, 03 Aug 2007)
New Revision: 14005

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/DSLSentenceWidget.java
Log:
Added support for expanding DRL with the DSL for guided editor

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-08-03 14:23:04 UTC (rev 14004)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java	2007-08-03 14:52:35 UTC (rev 14005)
@@ -4,6 +4,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintWriter;
+import java.io.Reader;
 import java.io.StringReader;
 import java.io.StringWriter;
 import java.util.ArrayList;
@@ -13,7 +14,9 @@
 import org.drools.brms.server.rules.SuggestionCompletionLoader;
 import org.drools.brms.server.util.BRDRLPersistence;
 import org.drools.brms.server.util.BRXMLPersistence;
+import org.drools.compiler.DrlParser;
 import org.drools.eclipse.DroolsEclipsePlugin;
+import org.drools.eclipse.dsl.editor.DSLAdapter;
 import org.drools.eclipse.util.ProjectClassLoader;
 import org.drools.lang.dsl.DSLMappingFile;
 import org.eclipse.core.internal.resources.Container;
@@ -40,6 +43,7 @@
 import org.eclipse.ui.editors.text.TextEditor;
 import org.eclipse.ui.forms.editor.FormEditor;
 import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.ide.ResourceUtil;
 import org.eclipse.ui.part.FileEditorInput;
 import org.eclipse.ui.texteditor.DocumentProviderRegistry;
 import org.eclipse.ui.texteditor.IDocumentProvider;
@@ -275,15 +279,25 @@
     }
 
     private void updateDRLPage() {
-
-        String drl;
+        
+        String drl="";
         try {
             drl = BRDRLPersistence.getInstance().marshal( guidedEditor.getRuleModel() );
+            
+            IResource resource = ResourceUtil.getResource( xmlEditor.getEditorInput() );
+            
+            Reader reader = DSLAdapter.getDSLContent( drl, resource );
+            DrlParser parser = new DrlParser();
+
+            if (reader!=null) {
+                drl = parser.getExpandedDRL( drl, reader );
+            }
+
         } catch ( Throwable t ) {
 
             StringWriter strwriter = new StringWriter();
             t.printStackTrace( new PrintWriter( strwriter ) );
-            drl = strwriter.toString();
+            drl = "\nPROBLEM WITH THE DRL CONVERSION!\n\n\nDRL:\n"+drl+"\n\nSTACKTRACE:\n"+strwriter.toString();
         }
         drlPreviewText.setText( drl );
     }

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/DSLSentenceWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/DSLSentenceWidget.java	2007-08-03 14:23:04 UTC (rev 14004)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/DSLSentenceWidget.java	2007-08-03 14:52:35 UTC (rev 14005)
@@ -93,26 +93,6 @@
                 //final Text thisBox = currentBox;
                 elems++;
 
-                currentBox.addModifyListener( new ModifyListener() {
-                    public void modifyText(ModifyEvent e) {
-                        updateSentence();
-                        /*                        Point p = thisBox.getSize();
-                         
-                         GC gc = new GC(thisBox);
-                         gc.setFont(thisBox.getFont());
-                         FontMetrics fontMetrics = gc.getFontMetrics();
-                         int w = fontMetrics.getAverageCharWidth()*thisBox.getText().length();
-                         gc.dispose();
-                         
-                         
-                         thisBox.setSize( w, p.y );
-                         thisBox.redraw();
-                         parent.redraw();
-                         */
-                        getModeller().setDirty( true );
-                    }
-                } );
-
                 widgets.add( currentBox );
 
             } else if ( c == '}' ) {
@@ -142,6 +122,33 @@
         l.marginBottom = 0;
         parent.setLayout( l );
 
+        // Attach listeners
+        Iterator widgetiter = widgets.iterator();
+        while ( widgetiter.hasNext() ) {
+            Object o = (Object) widgetiter.next();
+            if (o instanceof Text) {
+                ((Text)o).addModifyListener( new ModifyListener() {
+                    public void modifyText(ModifyEvent e) {
+                        updateSentence();
+                        /*                        Point p = thisBox.getSize();
+                         
+                         GC gc = new GC(thisBox);
+                         gc.setFont(thisBox.getFont());
+                         FontMetrics fontMetrics = gc.getFontMetrics();
+                         int w = fontMetrics.getAverageCharWidth()*thisBox.getText().length();
+                         gc.dispose();
+                         
+                         
+                         thisBox.setSize( w, p.y );
+                         thisBox.redraw();
+                         parent.redraw();
+                         */
+                        getModeller().setDirty( true );
+                    }
+                } );
+                
+            }
+        }
         toolkit.paintBordersFor( parent );
     }
 
@@ -155,7 +162,7 @@
                 newSentence = newSentence + "{" + ((Text) wid).getText() + "}";
             }
         }
-        this.sentence.sentence = newSentence.trim();
+        this.sentence.sentence = newSentence;
     }
 
 }




More information about the jboss-svn-commits mailing list