From e1cb34cf385fe10ae2bb8bb51aee2ab165215261 Mon Sep 17 00:00:00 2001 From: DennisSchiefer Date: Thu, 23 Aug 2012 17:08:55 +0100 Subject: [PATCH] further restructuring of gui buttons --- WebContent/base/OSRM.Map.js | 6 +- ...Control.Goto.js => L.Control.Locations.js} | 28 ++-- WebContent/base/leaflet/L.Control.Zoom.js | 19 +++ WebContent/gui/OSRM.RoutingGUI.js | 4 +- WebContent/images/control_layers.png | Bin 578 -> 871 bytes WebContent/images/control_zoom_route.png | Bin 830 -> 701 bytes WebContent/images/control_zoom_user.png | Bin 1133 -> 1090 bytes WebContent/main.css | 150 +++++++++++++----- WebContent/main.html | 1 + 9 files changed, 152 insertions(+), 56 deletions(-) rename WebContent/base/leaflet/{L.Control.Goto.js => L.Control.Locations.js} (63%) diff --git a/WebContent/base/OSRM.Map.js b/WebContent/base/OSRM.Map.js index 1a96fb774..7b2e1b803 100644 --- a/WebContent/base/OSRM.Map.js +++ b/WebContent/base/OSRM.Map.js @@ -55,9 +55,13 @@ init: function() { fadeAnimation: false }); + // add locations control + var locationsControl = new L.Control.Locations(); + OSRM.G.map.addControl(locationsControl); + // add layer control var layerControl = new L.Control.QueryableLayers(base_maps, {}); - OSRM.G.map.addLayerControl(layerControl); + OSRM.G.map.addLayerControl(layerControl); // move zoom markers OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.left=(OSRM.G.main_handle.boxWidth()+10)+"px"; diff --git a/WebContent/base/leaflet/L.Control.Goto.js b/WebContent/base/leaflet/L.Control.Locations.js similarity index 63% rename from WebContent/base/leaflet/L.Control.Goto.js rename to WebContent/base/leaflet/L.Control.Locations.js index 6b2b4ba1e..ae7f631e3 100644 --- a/WebContent/base/leaflet/L.Control.Goto.js +++ b/WebContent/base/leaflet/L.Control.Locations.js @@ -15,32 +15,34 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA or see http://www.gnu.org/licenses/agpl.txt. */ -// goto Layers control -// [used to add clickable buttons to the map] -L.Control.Goto = L.Control.extend({ +// locations control +// [buttons to important locations - zoom on route, zoom on user] +L.Control.Locations = L.Control.extend({ options: { position: 'topright' }, onAdd: function (map) { - var className = 'leaflet-control-goto', + var className = 'leaflet-control-locations', container = L.DomUtil.create('div', className); - this._createButton('Goto Location', className + '-my-location', container, map.zoomIn, map); - this._createButton('Goto Route', className + '-route', container, map.zoomOut, map); + this._createButton('Goto Location', className + '-user', container, OSRM.GUI.zoomOnUser, map); + this._createButton('Goto Route', className + '-route', container, OSRM.GUI.zoomOnRoute, map); return container; }, _createButton: function (title, className, container, fn, context) { var link = L.DomUtil.create('a', className, container); - link.href = '#'; + link.id = className; link.title = title; L.DomEvent .on(link, 'click', L.DomEvent.stopPropagation) .on(link, 'click', L.DomEvent.preventDefault) .on(link, 'click', fn, context) + .on(link, 'mousedown', function() { this.className = this.id + "-active"; } ) + .on(link, 'mouseup', function() { this.className = this.id + ""; } ) .on(link, 'dblclick', L.DomEvent.stopPropagation); return link; @@ -48,16 +50,16 @@ L.Control.Goto = L.Control.extend({ }); L.Map.mergeOptions({ - gotoControl: true + locationsControl: false }); L.Map.addInitHook(function () { - if (this.options.gotoControl) { - this.gotoControl = new L.Control.Goto(); - this.addControl(this.gotoControl); + if (this.options.locationsControl) { + this.locationsControl = new L.Control.Locations(); + this.addControl(this.locationsControl); } }); -L.control.Goto = function (options) { - return new L.Control.Goto(options); +L.control.locations = function (options) { + return new L.Control.Locations(options); }; \ No newline at end of file diff --git a/WebContent/base/leaflet/L.Control.Zoom.js b/WebContent/base/leaflet/L.Control.Zoom.js index 69cd953e2..1cdf06ac0 100644 --- a/WebContent/base/leaflet/L.Control.Zoom.js +++ b/WebContent/base/leaflet/L.Control.Zoom.js @@ -1,3 +1,22 @@ +/* +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU AFFERO General Public License as published by +the Free Software Foundation; either version 3 of the License, or +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +or see http://www.gnu.org/licenses/agpl.txt. +*/ + +// zoom control +// [control moves with sidebar and changes color when clicked] L.Control.Zoom = L.Control.extend({ options: { position: 'topleft' diff --git a/WebContent/gui/OSRM.RoutingGUI.js b/WebContent/gui/OSRM.RoutingGUI.js index 2616233d4..5915affaa 100644 --- a/WebContent/gui/OSRM.RoutingGUI.js +++ b/WebContent/gui/OSRM.RoutingGUI.js @@ -47,11 +47,13 @@ init: function() { // toggle GUI features that need a route to work activateRouteFeatures: function() { OSRM.Printing.activate(); - document.getElementById("gui-zoom").className = "button"; + document.getElementById("gui-zoom").className = "button"; + document.getElementById('leaflet-control-locations-route').className = "leaflet-control-locations-route"; }, deactivateRouteFeatures: function() { OSRM.Printing.deactivate(); document.getElementById("gui-zoom").className = "button-inactive"; + document.getElementById('leaflet-control-locations-route').className = "leaflet-control-locations-route-inactive"; }, // click: button "reset" diff --git a/WebContent/images/control_layers.png b/WebContent/images/control_layers.png index bb4f325117b61c616b961399d1b6fe31c6e9cc1b..36af8c871ba73085574ef503ca95531432db48ff 100644 GIT binary patch literal 871 zcmV-t1DO1YP)eZ_&#l^*c3JVK=Cf9<#zP@ks=FMBof=j{r_3JAaEn1`# z5D*~n?AbGtEqMR_J;U6&bGJrCMd@Mn5y&SXOJ>fTsp;nC7Az$t#lgtPNRlOAzkdC< zcJ11&zP`TiGJpW6{|7U=B7J@RDxg<&TwGj&q@|@vw&e5Y&kXCgpN{w1kr!pR8H4W@}JT&>vuEznPer{D#L7$P!?fYP-9; zgMy2V)Hnh8Wb@|DJpuv(n=LFXq(6Q7WD62+ZEfWRQggsg2D+kp(xgcWPEJmNGBPq; zq+0Up*Dr<*8#e6m@bHk=)zt+%^5x5y|E5o$z9uy_l`SD5p%QEnF!=_&efxF;h<)qU zEp}iW$^ZEAgU8R$kChmUZr{Gm3k;$K#>U3dpx}P}`t_fsOP8(#rnu)oT!0csFaT6A zaoMtE;xREXL879fL|KFk-n@CkuyEnR6|u3gFC!x(%YhdEL{ALt%aoPMlg;iBmOQ7aH($mv>4^IprOMpI+jEjp4BGVF(8Kpu(Lfh5V z)dhh<93XLE5)T1Vv%x-EuwX&^#EBDsB_}6`NJ>gFk!s2J@821KrO2hk#6%Y@EiF!v z*u8uAzR#I6XB|-NK}bkQD=aZM0~5nu5c~P_=iCz}OfY0)V-pSz4(1@nBA^~#p#DxB z9UUQ1VtDZ2!7pGutp&#ORbZZKMTsM5cyi5{F=N`{!-s{kva-B+d3j0l9Z)~WlJE29 z&tD6S=No~6f$czx|AFLKkQDLEnl-BrWC<`_eSwyc98W+?egG5GMvx^ipTGbM)DjM$ zPo^OGgd_`~KKTLl$#sxV(A9v0uD7?hd&!a|56jBRyv4-CNcIV^j05GJ57E)lSI~We x0)R=aUEb}ow)_A9002ovPDHLkV1j#@ln?*_ literal 578 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$_7YEDSN1y`Vm!R6(zDVefI^%F z9+AZi4BSE>%y{W;-5;PJOS+@4BLl<6e(pbstUx|nNswPKkOqRhW$Y6f7#R0^x;TbZ z+RfUb8+T`zs-+$Zk9De=v){WMGZ$8F|xHjKZZa;kR%s=dI(-))jC5 zFXs-tsqLOss<`c&{*`h?t?K*V{g(${me1XMGe%FmRJ=$=-E-2xHxvKX<)`u2?3yss z*5IYnyyr7-I$zhjV&p&HArtPM3vZlq-a0PlF5JeRDxQ?b|2DQ`f30sr;Z5gYaj9gTe~DWM4f+&=hH diff --git a/WebContent/images/control_zoom_route.png b/WebContent/images/control_zoom_route.png index 55a1b3dca23c6e3b02ab832f3329cfbcbd5ab7d4..c178297047385bcf0b2fa16f416766a4f13bd466 100644 GIT binary patch literal 701 zcmV;u0z&+fP3CLYuC3`D-jS3+5-~0FP&oMDE>5^g*3yAph=Z`2b%$boT3JMDNH*ek?4`j*! zUGEBXOzf^*yS{NyA}C0CczCWV zDJeaI$#HOS+yuszc6xd`3(@feErN~%J#+>{!!R(yKQTa)GSJ}9dU|?_NXeC%ot^!7 zVPT;(N%;t5@Z`yprI01GwYAGY@d3gT5)$j`>+3m?<$*rzk(HH=C)OesTt2;WNC~>y{{DUeQi_zNOP2})gYP_$&4Nn}FwS}8 z<>eztDuS?KMMcGfc6N4-KsFOLc~EqKqJ^X)2pzb)yBj@u@C@|^rKNih95}#? zPdy{K6(2BxtbY0OWe~^=U|jtY6BFC;@83U^(gK)rxqyyQ0oq~3LXIU+L*Bq$%gFcx zXxLVu#jlXn0E;RiAe9SG4CG*7$ss8&F1`R%$O4O|2tsj0QDPv3sgf9o0dL;C0R?3c jMTvn_FnC)*gWe(lX|A9sEziEW00000NkvXXu0mjfE+#2M literal 830 zcmV-E1Ht@>P)T000SaNLh0L01FZT01FZU(%pXi00004XF*Lt006O%3;baP0008bNklCZpe$+g5Ux-Z z6PGymO!1SfL~*e1Ue0&t!^JQRi-jvjz!rcFPXJp0Har1r0od>aFecsYcBOv5->cW_ zi)yvH!abf*7(gB%*+!$$bE#DNil+WPZg_@1X?cp0iO_nzuHdWdzIH^yZn0R@E0xMx zN+!`I(Cu~yr%WAvct=tuQ3B@kdBes#7fXPP5GA0|Xv}TAV-wy9N=*cm%jJ!(56TaR z!?vXIdq~FI$h_YRhnU~%^AdmHUyzX_xGW|fVQ2@I7X zK5gB*;s-MM0Hn6{FGvL-ceA_3TvM(hM>t=Vk8rA_dc{XNAGWbwqS)#^?c z0SbpGfOkyIk&zGN76#8Lb2I#a^+X5__vdb?&Xs{mfXyadA8;lLC?FreRmu@MOMvZA zh@=c-#>Z8r?-YU{2ysO?KF$xa0E(j`jeCUf-?`YzCP6YEaFPH?Kj1V0%4~BzKfnri z5{Z>blI0Wuwo_{p0&dQ+n!I3AU+8o?uY0L}*Bj6l*qNV%OKV1Maumxb_2PuSGx~dsJ#sB~S07*qo IM6N<$g0B!~<^TWy diff --git a/WebContent/images/control_zoom_user.png b/WebContent/images/control_zoom_user.png index f273b486ac0a63c81852723c96fab1a2a8a65689..f1977f8355b9d06270a3bb62f75774710f453297 100644 GIT binary patch literal 1090 zcmV-I1ikx-P)XRq(N&-@Y~Du}QKBm$ z%5IFh2?V85DuvMgKtw@Nj9?go7lC+X&jXtr*XCAK9~^e}p67Yq^PTtSe3FBM1Ida1 z@JN4`P*6}{s;{rF{AZ4QKA+5FGU>LqwpunfH=Uf*7As#8?daTYw|-$^p=)<{*REEp zmD}6fTA56y&}y~*y}iBtdCM9qWmX!VRz2t12og>Vx1%{#vcp!ik9q zwNxs-lAD`*jdR*W3^|eX!aAy}t2>#WpZ_o?C&$;{-+wX^IXH+RmK<_pa^!Nk)Tybd z&y7ao0CueiT{jpE6}7ds)=)dKDJdymT3cK7qP?f5Ckeat>h=1!NQBQwie=7eHxWZDIkU5~am&lgHfm9m+J^;8KE^Wy`m01Dxe>5AFs9^k`3ipff=5tNQgXkz zxcC9*i;Ii$`1tsN0A`Aujg1YJQmGuG7B#7TBt}R{^vi^`l_iew3U^W*&*}+LAUUKR#w(&?7k_G`j(`mq(x#x4mF_lIAR@{&E|7xAyZ;na+H>q zwjzb+k;*p}3dLQBJmj1vP5Ipk6!rfUN2z6rZp0I@OJ6(KljB!}FX z?<0=(_V!Yo^*k=QA&0|}hif1%(2^REX)S@PA&zUr5KB%Zy<@NP-rnBi>FH_r{{FrT zZRR_iyj)pXDMzMhGBY#h{Ce30a?t*tfh?Ce-o zDpfq%&TACpG&=dl*x1;Qs9z_s#z0602ad}9yS$j*=x;nf0hrrFTc@T<9RL6T07*qo IM6N<$f^(-0^Z)<= literal 1133 zcmV-z1d{uSP)K+&34MQf<5Ly;<~a5$brQB)O39EK`V1r9|pR8d7SJpKTR z!%z(E{a!N3X3OpF-0gAK?we$C(7?8sO^xX%mYMadkc^ab@8j|K!|8N-ezkD{0Qnp0pe|%Y34|2@ zMx)V3x#O$V>b16U1pp#LmJ9^iOauU4!1~1Pcut9G2{En*QGRy7y zxmaWXpg}KnJ=iwKpl%0Uf`SkT0P4J#r+-Z*lWNdT!1uvHl}Fpqfk3zk0HXPY&CjMm zP{q(8j2p555CfhKv$p|&><-+(Xbb>yug&Od699Q|IP(N!0BDkv&*y)J@p&jpek(HG z;aeCmpc_q=tO9`iONwH4##QXvL`KCy=M&J4WSG`B0)UjqlcSJ4SD?{ZE|+icO;i@| z)25b1Z?{hVG#Opi#s!m1~CRK$y7#>JkVX_k*sc0XwBrfSX!G6ST1~3L;NT*}4Hp z*+Npb7;eBcv8W(==qy(W0BvWP_!1bt9Aq-W8Bx=D0>v)$K~>IZS2&l;9Zkv&hrOf+dHH$`Pso!k}&JAE)hzDdeDc{C +