[jboss-svn-commits] JBL Code SVN: r12861 - in labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder: ui and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 26 07:47:19 EDT 2007
Author: ahtik
Date: 2007-06-26 07:47:19 -0400 (Tue, 26 Jun 2007)
New Revision: 12861
Modified:
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
Log:
JBRULES-878: added rule name set from filename; added modify combobox; fixed add combobox so RHS can use LHS fact bindings; fixed a few threading issues for model update.
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java 2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/editors/RuleEditor.java 2007-06-26 11:47:19 UTC (rev 12861)
@@ -129,13 +129,27 @@
setPageText( 2,
"Generated DRL (read-only)" );
- setPartName( xmlEditor.getTitle() );
+ updateName(false);
} catch ( PartInitException e ) {
e.printStackTrace();
}
}
+ private void updateName(boolean forced) {
+ String name = xmlEditor.getTitle();
+ setPartName( name );
+
+ //TODO Add support for other than .brxml extensions
+ if (guidedEditor.getModeller()!=null && guidedEditor.getModeller().getModel()!=null && (guidedEditor.getModeller().getModel().name==null || forced)) {
+ String shortName = name.substring( 0, name.length()-".brxml".length() );
+ guidedEditor.getModeller().getModel().name=shortName;
+ }
+
+ updateDRLPage();
+
+ }
+
private IPath getCurrentDirectoryPath(IEditorInput editorInput) {
return ((FileEditorInput) editorInput).getFile().getFullPath().removeLastSegments( 1 ).addTrailingSeparator();
}
@@ -231,6 +245,7 @@
if ( newModel ) {
guidedEditor.getModeller().setDirty( false );
}
+ updateName(false);
}
guidedEditor.refresh();
@@ -249,21 +264,28 @@
guidedEditor.setModelXML( document.get() );
}
- String drl;
- try {
- drl = BRDRLPersistence.getInstance().marshal( guidedEditor.getRuleModel() );
- } catch ( Throwable t ) {
+ updateDRLPage();
- StringWriter strwriter = new StringWriter();
- t.printStackTrace( new PrintWriter( strwriter ) );
- drl = strwriter.toString();
- }
- drlPreviewText.setText( drl );
+ updateName(false);
}
}
+ private void updateDRLPage() {
+
+ String drl;
+ try {
+ drl = BRDRLPersistence.getInstance().marshal( guidedEditor.getRuleModel() );
+ } catch ( Throwable t ) {
+
+ StringWriter strwriter = new StringWriter();
+ t.printStackTrace( new PrintWriter( strwriter ) );
+ drl = strwriter.toString();
+ }
+ drlPreviewText.setText( drl );
+ }
+
public void doSave(IProgressMonitor monitor) {
IDocument document = getInputDocument();
@@ -291,7 +313,7 @@
public void doSaveAs() {
xmlEditor.doSaveAs();
guidedEditor.getModeller().setDirty( false );
- setPartName( xmlEditor.getTitle() );
+ updateName(true);
setInput( xmlEditor.getEditorInput() );
guidedEditor.refresh();
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java 2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ActionSetFieldDialog.java 2007-06-26 11:47:19 UTC (rev 12861)
@@ -70,9 +70,16 @@
"",
fieldType ) );
- modeller.reloadRhs();
- modeller.setDirty( true );
- close();
+
+ getShell().getDisplay().asyncExec( new Runnable() {
+
+ public void run() {
+ modeller.reloadRhs();
+ modeller.setDirty( true );
+ close();
+ }
+
+ } );
}
} );
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java 2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/AddNewActionDialog.java 2007-06-26 11:47:19 UTC (rev 12861)
@@ -1,9 +1,12 @@
package org.drools.eclipse.rulebuilder.ui;
+import java.util.List;
+
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
import org.drools.brms.client.modeldriven.brxml.ActionInsertFact;
import org.drools.brms.client.modeldriven.brxml.ActionInsertLogicalFact;
import org.drools.brms.client.modeldriven.brxml.ActionSetField;
+import org.drools.brms.client.modeldriven.brxml.ActionUpdateField;
import org.drools.brms.client.modeldriven.brxml.DSLSentence;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Combo;
@@ -40,9 +43,12 @@
Composite composite = (Composite) super.createDialogArea( parent );
String heading = "Choose...";
- createGlobalVariablesPart( composite,
+ createValuesOfFieldPart( composite,
heading );
+ createModifyFieldPart( composite,
+ heading );
+
String[] facts = getCompletion().getFactTypes();
createFactAssertionPart( composite,
@@ -59,6 +65,38 @@
return composite;
}
+ private void createModifyFieldPart(Composite composite,
+ String heading) {
+ createLabel( composite,
+ "Modify a field on a fact" );
+ final Combo factsCombo = new Combo( composite,
+ SWT.READ_ONLY );
+ factsCombo.add( heading );
+
+ List boundFacts = modeller.getModel().getBoundFacts();
+
+ for ( int i = 0; i < boundFacts.size(); i++ ) {
+ factsCombo.add( (String) boundFacts.get( i ) );
+ }
+ factsCombo.select( 0 );
+
+ factsCombo.addListener( SWT.Selection,
+ new Listener() {
+ public void handleEvent(Event event) {
+ if ( factsCombo.getSelectionIndex() == 0 ) {
+ return;
+ }
+
+ modeller.getModel().addRhsItem(new ActionUpdateField(factsCombo.getText()));
+
+ modeller.setDirty( true );
+ modeller.reloadRhs();
+ close();
+ }
+ } );
+
+ }
+
private void createDslSentences(Composite composite,
String heading) {
if ( getCompletion().getDSLActions().length > 0 ) {
@@ -152,16 +190,18 @@
return factsCombo;
}
- private void createGlobalVariablesPart(Composite composite,
+ private void createValuesOfFieldPart(Composite composite,
String heading) {
createLabel( composite,
"Set the values of a field on" );
final Combo globalVarsCombo = new Combo( composite,
SWT.READ_ONLY );
globalVarsCombo.add( heading );
- String[] globalVars = getCompletion().getGlobalVariables();
- for ( int i = 0; i < globalVars.length; i++ ) {
- globalVarsCombo.add( globalVars[i] );
+
+ List boundFacts = modeller.getModel().getBoundFacts();
+
+ for ( int i = 0; i < boundFacts.size(); i++ ) {
+ globalVarsCombo.add( (String) boundFacts.get( i ) );
}
globalVarsCombo.select( 0 );
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java 2007-06-26 11:04:17 UTC (rev 12860)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java 2007-06-26 11:47:19 UTC (rev 12861)
@@ -574,6 +574,8 @@
public void modifyText(ModifyEvent e) {
con.operator = HumanReadable.getOperatorName( box.getText() );
getModeller().setDirty( true );
+
+
}
} );
}
More information about the jboss-svn-commits
mailing list