[jboss-svn-commits] JBL Code SVN: r11905 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: client/modeldriven/ui and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu May 17 04:32:59 EDT 2007
Author: fmeyer
Date: 2007-05-17 04:32:58 -0400 (Thu, 17 May 2007)
New Revision: 11905
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableContainer.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableHorizontalPane.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableStackPanel.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableVerticalPane.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableWidget.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableComposite.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableFlexTable.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleAttributeWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java
Log:
JBRULES-706 - Dirtyable Widgets and Containers
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableComposite.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableComposite.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableComposite.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -2,8 +2,8 @@
import com.google.gwt.user.client.ui.Composite;
-public abstract class DirtyableComposite extends Composite implements IDirtyable {
- private boolean dirtyflag = false;
+public abstract class DirtyableComposite extends Composite implements DirtyableWidget {
+ protected boolean dirtyflag = false;
/* (non-Javadoc)
* @see org.drools.brms.client.common.isDirtable#isDirty()
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableContainer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableContainer.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableContainer.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -0,0 +1,12 @@
+/**
+ *
+ */
+package org.drools.brms.client.common;
+
+/**
+ * @author fernandomeyer
+ *
+ */
+public interface DirtyableContainer extends IDirtyable {
+ public boolean hasDirty();
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableFlexTable.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableFlexTable.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableFlexTable.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -3,10 +3,11 @@
import java.util.ArrayList;
import java.util.Iterator;
+import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Widget;
-public class DirtyableFlexTable extends FlexTable {
+public class DirtyableFlexTable extends FlexTable implements DirtyableContainer {
private int length;
private ArrayList list = new ArrayList();
@@ -14,27 +15,27 @@
public boolean hasDirty() {
Pair coordinates;
- DirtyableComposite element;
+ Widget element;
for ( Iterator iter = list.iterator(); iter.hasNext(); ) {
coordinates = (Pair) iter.next();
- element = (DirtyableComposite) getWidget( coordinates.getRow(), coordinates.getColumn() );
- if ( element.isDirty() ) return true;
-
+ element = (Widget) getWidget( coordinates.getRow(), coordinates.getColumn() );
+ if (element instanceof DirtyableWidget)
+ if ( ((DirtyableWidget) element).isDirty() ) return true;
+ if (element instanceof DirtyableContainer)
+ if ( ((DirtyableContainer) element).hasDirty()) return true;
}
-
return false;
-
}
public void setWidget(int row, int column , Widget arg2) {
super.setWidget( row, column, arg2 );
- if ( arg2 instanceof DirtyableComposite ) {
+ if (( arg2 instanceof IDirtyable )) {
list.add( length++, new Pair(row ,column) );
-
}
}
+
}
class Pair {
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableHorizontalPane.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableHorizontalPane.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableHorizontalPane.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.drools.brms.client.common;
+
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * @author fernandomeyer
+ */
+
+public class DirtyableHorizontalPane extends HorizontalPanel implements DirtyableContainer {
+ public boolean hasDirty() {
+
+ int widNumber = getWidgetCount();
+ Widget element;
+
+ for ( int i = 0; i < widNumber; i++ ) {
+ element = (Widget) getWidget(i);
+ if (element instanceof DirtyableWidget)
+ if ( ((DirtyableWidget) element).isDirty() ) return true;
+ if (element instanceof DirtyableContainer)
+ if ( ((DirtyableContainer) element).hasDirty()) return true;
+ }
+ return false;
+ }
+}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableStackPanel.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableStackPanel.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableStackPanel.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.drools.brms.client.common;
+
+import com.google.gwt.user.client.ui.StackPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * @author Fernando Meyer
+ *
+ */
+public class DirtyableStackPanel extends StackPanel implements DirtyableContainer {
+ public boolean hasDirty() {
+
+ int widNumber = getWidgetCount();
+ Widget element;
+
+ for ( int i = 0; i < widNumber; i++ ) {
+ element = (Widget) getWidget(i);
+ if (element instanceof DirtyableWidget)
+ if ( ((DirtyableWidget) element).isDirty() ) return true;
+ if (element instanceof DirtyableContainer)
+ if ( ((DirtyableContainer) element).hasDirty()) return true;
+ }
+ return false;
+ }
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableVerticalPane.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableVerticalPane.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableVerticalPane.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.drools.brms.client.common;
+
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * @author fernandomeyer
+ *
+ */
+public class DirtyableVerticalPane extends VerticalPanel implements DirtyableContainer {
+ public boolean hasDirty() {
+
+ int widNumber = getWidgetCount();
+ Widget element;
+
+ for ( int i = 0; i < widNumber; i++ ) {
+ element = (Widget) getWidget(i);
+ if (element instanceof DirtyableWidget)
+ if ( ((DirtyableWidget) element).isDirty() ) return true;
+ if (element instanceof DirtyableContainer)
+ if ( ((DirtyableContainer) element).hasDirty()) return true;
+ }
+ return false;
+ }
+}
Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableWidget.java (from rev 11889, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/IDirtyable.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableWidget.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/DirtyableWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -0,0 +1,11 @@
+package org.drools.brms.client.common;
+
+public interface DirtyableWidget extends IDirtyable {
+
+ public abstract boolean isDirty();
+
+ public abstract void resetDirty();
+
+ public abstract void makeDirty();
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -17,7 +17,7 @@
*/
public class FormStyleLayout extends DirtyableComposite {
- private FlexTable layout = new FlexTable();
+ private DirtyableFlexTable layout = new DirtyableFlexTable();
private FlexCellFormatter formatter = layout.getFlexCellFormatter();
private int numInLayout = 0;
@@ -88,5 +88,10 @@
public void setFlexTableWidget(int row, int col, Widget widget){
layout.setWidget( row, col, widget );
}
+
+ public boolean isDirty() {
+ return layout.hasDirty();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionAssertFactWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -1,5 +1,7 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.ImageButton;
import org.drools.brms.client.common.Lbl;
@@ -27,9 +29,9 @@
* @author Michael Neale
*
*/
-public class ActionAssertFactWidget extends Composite {
+public class ActionAssertFactWidget extends DirtyableComposite {
- private FlexTable layout;
+ private DirtyableFlexTable layout;
private ActionAssertFact model;
private SuggestionCompletionEngine completions;
private String[] fieldCompletions;
@@ -38,7 +40,7 @@
public ActionAssertFactWidget(RuleModeller mod, ActionAssertFact set, SuggestionCompletionEngine com) {
this.model = set;
this.completions = com;
- this.layout = new FlexTable();
+ this.layout = new DirtyableFlexTable();
this.modeller = mod;
this.fieldCompletions = this.completions.getFieldCompletions( set.factType );
@@ -53,7 +55,7 @@
layout.clear();
layout.setWidget( 0, 0, getAssertLabel() );
- FlexTable inner = new FlexTable();
+ DirtyableFlexTable inner = new DirtyableFlexTable();
for ( int i = 0; i < model.fieldValues.length; i++ ) {
ActionFieldValue val = model.fieldValues[i];
@@ -89,6 +91,7 @@
box.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
val.value = box.getText();
+ modeller.refreshWidget();
}
});
return box;
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ActionSetFieldWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -1,5 +1,7 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
import org.drools.brms.client.common.FieldEditListener;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.ImageButton;
@@ -30,11 +32,11 @@
*
* @author Michael Neale
*/
-public class ActionSetFieldWidget extends Composite {
+public class ActionSetFieldWidget extends DirtyableComposite {
final private ActionSetField model;
final private SuggestionCompletionEngine completions;
- final private FlexTable layout;
+ final private DirtyableFlexTable layout;
private boolean isBoundFact = false;
final private String[] fieldCompletions;
@@ -44,7 +46,7 @@
public ActionSetFieldWidget(RuleModeller mod, RuleModel rule, ActionSetField set, SuggestionCompletionEngine com) {
this.model = set;
this.completions = com;
- this.layout = new FlexTable();
+ this.layout = new DirtyableFlexTable();
this.modeller = mod;
layout.setStyleName( "model-builderInner-Background" );
if (completions.isGlobalVariable( set.variable )) {
@@ -65,10 +67,8 @@
layout.clear();
layout.setWidget( 0, 0, getSetterLabel() );
- FlexTable inner = new FlexTable();
+ DirtyableFlexTable inner = new DirtyableFlexTable();
-
-
for ( int i = 0; i < model.fieldValues.length; i++ ) {
ActionFieldValue val = model.fieldValues[i];
@@ -186,4 +186,8 @@
return isBoundFact;
}
+ public boolean isDirty() {
+ return layout.hasDirty();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/CompositeFactPatternWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -1,5 +1,8 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
+import org.drools.brms.client.common.DirtyableVerticalPane;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.ImageButton;
import org.drools.brms.client.modeldriven.HumanReadable;
@@ -25,11 +28,11 @@
* @author Michael Neale
*
*/
-public class CompositeFactPatternWidget extends Composite {
+public class CompositeFactPatternWidget extends DirtyableComposite {
private final SuggestionCompletionEngine completions;
private CompositeFactPattern pattern;
- private Grid layout;
+ private DirtyableFlexTable layout;
private RuleModeller modeller;
public CompositeFactPatternWidget(RuleModeller modeller,
@@ -39,7 +42,7 @@
this.pattern = pattern;
this.modeller = modeller;
- this.layout = new Grid( 1, 2 );
+ //this.layout = new Grid( 1, 2 );
this.layout.setStyleName( "model-builderInner-Background" );
doLayout();
@@ -52,7 +55,7 @@
getCompositeLabel() );
if ( pattern.patterns != null ) {
- VerticalPanel vert = new VerticalPanel();
+ DirtyableVerticalPane vert = new DirtyableVerticalPane();
FactPattern[] facts = pattern.patterns;
for ( int i = 0; i < facts.length; i++ ) {
vert.add( new FactPatternWidget( modeller,
@@ -113,7 +116,12 @@
popup.setPopupPosition( w.getAbsoluteLeft() - 400,
w.getAbsoluteTop() );
popup.show();
+ }
+ public boolean isDirty() {
+ return layout.hasDirty();
}
+
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/ConstraintValueEditor.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -2,6 +2,7 @@
import java.util.List;
+import org.drools.brms.client.common.DirtyableComposite;
import org.drools.brms.client.common.FieldEditListener;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.InfoPopup;
@@ -30,8 +31,9 @@
* When the constraint value has no type, it will allow the user to choose the first time.
*
* @author Michael Neale
+ * @author Fernando Meyer
*/
-public class ConstraintValueEditor extends Composite {
+public class ConstraintValueEditor extends DirtyableComposite {
private IConstraint constraint;
private Panel panel;
@@ -136,6 +138,7 @@
box.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
c.value = box.getText();
+ makeDirty();
}
} );
@@ -146,6 +149,8 @@
}
} ) );
+
+
return box;
}
@@ -214,4 +219,10 @@
return panel;
}
+ public boolean isDirty() {
+ return super.isDirty();
+ }
+
+
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/DSLSentenceWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -4,6 +4,8 @@
import java.util.Iterator;
import java.util.List;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableHorizontalPane;
import org.drools.brms.client.modeldriven.brxml.DSLSentence;
import com.google.gwt.user.client.ui.ChangeListener;
@@ -18,13 +20,13 @@
* This displays a widget to edit a DSL sentence.
* @author Michael Neale
*/
-public class DSLSentenceWidget extends Composite {
+public class DSLSentenceWidget extends DirtyableComposite {
- private final HorizontalPanel horiz;
+ private final DirtyableHorizontalPane horiz;
private final List widgets;
private final DSLSentence sentence;
public DSLSentenceWidget(DSLSentence sentence) {
- horiz = new HorizontalPanel();
+ horiz = new DirtyableHorizontalPane();
widgets = new ArrayList();
this.sentence = sentence;
init( );
@@ -94,7 +96,7 @@
}
- class FieldEditor extends Composite {
+ class FieldEditor extends DirtyableComposite {
private TextBox box;
private HorizontalPanel panel = new HorizontalPanel();
@@ -110,6 +112,7 @@
box.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
updateSentence();
+ makeDirty();
}
});
@@ -133,5 +136,9 @@
}
}
+ public boolean isDirty() {
+ return horiz.hasDirty();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/FactPatternWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -1,5 +1,8 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
+import org.drools.brms.client.common.DirtyableHorizontalPane;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.ImageButton;
import org.drools.brms.client.common.Lbl;
@@ -36,10 +39,10 @@
* @author Michael Neale
*
*/
-public class FactPatternWidget extends Composite {
+public class FactPatternWidget extends DirtyableComposite {
private FactPattern pattern;
- private FlexTable layout = new FlexTable();
+ private DirtyableFlexTable layout = new DirtyableFlexTable();
private SuggestionCompletionEngine completions;
private RuleModeller modeller;
private boolean bindable;
@@ -55,7 +58,7 @@
formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE );
formatter.setStyleName( 0, 0, "modeller-fact-TypeHeader" );
- final FlexTable inner = new FlexTable();
+ final DirtyableFlexTable inner = new DirtyableFlexTable();
layout.setWidget( 1, 0, inner );
@@ -125,13 +128,12 @@
box.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
c.value = box.getText();
+ modeller.makeDirty();
}
-
});
box.setWidth( "100%" );
pred.add( box );
-
return pred;
}
@@ -217,6 +219,7 @@
varTxt.setText( pattern.boundName );
varTxt.setVisibleLength( 3 );
varName.add( varTxt );
+
Button bindVar = new Button( "Set" );
bindVar.addClickListener( new ClickListener() {
public void onClick(Widget w) {
@@ -239,11 +242,11 @@
private Widget connectives(Constraint c) {
if ( c.connectives != null && c.connectives.length > 0 ) {
- HorizontalPanel horiz = new HorizontalPanel();
+ DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
for ( int i = 0; i < c.connectives.length; i++ ) {
ConnectiveConstraint con = c.connectives[i];
horiz.add( connectiveOperatorDropDown( con, c.fieldName ) );
- horiz.add( connectiveValueEditor( con ) );
+ horiz.add( connectiveValueEditor( con ) );
}
return horiz;
} else {
@@ -299,6 +302,7 @@
box.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
c.operator = box.getValue( box.getSelectedIndex() );
+ modeller.makeDirty();
System.out.println( "Set operator to :" + c.operator );
}
} );
@@ -360,5 +364,9 @@
popup.show();
}
+ public boolean isDirty() {
+ return layout.hasDirty();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleAttributeWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleAttributeWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleAttributeWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -1,5 +1,7 @@
package org.drools.brms.client.modeldriven.ui;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableHorizontalPane;
import org.drools.brms.client.common.FormStyleLayout;
import org.drools.brms.client.common.YesNoDialog;
import org.drools.brms.client.modeldriven.brxml.RuleAttribute;
@@ -20,7 +22,7 @@
*
* @author Michael Neale
*/
-public class RuleAttributeWidget extends Composite {
+public class RuleAttributeWidget extends DirtyableComposite {
private FormStyleLayout layout;
private RuleModel model;
@@ -50,9 +52,10 @@
box.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
at.value = box.getText();
+ makeDirty();
}
});
- HorizontalPanel horiz = new HorizontalPanel();
+ DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
horiz.add( box );
horiz.add( getRemoveIcon( idx ) );
@@ -99,4 +102,8 @@
return remove;
}
+ public boolean isDirty() {
+ return layout.isDirty();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -3,6 +3,10 @@
import java.util.Iterator;
import java.util.List;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
+import org.drools.brms.client.common.DirtyableHorizontalPane;
+import org.drools.brms.client.common.DirtyableVerticalPane;
import org.drools.brms.client.common.ErrorPopup;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.ImageButton;
@@ -28,14 +32,11 @@
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
/**
@@ -44,19 +45,20 @@
* @author Michael Neale
*
*/
-public class RuleModeller extends Composite {
+public class RuleModeller extends DirtyableComposite {
- private FlexTable layout;
+ private DirtyableFlexTable layout;
private SuggestionCompletionEngine completions;
private RuleModel model;
public RuleModeller(RuleAsset asset) {
this.model = (RuleModel) asset.content;
+
this.completions = SuggestionCompletionCache.getInstance().getEngineFromCache( asset.metaData.packageName );
- layout = new FlexTable();
+ layout = new DirtyableFlexTable();
- refreshWidget();
+ initWidget();
layout.setStyleName( "model-builder-Background" );
initWidget( layout );
@@ -67,7 +69,7 @@
/**
* This updates the widget to reflect the state of the model.
*/
- public void refreshWidget() {
+ public void initWidget() {
layout.clear();
Image addPattern = new ImageButton( "images/new_item.gif" );
@@ -98,9 +100,12 @@
layout.setWidget( 4, 0, new Label("(options)") );
layout.setWidget( 4, 2, getAddAttribute() );
layout.setWidget( 5, 1, new RuleAttributeWidget(this, this.model) );
-
}
+ public void refreshWidget() {
+ initWidget();
+ makeDirty();
+ }
private Widget getAddAttribute() {
Image add = new ImageButton("images/new_item.gif");
@@ -152,8 +157,11 @@
/**
* Do all the widgets for the RHS.
*/
+ /*
+ * TODO STILL NEED TO BE CHECKED
+ */
private Widget renderRhs(final RuleModel model) {
- VerticalPanel vert = new VerticalPanel();
+ DirtyableVerticalPane vert = new DirtyableVerticalPane();
for ( int i = 0; i < model.rhs.length; i++ ) {
IAction action = model.rhs[i];
@@ -174,7 +182,7 @@
vert.add( spacerWidget() );
//vert.setWidth( "100%" );
- HorizontalPanel horiz = new HorizontalPanel();
+ DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
Image remove = new ImageButton("images/delete_item_small.gif");
remove.setTitle( "Remove this action." );
@@ -469,7 +477,7 @@
* Builds all the condition widgets.
*/
private Widget renderLhs(final RuleModel model) {
- VerticalPanel vert = new VerticalPanel();
+ DirtyableVerticalPane vert = new DirtyableVerticalPane();
for ( int i = 0; i < model.lhs.length; i++ ) {
IPattern pattern = model.lhs[i];
@@ -494,7 +502,7 @@
}
- VerticalPanel dsls = new VerticalPanel();
+ DirtyableVerticalPane dsls = new DirtyableVerticalPane();
for ( int i = 0; i < model.lhs.length; i++ ) {
IPattern pattern = model.lhs[i];
Widget w = null;
@@ -507,9 +515,7 @@
}
}
vert.add( dsls );
-
-
return vert;
}
@@ -525,7 +531,7 @@
private Widget wrapLHSWidget(final RuleModel model,
int i,
Widget w) {
- HorizontalPanel horiz = new HorizontalPanel();
+ DirtyableHorizontalPane horiz = new DirtyableHorizontalPane();
Image remove = new ImageButton("images/delete_item_small.gif");
remove.setTitle( "Remove this ENTIRE condition, and all the field constraints that belong to it." );
@@ -554,8 +560,6 @@
horiz.add( remove );
return horiz;
-
-
}
@@ -568,10 +572,16 @@
* Returns true is a var name has already been used
* either by the rule, or as a global.
*/
+
public boolean isVariableNameUsed(String name) {
return model.isVariableNameUsed( name ) || completions.isGlobalVariable( name );
}
+
+ public boolean isDirty() {
+ return ( layout.hasDirty() || dirtyflag) ;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageEditor.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -35,13 +35,18 @@
public class PackageEditor extends FormStyleLayout {
-
+ private Command dirtyCommand;
+ private Command cleanCommand;
+
private PackageConfigData conf;
private HTML status;
protected ValidatedResponse previousResponse;
- public PackageEditor(PackageConfigData data) {
+ public PackageEditor(PackageConfigData data, Command dCommand, Command cCommand) {
this.conf = data;
+ this.dirtyCommand = dCommand;
+ this.cleanCommand = cCommand;
+
setStyleName( "package-Editor" );
setWidth( "100%" );
refreshWidgets();
@@ -50,6 +55,7 @@
private void refreshWidgets() {
clear();
//addHeader( "images/package_large.png", this.conf.name );
+
addRow( warnings() );
@@ -182,6 +188,9 @@
LoadingPopup.showMessage( "Saving package configuration. Please wait ..." );
RepositoryServiceFactory.getService().savePackage( this.conf, new GenericCallback() {
public void onSuccess(Object data) {
+
+ cleanCommand.execute();
+
previousResponse = (ValidatedResponse) data;
reload();
@@ -239,7 +248,8 @@
area.setText( this.conf.header );
area.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
- conf.header = area.getText();
+ conf.header = area.getText();
+ dirtyCommand.execute();
}
});
@@ -339,7 +349,8 @@
area.addChangeListener( new ChangeListener() {
public void onChange(Widget w) {
- conf.description = area.getText();
+ conf.description = area.getText();
+ dirtyCommand.execute();
}
});
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -1,6 +1,9 @@
package org.drools.brms.client.packages;
import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
+import org.drools.brms.client.common.DirtyableStackPanel;
import org.drools.brms.client.common.FormStyleLayout;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.GenericCallback;
@@ -41,17 +44,18 @@
*
* @author Michael Neale
*/
-public class PackageExplorerWidget extends Composite {
+public class PackageExplorerWidget extends DirtyableComposite {
private final Tree exTree;
- private final FlexTable layout;
+ private final DirtyableFlexTable layout;
private final TreeListener treeListener;
private AssetItemListViewer listView;
private EditItemEvent editEvent;
private String uuid;
-
private String snapshotName;
+ private String lastEditedPackage;
+
/**
* This is for the generic and re-useable package explorer.
*/
@@ -68,10 +72,11 @@
this.editEvent = edit;
this.uuid = uuid;
+ this.lastEditedPackage = uuid;
this.snapshotName = snapshotName;
exTree = new Tree();
- layout = new FlexTable();
+ layout = new DirtyableFlexTable();
treeListener = new TreeListener() {
@@ -310,7 +315,13 @@
TreeItem pkg = makeItem(conf.name, "images/package.gif", new PackageTreeItem(new Command() {
public void execute() {
- loadPackageConfig(conf.uuid);
+
+ if ( isDirty() ) {
+ if ( Window.confirm( "Discart Changes ? " ) )
+ loadPackageConfig(conf.uuid);
+ } else {
+ loadPackageConfig(conf.uuid);
+ }
}
}));
@@ -358,13 +369,15 @@
* Load up the package config data and display it.
*/
private void loadPackageConfig(String uuid) {
+
+ lastEditedPackage = uuid;
RepositoryServiceFactory.getService().loadPackageConfig( uuid, new GenericCallback() {
public void onSuccess(Object data) {
final PackageConfigData conf = (PackageConfigData) data;
- StackPanel sp = new StackPanel();
+ DirtyableStackPanel sp = new DirtyableStackPanel();
FormStyleLayout infoLayout = new FormStyleLayout("images/package_large.png", conf.name);
infoLayout.setStyleName( "package-Editor" );
@@ -395,14 +408,30 @@
if (!conf.isSnapshot) {
infoLayout.addRow( new HTML("<i>Choose one of the options below</i>") );
- }
+ }
+ Command makeDirtyCommand = new Command () {
+ public void execute() {
+ makeDirty();
+ }
+
+ };
+
+ Command cleanDirtyCommand = new Command () {
+ public void execute() {
+ resetDirty();
+ }
+
+ };
+
+
sp.add( infoLayout, "<img src='images/information.gif'/>Info", true );
if (!conf.isSnapshot) {
- sp.add( new PackageEditor(conf), "<img src='images/package.gif'/>Edit Package configuration", true);
+ sp.add( new PackageEditor(conf, makeDirtyCommand, cleanDirtyCommand ), "<img src='images/package.gif'/>Edit Package configuration", true);
sp.add( new PackageBuilderWidget(conf, editEvent), "<img src='images/package_build.gif'/>Build, validate and deploy", true );
} else {
- sp.add( new PackageEditor(conf), "<img src='images/package.gif'/>View Package configuration", true);
+ sp.add(new PackageEditor(conf, makeDirtyCommand, cleanDirtyCommand)
+ , "<img src='images/package.gif'/>View Package configuration", true);
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/AssetCategoryEditor.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -3,6 +3,7 @@
import org.drools.brms.client.categorynav.CategoryExplorerWidget;
import org.drools.brms.client.categorynav.CategorySelectHandler;
import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
import org.drools.brms.client.common.ImageButton;
import org.drools.brms.client.rpc.MetaData;
@@ -23,11 +24,12 @@
* It is intended to work with the meta data form.
*
* @author Michael Neale
+ * @author Fernando Meyer
*/
public class AssetCategoryEditor extends DirtyableComposite {
private MetaData data;
- private Grid layout = new Grid(1, 2);
+ private DirtyableFlexTable layout = new DirtyableFlexTable();
private FlexTable list;
@@ -40,20 +42,15 @@
this.data = d;
list = new FlexTable();
-
-
-
+
loadData( list );
list.setStyleName( "rule-List" );
layout.setWidget( 0, 0, list );
-
if (!readOnly) {
doActions();
}
-
-
initWidget( layout );
}
@@ -81,11 +78,11 @@
}
private void resetBox() {
-
list = new FlexTable();
list.setStyleName( "rule-List" );
layout.setWidget( 0, 0, list );
loadData( list );
+ makeDirty();
}
private void loadData(FlexTable list) {
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -160,6 +160,7 @@
"Moved from : " + pkg,
new GenericCallback() {
public void onSuccess(Object data) {
+ makeDirty();
refreshView.execute();
pop.hide();
}
@@ -238,7 +239,7 @@
public boolean isDirty() {
- return ed.isDirty();
+ return (ed.isDirty() || dirtyflag) ;
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -1,5 +1,7 @@
package org.drools.brms.client.ruleeditor;
+import org.drools.brms.client.common.DirtyableComposite;
+import org.drools.brms.client.common.DirtyableFlexTable;
import org.drools.brms.client.common.FormStylePopup;
import org.drools.brms.client.common.GenericCallback;
import org.drools.brms.client.common.LoadingPopup;
@@ -24,16 +26,19 @@
* This widget wraps a rule asset widget, and provides actions to validate and view source.
* @author Michael Neale
*/
-public class RuleValidatorWrapper extends Composite {
-
+public class RuleValidatorWrapper extends DirtyableComposite {
private RuleAsset asset;
+ private DirtyableFlexTable layout;
+ public boolean isDirty() {
+ return layout.hasDirty();
+ }
+
public RuleValidatorWrapper(Widget editor, RuleAsset asset) {
this.asset = asset;
-
-
- FlexTable layout = new FlexTable();
+
+ layout = new DirtyableFlexTable();
layout.setStyleName( "asset-editor-Layout" );
layout.setWidget( 0, 0, editor );
layout.setWidget( 1, 0, validatorActions() );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java 2007-05-17 08:32:37 UTC (rev 11904)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/files/PackageDeploymentURIHelper.java 2007-05-17 08:32:58 UTC (rev 11905)
@@ -29,12 +29,9 @@
if ( m.matches() ) {
String result = m.group(2);
String []mtoks = result.split( "/" );
-
-
this.version = mtoks[1];
this.packageName = mtoks[0];
}
-
}
public String getPackageName() {
More information about the jboss-svn-commits
mailing list