Home | Trees | Indices | Help |
|
---|
|
1 # Copyright (C) 2012 Vaadin Ltd. 2 # Copyright (C) 2012 Richard Lincoln 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 16 from random \ 17 import random, randint, getrandbits 18 19 from muntjac.api \ 20 import Application, Window, Label, GridLayout, Button 21 22 from muntjac.ui.button \ 23 import IClickListener 24 25 from muntjac.ui.window \ 26 import Notification 27 28 from muntjac.addon.google_maps.google_map \ 29 import GoogleMap, MapControl, IMarkerClickListener, \ 30 IMarkerMovedListener, IMapMoveListener 31 32 from muntjac.addon.google_maps.overlay.basic_marker \ 33 import BasicMarker 34 35 from muntjac.addon.google_maps.overlay.polygon \ 36 import Polygon 37 3840136 137 142 14342 # super(GoogleMapWidgetApp, self).__init__() 43 44 self.setMainWindow(Window('Google Map add-on demo')) 45 46 # Create a new map instance centered on the IT Mill offices 47 self._googleMap = GoogleMap(self, (22.3, 60.4522), 8) 48 49 self._googleMap.setWidth('640px') 50 self._googleMap.setHeight('480px') 51 52 # Create a marker at the IT Mill offices 53 self._mark1 = BasicMarker(1L, (22.3, 60.4522), 'Test marker 1') 54 self._mark2 = BasicMarker(2L, (22.4, 60.4522), 'Test marker 2') 55 self._mark3 = BasicMarker(4L, (22.6, 60.4522), 'Test marker 3') 56 self._mark4 = BasicMarker(5L, (22.7, 60.4522), 'Test marker 4') 57 58 l = MarkerClickListener(self) 59 self._googleMap.addListener(l, IMarkerClickListener) 60 61 # Marker with information window pupup 62 self._mark5 = BasicMarker(6L, (22.8, 60.4522), 'Marker 5') 63 self._mark5.setInfoWindowContent(self._googleMap, 64 Label('Hello Marker 5!')) 65 66 content = Label('Hello Marker 2!') 67 content.setWidth('60px') 68 self._mark2.setInfoWindowContent(self._googleMap, content) 69 70 self._googleMap.addMarker(self._mark1) 71 self._googleMap.addMarker(self._mark2) 72 self._googleMap.addMarker(self._mark3) 73 self._googleMap.addMarker(self._mark4) 74 self._googleMap.addMarker(self._mark5) 75 self.getMainWindow().getContent().addComponent(self._googleMap) 76 77 # Add a Marker click listener to catch marker click events. 78 # Note, works only if marker has information window content 79 l = MarkerClickListener2(self) 80 self._googleMap.addListener(l, IMarkerClickListener) 81 82 # Add a MarkerMovedListener to catch events when a marker is dragged to 83 # a new location 84 l = MarkerMovedListener(self) 85 self._googleMap.addListener(l, IMarkerMovedListener) 86 87 l = MapMoveListener(self) 88 self._googleMap.addListener(l, IMapMoveListener) 89 90 self._googleMap.addControl(MapControl.MapTypeControl) 91 92 self.addTestButtons() # Add buttons that trigger tests map features93 9496 grid = GridLayout(4, 1) 97 grid.setSpacing(True) 98 self.getMainWindow().addComponent(grid) 99 100 l = DraggabilityClickListener(self) 101 grid.addComponent(Button('Toggle marker 3 draggability', l)) 102 103 l = VisibilityClickListener(self) 104 grid.addComponent(Button('Toggle marker 4 visibility', l)) 105 106 l = RandomizeClickListener(self) 107 grid.addComponent(Button('Randomize Marker 5 location', l)) 108 109 l = UpdateClickListener(self) 110 grid.addComponent(Button('Update marker 5 title', l)) 111 112 l = RemoveClickListener(self) 113 grid.addComponent(Button('Remove \"Test marker2\"', l)) 114 115 l = AddClickListener(self) 116 grid.addComponent(Button('Add \"Test marker2\"', l)) 117 118 l = ToggleMarkerClickListener(self) 119 grid.addComponent(Button('Toggle marker 1 icon', l)) 120 121 l = ToggleLoggingClickListener(self) 122 grid.addComponent(Button('Toggle client logging', l)) 123 124 # Popup test 125 l = PopupClickListener(self) 126 grid.addComponent(Button('Open a map in a popup', l)) 127 128 l = ResizeClickListener(self) 129 grid.addComponent(Button('Resize map', l)) 130 131 l = DrawClickListener(self) 132 grid.addComponent(Button('Draw polygon', l)) 133 134 l = RemovePolygonClickListener(self) 135 grid.addComponent(Button('Remove first polygon', l))145153 154147 if (clickedMarker.getIconUrl() is not None 148 and 'green' in clickedMarker.getIconUrl()): 149 clickedMarker.setIconUrl('VAADIN/themes/reindeer/icon/red.png') 150 else: 151 clickedMarker.setIconUrl('VAADIN/themes/reindeer/icon/green.png') 152 self._app._googleMap.requestRepaint()156161 162158 self._app.getMainWindow().showNotification('Marker ' 159 + clickedMarker.getTitle() + ' clicked', 160 Notification.TYPE_TRAY_NOTIFICATION)164170 171166 self._app.getMainWindow().showNotification('Marker ' 167 + movedMarker.getTitle() + ' moved to ' 168 + str(movedMarker.getLatLng()), 169 Notification.TYPE_TRAY_NOTIFICATION)173178 179 185 186 192 193 200 201 209 210 215 216 221 222 236 237 251 252 267 268 278 279 292 293 305 306 307 if __name__ == '__main__': 308 from muntjac.main import muntjac 309 muntjac(GoogleMapWidgetApp, nogui=True, forever=True, debug=True) 310175 self._app.getMainWindow().showNotification('Zoom ' + str(newZoomLevel) 176 + ' center ' + str(newCenter) + ' bounds ' + str(boundsNE) 177 + '/' + str(boundsSW), Notification.TYPE_TRAY_NOTIFICATION)
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Fri Jun 5 20:45:14 2015 | http://epydoc.sourceforge.net |