[jboss-svn-commits] JBL Code SVN: r6405 - in labs/jbossrules/trunk/drools-ide: . src/main/java/org/drools/ide src/main/java/org/drools/ide/debug/core src/main/java/org/drools/ide/editors src/main/java/org/drools/ide/launching

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Sep 24 17:55:35 EDT 2006


Author: KrisVerlaenen
Date: 2006-09-24 17:55:30 -0400 (Sun, 24 Sep 2006)
New Revision: 6405

Modified:
   labs/jbossrules/trunk/drools-ide/plugin.xml
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DRLInfo.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java
Log:
JBRULES-342: interactive rule debugger
 - additional work to get debugger working

Modified: labs/jbossrules/trunk/drools-ide/plugin.xml
===================================================================
--- labs/jbossrules/trunk/drools-ide/plugin.xml	2006-09-24 15:52:32 UTC (rev 6404)
+++ labs/jbossrules/trunk/drools-ide/plugin.xml	2006-09-24 21:55:30 UTC (rev 6405)
@@ -48,7 +48,7 @@
    <extension
          point="org.eclipse.ui.editors">
       <editor
-            class="org.drools.ide.editors.DRLRuleEditor2"
+            class="org.drools.ide.editors.DRLRuleEditor"
             contributorClass="org.drools.ide.editors.DRLRuleEditorActionContributor"
             extensions="drl,jbrule,drools,rule"
             icon="icons/drools.gif"
@@ -265,7 +265,7 @@
       </shortcut>
    </extension> -->
    
-   <!-- not working if using multipage editor
+   <!-- not working if using multipage editor -->
    <extension point="org.eclipse.ui.editorActions">
       <editorContribution
             targetID="org.drools.ide.editors.DRLRuleEditor" 
@@ -279,6 +279,7 @@
       </editorContribution>
    </extension>
    
+   <!-- not working if using multipage editor -->
    <extension point="org.eclipse.ui.popupMenus">
       <viewerContribution
             targetID="#TextRulerContext"
@@ -290,7 +291,7 @@
             id="org.drools.ide.editors.DRLRuleEditor.rulerContextMenu.ToggleBreakpointRulerAction">
          </action>
       </viewerContribution>
-   </extension> -->
+   </extension>
    
    <extension point = "org.eclipse.ui.popupMenus">
      <objectContribution

Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DRLInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DRLInfo.java	2006-09-24 15:52:32 UTC (rev 6404)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DRLInfo.java	2006-09-24 21:55:30 UTC (rev 6405)
@@ -92,10 +92,10 @@
 		int ruleLine = -1;
 		RuleInfo result = null;
 		for (int i = 0; i < ruleInfos.length; i++) {
-			int ruleConsequenceDrlLineNumber = ruleInfos[i].getConsequenceDrlLineNumber();
-			if (ruleConsequenceDrlLineNumber > ruleLine
-					&& ruleConsequenceDrlLineNumber < drlLineNumber) {
-				ruleLine = ruleConsequenceDrlLineNumber;
+			int ruleDrlLineNumber = ruleInfos[i].getDrlLineNumber();
+			if (ruleDrlLineNumber > ruleLine
+					&& ruleDrlLineNumber <= drlLineNumber + 1) {
+				ruleLine = ruleDrlLineNumber;
 				result = ruleInfos[i];
 			}
 		}
@@ -132,6 +132,10 @@
 			return className;
 		}
 
+		public int getDrlLineNumber() {
+			return ruleDescr.getLine();
+		}
+
 		public int getConsequenceDrlLineNumber() {
 			return ruleDescr.getConsequenceLine();
 		}

Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java	2006-09-24 15:52:32 UTC (rev 6404)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java	2006-09-24 21:55:30 UTC (rev 6405)
@@ -70,14 +70,15 @@
 	}
 	
 	public static int getRuleLineNumber(IResource resource, int lineNumber) throws CoreException {
-		// TODO remove duplicated code
 		try {
 			DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(resource, true);
 			if (drlInfo != null) {
 				RuleInfo ruleInfo = drlInfo.getRuleInfo(lineNumber);
 				if (ruleInfo != null) {
-					return ruleInfo.getConsequenceJavaLineNumber()
-						+ (lineNumber - ruleInfo.getConsequenceDrlLineNumber());
+					if (ruleInfo.getConsequenceDrlLineNumber() < lineNumber) {
+						return ruleInfo.getConsequenceJavaLineNumber()
+							+ (lineNumber - ruleInfo.getConsequenceDrlLineNumber());
+					}
 				}
 			}
 			throw new CoreException(new Status(IStatus.ERROR, DroolsIDEPlugin.getUniqueIdentifier(), 0,

Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java	2006-09-24 15:52:32 UTC (rev 6404)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java	2006-09-24 21:55:30 UTC (rev 6405)
@@ -1,5 +1,8 @@
 package org.drools.ide.editors;
 
+import org.drools.ide.DRLInfo;
+import org.drools.ide.DroolsIDEPlugin;
+import org.drools.ide.DRLInfo.RuleInfo;
 import org.drools.ide.debug.core.DroolsLineBreakpoint;
 import org.drools.ide.debug.core.IDroolsDebugConstants;
 import org.eclipse.core.resources.IResource;
@@ -15,8 +18,26 @@
 public class DroolsLineBreakpointAdapter implements IToggleBreakpointsTarget {
 
 	public boolean canToggleLineBreakpoints(IWorkbenchPart part, ISelection selection) {
-		// TODO: drools breakpoints can only be created in functions and consequences
-		return true;
+		if (part instanceof IEditorPart) {
+			IEditorPart editor = (IEditorPart) part;
+			IResource resource = (IResource) editor.getEditorInput().getAdapter(IResource.class);
+			ITextSelection textSelection = (ITextSelection) selection;
+			int lineNumber = textSelection.getStartLine();
+			try {
+				DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(resource, true);
+				if (drlInfo != null) {
+					RuleInfo ruleInfo = drlInfo.getRuleInfo(lineNumber);
+					if (ruleInfo != null) {
+						if (ruleInfo.getConsequenceDrlLineNumber() <= lineNumber) {
+							return true;
+						}
+					}
+				}
+			} catch (Throwable t) {
+					DroolsIDEPlugin.log(t);
+			}
+		}
+		return false;
 	}
 
 	public boolean canToggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) {

Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java	2006-09-24 15:52:32 UTC (rev 6404)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java	2006-09-24 21:55:30 UTC (rev 6405)
@@ -2,6 +2,7 @@
 
 import java.text.MessageFormat;
 
+import org.drools.ide.DroolsIDEPlugin;
 import org.drools.ide.debug.core.IDroolsDebugConstants;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -31,6 +32,11 @@
 		if (mode.equals(ILaunchManager.DEBUG_MODE)) {
 			IBreakpoint[] breakpoints = getDroolsBreakpoints();
 			for (int i = 0; i < breakpoints.length; i++) {
+				try {
+					DroolsIDEPlugin.getDefault().parseResource(breakpoints[i].getMarker().getResource(), true);
+				} catch (Throwable t) {
+					DroolsIDEPlugin.log(t);
+				}
 				launch.getDebugTarget().breakpointAdded(breakpoints[i]);
 			}
 		}




More information about the jboss-svn-commits mailing list