[jboss-svn-commits] JBL Code SVN: r7820 - in labs/jbossrules/trunk/drools-ide: . icons src/main/java/org/drools/ide src/main/java/org/drools/ide/core src/main/java/org/drools/ide/core/ui src/main/java/org/drools/ide/editors/outline src/main/java/org/drools/ide/view src/main/java/org/drools/ide/view/rules
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Nov 24 18:22:03 EST 2006
Author: KrisVerlaenen
Date: 2006-11-24 18:21:52 -0500 (Fri, 24 Nov 2006)
New Revision: 7820
Added:
labs/jbossrules/trunk/drools-ide/icons/drools-query.GIF
labs/jbossrules/trunk/drools-ide/icons/drools-rule.GIF
labs/jbossrules/trunk/drools-ide/icons/field_public_obj.gif
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsElement.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsModelBuilder.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Expander.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Function.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Global.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Import.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Package.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Query.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Rule.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleAttribute.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleSet.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Template.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsContentProvider.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsFilter.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsLabelProvider.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsTreeSorter.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterAction.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterActionGroup.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/view/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/view/rules/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/view/rules/RulesView.java
Removed:
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ExpanderTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/FunctionTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/GlobalTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ImportTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/OutlineNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/PackageTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/QueryTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleAttributeTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleFileTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleTreeNode.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/TemplateTreeNode.java
Modified:
labs/jbossrules/trunk/drools-ide/.classpath
labs/jbossrules/trunk/drools-ide/plugin.xml
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPerspective.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPluginImages.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/IDroolsConstants.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleContentOutlinePage.java
Log:
JBRULES-567: Rules View
- created a rules view that contains all rules in the workspace
- created core rule model that is now used in rules view and outline view
- created rule model ui tools like sorter, filters, etc.
Modified: labs/jbossrules/trunk/drools-ide/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-ide/.classpath 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/.classpath 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.6.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/antlr-3.0ea8.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-logging-api-1.0.4.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.3.4.O.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/xstream-1.1.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/jsr94-1.1.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-jci-core-1.0-406301.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-jci-eclipse-3.2.0.666.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/commons-jci-janino-2.4.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/janino-2.4.3.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/drools-compiler.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/drools-core.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/drools-decisiontables.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/drools-jsr94.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/stringtemplate-2.3b6.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/antlr-3.0ea8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-logging-api-1.0.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.3.4.O.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xstream-1.1.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jsr94-1.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-jci-core-1.0-406301.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-jci-eclipse-3.2.0.666.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-jci-janino-2.4.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/janino-2.4.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-compiler.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-core.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-decisiontables.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-jsr94.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/stringtemplate-2.3b6.jar"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: labs/jbossrules/trunk/drools-ide/icons/drools-query.GIF
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-ide/icons/drools-query.GIF
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossrules/trunk/drools-ide/icons/drools-rule.GIF
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-ide/icons/drools-rule.GIF
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossrules/trunk/drools-ide/icons/field_public_obj.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-ide/icons/field_public_obj.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: labs/jbossrules/trunk/drools-ide/plugin.xml
===================================================================
--- labs/jbossrules/trunk/drools-ide/plugin.xml 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/plugin.xml 2006-11-24 23:21:52 UTC (rev 7820)
@@ -34,6 +34,13 @@
class="org.drools.ide.debug.AuditView"
id="org.drools.ide.debug.AuditView">
</view>
+ <view
+ name="Rules View"
+ icon="icons/drools.gif"
+ category="org.drools.ide.views"
+ class="org.drools.ide.view.rules.RulesView"
+ id="org.drools.ide.view.rules.RulesView">
+ </view>
</extension>
<extension
@@ -54,7 +61,15 @@
icon="icons/drools.gif"
id="org.drools.ide.editors.DRLRuleEditor"
name="Rule Editor"/>
+ <!--
<editor
+ class="org.drools.ide.editors.dsl.DSLRuleEditor2"
+ contributorClass="org.drools.ide.editors.DRLRuleEditorActionContributor"
+ extensions="dslr,dslrule"
+ icon="icons/drools.gif"
+ id="org.drools.ide.editors.dsl.DSLRuleEditor"
+ name="DSL Rule Editor"/> -->
+ <editor
class="org.drools.ide.dsl.editor.DSLEditor"
contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
default="false"
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPerspective.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPerspective.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPerspective.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -18,8 +18,12 @@
folder.addPlaceholder(JavaUI.ID_TYPE_HIERARCHY);
folder.addView(IPageLayout.ID_RES_NAV);
+ IFolderLayout rulesfolder= layout.createFolder("leftbottom", IPageLayout.BOTTOM, (float)0.5, "left"); //$NON-NLS-1$
+ rulesfolder.addView(IDroolsConstants.RULES_VIEW);
+
IFolderLayout outputfolder= layout.createFolder("bottom", IPageLayout.BOTTOM, (float)0.75, editorArea); //$NON-NLS-1$
outputfolder.addView(IPageLayout.ID_PROBLEM_VIEW);
+ outputfolder.addView(IPageLayout.ID_PROP_SHEET);
outputfolder.addPlaceholder(JavaUI.ID_JAVADOC_VIEW);
outputfolder.addPlaceholder(JavaUI.ID_SOURCE_VIEW);
outputfolder.addPlaceholder(IConsoleConstants.ID_CONSOLE_VIEW);
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPluginImages.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPluginImages.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsPluginImages.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -47,7 +47,12 @@
public static final String METHOD = "Method";
public static final String VARIABLE = "Variable";
public static final String DROOLS = "Drools";
+ public static final String RULE = "DroolsRule";
+ public static final String QUERY = "DroolsQuery";
public static final String DSL_EXPRESSION = "DslExpression";
+ public static final String IMPORT = "Import";
+ public static final String DSL = "DSL";
+ public static final String GLOBAL = "Global";
private static ImageRegistry imageRegistry;
private static final String PATH_SUFFIX = "/icons/";
@@ -73,7 +78,12 @@
declareRegistryImage(METHOD, "methpub_obj.gif");
declareRegistryImage(VARIABLE, "field_private_obj.gif");
declareRegistryImage(DROOLS, "drools.gif");
+ declareRegistryImage(RULE, "drools-rule.gif");
+ declareRegistryImage(QUERY, "drools-query.gif");
declareRegistryImage(DSL_EXPRESSION, "dsl_expression.gif");
+ declareRegistryImage(IMPORT, "import.gif");
+ declareRegistryImage(DSL, "dsl.GIF");
+ declareRegistryImage(GLOBAL, "field_public_obj.gif");
}
/**
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/IDroolsConstants.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/IDroolsConstants.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/IDroolsConstants.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -3,5 +3,6 @@
public interface IDroolsConstants {
final String AUDIT_VIEW = "org.drools.ide.debug.AuditView";
+ final String RULES_VIEW = "org.drools.ide.view.rules.RulesView";
}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsElement.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsElement.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsElement.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,66 @@
+package org.drools.ide.core;
+
+import org.eclipse.core.resources.IFile;
+
+/**
+ * This represents a drools model element. It is linked to its direct
+ * parents and its children. If relevant, Drools model elements refer
+ * to the file they are defined in and the offset and length of that
+ * element in the file.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public abstract class DroolsElement {
+
+ public static final int RULESET = 0;
+ public static final int PACKAGE = 1;
+ public static final int RULE = 2;
+ public static final int QUERY = 3;
+ public static final int FUNCTION = 4;
+ public static final int TEMPLATE = 5;
+ public static final int EXPANDER = 6;
+ public static final int GLOBAL = 7;
+ public static final int IMPORT = 8;
+ public static final int RULE_ATTRIBUTE = 9;
+
+ protected static final DroolsElement[] NO_ELEMENTS = new DroolsElement[0];
+
+ private DroolsElement parent;
+ private IFile file;
+ private int offset;
+ private int length;
+
+ protected DroolsElement(DroolsElement parent) {
+ this.parent = parent;
+ }
+
+ public abstract int getType();
+
+ public DroolsElement getParent() {
+ return parent;
+ }
+
+ public abstract DroolsElement[] getChildren();
+
+ public IFile getFile() {
+ return file;
+ }
+
+ public int getOffset() {
+ return offset;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ // These are helper methods for creating the model and should not
+ // be used directly. Use DroolsModelBuilder instead.
+
+ void setFile(IFile file, int offset, int length) {
+ this.file = file;
+ this.offset = offset;
+ this.length = length;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsModelBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsModelBuilder.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/DroolsModelBuilder.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,174 @@
+package org.drools.ide.core;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+
+public class DroolsModelBuilder {
+
+ public static RuleSet createRuleSet() {
+ return new RuleSet();
+ }
+
+ public static Package createPackage(String packageName, int offset, int length) {
+ Package pkg = new Package(null, packageName);
+ pkg.setFile(null, offset, length);
+ return pkg;
+ }
+
+ public static Package addPackage(RuleSet ruleSet, String packageName, int offset, int length) {
+ Package pkg = new Package(ruleSet, packageName);
+ pkg.setFile(null, offset, length);
+ ruleSet.addPackage(pkg);
+ return pkg;
+ }
+
+ public static void removePackage(Package pkg) {
+ RuleSet ruleSet = pkg.getParentRuleSet();
+ if (ruleSet != null) {
+ ruleSet.removePackage(pkg.getPackageName());
+ }
+ }
+
+ public static void clearRuleSet(RuleSet ruleSet) {
+ ruleSet.clear();
+ }
+
+ public static Rule addRule(Package pkg, String ruleName, IFile file, int offset, int length, Map attributes) {
+ Rule rule = new Rule(pkg, ruleName);
+ rule.setFile(file, offset, length);
+ if (attributes != null) {
+ for (Iterator iterator = attributes.entrySet().iterator(); iterator.hasNext();) {
+ Map.Entry entry = (Map.Entry) iterator.next();
+ RuleAttribute attribute = new RuleAttribute(rule, (String) entry.getKey(), entry.getValue());
+ attribute.setFile(file, offset, length);
+ rule.addAttribute(attribute);
+ }
+ }
+ pkg.addRule(rule);
+ return rule;
+ }
+
+ public static void removeRule(Rule rule) {
+ Package pkg = rule.getParentPackage();
+ if (pkg != null) {
+ pkg.removeRule(rule);
+ if (pkg.getChildren().length == 0) {
+ removePackage(pkg);
+ }
+ }
+ }
+
+ public static Function addFunction(Package pkg, String functionName, IFile file, int offset, int length) {
+ Function function = new Function(pkg, functionName);
+ function.setFile(file, offset, length);
+ pkg.addFunction(function);
+ return function;
+ }
+
+ public static void removeFunction(Function function) {
+ Package pkg = function.getParentPackage();
+ if (pkg != null) {
+ pkg.removeFunction(function);
+ }
+ }
+
+ public static void addExpander(Package pkg, String expanderName, IFile file, int offset, int length) {
+ Expander expander = new Expander(pkg, expanderName);
+ expander.setFile(file, offset, length);
+ pkg.addExpander(expander);
+ }
+
+ public static void removeExpander(Expander expander) {
+ Package pkg = expander.getParentPackage();
+ if (pkg != null) {
+ pkg.removeExpander(expander);
+ }
+ }
+
+ public static void addImport(Package pkg, String importClass, IFile file, int offset, int length) {
+ Import imp = new Import(pkg, importClass);
+ imp.setFile(file, offset, length);
+ pkg.addImport(imp);
+ }
+
+ public static void removeImport(Import imp) {
+ Package pkg = imp.getParentPackage();
+ if (pkg != null) {
+ pkg.removeImport(imp);
+ }
+ }
+
+ public static Global addGlobal(Package pkg, String globalName, IFile file, int offset, int length) {
+ Global global = new Global(pkg, globalName);
+ global.setFile(file, offset, length);
+ pkg.addGlobal(global);
+ return global;
+ }
+
+ public static void removeGlobal(Global global) {
+ Package pkg = global.getParentPackage();
+ if (pkg != null) {
+ pkg.removeGlobal(global);
+ }
+ }
+
+ public static Query addQuery(Package pkg, String queryName, IFile file, int offset, int length) {
+ Query query = new Query(pkg, queryName);
+ query.setFile(file, offset, length);
+ pkg.addQuery(query);
+ return query;
+ }
+
+ public static void removeQuery(Query query) {
+ Package pkg = query.getParentPackage();
+ if (pkg != null) {
+ pkg.removeQuery(query);
+ }
+ }
+
+ public static Template addTemplate(Package pkg, String templateName, IFile file, int offset, int length) {
+ Template template = new Template(pkg, templateName);
+ template.setFile(file, offset, length);
+ pkg.addTemplate(template);
+ return template;
+ }
+
+ public static void removeTemplate(Template template) {
+ Package pkg = template.getParentPackage();
+ if (pkg != null) {
+ pkg.removeTemplate(template);
+ }
+ }
+
+ public static void removeElement(DroolsElement element) {
+ switch (element.getType()) {
+ case DroolsElement.RULESET:
+ clearRuleSet((RuleSet) element);
+ break;
+ case DroolsElement.PACKAGE:
+ removePackage((Package) element);
+ break;
+ case DroolsElement.RULE:
+ removeRule((Rule) element);
+ break;
+ case DroolsElement.QUERY:
+ removeQuery((Query) element);
+ break;
+ case DroolsElement.FUNCTION:
+ removeFunction((Function) element);
+ break;
+ case DroolsElement.TEMPLATE:
+ removeTemplate((Template) element);
+ break;
+ case DroolsElement.EXPANDER:
+ removeExpander((Expander) element);
+ break;
+ case DroolsElement.GLOBAL:
+ removeGlobal((Global) element);
+ break;
+ }
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Expander.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Expander.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Expander.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,37 @@
+package org.drools.ide.core;
+
+/**
+ * This represents an expander.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class Expander extends DroolsElement {
+
+ private final String expander;
+
+ Expander(Package parent, String expander) {
+ super(parent);
+ this.expander = expander;
+ }
+
+ public Package getParentPackage() {
+ return (Package) getParent();
+ }
+
+ public String getExpander() {
+ return expander;
+ }
+
+ public int getType() {
+ return EXPANDER;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return expander;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Function.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Function.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Function.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,37 @@
+package org.drools.ide.core;
+
+/**
+ * This represents a function.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class Function extends DroolsElement {
+
+ private final String functionName;
+
+ Function(Package parent, String functionName) {
+ super(parent);
+ this.functionName = functionName;
+ }
+
+ public Package getParentPackage() {
+ return (Package) getParent();
+ }
+
+ public String getFunctionName() {
+ return functionName;
+ }
+
+ public int getType() {
+ return FUNCTION;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return functionName;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Global.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Global.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Global.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,37 @@
+package org.drools.ide.core;
+
+/**
+ * This represents a global.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class Global extends DroolsElement {
+
+ private final String globalName;
+
+ Global(Package parent, String globalName) {
+ super(parent);
+ this.globalName = globalName;
+ }
+
+ public Package getParentPackage() {
+ return (Package) getParent();
+ }
+
+ public String getGlobalName() {
+ return globalName;
+ }
+
+ public int getType() {
+ return GLOBAL;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return globalName;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Import.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Import.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Import.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,37 @@
+package org.drools.ide.core;
+
+/**
+ * This represents an import.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class Import extends DroolsElement {
+
+ private final String importClass;
+
+ Import(Package parent, String importClass) {
+ super(parent);
+ this.importClass = importClass;
+ }
+
+ public Package getParentPackage() {
+ return (Package) getParent();
+ }
+
+ public String getImportClass() {
+ return importClass;
+ }
+
+ public int getType() {
+ return IMPORT;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return importClass;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Package.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Package.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,117 @@
+package org.drools.ide.core;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This represents a package.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class Package extends DroolsElement {
+
+ private String packageName;
+ private List rules = new ArrayList();
+ private List functions = new ArrayList();
+ private List expanders = new ArrayList();
+ private List imports = new ArrayList();
+ private List globals = new ArrayList();
+ private List queries = new ArrayList();
+ private List templates = new ArrayList();
+
+ Package(RuleSet parent, String packageName) {
+ super(parent);
+ this.packageName =
+ packageName == null ? "(default package)" : packageName;
+ }
+
+ public RuleSet getParentRuleSet() {
+ return (RuleSet) getParent();
+ }
+
+ public String getPackageName() {
+ return packageName;
+ }
+
+ public int getType() {
+ return PACKAGE;
+ }
+
+ public DroolsElement[] getChildren() {
+ List children = new ArrayList();
+ children.addAll(rules);
+ children.addAll(queries);
+ children.addAll(globals);
+ children.addAll(functions);
+ children.addAll(expanders);
+ children.addAll(imports);
+ children.addAll(templates);
+ return (DroolsElement[]) children.toArray(new DroolsElement[0]);
+ }
+
+ public String toString() {
+ return packageName;
+ }
+
+ // These are helper methods for creating the model and should not
+ // be used directly. Use DroolsModelBuilder instead.
+
+ void addRule(Rule rule) {
+ rules.add(rule);
+ }
+
+ void removeRule(Rule rule) {
+ rules.remove(rule);
+ }
+
+ void addFunction(Function function) {
+ functions.add(function);
+ }
+
+ void removeFunction(Function function) {
+ functions.remove(function);
+ }
+
+ void addExpander(Expander expander) {
+ expanders.add(expander);
+ }
+
+ void removeExpander(Expander expander) {
+ expanders.remove(expander);
+ }
+
+ void addImport(Import imp) {
+ imports.add(imp);
+ }
+
+ void removeImport(Import imp) {
+ imports.remove(imp);
+ }
+
+ void addGlobal(Global global) {
+ globals.add(global);
+ }
+
+ void removeGlobal(Global global) {
+ globals.remove(global);
+ }
+
+ void addQuery(Query query) {
+ queries.add(query);
+ }
+
+ void removeQuery(Query query) {
+ queries.remove(query);
+ }
+
+ void addTemplate(Template template) {
+ templates.add(template);
+ }
+
+ void removeTemplate(Template template) {
+ templates.remove(template);
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Query.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Query.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Query.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,37 @@
+package org.drools.ide.core;
+
+/**
+ * This represents a query.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class Query extends DroolsElement {
+
+ private final String query;
+
+ Query(Package parent, String query) {
+ super(parent);
+ this.query = query;
+ }
+
+ public Package getParentPackage() {
+ return (Package) getParent();
+ }
+
+ public String getQueryName() {
+ return query;
+ }
+
+ public int getType() {
+ return QUERY;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return query;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Rule.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Rule.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Rule.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,52 @@
+package org.drools.ide.core;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This represents a rule.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class Rule extends DroolsElement {
+
+ private final String ruleName;
+ private Map attributes = new HashMap();
+
+ Rule(Package parent, String ruleName) {
+ super(parent);
+ this.ruleName = ruleName;
+ }
+
+ public Package getParentPackage() {
+ return (Package) getParent();
+ }
+
+ public String getRuleName() {
+ return ruleName;
+ }
+
+ public RuleAttribute getAttribute(String attributeName) {
+ return (RuleAttribute) attributes.get(attributeName);
+ }
+
+ public int getType() {
+ return RULE;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return ruleName;
+ }
+
+ // These are helper methods for creating the model and should not
+ // be used directly. Use DroolsModelBuilder instead.
+
+ void addAttribute(RuleAttribute attribute) {
+ attributes.put(attribute.getAttributeName(), attribute);
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleAttribute.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleAttribute.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleAttribute.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,39 @@
+package org.drools.ide.core;
+
+/**
+ * This represents a rule attribute.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class RuleAttribute extends DroolsElement {
+
+ private final String attributeName;
+ private final Object attributeValue;
+
+ RuleAttribute(Rule parent, String attributeName, Object attributeValue) {
+ super(parent);
+ this.attributeName = attributeName;
+ this.attributeValue = attributeValue;
+ }
+
+ public Rule getParentRule() {
+ return (Rule) getParent();
+ }
+
+ public String getAttributeName() {
+ return attributeName;
+ }
+
+ public int getType() {
+ return RULE_ATTRIBUTE;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return attributeName + " = " + attributeValue;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleSet.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleSet.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/RuleSet.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,47 @@
+package org.drools.ide.core;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This represents a rule set.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class RuleSet extends DroolsElement {
+
+ private Map packages = new HashMap();
+
+ RuleSet() {
+ super(null);
+ }
+
+ public Package getPackage(String packageName) {
+ return (Package) packages.get(packageName);
+ }
+
+ public int getType() {
+ return RULESET;
+ }
+
+ public DroolsElement[] getChildren() {
+ return (DroolsElement[]) packages.values().toArray(
+ new DroolsElement[packages.size()]);
+ }
+
+ // These are helper methods for creating the model and should not
+ // be used directly. Use DroolsModelBuilder instead.
+
+ void addPackage(Package pkg) {
+ packages.put(pkg.getPackageName(), pkg);
+ }
+
+ void removePackage(String packageName) {
+ packages.remove(packageName);
+ }
+
+ void clear() {
+ packages.clear();
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Template.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Template.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/Template.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,37 @@
+package org.drools.ide.core;
+
+/**
+ * This represents a template.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class Template extends DroolsElement {
+
+ private final String templateName;
+
+ Template(Package parent, String templateName) {
+ super(parent);
+ this.templateName = templateName;
+ }
+
+ public Package getParentPackage() {
+ return (Package) getParent();
+ }
+
+ public String getTemplateName() {
+ return templateName;
+ }
+
+ public int getType() {
+ return TEMPLATE;
+ }
+
+ public DroolsElement[] getChildren() {
+ return NO_ELEMENTS;
+ }
+
+ public String toString() {
+ return templateName;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsContentProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsContentProvider.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsContentProvider.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,44 @@
+package org.drools.ide.core.ui;
+
+import org.drools.ide.core.DroolsElement;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * Content provider for Drools model elements.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class DroolsContentProvider implements ITreeContentProvider {
+
+ public Object[] getChildren(Object parentElement) {
+ if (parentElement instanceof DroolsElement) {
+ return ((DroolsElement) parentElement).getChildren();
+ }
+ return new Object[0];
+ }
+
+ public Object getParent(Object element) {
+ if (element instanceof DroolsElement) {
+ return ((DroolsElement) element).getParent();
+ }
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return getChildren(element).length > 0;
+ }
+
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ public void dispose() {
+ // do nothing
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ // do nothing
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsFilter.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsFilter.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsFilter.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,59 @@
+package org.drools.ide.core.ui;
+
+import org.drools.ide.core.DroolsElement;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+
+/**
+ * Filter for the rules viewer.
+ */
+public class DroolsFilter extends ViewerFilter {
+
+ public static final int FILTER_RULES = 1;
+ public static final int FILTER_QUERIES = 2;
+ public static final int FILTER_FUNCTIONS = 4;
+ public static final int FILTER_TEMPLATES = 8;
+ public static final int FILTER_GLOBALS = 16;
+
+ private int filterProperties;
+
+ public final void addFilter(int filter) {
+ filterProperties |= filter;
+ }
+
+ public final void removeFilter(int filter) {
+ filterProperties &= (-1 ^ filter);
+ }
+
+ public final boolean hasFilter(int filter) {
+ return (filterProperties & filter) != 0;
+ }
+
+ public boolean isFilterProperty(Object element, Object property) {
+ return false;
+ }
+
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if (element instanceof DroolsElement) {
+ DroolsElement droolsElement = (DroolsElement) element;
+ int type = droolsElement.getType();
+ if (hasFilter(FILTER_RULES) && type == DroolsElement.RULE) {
+ return false;
+ }
+ if (hasFilter(FILTER_QUERIES) && type == DroolsElement.QUERY) {
+ return false;
+ }
+ if (hasFilter(FILTER_FUNCTIONS) && type == DroolsElement.FUNCTION) {
+ return false;
+ }
+ if (hasFilter(FILTER_TEMPLATES) && type == DroolsElement.TEMPLATE) {
+ return false;
+ }
+ if (hasFilter(FILTER_GLOBALS) && type == DroolsElement.GLOBAL) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsLabelProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsLabelProvider.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsLabelProvider.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,31 @@
+package org.drools.ide.core.ui;
+
+import org.drools.ide.DroolsPluginImages;
+import org.drools.ide.core.DroolsElement;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class DroolsLabelProvider extends LabelProvider {
+
+ private static final String[] ICONS = new String[] {
+ DroolsPluginImages.PACKAGE, // ruleset
+ DroolsPluginImages.PACKAGE, // package
+ DroolsPluginImages.DROOLS, // rule
+ DroolsPluginImages.DROOLS, // query
+ DroolsPluginImages.METHOD, // function
+ DroolsPluginImages.CLASS, // template
+ DroolsPluginImages.DSL, // expander
+ DroolsPluginImages.GLOBAL, // global
+ DroolsPluginImages.IMPORT, // import
+ DroolsPluginImages.DROOLS, // rule attribute
+ };
+
+ public Image getImage(Object element) {
+ if (element instanceof DroolsElement) {
+ String icon = ICONS[((DroolsElement) element).getType()];
+ return DroolsPluginImages.getImageRegistry().get(icon);
+ }
+ return null;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsTreeSorter.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsTreeSorter.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/DroolsTreeSorter.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,82 @@
+package org.drools.ide.core.ui;
+
+import org.drools.ide.core.DroolsElement;
+import org.drools.ide.core.Expander;
+import org.drools.ide.core.Function;
+import org.drools.ide.core.Global;
+import org.drools.ide.core.Import;
+import org.drools.ide.core.Package;
+import org.drools.ide.core.Query;
+import org.drools.ide.core.Rule;
+import org.drools.ide.core.RuleAttribute;
+import org.drools.ide.core.RuleSet;
+import org.drools.ide.core.Template;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+
+public class DroolsTreeSorter extends ViewerSorter {
+
+ // level 0
+ private static final int RULESET = 0;
+
+ // level 1
+ private static final int PACKAGE = 1;
+
+ // level 2
+ private static final int RULE = 2;
+ private static final int QUERY = 3;
+ private static final int FUNCTION = 4;
+ private static final int TEMPLATE = 5;
+ private static final int EXPANDER = 6;
+ private static final int GLOBAL = 7;
+ private static final int IMPORT = 8;
+
+ // level 3
+ private static final int RULE_ATTRIBUTE = 9;
+
+ private static final int UNKNOWN = 10;
+
+ private static DroolsLabelProvider labelProvider = new DroolsLabelProvider();
+
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ DroolsElement node1 = (DroolsElement) e1;
+ DroolsElement node2 = (DroolsElement) e2;
+ int type1 = getElementType(node1);
+ int type2 = getElementType(node2);
+ if (type1 != type2) {
+ return type1 - type2;
+ }
+ String label1 = labelProvider.getText(node1);
+ String label2 = labelProvider.getText(node2);
+ if (label1 == null) {
+ return (label2 == null ? 0 : -1);
+ }
+ return label1.compareTo(label2);
+ }
+
+ private int getElementType(DroolsElement o) {
+ if (o instanceof RuleSet) {
+ return RULESET;
+ } else if (o instanceof Package) {
+ return PACKAGE;
+ } else if (o instanceof Rule) {
+ return RULE;
+ } else if (o instanceof Query) {
+ return QUERY;
+ } else if (o instanceof Function) {
+ return FUNCTION;
+ } else if (o instanceof Template) {
+ return TEMPLATE;
+ } else if (o instanceof Expander) {
+ return EXPANDER;
+ } else if (o instanceof Global) {
+ return GLOBAL;
+ } else if (o instanceof Import) {
+ return IMPORT;
+ } else if (o instanceof RuleAttribute) {
+ return RULE_ATTRIBUTE;
+ }
+ return UNKNOWN;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterAction.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterAction.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterAction.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,34 @@
+package org.drools.ide.core.ui;
+
+import org.drools.ide.DroolsPluginImages;
+import org.eclipse.jface.action.Action;
+
+/**
+ * Action used to enable / disable filter properties
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class FilterAction extends Action {
+
+ private int filterType;
+
+ private FilterActionGroup filterActionGroup;
+
+ public FilterAction(FilterActionGroup actionGroup, String title,
+ int property, boolean initValue, String imageDescriptorKey) {
+ super(title);
+ filterActionGroup = actionGroup;
+ filterType = property;
+ setChecked(initValue);
+ setImageDescriptor(DroolsPluginImages.getImageDescriptor(imageDescriptorKey));
+ }
+
+ public int getFilterType() {
+ return filterType;
+ }
+
+ public void run() {
+ filterActionGroup.setFilter(filterType, isChecked());
+ }
+
+}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterActionGroup.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterActionGroup.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/core/ui/FilterActionGroup.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,112 @@
+package org.drools.ide.core.ui;
+
+import org.drools.ide.DroolsIDEPlugin;
+import org.drools.ide.DroolsPluginImages;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.actions.ActionGroup;
+
+/**
+ * Action Group that contributes filter buttons.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
+ */
+public class FilterActionGroup extends ActionGroup {
+
+ private FilterAction[] filterActions;
+ private DroolsFilter filter;
+ public int i;
+
+ private StructuredViewer viewer;
+ private String viewerId;
+
+ public FilterActionGroup(StructuredViewer viewer, String viewerId) {
+ this.viewer = viewer;
+ this.viewerId = viewerId;
+ filter = new DroolsFilter();
+ filterActions = new FilterAction[] {
+ addFilterForType(DroolsFilter.FILTER_RULES, "Hide Rules", DroolsPluginImages.RULE),
+ addFilterForType(DroolsFilter.FILTER_QUERIES, "Hide Queries", DroolsPluginImages.QUERY),
+ addFilterForType(DroolsFilter.FILTER_FUNCTIONS, "Hide Functions", DroolsPluginImages.METHOD),
+ addFilterForType(DroolsFilter.FILTER_GLOBALS, "Hide Globals", DroolsPluginImages.GLOBAL),
+ addFilterForType(DroolsFilter.FILTER_TEMPLATES, "Hide Templates", DroolsPluginImages.CLASS),
+ };
+ viewer.addFilter(filter);
+ }
+
+ private FilterAction addFilterForType(int filterType, String tooltip, String imageDescriptorKey) {
+ boolean filterEnabled = DroolsIDEPlugin.getDefault()
+ .getPreferenceStore().getBoolean(getPreferenceKey(filterType));
+ if (filterEnabled) {
+ filter.addFilter(filterType);
+ }
+ FilterAction hideAction = new FilterAction(this, tooltip, filterType, filterEnabled, imageDescriptorKey);
+ hideAction.setToolTipText(tooltip);
+ return hideAction;
+ }
+
+ private String getPreferenceKey(int filterProperty) {
+ return "DroolsFilterActionGroup." + viewerId + '.' + String.valueOf(filterProperty);
+ }
+
+ public void setFilter(int filterType, boolean set) {
+ setDroolsFilters(new int[] {filterType}, new boolean[] {set}, true);
+ }
+
+ private void setDroolsFilters(int[] propertyKeys, boolean[] propertyValues, boolean refresh) {
+ if (propertyKeys.length == 0)
+ return;
+ Assert.isTrue(propertyKeys.length == propertyValues.length);
+
+ for (int i= 0; i < propertyKeys.length; i++) {
+ int filterProperty= propertyKeys[i];
+ boolean set= propertyValues[i];
+
+ IPreferenceStore store = DroolsIDEPlugin.getDefault().getPreferenceStore();
+ boolean found = false;
+ for (int j= 0; j < filterActions.length; j++) {
+ int currProperty= filterActions[j].getFilterType();
+ if (currProperty == filterProperty) {
+ filterActions[j].setChecked(set);
+ found= true;
+ store.setValue(getPreferenceKey(filterProperty), set);
+ }
+ }
+ if (found) {
+ if (set) {
+ filter.addFilter(filterProperty);
+ } else {
+ filter.removeFilter(filterProperty);
+ }
+ }
+ }
+ if (refresh) {
+ viewer.getControl().setRedraw(false);
+ BusyIndicator.showWhile(viewer.getControl().getDisplay(), new Runnable() {
+ public void run() {
+ viewer.refresh();
+ }
+ });
+ viewer.getControl().setRedraw(true);
+ }
+ }
+
+ public boolean hasDroolsFilter(int filterType) {
+ return filter.hasFilter(filterType);
+ }
+
+ public void fillActionBars(IActionBars actionBars) {
+ contributeToToolBar(actionBars.getToolBarManager());
+ }
+
+ public void contributeToToolBar(IToolBarManager tbm) {
+ for (int i= 0; i < filterActions.length; i++) {
+ tbm.add(filterActions[i]);
+ }
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ExpanderTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ExpanderTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ExpanderTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,44 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class ExpanderTreeNode extends OutlineNode
- implements
- Comparable {
-
- private final PackageTreeNode packageTreeNode;
- private final String expanderLabel;
-
- public ExpanderTreeNode(PackageTreeNode parent,
- String importLabel) {
- packageTreeNode = parent;
- this.expanderLabel = importLabel;
-
- }
-
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/dsl.GIF" );
- }
-
- public String getLabel(Object o) {
- return expanderLabel;
- }
-
- public Object getParent(Object o) {
- return packageTreeNode;
- }
-
- public int compareTo(Object obj) {
- if ( obj instanceof ExpanderTreeNode ) {
- ExpanderTreeNode other = (ExpanderTreeNode) obj;
- return this.expanderLabel.compareTo( other.expanderLabel );
- } else {
- return 0;
- }
- }
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/FunctionTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/FunctionTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/FunctionTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,44 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class FunctionTreeNode extends OutlineNode
- implements
- Comparable {
-
- private final PackageTreeNode packageTreeNode;
- private final String functionLabel;
-
- public FunctionTreeNode(PackageTreeNode parent,
- String functionLabel) {
- packageTreeNode = parent;
- this.functionLabel = functionLabel;
-
- }
-
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/public_co.gif" );
- }
-
- public String getLabel(Object o) {
- return functionLabel;
- }
-
- public Object getParent(Object o) {
- return packageTreeNode;
- }
-
- public int compareTo(Object obj) {
- if ( obj instanceof FunctionTreeNode ) {
- FunctionTreeNode other = (FunctionTreeNode) obj;
- return this.functionLabel.compareTo( other.functionLabel );
- } else {
- return 0;
- }
- }
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/GlobalTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/GlobalTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/GlobalTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,44 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class GlobalTreeNode extends OutlineNode
- implements
- Comparable {
-
- private final PackageTreeNode packageTreeNode;
- private final String queryLabel;
-
- public GlobalTreeNode(PackageTreeNode parent,
- String importLabel) {
- packageTreeNode = parent;
- this.queryLabel = importLabel;
-
- }
-
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/public_co.gif" );
- }
-
- public String getLabel(Object o) {
- return queryLabel;
- }
-
- public Object getParent(Object o) {
- return packageTreeNode;
- }
-
- public int compareTo(Object obj) {
- if ( obj instanceof GlobalTreeNode ) {
- GlobalTreeNode other = (GlobalTreeNode) obj;
- return this.queryLabel.compareTo( other.queryLabel );
- } else {
- return 0;
- }
- }
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ImportTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ImportTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/ImportTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,44 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class ImportTreeNode extends OutlineNode
- implements
- Comparable {
-
- private final PackageTreeNode packageTreeNode;
- private final String importLabel;
-
- public ImportTreeNode(PackageTreeNode parent,
- String importLabel) {
- packageTreeNode = parent;
- this.importLabel = importLabel;
-
- }
-
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/import.gif" );
- }
-
- public String getLabel(Object o) {
- return importLabel;
- }
-
- public Object getParent(Object o) {
- return packageTreeNode;
- }
-
- public int compareTo(Object obj) {
- if ( obj instanceof ImportTreeNode ) {
- ImportTreeNode other = (ImportTreeNode) obj;
- return this.importLabel.compareTo( other.importLabel );
- } else {
- return 0;
- }
- }
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/OutlineNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/OutlineNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/OutlineNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,46 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * This represents a node that is shown in the outline.
- *
- * @author Michael Neale
- */
-public abstract class OutlineNode implements
- IWorkbenchAdapter,
- IAdaptable {
-
- private int offset;
- private int length;
-
- /** The offset (in chars) to jump to */
- public int getOffset() {
- return offset;
- }
-
-
- /** return the length of selection */
- public int getLength() {
- return length;
- }
-
-
- public void setLength(int length) {
- this.length = length;
- }
-
-
- public void setOffset(int offset) {
- this.offset = offset;
- }
-
-
- public Object getAdapter(Class adapter) {
- if ( adapter == IWorkbenchAdapter.class ) {
- return this;
- }
- return null;
- }
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/PackageTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/PackageTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/PackageTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,176 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Collections;
-import java.util.List;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.drools.lang.descr.AttributeDescr;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * This represents a package in the outline view.
- * Each rule resource must have a package declaration.
- *
- * @author Jeff Brown
- */
-public class PackageTreeNode extends OutlineNode {
-
- private List rules = new ArrayList();
-
- private List functions = new ArrayList();
-
- private List expanders = new ArrayList();
-
- private List imports = new ArrayList();
-
- private List globals = new ArrayList();
-
- private List queries = new ArrayList();
-
- private String packageName = "<unknown package name>";
-
- public String getPackageName() {
- return packageName;
- }
-
- public void setPackageName(String packageName) {
- this.packageName = packageName;
- }
-
- /** Add a rule node to the outline. Keeping track of where it was seen in the document (offset) */
- public void addRule(String ruleName,
- int offset,
- int length) {
- addRule(ruleName, offset, length, null);
- }
-
- /** Add a rule node to the outline. Keeping track of where it was seen in the document (offset) */
- public void addRule(String ruleName,
- int offset,
- int length,
- List attributes) {
- RuleTreeNode node = new RuleTreeNode( this,
- ruleName );
- node.setOffset( offset );
- node.setLength( length );
- if (attributes != null) {
- Iterator iterator = attributes.iterator();
- while (iterator.hasNext()) {
- AttributeDescr descr = (AttributeDescr) iterator.next();
- if (descr != null) { // this is possible when attributes contain errors
- node.addAttribute(descr.getName(), descr.getValue(), offset, length);
- }
- }
- }
- rules.add( node );
- }
-
- /** Add a function node to the outline. Keeping track of where it was seen in the document (offset) */
- public void addFunction(String functionLabel,
- int offset,
- int length) {
- FunctionTreeNode node = new FunctionTreeNode( this,
- functionLabel );
- node.setOffset( offset );
- node.setLength( length );
- functions.add( node );
- }
-
- /** Add an expander node to the outline. Keeping track of where it was seen in the document (offset) */
- public void addExpander(String expanderLabel,
- int offset,
- int length) {
- ExpanderTreeNode node = new ExpanderTreeNode( this, expanderLabel );
- node.setOffset( offset );
- node.setLength( length );
- expanders.add( node );
- }
-
- /** Add an import node to the outline. Keeping track of where it was seen in the document (offset) */
- public void addImport(String importLabel,
- int offset,
- int length) {
- ImportTreeNode node = new ImportTreeNode( this, importLabel );
- node.setOffset( offset );
- node.setLength( length );
- imports.add( node );
- }
-
- /** Add a global node to the outline. Keeping track of where it was seen in the document (offset) */
- public void addGlobal(String globalLabel,
- int offset,
- int length) {
- GlobalTreeNode node = new GlobalTreeNode( this, globalLabel );
- node.setOffset( offset );
- node.setLength( length );
- globals.add( node );
- }
-
- /** Add a query node to the outline. Keeping track of where it was seen in the document (offset) */
- public void addQuery(String queryLabel,
- int offset,
- int length) {
- QueryTreeNode node = new QueryTreeNode( this, queryLabel );
- node.setOffset( offset );
- node.setLength( length );
- queries.add( node );
- }
-
- public void addTemplate(String templateLabel, int offset, int length) {
- TemplateTreeNode node = new TemplateTreeNode( this, templateLabel );
- node.setOffset( offset );
- node.setLength( length );
- queries.add( node );
- }
-
- /**
- * This will return the child nodes, as they are to be displayed on screen (sorted an all !)
- * Rules should appear at the top, sorted, as they are the most important assets.
- * */
- public Object[] getChildren(Object o) {
- List children = new ArrayList();
-
- //sort and add rules
- Collections.sort( rules );
- children.addAll( rules );
-
- //sort and add queries
- Collections.sort( queries );
- children.addAll( queries );
-
- // sort and add globals
- Collections.sort( globals );
- children.addAll( globals );
-
- // sort and add functions
- Collections.sort( functions );
- children.addAll( functions );
-
- // sort and add expanders
- Collections.sort( expanders );
- children.addAll( expanders );
-
- // sort and add imports
- Collections.sort( imports );
- children.addAll( imports );
-
- return children.toArray();
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- ImageDescriptor des = DroolsIDEPlugin.getImageDescriptor( "icons/package_obj.gif" );
- return des;
-
- }
-
- public String getLabel(Object o) {
- return packageName;
- }
-
- public Object getParent(Object o) {
- return null;
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/QueryTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/QueryTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/QueryTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,44 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class QueryTreeNode extends OutlineNode
- implements
- Comparable {
-
- private final PackageTreeNode packageTreeNode;
- private final String expanderLabel;
-
- public QueryTreeNode(PackageTreeNode parent,
- String importLabel) {
- packageTreeNode = parent;
- this.expanderLabel = importLabel;
-
- }
-
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/drools.gif" );
- }
-
- public String getLabel(Object o) {
- return expanderLabel;
- }
-
- public Object getParent(Object o) {
- return packageTreeNode;
- }
-
- public int compareTo(Object obj) {
- if ( obj instanceof QueryTreeNode ) {
- QueryTreeNode other = (QueryTreeNode) obj;
- return this.expanderLabel.compareTo( other.expanderLabel );
- } else {
- return 0;
- }
- }
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleAttributeTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleAttributeTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleAttributeTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,44 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class RuleAttributeTreeNode extends OutlineNode implements Comparable {
-
- private final RuleTreeNode ruleTreeNode;
- private final String attributeName;
- private final Object attributeValue;
-
- public RuleAttributeTreeNode(RuleTreeNode parent,
- String name, Object value) {
- ruleTreeNode = parent;
- this.attributeName = name;
- this.attributeValue = value;
- }
-
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/drools.gif" );
- }
-
- public String getLabel(Object o) {
- return attributeName + " = " + attributeValue;
- }
-
- public Object getParent(Object o) {
- return ruleTreeNode;
- }
-
- public int compareTo(Object obj) {
- if (obj instanceof RuleAttributeTreeNode) {
- RuleAttributeTreeNode other = (RuleAttributeTreeNode) obj;
- return this.attributeName.compareTo(other.attributeName);
- } else {
- return 0;
- }
- }
-
-}
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleContentOutlinePage.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleContentOutlinePage.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleContentOutlinePage.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -9,7 +9,16 @@
import org.drools.compiler.DroolsParserException;
import org.drools.ide.DRLInfo;
import org.drools.ide.DroolsIDEPlugin;
+import org.drools.ide.core.DroolsElement;
+import org.drools.ide.core.DroolsModelBuilder;
+import org.drools.ide.core.Package;
+import org.drools.ide.core.RuleSet;
+import org.drools.ide.core.ui.DroolsContentProvider;
+import org.drools.ide.core.ui.DroolsLabelProvider;
+import org.drools.ide.core.ui.DroolsTreeSorter;
+import org.drools.ide.core.ui.FilterActionGroup;
import org.drools.ide.editors.DRLRuleEditor;
+import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.RuleDescr;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -18,8 +27,6 @@
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
/**
@@ -28,16 +35,13 @@
* Should provide navigation assistance in large rule files.
*
* @author "Jeff Brown" <brown_j at ociweb.com>
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
*/
public class RuleContentOutlinePage extends ContentOutlinePage {
- //the editor that this outline view is linked to.
- private DRLRuleEditor editor;
-
- //the "root" node
- private final RuleFileTreeNode ruleFileTreeNode = new RuleFileTreeNode();
+ private DRLRuleEditor editor;
+ private RuleSet ruleSet = DroolsModelBuilder.createRuleSet();
private Map rules;
-// private Map lineToCharactersMapping;
///////////////////////////////////
// Patterns that the parser uses
@@ -73,33 +77,35 @@
"\\n\\s*query\\s+([^\\s;#\"]+)", Pattern.DOTALL);
public RuleContentOutlinePage(DRLRuleEditor editor) {
- super();
this.editor = editor;
}
public void createControl(Composite parent) {
- super.createControl( parent );
+ super.createControl(parent);
TreeViewer viewer = getTreeViewer();
- viewer.setContentProvider( new WorkbenchContentProvider() );
- viewer.setLabelProvider( new WorkbenchLabelProvider() );
-
- viewer.setInput( ruleFileTreeNode );
+ viewer.setContentProvider(new DroolsContentProvider());
+ viewer.setLabelProvider(new DroolsLabelProvider());
+ viewer.setSorter(new DroolsTreeSorter());
+ viewer.setInput(ruleSet);
+ FilterActionGroup filterActionGroup = new FilterActionGroup(
+ viewer, "org.drools.ide.editors.outline.RuleContentOutlinePage");
+ filterActionGroup.fillActionBars(getSite().getActionBars());
update();
// add the listener for navigation of the rule document.
- super.addSelectionChangedListener( new ISelectionChangedListener() {
+ super.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
Object selectionObj = event.getSelection();
- if ( selectionObj != null && selectionObj instanceof StructuredSelection ) {
+ if (selectionObj != null && selectionObj instanceof StructuredSelection) {
StructuredSelection sel = (StructuredSelection) selectionObj;
- OutlineNode node = (OutlineNode) sel.getFirstElement();
- if ( node != null ) {
- editor.selectAndReveal( node.getOffset(),
- node.getLength() );
+ DroolsElement element = (DroolsElement) sel.getFirstElement();
+ if (element != null) {
+ editor.selectAndReveal(element.getOffset(),
+ element.getLength());
}
}
}
- } );
+ });
}
/**
@@ -107,111 +113,108 @@
*/
public void update() {
TreeViewer viewer = getTreeViewer();
-
- if ( viewer != null ) {
+ if (viewer != null) {
Control control = viewer.getControl();
- if ( control != null && !control.isDisposed() ) {
- PackageTreeNode packageTreeNode = createPackageTreeNode();
- ruleFileTreeNode.setPackageTreeNode( packageTreeNode );
- viewer.refresh();
- control.setRedraw( false );
+ if (control != null && !control.isDisposed()) {
+ initRules();
+ populatePackageTreeNode();
+ viewer.refresh();
+ control.setRedraw(false);
viewer.expandToLevel(2);
- control.setRedraw( true );
+ control.setRedraw(true);
}
}
}
/**
- *
- * @return a PackageTreeNode representing the current state of the
- * document, populated with all of the package's child elements
- */
- private PackageTreeNode createPackageTreeNode() {
- PackageTreeNode packageTreeNode = new PackageTreeNode();
- initRules();
- populatePackageTreeNode(packageTreeNode);
- return packageTreeNode;
- }
-
- /**
* populates the PackageTreeNode with all of its child elements
*
* @param packageTreeNode the node to populate
*/
- public void populatePackageTreeNode(PackageTreeNode packageTreeNode) {
+ public void populatePackageTreeNode() {
+ DroolsModelBuilder.clearRuleSet(ruleSet);
String ruleFileContents = editor.getContent();
- Matcher matcher = RULE_PATTERN1.matcher(ruleFileContents);
+ Matcher matcher = PACKAGE_PATTERN.matcher(ruleFileContents);
+ String packageName = null;
+ if (matcher.find()) {
+ packageName = matcher.group(1);
+ }
+ Package pkg = DroolsModelBuilder.addPackage(ruleSet, packageName,
+ matcher.start(1), matcher.end(1) - matcher.start(1));
+
+ matcher = RULE_PATTERN1.matcher(ruleFileContents);
while (matcher.find()) {
String ruleName = matcher.group(1);
- RuleDescr ruleDescr = (RuleDescr) rules.get(ruleName);
- if (ruleDescr == null) {
- packageTreeNode.addRule(ruleName, matcher.start(1), matcher.end(1) - matcher.start(1));
- } else {
- packageTreeNode.addRule(ruleName, matcher.start(1), matcher.end(1) - matcher.start(1), ruleDescr.getAttributes());
- }
+ DroolsModelBuilder.addRule(pkg, ruleName, null,
+ matcher.start(1), matcher.end(1) - matcher.start(1),
+ extractAttributes((RuleDescr) rules.get(ruleName)));
}
matcher = RULE_PATTERN2.matcher(ruleFileContents);
while (matcher.find()) {
String ruleName = matcher.group(1);
- RuleDescr ruleDescr = (RuleDescr) rules.get(ruleName);
- if (ruleDescr == null) {
- packageTreeNode.addRule(ruleName, matcher.start(1), matcher.end(1) - matcher.start(1));
- } else {
- packageTreeNode.addRule(ruleName, matcher.start(1), matcher.end(1) - matcher.start(1), ruleDescr.getAttributes());
- }
+ DroolsModelBuilder.addRule(pkg, ruleName, null,
+ matcher.start(1), matcher.end(1) - matcher.start(1),
+ extractAttributes((RuleDescr) rules.get(ruleName)));
}
- matcher = PACKAGE_PATTERN.matcher(ruleFileContents);
- if (matcher.find()) {
- String packageName = matcher.group(1);
- packageTreeNode.setPackageName(packageName);
- packageTreeNode.setOffset(matcher.start(1));
- packageTreeNode.setLength(matcher.end(1) - matcher.start(1));
- }
matcher = FUNCTION_PATTERN.matcher(ruleFileContents);
while (matcher.find()) {
String functionName = matcher.group(2);
- packageTreeNode.addFunction(functionName + "()",
- matcher.start(2), matcher.end(2) - matcher.start(2));
+ DroolsModelBuilder.addFunction(pkg, functionName + "()", null,
+ matcher.start(2), matcher.end(2) - matcher.start(2));
}
matcher = EXPANDER_PATTERN.matcher(ruleFileContents);
if (matcher.find()) {
String expanderName = matcher.group(1);
- packageTreeNode.addExpander(expanderName,
- matcher.start(1), matcher.end(1) - matcher.start(1));
+ DroolsModelBuilder.addExpander(pkg, expanderName, null,
+ matcher.start(1), matcher.end(1) - matcher.start(1));
}
matcher = IMPORT_PATTERN.matcher(ruleFileContents);
while (matcher.find()) {
String importName = matcher.group(1);
- packageTreeNode.addImport(importName,
- matcher.start(1), matcher.end(1) - matcher.start(1));
+ DroolsModelBuilder.addImport(pkg, importName, null,
+ matcher.start(1), matcher.end(1) - matcher.start(1));
}
matcher = GLOBAL_PATTERN.matcher(ruleFileContents);
while (matcher.find()) {
String globalType = matcher.group(1);
String globalName = matcher.group(2);
String name = globalName + " : " + globalType;
- packageTreeNode.addGlobal(name,
- matcher.start(2), matcher.end(2) - matcher.start(2));
+ DroolsModelBuilder.addGlobal(pkg, name, null,
+ matcher.start(2), matcher.end(2) - matcher.start(2));
}
matcher = QUERY_PATTERN1.matcher(ruleFileContents);
while (matcher.find()) {
String queryName = matcher.group(1);
- packageTreeNode.addQuery(queryName,
+ DroolsModelBuilder.addQuery(pkg, queryName, null,
matcher.start(1), matcher.end(1) - matcher.start(1));
}
matcher = QUERY_PATTERN2.matcher(ruleFileContents);
while (matcher.find()) {
String queryName = matcher.group(1);
- packageTreeNode.addQuery(queryName,
- matcher.start(1), matcher.end(1) - matcher.start(1));
+ DroolsModelBuilder.addQuery(pkg, queryName, null,
+ matcher.start(1), matcher.end(1) - matcher.start(1));
}
matcher = TEMPLATE_PATTERN.matcher(ruleFileContents);
while (matcher.find()) {
String templateName = matcher.group(1);
- packageTreeNode.addTemplate(templateName,
+ DroolsModelBuilder.addTemplate(pkg, templateName, null,
matcher.start(1), matcher.end(1) - matcher.start(1));
}
}
+
+ private Map extractAttributes(RuleDescr ruleDescr) {
+ Map attributes = null;
+ if (ruleDescr != null) {
+ attributes = new HashMap();
+ for (Iterator iterator = ruleDescr.getAttributes().iterator(); iterator.hasNext();) {
+ AttributeDescr attribute = (AttributeDescr) iterator.next();
+ if (attribute.getName() != null) {
+ attributes.put(attribute.getName(), attribute.getValue());
+ }
+ }
+ }
+ return attributes;
+ }
public void initRules() {
rules = new HashMap();
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleFileTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleFileTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleFileTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,38 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * This represents a rule file in the outline view.
- *
- * @author Jeff Brown
- */
-public class RuleFileTreeNode extends OutlineNode {
-
- private PackageTreeNode packageTreeNode = null;
-
- public Object[] getChildren(Object o) {
- if(packageTreeNode == null) return new Object[0];
- return new Object[]{packageTreeNode};
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return null;
- }
-
- public String getLabel(Object o) {
- return null;
- }
-
- public Object getParent(Object o) {
- return null;
- }
-
- public PackageTreeNode getPackageTreeNode() {
- return packageTreeNode;
- }
-
- public void setPackageTreeNode(PackageTreeNode packageTreeNode) {
- this.packageTreeNode = packageTreeNode;
- }
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/RuleTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,56 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class RuleTreeNode extends OutlineNode implements Comparable {
-
- private final PackageTreeNode packageTreeNode;
- private final String ruleName;
- private List attributes = new ArrayList();
-
- public RuleTreeNode(PackageTreeNode parent,
- String ruleName) {
- packageTreeNode = parent;
- this.ruleName = ruleName;
-
- }
-
- public void addAttribute(String name, Object value, int offset, int length) {
- RuleAttributeTreeNode node = new RuleAttributeTreeNode(this, name, value);
- node.setOffset(offset);
- node.setLength(length);
- attributes.add(node);
- }
-
- public Object[] getChildren(Object o) {
- Collections.sort( attributes );
- return attributes.toArray();
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/drools.gif" );
- }
-
- public String getLabel(Object o) {
- return ruleName;
- }
-
- public Object getParent(Object o) {
- return packageTreeNode;
- }
-
- public int compareTo(Object obj) {
- if (obj instanceof RuleTreeNode) {
- RuleTreeNode other = (RuleTreeNode) obj;
- return this.ruleName.compareTo( other.ruleName );
- } else {
- return 0;
- }
- }
-
-}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/TemplateTreeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/TemplateTreeNode.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/outline/TemplateTreeNode.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -1,42 +0,0 @@
-package org.drools.ide.editors.outline;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class TemplateTreeNode extends OutlineNode implements Comparable {
-
- private final PackageTreeNode packageTreeNode;
- private final String expanderLabel;
-
- public TemplateTreeNode(PackageTreeNode parent,
- String importLabel) {
- packageTreeNode = parent;
- this.expanderLabel = importLabel;
-
- }
-
- public Object[] getChildren(Object o) {
- return new Object[0];
- }
-
- public ImageDescriptor getImageDescriptor(Object object) {
- return DroolsIDEPlugin.getImageDescriptor( "icons/class_obj.gif" );
- }
-
- public String getLabel(Object o) {
- return expanderLabel;
- }
-
- public Object getParent(Object o) {
- return packageTreeNode;
- }
-
- public int compareTo(Object obj) {
- if ( obj instanceof TemplateTreeNode ) {
- TemplateTreeNode other = (TemplateTreeNode) obj;
- return this.expanderLabel.compareTo( other.expanderLabel );
- } else {
- return 0;
- }
- }
-}
Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/view/rules/RulesView.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/view/rules/RulesView.java 2006-11-24 23:20:19 UTC (rev 7819)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/view/rules/RulesView.java 2006-11-24 23:21:52 UTC (rev 7820)
@@ -0,0 +1,272 @@
+package org.drools.ide.view.rules;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.ide.DRLInfo;
+import org.drools.ide.DroolsIDEPlugin;
+import org.drools.ide.core.DroolsElement;
+import org.drools.ide.core.DroolsModelBuilder;
+import org.drools.ide.core.Function;
+import org.drools.ide.core.Global;
+import org.drools.ide.core.Package;
+import org.drools.ide.core.Query;
+import org.drools.ide.core.Rule;
+import org.drools.ide.core.RuleSet;
+import org.drools.ide.core.Template;
+import org.drools.ide.core.ui.DroolsContentProvider;
+import org.drools.ide.core.ui.DroolsLabelProvider;
+import org.drools.ide.core.ui.DroolsTreeSorter;
+import org.drools.ide.core.ui.FilterActionGroup;
+import org.drools.lang.descr.FactTemplateDescr;
+import org.drools.lang.descr.FunctionDescr;
+import org.drools.lang.descr.QueryDescr;
+import org.drools.lang.descr.RuleDescr;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.IResourceVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+public class RulesView extends ViewPart implements IDoubleClickListener, IResourceVisitor, IResourceChangeListener {
+
+ private final RuleSet ruleSet = DroolsModelBuilder.createRuleSet();
+
+ private Map resourcesMap = new HashMap();
+ private TreeViewer treeViewer;
+
+ public void createPartControl(Composite parent) {
+ treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ treeViewer.setContentProvider(new DroolsContentProvider());
+ treeViewer.setLabelProvider(new DroolsLabelProvider());
+ treeViewer.setSorter(new DroolsTreeSorter());
+ treeViewer.addDoubleClickListener(this);
+ treeViewer.setUseHashlookup(true);
+ treeViewer.setInput(ruleSet);
+ FilterActionGroup filterActionGroup = new FilterActionGroup(
+ treeViewer, "org.drools.ide.view.rules.RulesView");
+ filterActionGroup.fillActionBars(getViewSite().getActionBars());
+ }
+
+ public void init(IViewSite site, IMemento memento) throws PartInitException {
+ super.init(site, memento);
+ try {
+ ResourcesPlugin.getWorkspace().getRoot().accept(this);
+ } catch (CoreException e) {
+ DroolsIDEPlugin.log(e);
+ }
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
+ }
+
+ public void setFocus() {
+ treeViewer.getControl().setFocus();
+ }
+
+ public boolean visit(IResource resource) throws CoreException {
+ return updateResource(resource);
+ }
+
+ private boolean updateResource(IResource resource) {
+ IProject project = resource.getProject();
+ if (project != null) {
+ IJavaProject javaProject = JavaCore.create(project);
+ if (!javaProject.exists()) {
+ return false;
+ }
+ if (resource instanceof IFile
+ && "drl".equals(resource.getFileExtension())
+ && javaProject.isOnClasspath(resource)) {
+ try {
+ IFile file = (IFile) resource;
+ DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(resource, false);
+ String packageName = drlInfo.getPackageName();
+ Package pkg = ruleSet.getPackage(packageName);
+ if (pkg == null) {
+ pkg = DroolsModelBuilder.addPackage(ruleSet, packageName, 0, 0);
+ }
+ // add rules
+ List rules = drlInfo.getPackageDescr().getRules();
+ for (Iterator iterator = rules.iterator(); iterator.hasNext();) {
+ RuleDescr ruleDescr = (RuleDescr) iterator.next();
+ boolean isQuery = ruleDescr instanceof QueryDescr;
+ String ruleName = ruleDescr.getName();
+ if (!isQuery) {
+ Rule rule = DroolsModelBuilder.addRule(pkg, ruleName, file, 0, 0, null);
+ // create link between resource and created rule nodes
+ List droolsElements = (List) resourcesMap.get(file);
+ if (droolsElements == null) {
+ droolsElements = new ArrayList();
+ resourcesMap.put(file, droolsElements);
+ }
+ droolsElements.add(rule);
+ } else {
+ Query query = DroolsModelBuilder.addQuery(pkg, ruleName, file, 0, 0);
+ // create link between resource and created rule nodes
+ List droolsElements = (List) resourcesMap.get(file);
+ if (droolsElements == null) {
+ droolsElements = new ArrayList();
+ resourcesMap.put(file, droolsElements);
+ }
+ droolsElements.add(query);
+ }
+ }
+ // add templates
+ List templates = drlInfo.getPackageDescr().getFactTemplates();
+ for (Iterator iterator = templates.iterator(); iterator.hasNext();) {
+ String templateName = ((FactTemplateDescr) iterator.next()).getName();
+ Template template = DroolsModelBuilder.addTemplate(pkg, templateName, file, 0, 0);
+ // create link between resource and created rule nodes
+ List droolsElements = (List) resourcesMap.get(file);
+ if (droolsElements == null) {
+ droolsElements = new ArrayList();
+ resourcesMap.put(file, droolsElements);
+ }
+ droolsElements.add(template);
+ }
+ // add globals
+ Map globals = drlInfo.getPackageDescr().getGlobals();
+ for (Iterator iterator = globals.keySet().iterator(); iterator.hasNext();) {
+ String globalName = (String) iterator.next();
+ Global global = DroolsModelBuilder.addGlobal(pkg, globalName, file, 0, 0);
+ // create link between resource and created rule nodes
+ List droolsElements = (List) resourcesMap.get(file);
+ if (droolsElements == null) {
+ droolsElements = new ArrayList();
+ resourcesMap.put(file, droolsElements);
+ }
+ droolsElements.add(global);
+ }
+ // add functions
+ List functions = drlInfo.getPackageDescr().getFunctions();
+ for (Iterator iterator = functions.iterator(); iterator.hasNext();) {
+ String functionName = ((FunctionDescr) iterator.next()).getName();
+ Function function = DroolsModelBuilder.addFunction(pkg, functionName, file, 0, 0);
+ // create link between resource and created rule nodes
+ List droolsElements = (List) resourcesMap.get(file);
+ if (droolsElements == null) {
+ droolsElements = new ArrayList();
+ resourcesMap.put(file, droolsElements);
+ }
+ droolsElements.add(function);
+ }
+ } catch (Throwable t) {
+ DroolsIDEPlugin.log(t);
+ }
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public void resourceChanged(final IResourceChangeEvent event) {
+ try {
+ if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
+ IResourceDelta delta = event.getDelta();
+ if (delta != null) {
+ delta.accept(new IResourceDeltaVisitor() {
+ public boolean visit(IResourceDelta delta) throws CoreException {
+ IResource resource = delta.getResource();
+ removeElementsFromResource(resource);
+ boolean result = true;
+ if (delta.getKind() != IResourceDelta.REMOVED) {
+ result = updateResource(resource);
+ }
+ treeViewer.getControl().getDisplay().asyncExec(
+ new Runnable() {
+ public void run() {
+ treeViewer.refresh();
+ }
+ }
+ );
+ return result;
+ }
+ });
+ }
+ } else if (event.getType() == IResourceChangeEvent.PRE_DELETE) {
+ IResource resource = event.getResource();
+ if (resource != null) {
+ resource.accept(new IResourceVisitor() {
+ public boolean visit(IResource resource) throws CoreException {
+ removeElementsFromResource(resource);
+ return true;
+ }
+ });
+ }
+ } else if (event.getType() == IResourceChangeEvent.PRE_CLOSE) {
+ IResource resource = event.getResource();
+ if (resource != null) {
+ resource.accept(new IResourceVisitor() {
+ public boolean visit(IResource resource) throws CoreException {
+ removeElementsFromResource(resource);
+ return true;
+ }
+ });
+ }
+ }
+ } catch (Throwable t) {
+ DroolsIDEPlugin.log(t);
+ }
+ }
+
+ private void removeElementsFromResource(IResource resource) {
+ List droolsElements = (List) resourcesMap.get(resource);
+ if (droolsElements != null) {
+ for (Iterator iterator = droolsElements.iterator(); iterator.hasNext();) {
+ DroolsModelBuilder.removeElement((DroolsElement) iterator.next());
+ }
+ resourcesMap.remove(resource);
+ }
+ }
+
+ public void doubleClick(DoubleClickEvent event) {
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection) {
+ Object selected = ((StructuredSelection) selection).getFirstElement();
+ if (selected != null && selected instanceof DroolsElement) {
+ DroolsElement droolsSelected = (DroolsElement) selected;
+ IFile file = droolsSelected.getFile();
+ if (file != null) {
+ try {
+ IEditorPart editor = IDE.openEditor(getSite().getPage(), file);
+ if (editor instanceof FormEditor) {
+ editor = ((FormEditor) editor).getActiveEditor();
+ }
+ if (editor instanceof ITextEditor) {
+ ((ITextEditor)editor).selectAndReveal(
+ droolsSelected.getOffset(), droolsSelected.getLength());
+ }
+ } catch (Throwable t) {
+ DroolsIDEPlugin.log(t);
+ }
+ }
+ }
+ }
+ }
+
+}
More information about the jboss-svn-commits
mailing list