/* * Copyright 2011 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.formbuilder.client.effect.view; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.jbpm.formapi.client.validation.FBValidationItem; import org.jbpm.formbuilder.client.FormBuilderGlobals; import org.jbpm.formbuilder.client.messages.I18NConstants; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HasValue; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; public class ValidationEditionPanel extends VerticalPanel { private final I18NConstants i18n = FormBuilderGlobals.getInstance().getI18n(); private final Grid editionGrid = new Grid(1, 1); private final Map<String, HasValue<String>> validationProperties = new HashMap<String, HasValue<String>>(); private final Button okButton = new Button(i18n.OkButton()); private FBValidationItem currentValidation = null; public ValidationEditionPanel() { add(editionGrid); HorizontalPanel hPanel = new HorizontalPanel(); Button resetButton = new Button(i18n.ResetButton()); resetButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { setVisible(false); } }); hPanel.add(resetButton); okButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { setVisible(false); } }); hPanel.add(okButton); add(hPanel); } public void onCommitEdition(ClickHandler handler) { okButton.addClickHandler(handler); } public void setCurrentValidation(FBValidationItem newValidation) { this.currentValidation = newValidation; Widget display = newValidation.createDisplay(); if (display == null) { Map<String, HasValue<String>> newValidationProperties = newValidation.getPropertiesMap(); int propertiesSize = (newValidationProperties == null ? 0 : newValidationProperties.size()); editionGrid.clear(); editionGrid.resize(propertiesSize, 3); validationProperties.clear(); if (newValidationProperties != null) { Iterator<Map.Entry<String, HasValue<String>>> iter = newValidationProperties.entrySet().iterator(); for (int index = 0; iter.hasNext(); index++) { Map.Entry<String, HasValue<String>> entry = iter.next(); editionGrid.setWidget(index, 0, new Label(entry.getKey() + ": ")); editionGrid.setWidget(index, 1, new HTML("   ")); validationProperties.put(entry.getKey(), entry.getValue()); editionGrid.setWidget(index, 2, (Widget) entry.getValue()); } } } else { editionGrid.clear(); editionGrid.resize(1, 1); editionGrid.setWidget(0, 0, display ); } setVisible(true); } public FBValidationItem getCurrentValidation() { return currentValidation; } }