List of usage examples for com.google.gwt.maps.client.events.zoom ZoomChangeMapHandler ZoomChangeMapHandler
ZoomChangeMapHandler
From source file:gov.nist.spectrumbrowser.client.SpectrumBrowserShowDatasets.java
License:Open Source License
public void draw() { try {/* w w w . j a va2s.c om*/ spectrumBrowser.showWaitImage(); Window.setTitle("MSOD:Home"); SpectrumBrowser.clearSensorInformation(); sensorMarkers.clear(); SensorGroupMarker.clear(); verticalPanel.clear(); navigationBar = new MenuBar(); navigationBar.clearItems(); verticalPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); verticalPanel.add(navigationBar); HorizontalPanel mapAndSensorInfoPanel = new HorizontalPanel(); mapAndSensorInfoPanel.setStyleName("mapAndSensorInfoPanel"); HTML html = new HTML("<h2>" + END_LABEL + "</h2> ", true); verticalPanel.add(html); String help = "Click on a sensor marker to select it. " + "Then select start date and and duration of interest."; helpLabel = new Label(); helpLabel.setText(help); verticalPanel.add(helpLabel); ScrollPanel scrollPanel = new ScrollPanel(); scrollPanel.setHeight(SpectrumBrowser.MAP_WIDTH + "px"); scrollPanel.setStyleName("sensorInformationScrollPanel"); sensorInfoPanel = new VerticalPanel(); sensorInfoPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); scrollPanel.add(sensorInfoPanel); sensorInfoPanel.setStyleName("sensorInfoPanel"); mapAndSensorInfoPanel.add(scrollPanel); selectionGrid = new Grid(1, 10); selectionGrid.setStyleName("selectionGrid"); selectionGrid.setVisible(false); for (int i = 0; i < selectionGrid.getRowCount(); i++) { for (int j = 0; j < selectionGrid.getColumnCount(); j++) { selectionGrid.getCellFormatter().setHorizontalAlignment(i, j, HasHorizontalAlignment.ALIGN_CENTER); selectionGrid.getCellFormatter().setVerticalAlignment(i, j, HasVerticalAlignment.ALIGN_MIDDLE); } } verticalPanel.add(selectionGrid); sensorInfoPanel.clear(); //sensorInfoPanel.setTitle("Click on marker to select sensors."); Label selectedMarkersLabel = new Label(); selectedMarkersLabel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); selectedMarkersLabel.setText("Sensor Information Display"); selectedMarkersLabel.getElement().getStyle().setCursor(Cursor.TEXT); selectedMarkersLabel.setStyleName("selectedMarkersLabel"); sensorInfoPanel.add(selectedMarkersLabel); if (map == null) { MapOptions mapOptions = MapOptions.newInstance(true); mapOptions.setMaxZoom(15); mapOptions.setMinZoom(3); mapOptions.setStreetViewControl(false); map = new MapWidget(mapOptions); //map.setTitle("Click on a marker to display information about a sensor."); map.setSize(SpectrumBrowser.MAP_WIDTH + "px", SpectrumBrowser.MAP_HEIGHT + "px"); } else if (map.getParent() != null) { map.removeFromParent(); } mapAndSensorInfoPanel.add(map); verticalPanel.add(mapAndSensorInfoPanel); logger.finer("getLocationInfo"); spectrumBrowser.getSpectrumBrowserService().getLocationInfo(SpectrumBrowser.getSessionToken(), new SpectrumBrowserCallback<String>() { @Override public void onFailure(Throwable caught) { logger.log(Level.SEVERE, "Error in processing request", caught); verticalPanel.clear(); if (spectrumBrowser.isUserLoggedIn()) { Window.alert("The system is down for maintenance. Please try again later.\n" + caught.getMessage()); spectrumBrowser.logoff(); } else { HTML error = new HTML( "<h1>The System is down for maintenance. Please try later.</h1>"); verticalPanel.add(error); HTML errorMsg = new HTML("<h2>" + caught.getMessage() + "</h2>"); verticalPanel.add(errorMsg); } } @Override public void onSuccess(String jsonString) { try { logger.finer(jsonString); JSONObject jsonObj = (JSONObject) JSONParser.parseLenient(jsonString); String baseUrl = SpectrumBrowser.getBaseUrlAuthority(); addSensor(jsonObj, baseUrl); logger.finer("Added returned sensors. Dealing with peers"); // Now deal with the peers. final JSONObject peers = jsonObj.get("peers").isObject(); // By definition, peers do not need login but we need a session // Key to talk to the peer so go get one. for (String url : peers.keySet()) { logger.finer("Showing sensors for Peer " + url); final String peerUrl = url; spectrumBrowser.getSpectrumBrowserService().isAuthenticationRequired(url, new SpectrumBrowserCallback<String>() { @Override public void onSuccess(String result) { JSONObject jobj = JSONParser.parseLenient(result).isObject(); boolean authRequired = jobj.get("AuthenticationRequired") .isBoolean().booleanValue(); if (!authRequired) { String sessionToken = jobj.get("SessionToken").isString() .stringValue(); SpectrumBrowser.setSessionToken(peerUrl, sessionToken); JSONObject peerObj = peers.get(peerUrl).isObject(); addSensor(peerObj, peerUrl); } } @Override public void onFailure(Throwable throwable) { logger.log(Level.SEVERE, "Could not contact peer at " + peerUrl, throwable); } }); } final Timer timer = new Timer() { @Override public void run() { if (getMap().isAttached()) { spectrumBrowser.hideWaitImage(); showMarkers(); cancel(); } } }; timer.scheduleRepeating(500); populateMenuItems(); map.addZoomChangeHandler(new ZoomChangeMapHandler() { @Override public void onEvent(ZoomChangeMapEvent event) { SensorGroupMarker.showMarkers(); } }); } catch (Exception ex) { logger.log(Level.SEVERE, "Error ", ex); spectrumBrowser.displayError("Error parsing json response"); } } } ); } catch (Exception ex) { logger.log(Level.SEVERE, "Error in displaying data sets", ex); } }
From source file:net.cbtltd.client.form.SearchForm.java
private MapField createMap() { mapField = new MapField(this, null, tab++); mapField.setFieldStyle(CSS.mapStyle()); mapField.setEnabled(true);//from w w w. j ava 2 s .c o m mapField.setPositionVisible(false); mapField.setStreetviewVisible(false); mapField.setStreetviewClickable(false); mapField.setZoom(Math.max(3, AbstractRoot.getIntegerValue(Party.Value.ZoomLevel.name()))); mapField.setMapTypeId(MapTypeId.HYBRID); mapField.setDefaultValue(LatLng.newInstance(AbstractRoot.getDoubleValue(Party.Value.Latitude.name()), AbstractRoot.getDoubleValue(Party.Value.Longitude.name()))); mapField.setScrollWheelZoomEnabled(false); mapField.setZoom(AbstractRoot.getIntegerValue(Party.Value.ZoomLevel.name())); mapField.addZoomChangeHandler(new ZoomChangeMapHandler() { public void onEvent(ZoomChangeMapEvent event) { int zoom = mapField.getZoom().intValue(); int value = Math.max(0, ZOOM_BASE - zoom); if (zoom > ZOOM_POSITIONS) { distanceField.setValue(value); //TODO: availableTable.execute(); } else { availableTable.clear(); //setValue(null); productPositions.execute(); } } }); return mapField; }