Search in sources :

Example 96 with Form

use of com.codename1.ui.Form in project CodenameOne by codenameone.

the class PainterChain method removeGlassPane.

/**
 * Removes a glass pane from the given form, this is the opposite operation for the
 * install glass pane
 *
 * @param f form from which to remove the chain
 * @param p painter to remove
 */
public static void removeGlassPane(Form f, Painter p) {
    Painter existing = f.getGlassPane();
    if (existing == null) {
        return;
    }
    if (existing == p) {
        f.setGlassPane(null);
        return;
    }
    if (existing instanceof PainterChain) {
        PainterChain pc = (PainterChain) existing;
        if (pc.chain.length == 1) {
            f.setGlassPane(null);
        } else {
            Vector v = new Vector();
            int plen = pc.chain.length;
            for (int iter = 0; iter < plen; iter++) {
                if (pc.chain[iter] != p) {
                    v.addElement(pc.chain[iter]);
                }
            }
            if (v.size() == 0) {
                f.setGlassPane(null);
                return;
            }
            Painter[] newChain = new Painter[v.size()];
            int clen = newChain.length;
            for (int iter = 0; iter < clen; iter++) {
                newChain[iter] = (Painter) v.elementAt(iter);
            }
            pc.chain = newChain;
            // Since setGlassPane was not called and still the painter changed, we need to call repaint
            f.repaint();
        }
    }
}
Also used : Painter(com.codename1.ui.Painter) Vector(java.util.Vector)

Example 97 with Form

use of com.codename1.ui.Form in project CodenameOne by codenameone.

the class PainterChain method installGlassPane.

/**
 * Installs a glass pane on the given form making sure to make it a painter
 * chain only if required by existing painter
 *
 * @param f form on which to install the chain
 * @param p painter to install
 */
public static void installGlassPane(Form f, Painter p) {
    Painter existing = f.getGlassPane();
    if (existing == null) {
        f.setGlassPane(p);
        return;
    }
    if (existing instanceof PainterChain) {
        f.setGlassPane(((PainterChain) existing).addPainter(p));
    } else {
        PainterChain pc = new PainterChain(new Painter[] { existing, p });
        f.setGlassPane(pc);
    }
}
Also used : Painter(com.codename1.ui.Painter)

Example 98 with Form

use of com.codename1.ui.Form in project CodenameOne by codenameone.

the class LiveDemo method start.

public void start() {
    Form previewForm = new Form("Preview Theme");
    Toolbar tb = new Toolbar();
    previewForm.setToolbar(tb);
    tb.setTitle("Preview Theme");
    tb.addMaterialCommandToSideMenu("Side Command", FontImage.MATERIAL_HELP, new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            ToastBar.showErrorMessage("Unmapped....");
        }
    });
    tb.addMaterialCommandToOverflowMenu("Overflow Command", FontImage.MATERIAL_HELP, new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            ToastBar.showErrorMessage("Unmapped....");
        }
    });
    tb.addMaterialCommandToRightBar("", FontImage.MATERIAL_HELP, new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            ToastBar.showErrorMessage("Unmapped....");
        }
    });
    previewForm.setLayout(new BorderLayout());
    Container first = new Container(new BoxLayout(BoxLayout.Y_AXIS));
    first.addComponent(new Label("This is a Label"));
    first.addComponent(new Button("This is a Button"));
    MultiButton mb = new MultiButton("This is a MultiButton");
    mb.setTextLine2("Second line of text");
    FontImage.setMaterialIcon(mb, FontImage.MATERIAL_HELP);
    first.addComponent(mb);
    TextField txt = new TextField();
    txt.setHint("This is a TextField");
    first.addComponent(txt);
    first.addComponent(new CheckBox("This is a CheckBox"));
    RadioButton rb1 = new RadioButton("This is a Radio Button 1");
    rb1.setGroup("group");
    first.addComponent(rb1);
    RadioButton rb2 = new RadioButton("This is a Radio Button 2");
    rb2.setGroup("group");
    first.addComponent(rb2);
    final Slider s = new Slider();
    s.setText("50%");
    s.setProgress(50);
    s.setEditable(true);
    s.setRenderPercentageOnTop(true);
    first.addComponent(s);
    Button b1 = new Button("Show a Dialog");
    b1.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent evt) {
            Dialog.show("Dialog Title", "Dialog Body", "Ok", "Cancel");
        }
    });
    first.addComponent(b1);
    previewForm.add(BorderLayout.CENTER, first);
    previewForm.show();
}
Also used : Slider(com.codename1.ui.Slider) Form(com.codename1.ui.Form) ActionEvent(com.codename1.ui.events.ActionEvent) BoxLayout(com.codename1.ui.layouts.BoxLayout) Label(com.codename1.ui.Label) RadioButton(com.codename1.ui.RadioButton) Container(com.codename1.ui.Container) ActionListener(com.codename1.ui.events.ActionListener) BorderLayout(com.codename1.ui.layouts.BorderLayout) RadioButton(com.codename1.ui.RadioButton) Button(com.codename1.ui.Button) MultiButton(com.codename1.components.MultiButton) CheckBox(com.codename1.ui.CheckBox) TextField(com.codename1.ui.TextField) MultiButton(com.codename1.components.MultiButton) Toolbar(com.codename1.ui.Toolbar)

Example 99 with Form

use of com.codename1.ui.Form in project CodenameOne by codenameone.

the class ThemeEditor method initMIDlet.

private void initMIDlet() {
    JavaSEPortWithSVGSupport.setShowEDTWarnings(false);
    JavaSEPortWithSVGSupport.setShowEDTViolationStacks(false);
    // its a UI form
    if (uiPreviewContent.getSelectedIndex() == uiPreviewContent.getModel().getSize() - 1) {
        previewPanel.removeAll();
        if (com.codename1.ui.Display.isInitialized()) {
            com.codename1.ui.Display.deinitialize();
        }
        JavaSEPortWithSVGSupport.setDefaultInitTarget(previewPanel);
        com.codename1.ui.Display.init(previewPanel);
        previewPanel.getComponent(0).setBounds(0, 0, get(widthResoltution), get(heightResolution));
        previewPanel.getComponent(0).setPreferredSize(new java.awt.Dimension(get(widthResoltution), get(heightResolution)));
        PickMIDlet.startMIDlet(themeHash);
    } else {
        Preferences.userNodeForPackage(getClass()).put("uiPreviewContent", (String) uiPreviewContent.getSelectedItem());
        Accessor.setTheme(themeHash);
        if (com.codename1.ui.Display.isInitialized()) {
            com.codename1.ui.Display.deinitialize();
        }
        previewPanel.removeAll();
        com.codename1.ui.Display.init(previewPanel);
        previewPanel.getComponent(0).setBounds(0, 0, get(widthResoltution), get(heightResolution));
        previewPanel.getComponent(0).setPreferredSize(new java.awt.Dimension(get(widthResoltution), get(heightResolution)));
        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);
        Display.getInstance().callSerially(new Runnable() {

            @Override
            public void run() {
                com.codename1.ui.util.UIBuilder builder = new com.codename1.ui.util.UIBuilder();
                final com.codename1.ui.Container c = builder.createContainer(resources, (String) uiPreviewContent.getSelectedItem());
                if (c instanceof com.codename1.ui.Form) {
                    if (c instanceof com.codename1.ui.Dialog) {
                        com.codename1.ui.animations.Transition t = ((com.codename1.ui.Dialog) c).getTransitionInAnimator();
                        ((com.codename1.ui.Dialog) c).setTransitionInAnimator(com.codename1.ui.animations.CommonTransitions.createEmpty());
                        ((com.codename1.ui.Dialog) c).showModeless();
                        ((com.codename1.ui.Dialog) c).setTransitionInAnimator(t);
                    } else {
                        com.codename1.ui.animations.Transition t = ((com.codename1.ui.Form) c).getTransitionInAnimator();
                        ((com.codename1.ui.Form) c).setTransitionInAnimator(com.codename1.ui.animations.CommonTransitions.createEmpty());
                        ((com.codename1.ui.Form) c).show();
                        ((com.codename1.ui.Form) c).setTransitionInAnimator(t);
                    }
                } else {
                    com.codename1.ui.Form f = new Form();
                    f.setTransitionInAnimator(com.codename1.ui.animations.CommonTransitions.createEmpty());
                    f.setLayout(new com.codename1.ui.layouts.BorderLayout());
                    f.addComponent(com.codename1.ui.layouts.BorderLayout.CENTER, c);
                    f.show();
                }
            }
        });
    }
}
Also used : Form(com.codename1.ui.Form) Form(com.codename1.ui.Form) UIBuilderOverride(com.codename1.ui.util.UIBuilderOverride) Hashtable(java.util.Hashtable)

Example 100 with Form

use of com.codename1.ui.Form in project CodenameOne by codenameone.

the class JavaSEPort method installMenu.

private void installMenu(final JFrame frm, boolean desktopSkin) throws IOException {
    JMenuBar bar = new JMenuBar();
    frm.setJMenuBar(bar);
    JMenu simulatorMenu = new JMenu("Simulate");
    simulatorMenu.setDoubleBuffered(true);
    simulatorMenu.addMenuListener(new MenuListener() {

        @Override
        public void menuSelected(MenuEvent e) {
            menuDisplayed = true;
        }

        @Override
        public void menuCanceled(MenuEvent e) {
            menuDisplayed = false;
        }

        @Override
        public void menuDeselected(MenuEvent e) {
            menuDisplayed = false;
        }
    });
    JMenuItem rotate = new JMenuItem("Rotate");
    rotate.setEnabled(!desktopSkin);
    simulatorMenu.add(rotate);
    final JCheckBoxMenuItem zoomMenu = new JCheckBoxMenuItem("Zoom", scrollableSkin);
    simulatorMenu.add(zoomMenu);
    JMenu debugEdtMenu = new JMenu("Debug EDT");
    simulatorMenu.add(debugEdtMenu);
    zoomMenu.setEnabled(!desktopSkin);
    JRadioButtonMenuItem debugEdtNone = new JRadioButtonMenuItem("None");
    JRadioButtonMenuItem debugEdtLight = new JRadioButtonMenuItem("Light");
    JRadioButtonMenuItem debugEdtFull = new JRadioButtonMenuItem("Full");
    debugEdtMenu.add(debugEdtNone);
    debugEdtMenu.add(debugEdtLight);
    debugEdtMenu.add(debugEdtFull);
    ButtonGroup bg = new ButtonGroup();
    bg.add(debugEdtNone);
    bg.add(debugEdtLight);
    bg.add(debugEdtFull);
    final Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
    int debugEdtSelection = pref.getInt("debugEDTMode", 0);
    switch(debugEdtSelection) {
        case 0:
            debugEdtNone.setSelected(true);
            setShowEDTWarnings(false);
            setShowEDTViolationStacks(false);
            break;
        case 2:
            debugEdtFull.setSelected(true);
            setShowEDTWarnings(true);
            setShowEDTViolationStacks(true);
            break;
        default:
            debugEdtLight.setSelected(true);
            setShowEDTWarnings(true);
            setShowEDTViolationStacks(false);
            break;
    }
    debugEdtNone.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            setShowEDTWarnings(false);
            setShowEDTViolationStacks(false);
            pref.putInt("debugEDTMode", 0);
        }
    });
    debugEdtFull.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            setShowEDTWarnings(true);
            setShowEDTViolationStacks(true);
            pref.putInt("debugEDTMode", 2);
        }
    });
    debugEdtLight.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            setShowEDTWarnings(true);
            setShowEDTViolationStacks(false);
            pref.putInt("debugEDTMode", 1);
        }
    });
    JMenuItem screenshot = new JMenuItem("Screenshot");
    simulatorMenu.add(screenshot);
    KeyStroke f2 = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
    screenshot.setAccelerator(f2);
    screenshot.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            final float zoom = zoomLevel;
            zoomLevel = 1;
            final Form frm = Display.getInstance().getCurrent();
            BufferedImage headerImageTmp;
            if (isPortrait()) {
                headerImageTmp = header;
            } else {
                headerImageTmp = headerLandscape;
            }
            if (!includeHeaderInScreenshot) {
                headerImageTmp = null;
            }
            int headerHeightTmp = 0;
            if (headerImageTmp != null) {
                headerHeightTmp = headerImageTmp.getHeight();
            }
            final int headerHeight = headerHeightTmp;
            final BufferedImage headerImage = headerImageTmp;
            // gr.translate(0, statusBarHeight);
            Display.getInstance().callSerially(new Runnable() {

                public void run() {
                    final com.codename1.ui.Image img = com.codename1.ui.Image.createImage(frm.getWidth(), frm.getHeight());
                    com.codename1.ui.Graphics gr = img.getGraphics();
                    takingScreenshot = true;
                    screenshotActualZoomLevel = zoom;
                    try {
                        frm.paint(gr);
                    } finally {
                        takingScreenshot = false;
                    }
                    final int imageWidth = img.getWidth();
                    final int imageHeight = img.getHeight();
                    final int[] imageRGB = img.getRGB();
                    SwingUtilities.invokeLater(new Runnable() {

                        public void run() {
                            BufferedImage bi = new BufferedImage(frm.getWidth(), frm.getHeight() + headerHeight, BufferedImage.TYPE_INT_ARGB);
                            bi.setRGB(0, headerHeight, imageWidth, imageHeight, imageRGB, 0, imageWidth);
                            if (headerImage != null) {
                                Graphics2D g2d = bi.createGraphics();
                                g2d.drawImage(headerImage, 0, 0, null);
                                g2d.dispose();
                            }
                            OutputStream out = null;
                            try {
                                out = new FileOutputStream(findScreenshotFile());
                                ImageIO.write(bi, "png", out);
                                out.close();
                            } catch (Throwable ex) {
                                ex.printStackTrace();
                                System.exit(1);
                            } finally {
                                zoomLevel = zoom;
                                try {
                                    out.close();
                                } catch (Throwable ex) {
                                }
                                frm.repaint();
                                canvas.repaint();
                            }
                        }
                    });
                }
            });
        }
    });
    JMenuItem screenshotWithSkin = new JMenuItem("Screenshot With Skin");
    simulatorMenu.add(screenshotWithSkin);
    screenshotWithSkin.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            final float zoom = zoomLevel;
            zoomLevel = 1;
            final Form frm = Display.getInstance().getCurrent();
            BufferedImage headerImageTmp;
            if (isPortrait()) {
                headerImageTmp = header;
            } else {
                headerImageTmp = headerLandscape;
            }
            if (!includeHeaderInScreenshot) {
                headerImageTmp = null;
            }
            int headerHeightTmp = 0;
            if (headerImageTmp != null) {
                headerHeightTmp = headerImageTmp.getHeight();
            }
            final int headerHeight = headerHeightTmp;
            final BufferedImage headerImage = headerImageTmp;
            // gr.translate(0, statusBarHeight);
            Display.getInstance().callSerially(new Runnable() {

                public void run() {
                    final com.codename1.ui.Image img = com.codename1.ui.Image.createImage(frm.getWidth(), frm.getHeight());
                    com.codename1.ui.Graphics gr = img.getGraphics();
                    takingScreenshot = true;
                    screenshotActualZoomLevel = zoom;
                    try {
                        frm.paint(gr);
                    } finally {
                        takingScreenshot = false;
                    }
                    final int imageWidth = img.getWidth();
                    final int imageHeight = img.getHeight();
                    final int[] imageRGB = img.getRGB();
                    SwingUtilities.invokeLater(new Runnable() {

                        public void run() {
                            BufferedImage bi = new BufferedImage(frm.getWidth(), frm.getHeight() + headerHeight, BufferedImage.TYPE_INT_ARGB);
                            bi.setRGB(0, headerHeight, imageWidth, imageHeight, imageRGB, 0, imageWidth);
                            BufferedImage skin = getSkin();
                            BufferedImage newSkin = new BufferedImage(skin.getWidth(), skin.getHeight(), BufferedImage.TYPE_INT_ARGB);
                            Graphics2D g2d = newSkin.createGraphics();
                            g2d.drawImage(bi, getScreenCoordinates().x, getScreenCoordinates().y, null);
                            if (headerImage != null) {
                                g2d.drawImage(headerImage, getScreenCoordinates().x, getScreenCoordinates().y, null);
                            }
                            g2d.drawImage(skin, 0, 0, null);
                            g2d.dispose();
                            OutputStream out = null;
                            try {
                                out = new FileOutputStream(findScreenshotFile());
                                ImageIO.write(newSkin, "png", out);
                                out.close();
                            } catch (Throwable ex) {
                                ex.printStackTrace();
                                System.exit(1);
                            } finally {
                                zoomLevel = zoom;
                                try {
                                    out.close();
                                } catch (Throwable ex) {
                                }
                                frm.repaint();
                                canvas.repaint();
                            }
                        }
                    });
                }
            });
        }
    });
    includeHeaderInScreenshot = pref.getBoolean("includeHeaderScreenshot", true);
    final JCheckBoxMenuItem includeHeaderMenu = new JCheckBoxMenuItem("Screenshot StatusBar");
    includeHeaderMenu.setToolTipText("Include status bar area in Screenshots");
    includeHeaderMenu.setSelected(includeHeaderInScreenshot);
    simulatorMenu.add(includeHeaderMenu);
    includeHeaderMenu.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            includeHeaderInScreenshot = includeHeaderMenu.isSelected();
            pref.putBoolean("includeHeaderScreenshot", includeHeaderInScreenshot);
        }
    });
    JMenu networkDebug = new JMenu("Network");
    simulatorMenu.add(networkDebug);
    JMenuItem networkMonitor = new JMenuItem("Network Monitor");
    networkMonitor.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            if (netMonitor == null) {
                showNetworkMonitor();
                Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
                pref.putBoolean("NetworkMonitor", true);
            }
        }
    });
    networkDebug.add(networkMonitor);
    JMenuItem proxy = new JMenuItem("Proxy Settings");
    proxy.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            final JDialog proxy;
            if (window != null) {
                proxy = new JDialog(window);
            } else {
                proxy = new JDialog();
            }
            final Preferences pref = Preferences.userNodeForPackage(Component.class);
            int proxySel = pref.getInt("proxySel", 2);
            String proxySelHttp = pref.get("proxySel-http", "");
            String proxySelPort = pref.get("proxySel-port", "");
            JPanel panel = new JPanel();
            panel.setAlignmentX(java.awt.Component.LEFT_ALIGNMENT);
            panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
            JPanel proxyUrl = new JPanel();
            proxyUrl.setLayout(new FlowLayout(FlowLayout.LEFT));
            proxyUrl.add(new JLabel("Http Proxy:"));
            final JTextField http = new JTextField(proxySelHttp);
            http.setColumns(20);
            proxyUrl.add(http);
            proxyUrl.add(new JLabel("Port:"));
            final JTextField port = new JTextField(proxySelPort);
            port.setColumns(4);
            proxyUrl.add(port);
            final JRadioButton noproxy = new JRadioButton("No Proxy");
            JPanel rbPanel = new JPanel();
            rbPanel.setLayout(new java.awt.GridLayout(1, 0));
            rbPanel.setAlignmentX(java.awt.Component.LEFT_ALIGNMENT);
            rbPanel.add(noproxy);
            Dimension d = rbPanel.getPreferredSize();
            d.width = proxyUrl.getPreferredSize().width;
            rbPanel.setMinimumSize(d);
            // noproxy.setPreferredSize(d);
            panel.add(rbPanel);
            final JRadioButton systemProxy = new JRadioButton("Use System Proxy");
            rbPanel = new JPanel();
            rbPanel.setLayout(new java.awt.GridLayout(1, 0));
            rbPanel.setAlignmentX(java.awt.Component.LEFT_ALIGNMENT);
            rbPanel.add(systemProxy);
            d = rbPanel.getPreferredSize();
            d.width = proxyUrl.getPreferredSize().width;
            rbPanel.setPreferredSize(d);
            panel.add(rbPanel);
            final JRadioButton manual = new JRadioButton("Manual Proxy Settings:");
            rbPanel = new JPanel();
            rbPanel.setLayout(new java.awt.GridLayout(1, 0));
            rbPanel.setAlignmentX(java.awt.Component.LEFT_ALIGNMENT);
            rbPanel.add(manual);
            d = rbPanel.getPreferredSize();
            d.width = proxyUrl.getPreferredSize().width;
            rbPanel.setPreferredSize(d);
            panel.add(rbPanel);
            rbPanel = new JPanel();
            rbPanel.setLayout(new java.awt.GridLayout(1, 0));
            rbPanel.setAlignmentX(java.awt.Component.LEFT_ALIGNMENT);
            rbPanel.add(proxyUrl);
            panel.add(rbPanel);
            ButtonGroup group = new ButtonGroup();
            group.add(noproxy);
            group.add(systemProxy);
            group.add(manual);
            noproxy.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    http.setEnabled(false);
                    port.setEnabled(false);
                }
            });
            systemProxy.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    http.setEnabled(false);
                    port.setEnabled(false);
                }
            });
            manual.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    http.setEnabled(true);
                    port.setEnabled(true);
                }
            });
            switch(proxySel) {
                case 1:
                    noproxy.setSelected(true);
                    http.setEnabled(false);
                    port.setEnabled(false);
                    break;
                case 2:
                    systemProxy.setSelected(true);
                    http.setEnabled(false);
                    port.setEnabled(false);
                    break;
                case 3:
                    manual.setSelected(true);
                    break;
            }
            JPanel closePanel = new JPanel();
            JButton close = new JButton("Ok");
            close.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    if (noproxy.isSelected()) {
                        pref.putInt("proxySel", 1);
                    } else if (systemProxy.isSelected()) {
                        pref.putInt("proxySel", 2);
                    } else if (manual.isSelected()) {
                        pref.putInt("proxySel", 3);
                        pref.put("proxySel-http", http.getText());
                        pref.put("proxySel-port", port.getText());
                    }
                    proxy.dispose();
                    if (netMonitor != null) {
                        netMonitor.dispose();
                        netMonitor = null;
                    }
                    if (perfMonitor != null) {
                        perfMonitor.dispose();
                        perfMonitor = null;
                    }
                    String mainClass = System.getProperty("MainClass");
                    if (mainClass != null) {
                        Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
                        deinitializeSync();
                        frm.dispose();
                        System.setProperty("reload.simulator", "true");
                    } else {
                        refreshSkin(frm);
                    }
                }
            });
            closePanel.add(close);
            panel.add(closePanel);
            proxy.add(panel);
            proxy.pack();
            if (window != null) {
                proxy.setLocationRelativeTo(window);
            }
            proxy.setResizable(false);
            proxy.setVisible(true);
        }
    });
    networkDebug.add(proxy);
    networkDebug.addSeparator();
    JRadioButtonMenuItem regularConnection = new JRadioButtonMenuItem("Regular Connection");
    regularConnection.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            slowConnectionMode = false;
            disconnectedMode = false;
            pref.putInt("connectionStatus", 0);
        }
    });
    networkDebug.add(regularConnection);
    JRadioButtonMenuItem slowConnection = new JRadioButtonMenuItem("Slow Connection");
    slowConnection.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            slowConnectionMode = true;
            disconnectedMode = false;
            pref.putInt("connectionStatus", 1);
        }
    });
    networkDebug.add(slowConnection);
    JRadioButtonMenuItem disconnected = new JRadioButtonMenuItem("Disconnected");
    disconnected.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            slowConnectionMode = false;
            disconnectedMode = true;
            pref.putInt("connectionStatus", 2);
        }
    });
    networkDebug.add(disconnected);
    ButtonGroup connectionGroup = new ButtonGroup();
    connectionGroup.add(regularConnection);
    connectionGroup.add(slowConnection);
    connectionGroup.add(disconnected);
    switch(pref.getInt("connectionStatus", 0)) {
        case 0:
            regularConnection.setSelected(true);
            break;
        case 1:
            slowConnection.setSelected(true);
            slowConnectionMode = true;
            break;
        case 2:
            disconnected.setSelected(true);
            disconnectedMode = true;
            break;
    }
    JMenuItem componentTreeInspector = new JMenuItem("Component Inspector");
    componentTreeInspector.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            new ComponentTreeInspector();
        }
    });
    JMenuItem locactionSim = new JMenuItem("Location Simulation");
    locactionSim.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            if (!fxExists) {
                System.err.println("This simulation requires jdk 7");
                return;
            }
            if (locSimulation == null) {
                locSimulation = new LocationSimulation();
            } else {
                locSimulation.setVisible(true);
            }
        }
    });
    simulatorMenu.add(locactionSim);
    JMenuItem pushSim = new JMenuItem("Push Simulation");
    pushSim.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            if (pushSimulation == null) {
                pushSimulation = new PushSimulator();
            }
            pref.putBoolean("PushSimulator", true);
            pushSimulation.setVisible(true);
        }
    });
    simulatorMenu.add(pushSim);
    simulatorMenu.add(componentTreeInspector);
    JMenuItem testRecorderMenu = new JMenuItem("Test Recorder");
    testRecorderMenu.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            if (testRecorder == null) {
                showTestRecorder();
            }
        }
    });
    simulatorMenu.add(testRecorderMenu);
    manualPurchaseSupported = pref.getBoolean("manualPurchaseSupported", true);
    managedPurchaseSupported = pref.getBoolean("managedPurchaseSupported", true);
    subscriptionSupported = pref.getBoolean("subscriptionSupported", true);
    refundSupported = pref.getBoolean("refundSupported", true);
    JMenu purchaseMenu = new JMenu("In App Purchase");
    simulatorMenu.add(purchaseMenu);
    final JCheckBoxMenuItem manualPurchaseSupportedMenu = new JCheckBoxMenuItem("Manual Purchase");
    manualPurchaseSupportedMenu.setSelected(manualPurchaseSupported);
    final JCheckBoxMenuItem managedPurchaseSupportedMenu = new JCheckBoxMenuItem("Managed Purchase");
    managedPurchaseSupportedMenu.setSelected(managedPurchaseSupported);
    final JCheckBoxMenuItem subscriptionSupportedMenu = new JCheckBoxMenuItem("Subscription");
    subscriptionSupportedMenu.setSelected(subscriptionSupported);
    final JCheckBoxMenuItem refundSupportedMenu = new JCheckBoxMenuItem("Refunds");
    refundSupportedMenu.setSelected(refundSupported);
    manualPurchaseSupportedMenu.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            manualPurchaseSupported = manualPurchaseSupportedMenu.isSelected();
            pref.putBoolean("manualPurchaseSupported", manualPurchaseSupported);
        }
    });
    managedPurchaseSupportedMenu.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            managedPurchaseSupported = managedPurchaseSupportedMenu.isSelected();
            pref.putBoolean("managedPurchaseSupported", managedPurchaseSupported);
        }
    });
    subscriptionSupportedMenu.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            subscriptionSupported = subscriptionSupportedMenu.isSelected();
            pref.putBoolean("subscriptionSupported", subscriptionSupported);
        }
    });
    refundSupportedMenu.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            refundSupported = refundSupportedMenu.isSelected();
            pref.putBoolean("refundSupported", refundSupported);
        }
    });
    purchaseMenu.add(manualPurchaseSupportedMenu);
    purchaseMenu.add(managedPurchaseSupportedMenu);
    purchaseMenu.add(subscriptionSupportedMenu);
    purchaseMenu.add(refundSupportedMenu);
    JMenuItem performanceMonitor = new JMenuItem("Performance Monitor");
    performanceMonitor.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            if (perfMonitor == null) {
                showPerformanceMonitor();
                Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
                pref.putBoolean("PerformanceMonitor", true);
            }
        }
    });
    simulatorMenu.add(performanceMonitor);
    JMenuItem clean = new JMenuItem("Clean Storage");
    clean.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            File home = new File(System.getProperty("user.home") + File.separator + appHomeDir);
            if (!home.exists()) {
                return;
            }
            if (JOptionPane.showConfirmDialog(frm, "Are you sure you want to Clean all Storage under " + home.getAbsolutePath() + " ?", "Clean Storage", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {
                File[] files = home.listFiles();
                for (int i = 0; i < files.length; i++) {
                    File file = files[i];
                    file.delete();
                }
            }
        }
    });
    simulatorMenu.add(clean);
    JMenu skinMenu = createSkinsMenu(frm, null);
    skinMenu.addMenuListener(new MenuListener() {

        @Override
        public void menuSelected(MenuEvent e) {
            menuDisplayed = true;
        }

        @Override
        public void menuCanceled(MenuEvent e) {
            menuDisplayed = false;
        }

        @Override
        public void menuDeselected(MenuEvent e) {
            menuDisplayed = false;
        }
    });
    final JCheckBoxMenuItem touchFlag = new JCheckBoxMenuItem("Touch", touchDevice);
    simulatorMenu.add(touchFlag);
    final JCheckBoxMenuItem nativeInputFlag = new JCheckBoxMenuItem("Native Input", useNativeInput);
    simulatorMenu.add(nativeInputFlag);
    final JCheckBoxMenuItem simulateAndroidVKBFlag = new JCheckBoxMenuItem("Simulate Android VKB", simulateAndroidKeyboard);
    // simulatorMenu.add(simulateAndroidVKBFlag);
    final JCheckBoxMenuItem scrollFlag = new JCheckBoxMenuItem("Scrollable", scrollableSkin);
    simulatorMenu.add(scrollFlag);
    scrollFlag.setEnabled(!desktopSkin);
    final JCheckBoxMenuItem slowMotionFlag = new JCheckBoxMenuItem("Slow Motion", false);
    simulatorMenu.add(slowMotionFlag);
    slowMotionFlag.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            Motion.setSlowMotion(slowMotionFlag.isSelected());
        }
    });
    final JCheckBoxMenuItem permFlag = new JCheckBoxMenuItem("Android 6 Permissions", android6PermissionsFlag);
    simulatorMenu.add(permFlag);
    permFlag.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            android6PermissionsFlag = !android6PermissionsFlag;
            Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
            pref.putBoolean("Android6Permissions", android6PermissionsFlag);
        }
    });
    pause = new JMenuItem("Pause App");
    simulatorMenu.add(pause);
    pause.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            if (pause.getText().startsWith("Pause")) {
                Display.getInstance().callSerially(new Runnable() {

                    public void run() {
                        Executor.stopApp();
                        minimized = true;
                    }
                });
                canvas.setEnabled(false);
                pause.setText("Resume App");
            } else {
                Display.getInstance().callSerially(new Runnable() {

                    public void run() {
                        Executor.startApp();
                        minimized = false;
                    }
                });
                canvas.setEnabled(true);
                pause.setText("Pause App");
            }
        }
    });
    final JCheckBoxMenuItem alwaysOnTopFlag = new JCheckBoxMenuItem("Always on Top", alwaysOnTop);
    simulatorMenu.add(alwaysOnTopFlag);
    simulatorMenu.addSeparator();
    JMenuItem exit = new JMenuItem("Exit");
    simulatorMenu.add(exit);
    JMenu helpMenu = new JMenu("Help");
    helpMenu.setDoubleBuffered(true);
    helpMenu.addMenuListener(new MenuListener() {

        @Override
        public void menuSelected(MenuEvent e) {
            menuDisplayed = true;
        }

        @Override
        public void menuCanceled(MenuEvent e) {
            menuDisplayed = false;
        }

        @Override
        public void menuDeselected(MenuEvent e) {
            menuDisplayed = false;
        }
    });
    JMenuItem javadocs = new JMenuItem("Javadocs");
    javadocs.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            try {
                Desktop.getDesktop().browse(new URI("https://www.codenameone.com/javadoc/"));
            } catch (Exception ex) {
            }
        }
    });
    helpMenu.add(javadocs);
    JMenuItem how = new JMenuItem("How Do I?...");
    how.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            try {
                Desktop.getDesktop().browse(new URI("https://www.codenameone.com/how-do-i.html"));
            } catch (Exception ex) {
            }
        }
    });
    helpMenu.add(how);
    JMenuItem forum = new JMenuItem("Community Forum");
    forum.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            try {
                Desktop.getDesktop().browse(new URI("https://www.codenameone.com/discussion-forum.html"));
            } catch (Exception ex) {
            }
        }
    });
    helpMenu.add(forum);
    JMenuItem bserver = new JMenuItem("Build Server");
    bserver.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            try {
                Desktop.getDesktop().browse(new URI("https://www.codenameone.com/build-server.html"));
            } catch (Exception ex) {
            }
        }
    });
    helpMenu.addSeparator();
    helpMenu.add(bserver);
    helpMenu.addSeparator();
    JMenuItem about = new JMenuItem("About");
    about.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            final JDialog about;
            if (window != null) {
                about = new JDialog(window);
            } else {
                about = new JDialog();
            }
            JPanel panel = new JPanel();
            panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
            JPanel imagePanel = new JPanel();
            JLabel image = new JLabel(new javax.swing.ImageIcon(getClass().getResource("/CodenameOne_Small.png")));
            image.setHorizontalAlignment(SwingConstants.CENTER);
            imagePanel.add(image);
            panel.add(imagePanel);
            JPanel linkPanel = new JPanel();
            JButton link = new JButton();
            link.setText("<HTML>For more information, please <br>visit <FONT color=\"#000099\"><U>www.codenameone.com</U></FONT></HTML>");
            link.setHorizontalAlignment(SwingConstants.LEFT);
            link.setBorderPainted(false);
            link.setOpaque(false);
            link.setBackground(Color.WHITE);
            link.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    try {
                        Desktop.getDesktop().browse(new URI("https://www.codenameone.com"));
                    } catch (Exception ex) {
                    }
                }
            });
            linkPanel.add(link);
            panel.add(linkPanel);
            JPanel closePanel = new JPanel();
            JButton close = new JButton("close");
            close.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    about.dispose();
                }
            });
            closePanel.add(close);
            panel.add(closePanel);
            about.add(panel);
            about.pack();
            if (window != null) {
                about.setLocationRelativeTo(window);
            }
            about.setVisible(true);
        }
    });
    helpMenu.add(about);
    if (showMenu) {
        bar.add(simulatorMenu);
        bar.add(skinMenu);
        bar.add(helpMenu);
    }
    rotate.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent ae) {
            portrait = !portrait;
            Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
            pref.putBoolean("Portrait", portrait);
            float w1 = ((float) canvas.getWidth()) / ((float) getSkin().getWidth() / (float) retinaScale);
            float h1 = ((float) canvas.getHeight()) / ((float) getSkin().getHeight() / (float) retinaScale);
            zoomLevel = Math.min(h1, w1);
            Container parent = canvas.getParent();
            parent.remove(canvas);
            canvas.setForcedSize(new java.awt.Dimension((int) (getSkin().getWidth() / retinaScale), (int) (getSkin().getHeight() / retinaScale)));
            parent.add(BorderLayout.CENTER, canvas);
            frm.pack();
            zoomLevel = 1;
            JavaSEPort.this.sizeChanged(getScreenCoordinates().width, getScreenCoordinates().height);
        }
    });
    alwaysOnTopFlag.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent ie) {
            alwaysOnTop = !alwaysOnTop;
            Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
            pref.putBoolean("AlwaysOnTop", alwaysOnTop);
            window.setAlwaysOnTop(alwaysOnTop);
        }
    });
    simulateAndroidVKBFlag.addItemListener(new ItemListener() {

        public void itemStateChanged(ItemEvent ie) {
            simulateAndroidKeyboard = !simulateAndroidKeyboard;
        }
    });
    ItemListener zoomListener = new ItemListener() {

        public void itemStateChanged(ItemEvent ie) {
            scrollableSkin = !scrollableSkin;
            Preferences pref = Preferences.userNodeForPackage(JavaSEPort.class);
            pref.putBoolean("Scrollable", scrollableSkin);
            if (scrollableSkin) {
                frm.add(java.awt.BorderLayout.SOUTH, hSelector);
                frm.add(java.awt.BorderLayout.EAST, vSelector);
            } else {
                frm.remove(hSelector);
                frm.remove(vSelector);
            }
            Container parent = canvas.getParent();
            parent.remove(canvas);
            canvas.setForcedSize(new java.awt.Dimension((int) (getSkin().getWidth() / retinaScale), (int) (getSkin().getHeight() / retinaScale)));
            parent.add(BorderLayout.CENTER, canvas);
            canvas.x = 0;
            canvas.y = 0;
            zoomLevel = 1;
            frm.invalidate();
            frm.pack();
            Display.getInstance().getCurrent().repaint();
            frm.repaint();
        }
    };
    zoomMenu.addItemListener(zoomListener);
    scrollFlag.addItemListener(zoomListener);
    exit.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent ae) {
            exitApplication();
        }
    });
}
Also used : ActionEvent(java.awt.event.ActionEvent) BufferedOutputStream(com.codename1.io.BufferedOutputStream) Graphics(com.codename1.ui.Graphics) Dimension(java.awt.Dimension) ActionListener(java.awt.event.ActionListener) ItemEvent(java.awt.event.ItemEvent) Form(com.codename1.ui.Form) MenuListener(javax.swing.event.MenuListener) URI(java.net.URI) BufferedImage(java.awt.image.BufferedImage) Preferences(java.util.prefs.Preferences) BrowserComponent(com.codename1.ui.BrowserComponent) Component(com.codename1.ui.Component) JTextComponent(javax.swing.text.JTextComponent) PeerComponent(com.codename1.ui.PeerComponent) MenuEvent(javax.swing.event.MenuEvent) Image(com.codename1.ui.Image) Dimension(java.awt.Dimension) Point(java.awt.Point) SQLException(java.sql.SQLException) ParseException(java.text.ParseException) EOFException(java.io.EOFException) FontFormatException(java.awt.FontFormatException) Graphics2D(java.awt.Graphics2D) ItemListener(java.awt.event.ItemListener) java.awt(java.awt)

Aggregations

Form (com.codename1.ui.Form)90 ActionEvent (com.codename1.ui.events.ActionEvent)41 Component (com.codename1.ui.Component)38 BorderLayout (com.codename1.ui.layouts.BorderLayout)38 Container (com.codename1.ui.Container)26 ActionListener (com.codename1.ui.events.ActionListener)25 Dialog (com.codename1.ui.Dialog)21 Command (com.codename1.ui.Command)19 Hashtable (java.util.Hashtable)17 Label (com.codename1.ui.Label)14 Style (com.codename1.ui.plaf.Style)14 IOException (java.io.IOException)14 TextArea (com.codename1.ui.TextArea)13 Vector (java.util.Vector)12 Button (com.codename1.ui.Button)11 Graphics (com.codename1.ui.Graphics)9 RadioButton (com.codename1.ui.RadioButton)9 Animation (com.codename1.ui.animations.Animation)9 Image (com.codename1.ui.Image)8 UIManager (com.codename1.ui.plaf.UIManager)8