[jboss-svn-commits] JBL Code SVN: r31785 - labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 23 04:32:49 EST 2010


Author: Rikkola
Date: 2010-02-23 04:32:48 -0500 (Tue, 23 Feb 2010)
New Revision: 31785

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java
Log:
GUVNOR-112 : Add line numbers in DRL Editor
-Fixed a bug if one row had two strings with same value. For example: Person( name == "Toni" && name == "Toni" ), freezes the editor.

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java	2010-02-23 09:28:35 UTC (rev 31784)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java	2010-02-23 09:32:48 UTC (rev 31785)
@@ -28,6 +28,7 @@
 import org.drools.guvnor.client.common.InfoPopup;
 import org.drools.guvnor.client.common.LoadingPopup;
 import org.drools.guvnor.client.rpc.BuilderResult;
+import org.drools.guvnor.client.rpc.BuilderResultLine;
 import org.drools.guvnor.client.rpc.PackageConfigData;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
 import org.drools.guvnor.client.rpc.SnapshotInfo;
@@ -305,8 +306,8 @@
                                                                     category,
                                                                     enableCategorySelector,
                                                                     customSelector,
-                                                                    new GenericCallback<BuilderResult[]>() {
-                                                                        public void onSuccess(BuilderResult[] result) {
+                                                                    new GenericCallback<BuilderResult>() {
+                                                                        public void onSuccess(BuilderResult result) {
                                                                             LoadingPopup.close();
                                                                             if ( result == null ) {
                                                                                 showSuccessfulBuild( buildResults );
@@ -393,9 +394,9 @@
             text = "<span style='color:green'>" + text + "</span>";
         } else {
 
-            String[] keywords = {"rule", "when", "then", "end", "true", "false", "accumulate", "collect", "from", "null", "over", "lock-on-active", "date-effective", "date-expires", "no-loop", "auto-focus", "activation-group", "agenda-group",
-                    "ruleflow-group", "entry-point", "duration", "package", "import", "dialect", "salience", "enabled", "attributes", "extend", "template", "query", "declare", "function", "global", "eval", "exists", "forall", "action", "reverse",
-                    "result", "end", "init"};
+            String[] keywords = {"rule", "when", "then", "end", "accumulate", "collect", "from", "null", "over", "lock-on-active", "date-effective", "date-expires", "no-loop", "auto-focus", "activation-group", "agenda-group", "ruleflow-group",
+                    "entry-point", "duration", "package", "import", "dialect", "salience", "enabled", "attributes", "extend", "template", "query", "declare", "function", "global", "eval", "exists", "forall", "action", "reverse", "result", "end",
+                    "init"};
 
             for ( String keyword : keywords ) {
                 if ( text.contains( keyword ) ) {
@@ -421,13 +422,22 @@
         while ( stringStart >= 0 ) {
             int stringEnd = text.indexOf( character,
                                           stringStart + 1 );
+            if ( stringEnd < 0 ) {
+                stringStart = -1;
+                break;
+            }
+
             String oldString = text.substring( stringStart,
                                                stringEnd + 1 );
 
-            String newString = "<span style='color:green;>" + oldString + "</span>";
-            text = text.replace( oldString,
-                                 newString );
+            String newString = "<span style='color:green;'>" + oldString + "</span>";
 
+            String beginning = text.substring( 0,
+                                               stringStart );
+            String end = text.substring( stringEnd + 1 );
+
+            text = beginning + newString + end;
+
             int searchStart = stringStart + newString.length() + 1;
 
             if ( searchStart < text.length() ) {
@@ -477,14 +487,14 @@
     /**
      * This is called in the unhappy event of there being errors.
      */
-    public static void showBuilderErrors(BuilderResult[] results,
+    public static void showBuilderErrors(BuilderResult results,
                                          Panel buildResults,
                                          final EditItemEvent editEvent) {
         buildResults.clear();
 
-        Object[][] data = new Object[results.length][4];
-        for ( int i = 0; i < results.length; i++ ) {
-            BuilderResult res = results[i];
+        Object[][] data = new Object[results.lines.length][4];
+        for ( int i = 0; i < results.lines.length; i++ ) {
+            BuilderResultLine res = results.lines[i];
             data[i][0] = res.uuid;
             data[i][1] = res.assetName;
             data[i][2] = res.assetFormat;



More information about the jboss-svn-commits mailing list