Search in sources :

Example 81 with Button

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

the class TestComponent method testBrowserComponent2267.

// Test for https://github.com/codenameone/CodenameOne/issues/2267
private void testBrowserComponent2267() {
    Form hi = new Form();
    String formName = "testBrowserComponent2267";
    hi.setName(formName);
    hi.setLayout(new BorderLayout());
    BrowserComponent browserComponent = new BrowserComponent();
    hi.add(BorderLayout.CENTER, browserComponent);
    final Throwable[] ex = new Throwable[1];
    final boolean[] complete = new boolean[1];
    Button loadButton = new Button("setUrl");
    String buttonName = "setUrl";
    loadButton.setName(buttonName);
    loadButton.addActionListener((ev) -> {
        ActionListener errorHandler = new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                e.consume();
                ex[0] = (Throwable) e.getSource();
                complete[0] = true;
                Display.getInstance().removeEdtErrorHandler(this);
            }
        };
        try {
            Display.getInstance().addEdtErrorHandler(errorHandler);
            browserComponent.addWebEventListener("onLoad", e -> {
                Display.getInstance().removeEdtErrorHandler(errorHandler);
                complete[0] = true;
            });
            browserComponent.setURL("https://www.google.es");
        } catch (Throwable t) {
            ex[0] = t;
            complete[0] = true;
            Display.getInstance().removeEdtErrorHandler(errorHandler);
        } finally {
        // complete[0] = true;
        }
    });
    hi.add(BorderLayout.SOUTH, loadButton);
    hi.show();
    TestUtils.waitForFormName(formName, 2000);
    TestUtils.clickButtonByName(buttonName);
    while (!complete[0]) {
        Display.getInstance().invokeAndBlock(() -> {
            Util.sleep(50);
        });
    }
    String message = null;
    if (ex[0] != null) {
        message = ex[0].getMessage();
    }
    TestUtils.assertBool(ex[0] == null, "We received an exception setting the browserComponent URL: " + message);
}
Also used : BorderLayout(com.codename1.ui.layouts.BorderLayout) ActionListener(com.codename1.ui.events.ActionListener) ActionEvent(com.codename1.ui.events.ActionEvent)

Example 82 with Button

use of com.codename1.ui.Button in project codenameone-google-maps by codenameone.

the class GoogleMapsTestApp method start.

public void start() {
    if (current != null) {
        current.show();
        return;
    }
    Form hi = new Form("Native Maps Test");
    hi.setLayout(new BorderLayout());
    final MapContainer cnt = new MapContainer(HTML_API_KEY);
    // final MapContainer cnt = new MapContainer();
    // this breaks the code //because the Google map is not loaded yet
    cnt.setCameraPosition(new Coord(-26.1486233, 28.67401229999996));
    cnt.addMapListener(new MapListener() {

        @Override
        public void mapPositionUpdated(Component source, int zoom, Coord center) {
            System.out.println("Map position updated: zoom=" + zoom + ", Center=" + center);
        }
    });
    cnt.addLongPressListener(e -> {
        System.out.println("Long press");
        ToastBar.showMessage("Received longPress at " + e.getX() + ", " + e.getY(), FontImage.MATERIAL_3D_ROTATION);
    });
    cnt.addTapListener(e -> {
        ToastBar.showMessage("Received tap at " + e.getX() + ", " + e.getY(), FontImage.MATERIAL_3D_ROTATION);
    });
    int maxZoom = cnt.getMaxZoom();
    System.out.println("Max zoom is " + maxZoom);
    Button btnMoveCamera = new Button("Move Camera");
    btnMoveCamera.addActionListener(e -> {
        cnt.setCameraPosition(new Coord(-33.867, 151.206));
    });
    Style s = new Style();
    s.setFgColor(0xff0000);
    s.setBgTransparency(0);
    FontImage markerImg = FontImage.createMaterial(FontImage.MATERIAL_PLACE, s, 3);
    Button btnAddMarker = new Button("Add Marker");
    btnAddMarker.addActionListener(e -> {
        cnt.setCameraPosition(new Coord(41.889, -87.622));
        cnt.addMarker(EncodedImage.createFromImage(markerImg, false), cnt.getCameraPosition(), "Hi marker", "Optional long description", new ActionListener() {

            public void actionPerformed(ActionEvent evt) {
                System.out.println("Bounding box is " + cnt.getBoundingBox());
                ToastBar.showMessage("You clicked the marker", FontImage.MATERIAL_PLACE);
            }
        });
    });
    Button btnAddPath = new Button("Add Path");
    btnAddPath.addActionListener(e -> {
        cnt.addPath(cnt.getCameraPosition(), // Sydney
        new Coord(-33.866, 151.195), // Fiji
        new Coord(-18.142, 178.431), // Hawaii
        new Coord(21.291, -157.821), // Mountain View
        new Coord(37.423, -122.091));
    });
    Button panTo = new Button("Pan To");
    panTo.addActionListener(e -> {
        // bounds.extend(new google.maps.LatLng('66.057878', '-22.579047')); // Iceland
        // bounds.extend(new google.maps.LatLng('37.961952', '43.878878')); // Turkey
        Coord c1 = new Coord(49.0986192, -122.6764454);
        Coord c2 = new Coord(49.2577142, -123.1941149);
        // Coord center = new Coord(c1.getLatitude()/2 +  c2.getLatitude() / 2, c1.getLongitude()/2 + c2.getLongitude()/2 );
        Coord center = new Coord(49.1110928, -122.9414646);
        float zoom = cnt.getZoom();
        boolean[] finished = new boolean[1];
        cnt.addMapListener(new MapListener() {

            @Override
            public void mapPositionUpdated(Component source, int zoom, Coord c) {
                if (Math.abs(c.getLatitude() - center.getLatitude()) > .001 || Math.abs(c.getLongitude() - center.getLongitude()) > .001) {
                    return;
                }
                finished[0] = true;
                synchronized (finished) {
                    final MapListener fthis = this;
                    Display.getInstance().callSerially(() -> {
                        cnt.removeMapListener(fthis);
                    });
                    finished.notify();
                }
            }
        });
        cnt.zoom(center, (int) zoom);
        while (!finished[0]) {
            Display.getInstance().invokeAndBlock(() -> {
                while (!finished[0]) {
                    Util.wait(finished, 100);
                }
            });
        }
        BoundingBox box = cnt.getBoundingBox();
        if (!box.contains(c1) || !box.contains(c2)) {
            while (!box.contains(c1) || !box.contains(c2)) {
                if (!box.contains(c1)) {
                    System.out.println("Box " + box + " doesn't contain " + c1);
                }
                if (!box.contains(c1)) {
                    System.out.println("Box " + box + " doesn't contain " + c2);
                }
                zoom -= 1;
                final boolean[] done = new boolean[1];
                final int fzoom = (int) zoom;
                cnt.addMapListener(new MapListener() {

                    @Override
                    public void mapPositionUpdated(Component source, int zm, Coord center) {
                        if (zm == fzoom) {
                            final MapListener fthis = this;
                            Display.getInstance().callSerially(() -> {
                                cnt.removeMapListener(fthis);
                            });
                            done[0] = true;
                            synchronized (done) {
                                done.notify();
                            }
                        }
                    }
                });
                cnt.zoom(center, (int) zoom);
                while (!done[0]) {
                    Display.getInstance().invokeAndBlock(() -> {
                        while (!done[0]) {
                            Util.wait(done, 100);
                        }
                    });
                }
                box = cnt.getBoundingBox();
                System.out.println("Zoom now " + zoom);
            }
        } else if (box.contains(c1) && box.contains(c2)) {
            while (box.contains(c1) && box.contains(c2)) {
                zoom += 1;
                final boolean[] done = new boolean[1];
                final int fzoom = (int) zoom;
                cnt.addMapListener(new MapListener() {

                    public void mapPositionUpdated(Component source, int zm, Coord center) {
                        if (zm == fzoom) {
                            final MapListener fthis = this;
                            Display.getInstance().callSerially(() -> {
                                cnt.removeMapListener(fthis);
                            });
                            done[0] = true;
                            synchronized (done) {
                                done.notify();
                            }
                        }
                    }
                });
                cnt.zoom(center, (int) zoom);
                while (!done[0]) {
                    Display.getInstance().invokeAndBlock(() -> {
                        while (!done[0]) {
                            Util.wait(done, 100);
                        }
                    });
                }
                box = cnt.getBoundingBox();
            }
            zoom -= 1;
            cnt.zoom(center, (int) zoom);
            cnt.addTapListener(null);
        }
    });
    Button testCoordPositions = $(new Button("Test Coords")).addActionListener(e -> {
        Coord topLeft = cnt.getCoordAtPosition(0, 0);
        System.out.println("Top Left is " + topLeft + " -> " + cnt.getScreenCoordinate(topLeft) + " Should be (0,0)");
        Coord bottomRight = cnt.getCoordAtPosition(cnt.getWidth(), cnt.getHeight());
        System.out.println("Bottom right is " + bottomRight + " -> " + cnt.getScreenCoordinate(bottomRight) + " Should be " + cnt.getWidth() + ", " + cnt.getHeight());
        Coord bottomLeft = cnt.getCoordAtPosition(0, cnt.getHeight());
        System.out.println("Bottom Left is " + bottomLeft + " -> " + cnt.getScreenCoordinate(bottomLeft) + " Should be 0, " + cnt.getHeight());
        Coord topRight = cnt.getCoordAtPosition(cnt.getWidth(), 0);
        System.out.println("Top right is " + topRight + " -> " + cnt.getScreenCoordinate(topRight) + " Should be " + cnt.getWidth() + ", 0");
        Coord center = cnt.getCoordAtPosition(cnt.getWidth() / 2, cnt.getHeight() / 2);
        System.out.println("Center is " + center + " -> " + cnt.getScreenCoordinate(center) + ", should be " + (cnt.getWidth() / 2) + ", " + (cnt.getHeight() / 2));
        EncodedImage encImg = EncodedImage.createFromImage(markerImg, false);
        cnt.addMarker(encImg, topLeft, "Top Left", "Top Left", null);
        cnt.addMarker(encImg, topRight, "Top Right", "Top Right", null);
        cnt.addMarker(encImg, bottomRight, "Bottom Right", "Bottom Right", null);
        cnt.addMarker(encImg, bottomLeft, "Bottom Left", "Bottom Left", null);
        cnt.addMarker(encImg, center, "Center", "Center", null);
    }).asComponent(Button.class);
    Button toggleTopMargin = $(new Button("Toggle Margin")).addActionListener(e -> {
        int marginTop = $(cnt).getStyle().getMarginTop();
        if (marginTop < Display.getInstance().getDisplayHeight() / 3) {
            $(cnt).selectAllStyles().setMargin(Display.getInstance().getDisplayHeight() / 3, 0, 0, 0);
        } else {
            $(cnt).selectAllStyles().setMargin(0, 0, 0, 0);
        }
        $(cnt).getComponentForm().revalidate();
    }).asComponent(Button.class);
    Button btnClearAll = new Button("Clear All");
    btnClearAll.addActionListener(e -> {
        cnt.clearMapLayers();
    });
    MapObject mo = cnt.addMarker(EncodedImage.createFromImage(markerImg, false), new Coord(-33.866, 151.195), "test", "test", e -> {
        System.out.println("Marker clicked");
        cnt.removeMapObject(sydney);
    });
    sydney = mo;
    System.out.println("MO is " + mo);
    mo = cnt.addMarker(EncodedImage.createFromImage(markerImg, false), new Coord(-18.142, 178.431), "test", "test", e -> {
        System.out.println("Marker clicked");
    });
    System.out.println("MO is " + mo);
    cnt.addTapListener(e -> {
        if (tapDisabled) {
            return;
        }
        tapDisabled = true;
        TextField enterName = new TextField();
        Container wrapper = BoxLayout.encloseY(new Label("Name:"), enterName);
        InteractionDialog dlg = new InteractionDialog("Add Marker");
        dlg.getContentPane().add(wrapper);
        enterName.setDoneListener(e2 -> {
            String txt = enterName.getText();
            cnt.addMarker(EncodedImage.createFromImage(markerImg, false), cnt.getCoordAtPosition(e.getX(), e.getY()), enterName.getText(), "", e3 -> {
                ToastBar.showMessage("You clicked " + txt, FontImage.MATERIAL_PLACE);
            });
            dlg.dispose();
            tapDisabled = false;
        });
        dlg.showPopupDialog(new Rectangle(e.getX(), e.getY(), 10, 10));
        enterName.startEditingAsync();
    });
    Button showNextForm = $(new Button("Next Form")).addActionListener(e -> {
        Form form = new Form("Hello World");
        Button b1 = $(new Button("B1")).addActionListener(e2 -> {
            ToastBar.showMessage("B1 was pressed", FontImage.MATERIAL_3D_ROTATION);
        }).asComponent(Button.class);
        Button back = $(new Button("Back")).addActionListener(e2 -> {
            hi.showBack();
        }).asComponent(Button.class);
        form.add(b1);
    }).asComponent(Button.class);
    FloatingActionButton nextForm = FloatingActionButton.createFAB(FontImage.MATERIAL_ACCESS_ALARM);
    nextForm.addActionListener(e -> {
        Form form = new Form("Hello World");
        Button b1 = $(new Button("B1")).addActionListener(e2 -> {
            ToastBar.showMessage("B1 was pressed", FontImage.MATERIAL_3D_ROTATION);
        }).asComponent(Button.class);
        Button back = $(new Button("Back")).addActionListener(e2 -> {
            hi.showBack();
        }).asComponent(Button.class);
        form.add(b1).add(back);
        form.show();
    });
    Container root = LayeredLayout.encloseIn(BorderLayout.center(nextForm.bindFabToContainer(cnt)), BorderLayout.south(FlowLayout.encloseBottom(panTo, testCoordPositions, toggleTopMargin, btnMoveCamera, btnAddMarker, btnAddPath, btnClearAll)));
    hi.add(BorderLayout.CENTER, root);
    hi.show();
}
Also used : Util(com.codename1.io.Util) BoxLayout(com.codename1.ui.layouts.BoxLayout) ActionEvent(com.codename1.ui.events.ActionEvent) LayeredLayout(com.codename1.ui.layouts.LayeredLayout) MapObject(com.codename1.googlemaps.MapContainer.MapObject) MapListener(com.codename1.maps.MapListener) Form(com.codename1.ui.Form) Container(com.codename1.ui.Container) BoundingBox(com.codename1.maps.BoundingBox) ComponentSelector.$(com.codename1.ui.ComponentSelector.$) TextField(com.codename1.ui.TextField) Display(com.codename1.ui.Display) FontImage(com.codename1.ui.FontImage) Button(com.codename1.ui.Button) Label(com.codename1.ui.Label) Component(com.codename1.ui.Component) Rectangle(com.codename1.ui.geom.Rectangle) EncodedImage(com.codename1.ui.EncodedImage) MapContainer(com.codename1.googlemaps.MapContainer) FlowLayout(com.codename1.ui.layouts.FlowLayout) Resources(com.codename1.ui.util.Resources) IOException(java.io.IOException) ActionListener(com.codename1.ui.events.ActionListener) BorderLayout(com.codename1.ui.layouts.BorderLayout) Style(com.codename1.ui.plaf.Style) Coord(com.codename1.maps.Coord) UIManager(com.codename1.ui.plaf.UIManager) ToastBar(com.codename1.components.ToastBar) FloatingActionButton(com.codename1.components.FloatingActionButton) SideMenuBar(com.codename1.ui.SideMenuBar) InteractionDialog(com.codename1.components.InteractionDialog) Form(com.codename1.ui.Form) ActionEvent(com.codename1.ui.events.ActionEvent) Label(com.codename1.ui.Label) Rectangle(com.codename1.ui.geom.Rectangle) MapContainer(com.codename1.googlemaps.MapContainer) InteractionDialog(com.codename1.components.InteractionDialog) Container(com.codename1.ui.Container) MapContainer(com.codename1.googlemaps.MapContainer) BorderLayout(com.codename1.ui.layouts.BorderLayout) Button(com.codename1.ui.Button) FloatingActionButton(com.codename1.components.FloatingActionButton) BoundingBox(com.codename1.maps.BoundingBox) Style(com.codename1.ui.plaf.Style) TextField(com.codename1.ui.TextField) FloatingActionButton(com.codename1.components.FloatingActionButton) Component(com.codename1.ui.Component) FontImage(com.codename1.ui.FontImage) MapObject(com.codename1.googlemaps.MapContainer.MapObject) EncodedImage(com.codename1.ui.EncodedImage) Coord(com.codename1.maps.Coord) ActionListener(com.codename1.ui.events.ActionListener) MapListener(com.codename1.maps.MapListener)

Example 83 with Button

use of com.codename1.ui.Button in project codenameone-google-maps by codenameone.

the class MapInfoPanel method show.

public void show() {
    if (getParent() != null) {
        return;
    }
    Display disp = Display.getInstance();
    if (disp.isTablet()) {
        if (disp.isPortrait()) {
            markers.setLayout(new BoxLayout(BoxLayout.X_AXIS));
            for (Component marker : markers) {
                if (marker instanceof Button) {
                    Button btnMarker = (Button) marker;
                    btnMarker.setTextPosition(Label.BOTTOM);
                }
            }
            InteractionDialog dlg = new InteractionDialog("Map Info");
            dlg.setLayout(new BorderLayout());
            dlg.add(BorderLayout.CENTER, this);
            int dh = disp.getDisplayHeight();
            int dw = disp.getDisplayWidth();
            dlg.show(3 * dh / 4, 0, 0, 0);
            updateMapPosition();
        } else {
            markers.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
            for (Component marker : markers) {
                if (marker instanceof Button) {
                    Button btnMarker = (Button) marker;
                    btnMarker.setTextPosition(Label.RIGHT);
                }
            }
            InteractionDialog dlg = new InteractionDialog("Map Info");
            dlg.setLayout(new BorderLayout());
            dlg.add(BorderLayout.CENTER, this);
            int dh = disp.getDisplayHeight();
            int dw = disp.getDisplayWidth();
            // makeTransparent(dlg);
            dlg.getAllStyles().setBorder(Border.createEmpty());
            dlg.getAllStyles().setBgColor(0x0);
            dlg.getAllStyles().setBgTransparency(128);
            List<Component> dialogTitle = findByUIID("DialogTitle", dlg);
            for (Component c : dialogTitle) {
                c.getAllStyles().setFgColor(0xffffff);
            }
            List<Component> tabsContainer = findByUIID("TabsContainer", dlg);
            for (Component c : tabsContainer) {
                c.getAllStyles().setBgColor(0xEAEAEA);
                // c.getAllStyles().setBackgroundType(Style.BACKGROUND_NONE);
                c.getAllStyles().setBgTransparency(255);
            }
            ;
            dlg.show(0, 0, 0, dw * 3 / 4);
            updateMapPosition();
            System.out.println("Making transparent");
        // makeTransparent(dlg);
        }
    } else {
        if (disp.isPortrait()) {
            markers.setLayout(new BoxLayout(BoxLayout.X_AXIS));
            for (Component marker : markers) {
                if (marker instanceof Button) {
                    Button btnMarker = (Button) marker;
                    btnMarker.setTextPosition(Label.BOTTOM);
                }
            }
            InteractionDialog dlg = new InteractionDialog("Map Info");
            dlg.setLayout(new BorderLayout());
            dlg.add(BorderLayout.CENTER, this);
            int dh = disp.getDisplayHeight();
            int dw = disp.getDisplayWidth();
            dlg.show(dh / 2, 0, 0, 0);
            updateMapPosition();
        } else {
            markers.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
            for (Component marker : markers) {
                if (marker instanceof Button) {
                    Button btnMarker = (Button) marker;
                    btnMarker.setTextPosition(Label.RIGHT);
                }
            }
            InteractionDialog dlg = new InteractionDialog("Map Info");
            dlg.setLayout(new BorderLayout());
            dlg.add(BorderLayout.CENTER, this);
            int dh = disp.getDisplayHeight();
            int dw = disp.getDisplayWidth();
            dlg.show(0, dw / 2, 0, 0);
            updateMapPosition();
        }
    }
}
Also used : InteractionDialog(com.codename1.components.InteractionDialog) BorderLayout(com.codename1.ui.layouts.BorderLayout) Button(com.codename1.ui.Button) BoxLayout(com.codename1.ui.layouts.BoxLayout) Component(com.codename1.ui.Component) Display(com.codename1.ui.Display)

Aggregations

Button (com.codename1.ui.Button)31 BorderLayout (com.codename1.ui.layouts.BorderLayout)25 ActionEvent (com.codename1.ui.events.ActionEvent)21 Container (com.codename1.ui.Container)18 ActionListener (com.codename1.ui.events.ActionListener)17 Component (com.codename1.ui.Component)14 RadioButton (com.codename1.ui.RadioButton)14 Form (com.codename1.ui.Form)12 Label (com.codename1.ui.Label)11 BoxLayout (com.codename1.ui.layouts.BoxLayout)11 TextArea (com.codename1.ui.TextArea)10 Hashtable (java.util.Hashtable)9 Command (com.codename1.ui.Command)8 Image (com.codename1.ui.Image)8 TextField (com.codename1.ui.TextField)8 FlowLayout (com.codename1.ui.layouts.FlowLayout)8 GridLayout (com.codename1.ui.layouts.GridLayout)8 UIManager (com.codename1.ui.plaf.UIManager)8 CheckBox (com.codename1.ui.CheckBox)7 Style (com.codename1.ui.plaf.Style)7