/** * Copyright (C) 2015 Valkyrie RCP * * 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.valkyriercp.sample.showcase.widget; import net.miginfocom.swing.MigLayout; import org.valkyriercp.binding.form.FormModel; import org.valkyriercp.form.binding.swing.TextComponentBinder; import org.valkyriercp.form.binding.swing.text.MaxLengthDocumentFactory; import org.valkyriercp.form.builder.MigLayoutFormBuilder; import org.valkyriercp.widget.AbstractWidgetForm; import org.valkyriercp.widget.TitledWidgetForm; import javax.swing.*; import java.math.BigDecimal; public class BinderDemoWidget extends TitledWidgetForm { public BinderDemoWidget() { setForm(new BinderDemoForm()); } public static class BinderDemoForm extends AbstractWidgetForm { @Override public FormModel createFormModel() { return getApplicationConfig().formModelFactory().createFormModel(new BinderDemo(), "binderDemoForm"); } @Override protected JComponent createFormControl() { MigLayoutFormBuilder builder = new MigLayoutFormBuilder(getBindingFactory(), new MigLayout("wrap 2", "[][fill]", "")); builder.addBindingContextParameter("stringField", TextComponentBinder.DOCUMENT_FACTORY_KEY, new MaxLengthDocumentFactory(10)); builder.addPropertyAndLabel("stringField"); builder.addPropertyAndLabelWithBinder("integerField", "integerBinder"); builder.addPropertyAndLabelWithBinder("euroField", "euroBinder"); builder.addPropertyAndLabel("booleanField"); builder.addPropertyAndLabel("nullableBooleanField"); return builder.getPanel(); } public static class BinderDemo { private String stringField; private Integer integerField; private BigDecimal euroField; private boolean booleanField; private Boolean nullableBooleanField; public boolean isBooleanField() { return booleanField; } public void setBooleanField(boolean booleanField) { this.booleanField = booleanField; } public Boolean getNullableBooleanField() { return nullableBooleanField; } public void setNullableBooleanField(Boolean nullableBooleanField) { this.nullableBooleanField = nullableBooleanField; } public String getStringField() { return stringField; } public void setStringField(String stringField) { this.stringField = stringField; } public Integer getIntegerField() { return integerField; } public void setIntegerField(Integer integerField) { this.integerField = integerField; } public BigDecimal getEuroField() { return euroField; } public void setEuroField(BigDecimal euroField) { this.euroField = euroField; } } } }