/* * Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org * Use is subject to license terms. See license.txt. */ package org.beanfabrics.swing; import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JPanel; import org.beanfabrics.ModelProvider; import org.beanfabrics.model.AbstractPM; import org.beanfabrics.model.IntegerPM; import org.beanfabrics.model.PMManager; import org.beanfabrics.model.TextPM; import org.beanfabrics.support.OnChange; import org.beanfabrics.support.Property; import org.beanfabrics.Path; public class BnTextFieldTestGUI extends JFrame { private BnTextField tfColumns; private BnTextField tfText; private JPanel panel; private ModelProvider provider; /** * Launch the application * * @param args */ public static void main(String args[]) { try { SamplePM pModel = new SamplePM(); BnTextFieldTestGUI frame = new BnTextFieldTestGUI(); frame.provider.setPresentationModel(pModel); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the frame */ public BnTextFieldTestGUI() { super(); setBounds(100, 100, 500, 375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); getContentPane().add(getPanel(), BorderLayout.CENTER); // } /** * @wbp.nonvisual location=51,437 * @return */ private ModelProvider getLocalProvider() { if (provider == null) { provider = new ModelProvider(); // @wb:location=51,437 provider.setPresentationModelType(SamplePM.class); } return provider; } private JPanel getPanel() { if (panel == null) { panel = new JPanel(); panel.add(getTfText()); panel.add(getTfColumns()); } return panel; } private BnTextField getTfText() { if (tfText == null) { tfText = new BnTextField(); tfText.setPath(new org.beanfabrics.Path("this.text")); tfText.setModelProvider(getLocalProvider()); tfText.setColumns(10); } return tfText; } public static class SamplePM extends AbstractPM { @Property TextPM text = new TextPM(); @Property IntegerPM columns = new IntegerPM(); public SamplePM() { PMManager.setup(this); } @OnChange(path = "text") private void updateColumns() { columns.setInteger(text.getText().length()); } } private BnTextField getTfColumns() { if (tfColumns == null) { tfColumns = new BnTextField(); tfColumns.setPath(new Path("this.columns")); tfColumns.setModelProvider(getLocalProvider()); tfColumns.setColumns(4); } return tfColumns; } }