[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