[jboss-svn-commits] JBL Code SVN: r6290 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: client/breditor public/images
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Sep 19 06:43:05 EDT 2006
Author: michael.neale at jboss.com
Date: 2006-09-19 06:42:52 -0400 (Tue, 19 Sep 2006)
New Revision: 6290
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/clear_item.gif
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/shuffle_down.gif
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/shuffle_up.gif
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java
Log:
more working, still a major bug with indexes and concurrent mods
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java 2006-09-19 10:39:35 UTC (rev 6289)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java 2006-09-19 10:42:52 UTC (rev 6290)
@@ -3,13 +3,13 @@
import java.util.ArrayList;
import java.util.List;
-import com.google.gwt.user.client.ui.Button;
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.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
@@ -28,18 +28,19 @@
private List lhs = new ArrayList(); //these will be populated with EditableLine widget
private List rhs = new ArrayList();
private FlexTable table = null;
+ private boolean editMode = false;
+
public BREditor() {
panel = new VerticalPanel();
-
initData();
refreshLayoutTable();
-
initWidget( panel );
}
/** This will populate and refresh the overall layout table. */
private void refreshLayoutTable() {
+
resetTableWidget();
table.setText( 0, DESC_COLUMN, "IF" );
@@ -48,12 +49,15 @@
public void onClick(Widget popup) {
//need up add to the LHS list
ChoiceList c = (ChoiceList) popup;
- lhs.add( new Label(c.getSelectedItem()) );
+ EditableLine editLine = new EditableLine(new Label[] {new Label(c.getSelectedItem())} );
+ if (editMode) editLine.makeEditable();
+
+ lhs.add( editLine );
refreshLayoutTable();
}
});
- //button to add a new item (using the choice list).
+ //button to add a new item for lhs (using the choice list).
Image addLhs = new Image("images/new_item.gif");
addLhs.addClickListener( new ClickListener() {
public void onClick(Widget sender) {
@@ -67,64 +71,87 @@
//button to toggle edit mode
Image edit = new Image("images/edit.gif");
edit.addClickListener( new ClickListener() {
-
public void onClick(Widget w) {
- switchModes();
- }
-
+ switchModes(lhs, editMode);
+ switchModes(rhs, editMode);
+ editMode = !editMode;
+ }
});
-
-
table.setWidget( 0, ACTION_COLUMN, addLhs );
table.setWidget( 0, ACTION_COLUMN + 1, edit );
-
int rowOffset = 1;
//setup LHS
- displayEditorWidgets(
- rowOffset, lhs );
-
- rowOffset = lhs.size() + 1;
-
+ displayEditorWidgets( rowOffset, lhs );
+ rowOffset = lhs.size() + 1;
table.setText( rowOffset, DESC_COLUMN, "THEN" );
-
+ //the new button for the RHS
table.setWidget( rowOffset, ACTION_COLUMN, new Image("images/new_item.gif") );
rowOffset++;
//setup RHS
displayEditorWidgets( rowOffset, rhs );
-
-
}
- private void switchModes() {
+ private void switchModes(List list, boolean readOnly) {
+ for ( int i = 0; i < list.size(); i++ ) {
+ EditableLine line = (EditableLine) list.get( i );
+ if (readOnly) {
+ line.makeReadOnly();
+ } else {
+ line.makeEditable();
+ }
+ }
}
- /** This processes the individual LHS or RHS items */
+ /**
+ * This processes the individual LHS or RHS items.
+ */
private void displayEditorWidgets(int rowOffset, final List dataList) {
final BREditor editor = this;
for ( int i = 0; i < dataList.size(); i++ ) {
- Widget w = (Widget) dataList.get( i );
+ EditableLine w = (EditableLine) dataList.get( i );
int row = i + rowOffset;
- table.setWidget( row, CONTENT_COLUMN, w );
- Button removeButton = new Button("-");
+ table.setWidget( row, CONTENT_COLUMN, w );
+ table.setWidget( row, ACTION_COLUMN, w.removeButton );
+ table.setWidget( row, ACTION_COLUMN + 1, w.shuffleUpButton);
+ table.setWidget( row, ACTION_COLUMN + 2, w.shuffleDownButton );
final int idx = i;
- removeButton.addClickListener( new ClickListener() {
+
+ //setup remove button
+ w.removeButton.addClickListener( new ClickListener() {
+ public void onClick(Widget wid) {
+ dataList.remove( idx );
+ editor.refreshLayoutTable();
+ }
+
+ });
+
+ //setup shuffle button
+ w.shuffleUpButton.addClickListener( new ClickListener() {
+ public void onClick(Widget wid) {
+ shuffle( dataList, idx, true );
+ editor.refreshLayoutTable();
+ }
+ });
- public void onClick(Widget but) {
- dataList.remove( idx );
+ //setup shuffle button
+ w.shuffleDownButton.addClickListener( new ClickListener() {
+ public void onClick(Widget wid) {
+ shuffle( dataList, idx, false );
editor.refreshLayoutTable();
}
-
- });
- table.setWidget( row, ACTION_COLUMN, removeButton );
+ });
+
+
}
}
+
private void resetTableWidget() {
//remove old if refreshing
@@ -138,11 +165,43 @@
panel.add( table );
}
+ /**
+ * This will setup the data
+ * TODO: this is only mockup data.
+ */
private void initData() {
- lhs.add( new EditableLine(new Label[] {new Label("Hello this is {foo}")}));
- lhs.add( new EditableLine(new Label[] {new Label("Hello this is {foo}")}));
- rhs.add( new EditableLine(new Label[] {new Label("Hello this is {foo}")}));
+ Widget[] w = new Widget[] {new Label("hello cruel "), new TextBox()};
+ Widget[] w2 = new Widget[] {new Label("hello cruel "), new TextBox()};
+ Widget[] w3 = new Widget[] {new Label("hello cruel "), new TextBox()};
+ lhs.add( new EditableLine(w));
+ lhs.add( new EditableLine(w2));
+ rhs.add( new EditableLine(w3));
}
+
+ /** Adjust items up and down in a list.
+ *
+ * @param lst The list to adjust.
+ * @param idx The item to move.
+ * @param up The direction to move (true == up, false == down ).
+ */
+ public static void shuffle(List lst,
+ int idx, boolean up) {
+ int targetIdx;
+ if (up) {
+ targetIdx = idx - 1;
+ } else {
+ targetIdx = idx + 1;
+ }
+
+ if (targetIdx < 0 || targetIdx >= lst.size()) {
+ return;
+ }
+ Object target = lst.get( targetIdx );
+ Object source = lst.get( idx );
+
+ lst.set( targetIdx, source );
+ lst.set( idx, target );
+ }
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java 2006-09-19 10:39:35 UTC (rev 6289)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java 2006-09-19 10:42:52 UTC (rev 6290)
@@ -14,7 +14,6 @@
public ChoiceList(ClickListener okClickListener) {
super( true );
-
this.okClickListener = okClickListener;
list = new ListBox();
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java 2006-09-19 10:39:35 UTC (rev 6289)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java 2006-09-19 10:42:52 UTC (rev 6290)
@@ -2,56 +2,54 @@
import com.google.gwt.user.client.ui.Composite;
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.Panel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
-/** This encapsulates a DSL line component of a rule */
+/** This encapsulates a DSL line component of a rule. */
public class EditableLine extends Composite {
- /** The main panel of the composite */
+ /** The main panel of the composite. */
private Panel panel;
-
- /** This is the list of widgets that are used to display/capture data
- * Should be Label, TextBox or Button (for editing mode)
+
+ /**
+ * These buttons are for use by the host panel only.
*/
+ public Image removeButton = new Image("images/clear_item.gif");
+ public Image shuffleUpButton = new Image("images/shuffle_up.gif");
+ public Image shuffleDownButton = new Image("images/shuffle_down.gif");
+ /**
+ * This is the list of widgets that are used to display/capture data
+ * Should be Label, TextBox or Button (for editing mode).
+ */
private Widget[] widgets;
-
public EditableLine(Widget[] items) {
widgets = items;
-
-
panel = new HorizontalPanel();
initWidget( panel );
makeReadOnly();
- }
-
+ }
public void makeReadOnly() {
panel.clear();
-
panel.add( new Label(toString()) );
-// for ( Iterator iter = widgets.iterator(); iter.hasNext(); ) {
-// Widget element = (Widget) iter.next();
-// if (element instanceof Label) {
-// panel.add( element );
-// } else if (element instanceof TextBox) {
-// TextBox box = (TextBox) element;
-// panel.add( new Label(box.getText()) );
-// } else {
-// panel.add( element );
-// }
-// }
+ this.removeButton.setVisible( false );
+ this.shuffleUpButton.setVisible( false );
+ this.shuffleDownButton.setVisible( false );
}
public void makeEditable() {
- panel.clear();
+ panel.clear();
for ( int i = 0; i < widgets.length; i++ ) {
- panel.add( widgets[i] );
+ panel.add( widgets[i] );
}
+ this.removeButton.setVisible( true );
+ //this.shuffleDownButton.setVisible( true );
+ //this.shuffleUpButton.setVisible( true );
}
/**
@@ -70,6 +68,7 @@
return result;
}
-
-
+
+
+
}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/clear_item.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/clear_item.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/shuffle_down.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/shuffle_down.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/shuffle_up.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/shuffle_up.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jboss-svn-commits
mailing list