[jboss-svn-commits] JBL Code SVN: r14035 - labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Aug 4 17:59:44 EDT 2007
Author: arhan
Date: 2007-08-04 17:59:44 -0400 (Sat, 04 Aug 2007)
New Revision: 14035
Added:
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java
Modified:
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java
Log:
extracted constraint value editor to a separate class
Added: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/ConstraintValueEditor.java 2007-08-04 21:59:44 UTC (rev 14035)
@@ -0,0 +1,194 @@
+package org.drools.eclipse.rulebuilder.ui;
+
+import java.util.List;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.eclipse.DroolsEclipsePlugin;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
+
+public class ConstraintValueEditor {
+
+ private Composite composite;
+
+ private ISingleFieldConstraint constraint;
+
+ private FormToolkit toolkit;
+
+ private RuleModeller modeller;
+
+ private boolean numericValue;
+
+ public ConstraintValueEditor(Composite composite,
+ ISingleFieldConstraint constraint, FormToolkit toolkit,
+ RuleModeller modeller, String numericType /*e.g. is "Numeric"*/) {
+ this.composite = composite;
+ this.constraint = constraint;
+ this.toolkit = toolkit;
+ this.modeller = modeller;
+
+ if (numericType.equals( SuggestionCompletionEngine.TYPE_NUMERIC )) {
+ this.numericValue = true;
+ }
+ create();
+ }
+
+ private void create() {
+ if (constraint.constraintValueType == ISingleFieldConstraint.TYPE_UNDEFINED) {
+ ImageHyperlink link = addImage(composite, "icons/edit.gif");
+ link.setToolTipText("Choose value editor type");
+ link.addHyperlinkListener(new IHyperlinkListener() {
+ public void linkActivated(HyperlinkEvent e) {
+ RuleDialog popup = new ValueEditorTypeSelectionDialog(
+ composite.getShell(), toolkit, modeller, constraint);
+ popup.open();
+ }
+
+ public void linkEntered(HyperlinkEvent e) {
+ }
+
+ public void linkExited(HyperlinkEvent e) {
+ }
+ });
+
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL
+ | GridData.GRAB_HORIZONTAL
+ | GridData.HORIZONTAL_ALIGN_BEGINNING);
+ gd.horizontalSpan = 2;
+
+ link.setLayoutData(gd);
+ } else {
+ switch (constraint.constraintValueType) {
+ case ISingleFieldConstraint.TYPE_LITERAL:
+ literalValueEditor(composite, constraint, new GridData(
+ GridData.FILL_HORIZONTAL));
+ break;
+ case ISingleFieldConstraint.TYPE_RET_VALUE:
+ addImage(composite, "icons/function_assets.gif");
+ formulaValueEditor(composite, constraint, new GridData(
+ GridData.FILL_HORIZONTAL));
+ break;
+ case ISingleFieldConstraint.TYPE_VARIABLE:
+ variableEditor(composite, constraint, new GridData(
+ GridData.FILL_HORIZONTAL));
+ break;
+ default:
+ break;
+ }
+ }
+
+ }
+
+ private void literalValueEditor(Composite parent,
+ final ISingleFieldConstraint c, GridData gd) {
+ final Text box = toolkit.createText(parent, "");
+
+ if (c.value != null) {
+ box.setText(c.value);
+ }
+
+ gd.horizontalSpan = 2;
+ gd.grabExcessHorizontalSpace = true;
+ gd.minimumWidth = 100;
+ box.setLayoutData(gd);
+
+ box.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ c.value = box.getText();
+ modeller.setDirty(true);
+ }
+ });
+
+ if (this.numericValue) {
+ box.addKeyListener(new KeyListener(){
+
+ public void keyPressed(KeyEvent e) {
+ if(Character.isLetter(e.character)){
+ e.doit = false;
+ }
+ }
+
+ public void keyReleased(KeyEvent e) {
+
+ }
+
+ });
+ }
+ }
+
+ private void formulaValueEditor(Composite parent,
+ final ISingleFieldConstraint c, GridData gd) {
+
+ final Text box = toolkit.createText(parent, "");
+
+ if (c.value != null) {
+ box.setText(c.value);
+ }
+
+ gd.grabExcessHorizontalSpace = true;
+ gd.minimumWidth = 100;
+ box.setLayoutData(gd);
+
+ box.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ c.value = box.getText();
+ modeller.setDirty(true);
+ }
+ });
+ }
+
+ private void variableEditor(Composite composite,
+ final ISingleFieldConstraint c, GridData gd) {
+ List vars = modeller.getModel().getBoundVariablesInScope(c);
+
+ final Combo combo = new Combo(composite, SWT.READ_ONLY);
+
+ gd.horizontalSpan = 2;
+ combo.setLayoutData(gd);
+ if (c.value == null) {
+ combo.add("Choose ...");
+ }
+
+ int idx = 0;
+
+ for (int i = 0; i < vars.size(); i++) {
+ String var = (String) vars.get(i);
+
+ if (c.value != null && c.value.equals(var)) {
+ idx = i;
+ }
+ combo.add(var);
+ }
+
+ combo.select(idx);
+
+ combo.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ c.value = combo.getText();
+ }
+ });
+
+ }
+
+ public ImageHyperlink addImage(Composite parent, String fileName) {
+ ImageHyperlink imageHyperlink = toolkit.createImageHyperlink(parent, 0);
+ ImageDescriptor imageDescriptor = DroolsEclipsePlugin
+ .getImageDescriptor(fileName);
+ imageHyperlink.setImage(imageDescriptor.createImage());
+ return imageHyperlink;
+ }
+
+}
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-08-04 19:39:03 UTC (rev 14034)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/rulebuilder/ui/FactPatternWidget.java 2007-08-04 21:59:44 UTC (rev 14035)
@@ -13,8 +13,6 @@
import org.drools.brms.client.modeldriven.brl.SingleFieldConstraint;
import org.drools.eclipse.rulebuilder.modeldriven.HumanReadable;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Color;
@@ -317,8 +315,9 @@
}
operatorDropDown( constraintComposite,
c );
- constraintValueEditor( constraintComposite,
- c );
+
+ constraintValueEditor(constraintComposite, c, c.fieldName);
+
createConnectives( constraintComposite,
c );
addConnectiveAction( constraintComposite,
@@ -394,12 +393,19 @@
connectiveOperatorDropDown( parent,
con,
c.fieldName );
- constraintValueEditor( parent,
- con );
+ constraintValueEditor( parent,
+ con, c.fieldName );
+
}
}
}
+ private void constraintValueEditor(Composite parent, ISingleFieldConstraint c, String name ){
+ String type = this.modeller.getSuggestionCompletionEngine().getFieldType( pattern.factType, name );
+ new ConstraintValueEditor (parent, c, toolkit, modeller, type);
+ }
+
+
private void addConnectiveAction(Composite constraintComposite,
final SingleFieldConstraint c) {
ImageHyperlink link = addImage( constraintComposite,
@@ -594,119 +600,6 @@
} );
}
- // from org.drools.brms.client.modeldriven.ui.ConstraintValueEditor
- //TODO: private boolean numericValue;
- private void constraintValueEditor(final Composite parent,
- final ISingleFieldConstraint c) {
- if ( c.constraintValueType == ISingleFieldConstraint.TYPE_UNDEFINED ) {
- ImageHyperlink link = addImage( parent,
- "icons/edit.gif" );
- link.setToolTipText( "Choose value editor type" );
- link.addHyperlinkListener( new IHyperlinkListener() {
- public void linkActivated(HyperlinkEvent e) {
- RuleDialog popup = new ValueEditorTypeSelectionDialog( parent.getShell(),
- toolkit,
- getModeller(),
- c );
- popup.open();
- }
-
- public void linkEntered(HyperlinkEvent e) {
- }
-
- public void linkExited(HyperlinkEvent e) {
- }
- } );
-
- GridData gd = new GridData( GridData.FILL_HORIZONTAL |
- GridData.GRAB_HORIZONTAL |
- GridData.HORIZONTAL_ALIGN_BEGINNING);
- gd.horizontalSpan = 2;
-
- link.setLayoutData(gd);
- } else {
- switch ( c.constraintValueType ) {
- case ISingleFieldConstraint.TYPE_LITERAL :
- literalValueEditor( parent,
- c,
- new GridData( GridData.FILL_HORIZONTAL ) );
- break;
- case ISingleFieldConstraint.TYPE_RET_VALUE :
- addImage( parent,
- "icons/function_assets.gif" );
- formulaValueEditor( parent,
- c,
- new GridData( GridData.FILL_HORIZONTAL ) );
- break;
- case ISingleFieldConstraint.TYPE_VARIABLE :
- variableEditor( parent,
- c,
- new GridData( GridData.FILL_HORIZONTAL ) );
- break;
- default :
- break;
- }
- }
- }
-
- private void variableEditor(Composite composite,
- final ISingleFieldConstraint c,
- GridData gd) {
- List vars = getModeller().getModel().getBoundVariablesInScope( c );
-
- final Combo combo = new Combo( composite,
- SWT.READ_ONLY );
-
- gd.horizontalSpan = 2;
- combo.setLayoutData( gd );
- if ( c.value == null ) {
- combo.add( "Choose ..." );
- }
-
- int idx = 0;
-
- for ( int i = 0; i < vars.size(); i++ ) {
- String var = (String) vars.get( i );
-
- if ( c.value != null && c.value.equals( var ) ) {
- idx = i;
- }
- combo.add( var );
- }
-
- combo.select( idx );
-
- combo.addModifyListener( new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- c.value = combo.getText();
- }
- } );
-
- }
-
- private void literalValueEditor(Composite parent,
- final ISingleFieldConstraint c,
- GridData gd) {
- final Text box = toolkit.createText( parent,
- "" );
-
- if ( c.value != null ) {
- box.setText( c.value );
- }
-
- gd.horizontalSpan = 2;
- gd.grabExcessHorizontalSpace = true;
- gd.minimumWidth = 100;
- box.setLayoutData( gd );
-
- box.addModifyListener( new ModifyListener() {
- public void modifyText(ModifyEvent e) {
- c.value = box.getText();
- getModeller().setDirty( true );
- }
- } );
- }
-
private void formulaValueEditor(Composite parent,
final ISingleFieldConstraint c,
GridData gd) {
@@ -730,13 +623,6 @@
} );
}
- /*private int getPreferredWidth(final Text box) {
- GC gc = new GC(box);
- FontMetrics fm = gc.getFontMetrics();
- int width = 7 * fm.getAverageCharWidth();
- return width;
- }*/
-
private void deleteBindedFact() {
List newPatterns = new ArrayList();
for ( int i = 0; i < parentPattern.patterns.length; i++ ) {
More information about the jboss-svn-commits
mailing list