org.openstreetmap.beboj.client.gui.Toolbar.java Source code

Java tutorial

Introduction

Here is the source code for org.openstreetmap.beboj.client.gui.Toolbar.java

Source

// License: GPL. For details, see LICENSE file.
package org.openstreetmap.beboj.client.gui;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.PushButton;

import org.openstreetmap.beboj.client.Beboj;
import org.openstreetmap.beboj.client.data.SampleDataSet;
import org.openstreetmap.beboj.client.imagery.OpenLayers;
import org.openstreetmap.beboj.client.io.API;
import org.openstreetmap.beboj.client.io.APIAsync;
import org.openstreetmap.beboj.shared.data.osm.SimpleDataSet;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.data.osm.DataSet;
import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
import org.openstreetmap.josm.gui.DiscreteZoomNavigationSupport;
import org.openstreetmap.josm.gui.layer.OsmDataLayer;

public class Toolbar extends HorizontalPanel {

    public Toolbar() {
        setSpacing(2);

        Image i1 = new Image("images/download.png");
        Image i2 = new Image("images/upload.png");
        Image i3 = new Image("images/preference.png");
        Image i5 = new Image("images/imagery_menu.png");
        Image i7 = new Image("images2/zoom-in.png");
        Image i8 = new Image("images2/zoom-out.png");

        PushButton t1 = new PushButton(i1, new DownloadCommand());
        PushButton t1a = new PushButton("Load sample dataset", new SampleDataSetCommand());
        PushButton t2 = new PushButton(i2, new UploadCommand());
        PushButton t3 = new PushButton(i3, new PrefCommand());
        t3.setEnabled(false);
        PushButton t4 = new PushButton("Repaint", new RepaintCommand());
        PushButton t5 = new PushButton(i5, new ImageryCommand());

        PushButton t6 = new PushButton("zoomToData", new ZoomToDataCommand());
        PushButton t7 = new PushButton(i7, new ZoomInCommand());
        PushButton t8 = new PushButton(i8, new ZoomOutCommand());

        add(t1);
        add(t1a);
        add(t2);
        add(t3);
        add(t4);
        add(t5);
        add(t6);
        add(t7);
        add(t8);
    }

    public class DownloadCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            APIAsync as = GWT.create(API.class);
            as.downloadOsmData(51.1284616, 1.3162029, 51.1288925, 1.3168412, new AsyncCallback<SimpleDataSet>() {

                @Override
                public void onFailure(Throwable caught) {
                    Window.alert("downloadOsmData/RPC failure");
                }

                @Override
                public void onSuccess(SimpleDataSet result) {
                    Window.alert("downloadOsmData/RPC success " + result);
                    OsmDataLayer target = Main.main.getEditLayer();
                    DataSet newData = result.toDataSet();
                    target.mergeFrom(newData);
                }
            });
        }
    }

    public class SampleDataSetCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            SampleDataSet.loadSampleDataSet();
            zoomToData();
            Beboj.canvasView.repaint();
        }
    }

    public class UploadCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            new UploadDialog().show();
        }
    }

    public class PrefCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
        }
    }

    public class RepaintCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            Beboj.canvasView.repaint();
        }
    }

    public class ImageryCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            DiscreteZoomNavigationSupport nav = (DiscreteZoomNavigationSupport) Main.map.mapView.nav;
            Beboj.olmap = OpenLayers.newMap(nav.getZoom(), nav.getCenter().east(), nav.getCenter().north());
            GWT.log("res " + Beboj.olmap.getResolution());
        }
    }

    public class ZoomToDataCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            zoomToData();
        }
    }

    public void zoomToData() {
        BoundingXYVisitor bboxCalculator = new BoundingXYVisitor();
        Main.main.getEditLayer().visitBoundingBox(bboxCalculator);
        Main.map.mapView.recalculateCenterScale(bboxCalculator);
    }

    public class ZoomInCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            DiscreteZoomNavigationSupport nav = (DiscreteZoomNavigationSupport) Main.map.mapView.nav;
            nav.zoomIn();
        }
    }

    public class ZoomOutCommand implements ClickHandler {
        @Override
        public void onClick(ClickEvent event) {
            DiscreteZoomNavigationSupport nav = (DiscreteZoomNavigationSupport) Main.map.mapView.nav;
            nav.zoomOut();
        }
    }
}