Search in sources :

Example 1 with Picker

use of com.codename1.ui.spinner.Picker in project CodenameOne by codenameone.

the class InstantUI method createEditUI.

/**
 * Creates editing UI for the given business object
 * @param bo the business object
 * @param autoCommit true if the bindings used should be auto-committed
 * @return a UI container that can be used to edit the business object
 */
public Container createEditUI(PropertyBusinessObject bo, boolean autoCommit) {
    Container cnt;
    if (Display.getInstance().isTablet()) {
        TableLayout tl = new TableLayout(1, 2);
        tl.setGrowHorizontally(true);
        cnt = new Container(tl);
    } else {
        cnt = new Container(BoxLayout.y());
    }
    UiBinding uib = new UiBinding();
    ArrayList<UiBinding.Binding> allBindings = new ArrayList<UiBinding.Binding>();
    for (PropertyBase b : bo.getPropertyIndex()) {
        if (isExcludedProperty(b)) {
            continue;
        }
        Class cls = (Class) b.getClientProperty("cn1$cmpCls");
        if (cls != null) {
            try {
                Component cmp = (Component) cls.newInstance();
                cmp.setName(b.getName());
                cnt.add(b.getLabel()).add(cmp);
                allBindings.add(uib.bind(b, cmp));
            } catch (Exception err) {
                Log.e(err);
                throw new RuntimeException("Custom property instant UI failed for " + b.getName() + " " + err);
            }
            continue;
        }
        String[] multiLabels = (String[]) b.getClientProperty("cn1$multiChceLbl");
        if (multiLabels != null) {
            // multi choice component
            final Object[] multiValues = (Object[]) b.getClientProperty("cn1$multiChceVal");
            if (multiLabels.length < 5) {
                // toggle buttons
                ButtonGroup bg = new ButtonGroup();
                RadioButton[] rbs = new RadioButton[multiLabels.length];
                cnt.add(b.getLabel());
                Container radioBox = new Container(new GridLayout(multiLabels.length));
                for (int iter = 0; iter < multiLabels.length; iter++) {
                    rbs[iter] = RadioButton.createToggle(multiLabels[iter], bg);
                    radioBox.add(rbs[iter]);
                }
                cnt.add(radioBox);
                allBindings.add(uib.bindGroup(b, multiValues, rbs));
            } else {
                Picker stringPicker = new Picker();
                stringPicker.setStrings(multiLabels);
                Map<Object, Object> m1 = new HashMap<Object, Object>();
                Map<Object, Object> m2 = new HashMap<Object, Object>();
                for (int iter = 0; iter < multiLabels.length; iter++) {
                    m1.put(multiLabels[iter], multiValues[iter]);
                    m2.put(multiValues[iter], multiLabels[iter]);
                }
                cnt.add(b.getLabel()).add(stringPicker);
                allBindings.add(uib.bind(b, stringPicker, new UiBinding.PickerAdapter<Object>(new UiBinding.MappingConverter(m1), new UiBinding.MappingConverter(m2))));
            }
            continue;
        }
        Class t = b.getGenericType();
        if (t != null) {
            if (t == Boolean.class) {
                CheckBox cb = new CheckBox();
                uib.bind(b, cb);
                cnt.add(b.getLabel()).add(cb);
                continue;
            }
            if (t == Date.class) {
                Picker dp = new Picker();
                dp.setType(Display.PICKER_TYPE_DATE);
                uib.bind(b, dp);
                cnt.add(b.getLabel()).add(dp);
                continue;
            }
        }
        TextField tf = new TextField();
        tf.setConstraint(getTextFieldConstraint(b));
        uib.bind(b, tf);
        cnt.add(b.getLabel()).add(tf);
    }
    cnt.putClientProperty("cn1$iui-binding", uib.createGroupBinding(allBindings));
    return cnt;
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Container(com.codename1.ui.Container) GridLayout(com.codename1.ui.layouts.GridLayout) Picker(com.codename1.ui.spinner.Picker) TextField(com.codename1.ui.TextField) Component(com.codename1.ui.Component) TableLayout(com.codename1.ui.table.TableLayout) RadioButton(com.codename1.ui.RadioButton) ButtonGroup(com.codename1.ui.ButtonGroup) CheckBox(com.codename1.ui.CheckBox)

Example 2 with Picker

use of com.codename1.ui.spinner.Picker in project CodenameOne by codenameone.

the class PreviewInSimulator method main.

/**
 * Called back from simulateDeviceActionPerformed to show the simulator skin
 */
public static void main(String[] argv) {
    com.codename1.ui.Display.init(new Runnable() {

        public void run() {
            try {
                Preferences pref = Preferences.userNodeForPackage(PreviewInSimulator.class);
                String theme = pref.get("previewTheme", null);
                File resFile = new File(pref.get("previewResource", null));
                String baseResDir = pref.get("baseResourceDir", null);
                if (baseResDir != null) {
                    JavaSEPort.setBaseResourceDir(new File(baseResDir));
                }
                String selection = pref.get("previewSelection", null);
                Resources res = Resources.open(new FileInputStream(resFile));
                if (theme == null || theme.length() == 0) {
                    if (com.codename1.ui.Display.getInstance().hasNativeTheme()) {
                        com.codename1.ui.Display.getInstance().installNativeTheme();
                    }
                } else {
                    com.codename1.ui.plaf.UIManager.getInstance().setThemeProps(res.getTheme(theme));
                }
                com.codename1.ui.util.UIBuilder.registerCustomComponent("Table", com.codename1.ui.table.Table.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("MediaPlayer", com.codename1.components.MediaPlayer.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("ContainerList", com.codename1.ui.list.ContainerList.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("ComponentGroup", com.codename1.ui.ComponentGroup.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("Tree", com.codename1.ui.tree.Tree.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("HTMLComponent", com.codename1.ui.html.HTMLComponent.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("RSSReader", com.codename1.components.RSSReader.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("FileTree", com.codename1.components.FileTree.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("WebBrowser", com.codename1.components.WebBrowser.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("NumericSpinner", com.codename1.ui.spinner.NumericSpinner.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("DateSpinner", com.codename1.ui.spinner.DateSpinner.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("TimeSpinner", com.codename1.ui.spinner.TimeSpinner.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("DateTimeSpinner", com.codename1.ui.spinner.DateTimeSpinner.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("GenericSpinner", com.codename1.ui.spinner.GenericSpinner.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("LikeButton", com.codename1.facebook.ui.LikeButton.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("InfiniteProgress", com.codename1.components.InfiniteProgress.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("MultiButton", com.codename1.components.MultiButton.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("SpanButton", com.codename1.components.SpanButton.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("SpanLabel", com.codename1.components.SpanLabel.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("Ads", com.codename1.components.Ads.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("MapComponent", com.codename1.maps.MapComponent.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("MultiList", com.codename1.ui.list.MultiList.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("ShareButton", com.codename1.components.ShareButton.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("OnOffSwitch", com.codename1.components.OnOffSwitch.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("ImageViewer", com.codename1.components.ImageViewer.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("AutoCompleteTextField", com.codename1.ui.AutoCompleteTextField.class);
                com.codename1.ui.util.UIBuilder.registerCustomComponent("Picker", com.codename1.ui.spinner.Picker.class);
                com.codename1.ui.util.UIBuilder builder = new com.codename1.ui.util.UIBuilder();
                com.codename1.ui.Container c = builder.createContainer(res, selection);
                if (c instanceof com.codename1.ui.Form) {
                    ((com.codename1.ui.Form) c).refreshTheme();
                    if (c instanceof com.codename1.ui.Dialog) {
                        ((com.codename1.ui.Dialog) c).showModeless();
                    } else {
                        ((com.codename1.ui.Form) c).show();
                    }
                } else {
                    com.codename1.ui.Form f = new com.codename1.ui.Form();
                    f.setLayout(new com.codename1.ui.layouts.BorderLayout());
                    f.addComponent(com.codename1.ui.layouts.BorderLayout.CENTER, c);
                    f.refreshTheme();
                    f.show();
                }
            } catch (Exception ex) {
                ex.printStackTrace();
                JOptionPane.showMessageDialog(null, "Error While Running In Simulator: " + ex, "Error", JOptionPane.ERROR_MESSAGE);
            }
        }
    });
}
Also used : Preferences(java.util.prefs.Preferences) FileInputStream(java.io.FileInputStream) IOException(java.io.IOException) BackingStoreException(java.util.prefs.BackingStoreException) Resources(com.codename1.ui.util.Resources) File(java.io.File)

Example 3 with Picker

use of com.codename1.ui.spinner.Picker in project CodenameOne by codenameone.

the class TestPicker method testDateTimePicker.

private void testDateTimePicker() {
    Picker p = new Picker();
    p.setType(Display.PICKER_TYPE_DATE_AND_TIME);
}
Also used : Picker(com.codename1.ui.spinner.Picker)

Example 4 with Picker

use of com.codename1.ui.spinner.Picker in project CodenameOne by codenameone.

the class TestPicker method testDatePicker.

private void testDatePicker() {
    Picker p = new Picker();
    p.setType(Display.PICKER_TYPE_DATE);
}
Also used : Picker(com.codename1.ui.spinner.Picker)

Example 5 with Picker

use of com.codename1.ui.spinner.Picker in project CodenameOne by codenameone.

the class TestPicker method testDurationPicker.

private void testDurationPicker() {
    Picker picker = new Picker();
    picker.setType(Display.PICKER_TYPE_DURATION);
    TestUtils.assertEqual(0, picker.getDurationHours(), "Initial duration hours should be 0");
    TestUtils.assertEqual(0, picker.getDurationMinutes(), "Initial duration minutes should be 0");
    TestUtils.assertEqual(0l, picker.getDuration(), "Initial duration should be 0");
    TestUtils.assertEqual("...", picker.getText(), "Initial text should be empty but found " + picker.getText());
    picker.setDuration(3, 45);
    TestUtils.assertEqual(3, picker.getDurationHours(), "Duration hours set incorrectly when set with hours and minutes");
    TestUtils.assertEqual(45, picker.getDurationMinutes(), "Duration minutes set incorrectly when set with hours and minutes");
    TestUtils.assertEqual(3 * 60 * 60 * 1000l + 45 * 60 * 1000l, picker.getDuration(), "Duration set incorrectly when set with hours and minutes");
    TestUtils.assertEqual("3 hours 45 minutes", picker.getText(), "Incorrect picker text.  Should be 3 hours 45 minutes, but found " + picker.getText());
    picker.setDuration(3 * 60 * 60 * 1000l + 45 * 60 * 1000l);
    TestUtils.assertEqual(3, picker.getDurationHours(), "Duration hours set incorrectly when set with ms.");
    TestUtils.assertEqual(45, picker.getDurationMinutes(), "Duration minutes set incorrectly when set with ms");
    TestUtils.assertEqual(3 * 60 * 60 * 1000l + 45 * 60 * 1000l, picker.getDuration(), "Duration set incorrectly when set with ms");
    picker.setDuration(0, 90);
    TestUtils.assertEqual(1, picker.getDurationHours(), "Expected duration hours=1 but found " + picker.getDurationHours());
    TestUtils.assertEqual(30, picker.getDurationMinutes(), "Duration minutes set incorrectly with 90 minutes");
    TestUtils.assertEqual(90 * 60 * 1000l, picker.getDuration(), "Duration set incorrectly with 90 minutes");
    TestUtils.assertEqual("1 hour 30 minutes", picker.getText(), "Incorrect picker text when setting to 90 minutes.");
    picker.setDuration(0, 1);
    TestUtils.assertEqual("1 minute", picker.getText(), "Incorrect picker text when setting to 1 minute");
    picker.setDuration(1, 0);
    TestUtils.assertEqual("1 hour", picker.getText(), "Incorrect picker text when setting to 1 hour");
}
Also used : Picker(com.codename1.ui.spinner.Picker)

Aggregations

Picker (com.codename1.ui.spinner.Picker)7 Preferences (java.util.prefs.Preferences)2 BufferedInputStream (com.codename1.io.BufferedInputStream)1 ButtonGroup (com.codename1.ui.ButtonGroup)1 CheckBox (com.codename1.ui.CheckBox)1 Component (com.codename1.ui.Component)1 Container (com.codename1.ui.Container)1 Form (com.codename1.ui.Form)1 RadioButton (com.codename1.ui.RadioButton)1 TextField (com.codename1.ui.TextField)1 GridLayout (com.codename1.ui.layouts.GridLayout)1 TableLayout (com.codename1.ui.table.TableLayout)1 Resources (com.codename1.ui.util.Resources)1 UIBuilderOverride (com.codename1.ui.util.UIBuilderOverride)1 FileDialog (java.awt.FileDialog)1 FontFormatException (java.awt.FontFormatException)1 Point (java.awt.Point)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 PathIterator (java.awt.geom.PathIterator)1