[jboss-svn-commits] JBL Code SVN: r32157 - in labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor: src/main/java/org/drools/guvnor/client/messages and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 19 16:13:51 EDT 2010
Author: baunax
Date: 2010-03-19 16:13:50 -0400 (Fri, 19 Mar 2010)
New Revision: 32157
Added:
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java
Modified:
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/build.xml
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/PackageConfigData.java
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
Log:
added configuration for contraints inside workingsets
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/build.xml
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/build.xml 2010-03-19 20:06:29 UTC (rev 32156)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/build.xml 2010-03-19 20:13:50 UTC (rev 32157)
@@ -56,7 +56,7 @@
<gwt:compile outDir="target/gwt-compiled-output"
gwtHome="${gwt.home}"
classBase="org.drools.guvnor.Guvnor"
- sourceclasspath="src/main/java; ../drools-compiler/src/main/java; ../lib/gwtext.jar; ../lib/gwt-diagrams-0.1.jar; ../lib/cobogw-1.0.jar"/>
+ sourceclasspath="src/main/java; ../drools-compiler/src/main/java; ../drools-factconstraint/src/main/java; ../lib/gwtext.jar; ../lib/gwt-diagrams-0.1.jar; ../lib/cobogw-1.0.jar"/>
<!-- get rid of old -->
<delete>
<fileset dir="src/main/webapp/org.drools.guvnor.Guvnor" includes="*.gwt.rpc *.cache.html *.cache.js *.cache.xml *.cache.png"/>
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java 2010-03-19 20:06:29 UTC (rev 32156)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java 2010-03-19 20:13:50 UTC (rev 32157)
@@ -2043,6 +2043,8 @@
String SelectWorkingSets();
+ String ErrorLoadingRules();
+
String WorkingSets();
String NewWorkingSet();
String CreateWorkingSet();
@@ -2055,6 +2057,6 @@
String RenameTheWorkingSet();
String RenameTheWorkingSetTip();
String WorkingSetRenamedSuccessfully();
-
- String ErrorLoadingRules();
+ String ConstraintsSection();
+ String AddNewConstrain();
}
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties 2010-03-19 20:06:29 UTC (rev 32156)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties 2010-03-19 20:13:50 UTC (rev 32157)
@@ -991,6 +991,7 @@
WorkingSets=WorkingSets
NewWorkingSet=New WorkingSet
CreateWorkingSet=Create a WorkingSet
+ErrorLoadingRules=Error loading rules.
WorkingSetName=WorkingSet name
CopyTheWorkingSet=Copy the WorkingSet
CopyTheWorkingSetTip=<i>Copy the WorkingSet and all its facts and restrictions. A new unique name is required.</i>
@@ -1000,4 +1001,5 @@
RenameTheWorkingSet=Rename the WorkingSet.
RenameTheWorkingSetTip=<i>Rename the WorkingSet. A new unique name is required.</i>
WorkingSetRenamedSuccessfully=WorkingSet successfully renamed.
-ErrorLoadingRules=Error loading rules.
\ No newline at end of file
+ConstraintsSection=Constraints Section
+AddNewConstrain=Add New Constraint
\ No newline at end of file
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties 2010-03-19 20:06:29 UTC (rev 32156)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties 2010-03-19 20:13:50 UTC (rev 32157)
@@ -917,4 +917,6 @@
RenameTheWorkingSet=Renombrar el WorkingSet.
RenameTheWorkingSetTip=<i>Renombrar el WorkingSet. Se requiere un nombre \u00FAnico.</i>
WorkingSetRenamedSuccessfully=WorkingSet renombrado correctamente.
-ErrorLoadingRules=Error al cargar las reglas.
\ No newline at end of file
+ErrorLoadingRules=Error al cargar las reglas.
+ConstraintsSection=Secci\u00F3n de Restricciones
+AddNewConstrain=Agregar nueva Restricci\u00F3n
\ No newline at end of file
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/PackageConfigData.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/PackageConfigData.java 2010-03-19 20:06:29 UTC (rev 32156)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/PackageConfigData.java 2010-03-19 20:13:50 UTC (rev 32157)
@@ -49,5 +49,4 @@
public HashMap<String,String> catRules;
public PackageConfigData[] subPackages;
- public WorkingSetConfigData[] workingsets;
}
\ No newline at end of file
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java 2010-03-19 20:06:29 UTC (rev 32156)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java 2010-03-19 20:13:50 UTC (rev 32157)
@@ -2,8 +2,8 @@
import java.util.List;
+import org.drools.guvnor.client.factcontraints.Constraint;
import org.drools.guvnor.client.modeldriven.brl.PortableObject;
-import org.drools.guvnor.client.rulefloweditor.SplitNode.Constraint;
import com.google.gwt.user.client.rpc.IsSerializable;
Added: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java (rev 0)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java 2010-03-19 20:13:50 UTC (rev 32157)
@@ -0,0 +1,78 @@
+package org.drools.guvnor.client.ruleeditor;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.MissingResourceException;
+
+import org.drools.guvnor.client.factcontraints.Constraint;
+import org.drools.guvnor.client.messages.Constants;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+public class ConstraintEditor extends Composite {
+ private Constants constants = GWT.create(Constants.class);
+ private Constraint constraint;
+
+ public ConstraintEditor(Constraint constraint) {
+ this.constraint = constraint;
+
+ Grid confGrid = new Grid(constraint.getArgumentKeys().size(), 2);
+
+ ArrayList<String> list = new ArrayList<String>();
+ Map<String, String> argI18N = new HashMap<String, String>();
+ for (String arg : constraint.getArgumentKeys()) {
+ String i18n = getI18NText(arg);
+ list.add(i18n);
+ argI18N.put(i18n, arg);
+ }
+ Collections.sort(list);
+
+ int row = 0;
+ for (String arg : list) {
+ TextBox argTB = new TextBox();
+ argTB.setText(getConstraint().getArgumentValue(arg).toString());
+ argTB.setName(argI18N.get(arg));
+ argTB.setTitle(arg);
+ argTB.addChangeListener(new ChangeListener() {
+ public void onChange(Widget sender) {
+ TextBox argTB = (TextBox) sender;
+ getConstraint().setArgumentValue(argTB.getName(), argTB.getText());
+ }
+ });
+
+ confGrid.setWidget(row, 0, new Label(arg + ":"));
+ confGrid.setWidget(row, 1, argTB);
+ row++;
+ }
+
+ initWidget(confGrid);
+ }
+
+ private String getI18NText(String s) {
+ try {
+ return constants.getString("constraint." + getConstraintName() + "." + s);
+ } catch (MissingResourceException e) {
+ return s;
+ }
+ }
+
+ public Constraint getConstraint() {
+ return constraint;
+ }
+
+ public void setConstraint(Constraint constraint) {
+ this.constraint = constraint;
+ }
+
+ public String getConstraintName() {
+ return getConstraint().getConstraintName();
+ }
+ }
Property changes on: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java 2010-03-19 20:06:29 UTC (rev 32156)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java 2010-03-19 20:13:50 UTC (rev 32157)
@@ -2,68 +2,293 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.drools.guvnor.client.common.AssetFormats;
import org.drools.guvnor.client.common.FormStylePopup;
-import org.drools.guvnor.client.common.GenericCallback;
-import org.drools.guvnor.client.common.LoadingPopup;
-import org.drools.guvnor.client.common.PrettyFormLayout;
+import org.drools.guvnor.client.common.ImageButton;
+import org.drools.guvnor.client.factconstraints.helper.ConstraintsContainer;
+import org.drools.guvnor.client.factconstraints.predefined.IntegerConstraint;
+import org.drools.guvnor.client.factconstraints.predefined.NotNullConstraint;
+import org.drools.guvnor.client.factconstraints.predefined.RangeConstraint;
+import org.drools.guvnor.client.factcontraints.Constraint;
import org.drools.guvnor.client.messages.Constants;
import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.guvnor.client.packages.PackageNameValidator;
import org.drools.guvnor.client.packages.SuggestionCompletionCache;
-import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
import org.drools.guvnor.client.rpc.RuleAsset;
import org.drools.guvnor.client.rpc.WorkingSetConfigData;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
+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.Grid;
-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.TextBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
+import com.gwtext.client.widgets.Component;
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.TabPanel;
+import com.gwtext.client.widgets.event.PanelListenerAdapter;
-public class WorkingSetEditor extends PrettyFormLayout {
+public class WorkingSetEditor extends Composite {
private Constants constants = GWT.create(Constants.class);
private RuleAsset workingSet;
+ private ListBox availFacts = new ListBox(true);
+ private ListBox validFacts = new ListBox(true);
+ private boolean validFactsChanged = true;
+ private SuggestionCompletionEngine sce;
+ private ConstraintsContainer cc;
+
public WorkingSetEditor(RuleAsset asset) {
if (!AssetFormats.WORKING_SET.equals(asset.metaData.format)) {
throw new IllegalArgumentException("asset must a be a workingset not a: " + asset.metaData.format);
}
- setWidth( "100%" );
-
workingSet = asset;
-
-// initWidget(grid);
+ sce = SuggestionCompletionCache.getInstance().getEngineFromCache(asset.metaData.packageName);
+ WorkingSetConfigData wsData = (WorkingSetConfigData) workingSet.content;
+ cc = new ConstraintsContainer(wsData.constraints);
refreshWidgets();
+ setWidth( "100%" );
}
private void refreshWidgets() {
- clear();
- FlexTable headerWidgets = new FlexTable();
- headerWidgets.setWidget(0, 0, new HTML("<b>" + constants.WorkingSets() + ":</b>")); //NON-NLS
- headerWidgets.setWidget(0, 1, new Label(workingSet.metaData.name));
- headerWidgets.setWidget(1, 0, modifyWidgets());
- headerWidgets.getFlexCellFormatter().setColSpan(1, 0, 2);
- addHeader("images/package_large.png", headerWidgets); //NON-NLS
+ WorkingSetConfigData wsData = (WorkingSetConfigData) workingSet.content;
+
+ TabPanel tPanel = new TabPanel();
+ Panel pnl = new Panel();
+ pnl.setAutoWidth(true);
+ pnl.setClosable(false);
+ pnl.setTitle("WS Definition");
+ pnl.setAutoHeight(true);
+ pnl.add(buildDoubleList(wsData));
+ tPanel.add(pnl);
+
+ pnl = new Panel();
+ pnl.setAutoWidth(true);
+ pnl.setClosable(false);
+ pnl.setTitle("WS Constraints");
+ pnl.setAutoHeight(true);
+ pnl.add(buildFactsConstraintsEditor(tPanel));
+ tPanel.add(pnl);
+
+ tPanel.setActiveTab(0);
+ initWidget(tPanel);
+ }
- startSection(constants.ConfigurationSection());
+ private int lastSelectedFact = -1;
+ private int lastSelectedField = -1;
+ private int lastSelectedConstraint = -1;
+ private Widget buildFactsConstraintsEditor(TabPanel tPanel) {
+ final ListBox factsCombo = new ListBox(false);
+ final ListBox fieldsCombo = new ListBox(false);
+ final ListBox constraintsCombo = new ListBox(false);
+ final VerticalPanel vpConstraintConf = new VerticalPanel();
- WorkingSetConfigData wsData = (WorkingSetConfigData) workingSet.content;
+ factsCombo.setVisibleItemCount(1);
+ fieldsCombo.setVisibleItemCount(1);
+ constraintsCombo.setVisibleItemCount(5);
+
+ tPanel.addListener(new PanelListenerAdapter() {
+ @Override
+ public boolean doBeforeShow(Component component) {
+ fillSelectedFacts(factsCombo);
+ return true;
+ }
+ });
+
+ factsCombo.addChangeListener(new ChangeListener() {
+ public void onChange(Widget sender) {
+ fillSelectedFactFields(factsCombo, fieldsCombo);
+ }
+ });
+
+ fieldsCombo.addChangeListener(new ChangeListener() {
+ public void onChange(Widget sender) {
+ fillFieldConstrains(factsCombo, fieldsCombo, constraintsCombo, vpConstraintConf);
+ }
+ });
+
+ Image addNewConstraint = new ImageButton("images/new_item.gif");
+ addNewConstraint.setTitle(constants.AddNewConstrain());
+
+ addNewConstraint.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ showNewConstrainPop(factsCombo, fieldsCombo, constraintsCombo);
+ }
+ });
+
+ final FlexTable table = new FlexTable();
+
+ VerticalPanel vp = new VerticalPanel();
+ vp.add(new Label(constants.FactTypes()));
+ vp.add(factsCombo);
+ table.setWidget(0, 0, vp);
+
+ vp = new VerticalPanel();
+ vp.add(new Label(constants.Field()));
+ vp.add(fieldsCombo);
+ table.setWidget(1, 0, vp);
+
+ vp = new VerticalPanel();
+ HorizontalPanel hp = new HorizontalPanel();
+ vp.add(new Label(constants.ConstraintsSection()));
+ hp.add(constraintsCombo);
+ hp.add(addNewConstraint);
+ vp.add(hp);
+ table.setWidget(2, 0, vp);
+ table.getFlexCellFormatter().setRowSpan(2, 0, 3);
+
+ constraintsCombo.addChangeListener(new ChangeListener() {
+ public void onChange(Widget sender) {
+ showConstraintConfig(constraintsCombo, vpConstraintConf);
+ }
+ });
+
+ vpConstraintConf.add(new Label(constants.ConstraintsSection()));
+ vpConstraintConf.add(new Label(""));
+ table.setWidget(0, 1, vpConstraintConf);
+ table.getFlexCellFormatter().setRowSpan(0, 1, 5);
+
+ fillSelectedFacts(factsCombo);
+ fillSelectedFactFields(factsCombo, fieldsCombo);
+ fillFieldConstrains(factsCombo, fieldsCombo, constraintsCombo, vpConstraintConf);
+ showConstraintConfig(constraintsCombo, vpConstraintConf);
+ return table;
+ }
+
+ private void showConstraintConfig(ListBox constraintsCombo, VerticalPanel vpConstraintConf) {
+ if (constraintsCombo.getItemCount() == 0) {
+ vpConstraintConf.remove(vpConstraintConf.getWidgetCount() - 1);
+ vpConstraintConf.add(new Label());
+ return;
+ }
+ if (lastSelectedConstraint != constraintsCombo.getSelectedIndex()) {
+ Constraint c = contraintsMap.get(constraintsCombo.getValue(constraintsCombo.getSelectedIndex()));
+ ConstraintEditor editor = new ConstraintEditor(c);
+ vpConstraintConf.remove(vpConstraintConf.getWidgetCount() - 1);
+ vpConstraintConf.add(editor);
+ lastSelectedConstraint = constraintsCombo.getSelectedIndex();
+ }
+ }
+
+ private void showNewConstrainPop(final ListBox factsCombo, final ListBox fieldsCombo, final ListBox constraintsCombo) {
+ final FormStylePopup pop = new FormStylePopup("images/config.png", constants.AddNewConstrain()); //NON-NLS
+ final Button addbutton = new Button(constants.OK());
+ final ListBox consDefsCombo = new ListBox(false);
+
+ consDefsCombo.setVisibleItemCount(5);
+
+ addbutton.setTitle(constants.AddNewConstrain());
+
+ consDefsCombo.addItem("NotNull");
+ consDefsCombo.addItem("Range");
+ consDefsCombo.addItem("Integer");
+
+ addbutton.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ String consDef = consDefsCombo.getItemText(consDefsCombo.getSelectedIndex());
+ Constraint cons = null;
+ if ("NotNull".equals(consDef)) {
+ cons = new NotNullConstraint();
+ } else if ("Range".equals(consDef)) {
+ cons = new RangeConstraint();
+ } else if ("Integer".equals(consDef)) {
+ cons = new IntegerConstraint();
+ }
+ if (cons != null) {
+ String factName = factsCombo.getItemText(lastSelectedFact);
+ String fieldName = fieldsCombo.getItemText(lastSelectedField);
+ cons.setFactType(factName);
+ cons.setFieldName(fieldName);
+ if (((WorkingSetConfigData) workingSet.content).constraints == null) {
+ ((WorkingSetConfigData) workingSet.content).constraints = new ArrayList<Constraint>();
+ }
+ ((WorkingSetConfigData) workingSet.content).constraints.add(cons);
+ constraintsCombo.addItem(cons.getConstraintName(), addContrainsMap(cons));
+ getConstraintsConstrainer().addConstraint(cons);
+
+ }
+ pop.hide();
+
+ }
+ });
+
+ pop.addAttribute(constants.WillExtendTheFollowingRuleCalled(), consDefsCombo );
+ pop.addAttribute("", addbutton);
+
+ pop.show();
+ }
+
+ private void fillSelectedFacts(final ListBox factsCombo) {
+ if (validFactsChanged) {
+ String s = factsCombo.getSelectedIndex() != -1 ? factsCombo.getItemText(factsCombo.getSelectedIndex()) : "";
+ factsCombo.clear();
+ validFactsChanged = false;
+ for (int i = 0; i < validFacts.getItemCount(); i++) {
+ String itemText = validFacts.getItemText(i);
+ factsCombo.addItem(itemText);
+ if (s.equals(itemText)) {
+ factsCombo.setSelectedIndex(i);
+ }
+ }
+ }
+ }
+
+ private void fillSelectedFactFields(final ListBox factsCombo, final ListBox fieldsCombo) {
+ if (lastSelectedFact != factsCombo.getSelectedIndex()) {
+ lastSelectedFact = factsCombo.getSelectedIndex();
+ String fact = factsCombo.getItemText(lastSelectedFact);
+ fieldsCombo.clear();
+ for(String field : getCompletionEngine().getFieldCompletions(fact)) {
+ fieldsCombo.addItem(field);
+ }
+ lastSelectedFact = fieldsCombo.getItemCount() > 0 ? 0 : -1;
+ }
+ }
+
+ private Map<String, Constraint> contraintsMap = new HashMap<String, Constraint>();
+ private void fillFieldConstrains(final ListBox factsCombo, final ListBox fieldsCombo, final ListBox constraintsCombo, VerticalPanel vpConstraintConf) {
+ if (lastSelectedField != fieldsCombo.getSelectedIndex()) {
+ lastSelectedField = fieldsCombo.getSelectedIndex();
+ String fieldName = fieldsCombo.getItemText(lastSelectedField);
+ String factField = factsCombo.getItemText(lastSelectedFact);
+ constraintsCombo.clear();
+ contraintsMap.clear();
+ for (Constraint c : getConstraintsConstrainer().getConstraints(factField, fieldName)) {
+ constraintsCombo.addItem(c.getConstraintName(), addContrainsMap(c));
+ }
+ vpConstraintConf.remove(vpConstraintConf.getWidgetCount() - 1);
+ vpConstraintConf.add(new Label());
+ if (constraintsCombo.getItemCount() > 0) {
+ lastSelectedConstraint = 0;
+ constraintsCombo.setSelectedIndex(lastSelectedConstraint);
+ } else {
+ lastSelectedConstraint = -1;
+ }
+
+ }
+ }
+
+ private String addContrainsMap(Constraint c) {
+ String id = "" + contraintsMap.size();
+ contraintsMap.put(id, c);
+ return id;
+ }
+
+ private Grid buildDoubleList(WorkingSetConfigData wsData) {
Grid grid = new Grid(1, 3);
- final ListBox availFacts = new ListBox(true);
- final ListBox validFacts = new ListBox(true);
+
SuggestionCompletionEngine sce = SuggestionCompletionCache.getInstance().getEngineFromCache(workingSet.metaData.packageName);
Set<String> elem = new HashSet<String>();
@@ -107,55 +332,52 @@
grid.getColumnFormatter().setWidth(0, "45%");
grid.getColumnFormatter().setWidth(0, "10%");
grid.getColumnFormatter().setWidth(0, "45%");
-
- addAttribute(constants.Configuration(), grid);
- endSection();
-
+ return grid;
}
/**
* This will get the save widgets.
*/
- private Widget modifyWidgets() {
-
- HorizontalPanel horiz = new HorizontalPanel();
-
- Button copy = new Button(constants.Copy());
- copy.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- showCopyDialog();
- }
- } );
- horiz.add( copy );
-
- Button rename = new Button(constants.Rename());
- rename.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- showRenameDialog();
- }
- } );
- horiz.add( rename );
-
-
- Button archive = new Button(constants.Archive());
- archive.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- if ( Window.confirm(constants.AreYouSureYouWantToArchiveRemoveThisPackage()) ) {
-// conf.archived = true;
- Command ref = new Command() {
- public void execute() {
-// close.execute();
-// refreshPackageList.execute();
- }
- };
-// doSaveAction(ref);
- }
- }
- });
- horiz.add(archive);
-
- return horiz;
- }
+// private Widget modifyWidgets() {
+//
+// HorizontalPanel horiz = new HorizontalPanel();
+//
+// Button copy = new Button(constants.Copy());
+// copy.addClickListener( new ClickListener() {
+// public void onClick(Widget w) {
+// showCopyDialog();
+// }
+// } );
+// horiz.add( copy );
+//
+// Button rename = new Button(constants.Rename());
+// rename.addClickListener( new ClickListener() {
+// public void onClick(Widget w) {
+// showRenameDialog();
+// }
+// } );
+// horiz.add( rename );
+//
+//
+// Button archive = new Button(constants.Archive());
+// archive.addClickListener(new ClickListener() {
+// public void onClick(Widget w) {
+// if ( Window.confirm(constants.AreYouSureYouWantToArchiveRemoveThisPackage()) ) {
+//// conf.archived = true;
+// Command ref = new Command() {
+// public void execute() {
+//// close.execute();
+//// refreshPackageList.execute();
+// }
+// };
+//// doSaveAction(ref);
+// }
+// }
+// });
+// horiz.add(archive);
+//
+// return horiz;
+// }
private void updateAsset(ListBox availFacts) {
List<String> l = new ArrayList<String>(availFacts.getItemCount());
@@ -170,66 +392,74 @@
while ((selected = from.getSelectedIndex()) != -1) {
to.addItem(from.getItemText(selected));
from.removeItem(selected);
+ validFactsChanged = true;
}
}
/**
* Will show a copy dialog for copying the whole package.
*/
- private void showCopyDialog() {
- final FormStylePopup pop = new FormStylePopup("images/new_wiz.gif", constants.CopyTheWorkingSet()); // NON-NLS
- pop.addRow(new HTML(constants.CopyTheWorkingSetTip()));
- final TextBox name = new TextBox();
- pop.addAttribute(constants.NewWorkingSetNameIs(), name);
- Button ok = new Button(constants.OK());
- pop.addAttribute("", ok);
+// private void showCopyDialog() {
+// final FormStylePopup pop = new FormStylePopup("images/new_wiz.gif", constants.CopyTheWorkingSet()); // NON-NLS
+// pop.addRow(new HTML(constants.CopyTheWorkingSetTip()));
+// final TextBox name = new TextBox();
+// pop.addAttribute(constants.NewWorkingSetNameIs(), name);
+// Button ok = new Button(constants.OK());
+// pop.addAttribute("", ok);
+//
+// ok.addClickListener(new ClickListener() {
+// public void onClick(Widget w) {
+// if (!PackageNameValidator.validatePackageName(name.getText())) {
+// Window.alert(constants.NotAValidWorkingSetName());
+// return;
+// }
+// LoadingPopup.showMessage(constants.PleaseWaitDotDotDot());
+// RepositoryServiceFactory.getService().copyAsset(workingSet.uuid, workingSet.metaData.packageName, name.getText(),
+// new GenericCallback<String>() {
+// public void onSuccess(String uuid) {
+// //TODO {bauna} refreshPackageList.execute();
+// Window.alert(constants.WorkingSetCopiedSuccessfully());
+// pop.hide();
+// LoadingPopup.close();
+// }
+//
+// });
+// }
+// });
+//
+// pop.show();
+// }
+
+// private void showRenameDialog() {
+// final FormStylePopup pop = new FormStylePopup("images/new_wiz.gif", constants.RenameTheWorkingSet());
+// pop.addRow(new HTML(constants.RenameTheWorkingSetTip()));
+// final TextBox name = new TextBox();
+// pop.addAttribute(constants.NewWorkingSetNameIs(), name);
+// Button ok = new Button(constants.OK());
+// pop.addAttribute("", ok);
+//
+// ok.addClickListener(new ClickListener() {
+// public void onClick(Widget w) {
+// LoadingPopup.showMessage(constants.PleaseWaitDotDotDot());
+// RepositoryServiceFactory.getService().renameAsset(workingSet.uuid, name.getText(),
+// new GenericCallback<String>() {
+// public void onSuccess(String uuid) {
+// Window.alert(constants.WorkingSetRenamedSuccessfully());
+// pop.hide();
+// LoadingPopup.close();
+// }
+// });
+// }
+// });
+//
+// pop.show();
+// }
- ok.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- if (!PackageNameValidator.validatePackageName(name.getText())) {
- Window.alert(constants.NotAValidWorkingSetName());
- return;
- }
- LoadingPopup.showMessage(constants.PleaseWaitDotDotDot());
- RepositoryServiceFactory.getService().copyAsset(workingSet.uuid, workingSet.metaData.packageName, name.getText(),
- new GenericCallback<String>() {
- public void onSuccess(String uuid) {
- //TODO {bauna} refreshPackageList.execute();
- Window.alert(constants.WorkingSetCopiedSuccessfully());
- pop.hide();
- LoadingPopup.close();
- }
-
- });
- }
- });
-
- pop.show();
+ public SuggestionCompletionEngine getCompletionEngine() {
+ return sce;
}
- private void showRenameDialog() {
- final FormStylePopup pop = new FormStylePopup("images/new_wiz.gif", constants.RenameTheWorkingSet());
- pop.addRow(new HTML(constants.RenameTheWorkingSetTip()));
- final TextBox name = new TextBox();
- pop.addAttribute(constants.NewWorkingSetNameIs(), name);
- Button ok = new Button(constants.OK());
- pop.addAttribute("", ok);
-
- ok.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- LoadingPopup.showMessage(constants.PleaseWaitDotDotDot());
- RepositoryServiceFactory.getService().renameAsset(workingSet.uuid, name.getText(),
- new GenericCallback<String>() {
- public void onSuccess(String uuid) {
- Window.alert(constants.WorkingSetRenamedSuccessfully());
- pop.hide();
- LoadingPopup.close();
- }
- });
- }
- });
-
- pop.show();
+ public ConstraintsContainer getConstraintsConstrainer() {
+ return cc;
}
-
}
More information about the jboss-svn-commits
mailing list