[mapguide-commits] r7113 - trunk/MgDev/Web/src/viewerfiles
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Oct 15 23:02:00 PDT 2012
Author: jng
Date: 2012-10-15 23:02:00 -0700 (Mon, 15 Oct 2012)
New Revision: 7113
Modified:
trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ
trunk/MgDev/Web/src/viewerfiles/mainframe.templ
trunk/MgDev/Web/src/viewerfiles/statusbar.templ
Log:
#2149: Convert scale part of status bar of the AJAX viewer into a select combo list when viewing a map with tiled layers. Patch by Bruno Scott.
Modified: trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ
===================================================================
--- trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ 2012-10-12 13:09:54 UTC (rev 7112)
+++ trunk/MgDev/Web/src/viewerfiles/ajaxmappane.templ 2012-10-16 06:02:00 UTC (rev 7113)
@@ -1831,7 +1831,7 @@
//If a new scale was requested in the status bar for a tiled map, the closest
//finite scale may not change, but we need to send a scale update anyway so that
//the status bar shows the scale that we snapped to.
- parent.OnScaleChanged(scale);
+ parent.OnScaleChanged(hasTiles, scale, scales);
if(scaleChanged = (curScale != scale))
{
curScale = scale;
@@ -4044,7 +4044,7 @@
}
//Update scale displayed in status bar
- parent.OnScaleChanged(newScale);
+ parent.OnScaleChanged(hasTiles, newScale, scales);
//Reload the map at the new scale. 500ms delay to allow for more
//mouse wheel events.
Modified: trunk/MgDev/Web/src/viewerfiles/mainframe.templ
===================================================================
--- trunk/MgDev/Web/src/viewerfiles/mainframe.templ 2012-10-12 13:09:54 UTC (rev 7112)
+++ trunk/MgDev/Web/src/viewerfiles/mainframe.templ 2012-10-16 06:02:00 UTC (rev 7113)
@@ -408,12 +408,17 @@
menuOpen = shown;
}
-function OnScaleChanged(scale)
+function OnScaleChanged(hasTiles, scale, scalesList)
{
curScale = scale;
DisplayMapSize();
if(hasStatusbar == 1 && sbFrame.SetMapScaleMsg != null)
- sbFrame.SetMapScaleMsg("1: " + FormatScale(scale));
+ {
+ if(hasTiles)
+ sbFrame.SetMapScalesList(parseInt(scale), scalesList);
+ else
+ sbFrame.SetMapScaleMsg("1: " + FormatScale(scale));
+ }
}
function FormatScale(scale)
Modified: trunk/MgDev/Web/src/viewerfiles/statusbar.templ
===================================================================
--- trunk/MgDev/Web/src/viewerfiles/statusbar.templ 2012-10-12 13:09:54 UTC (rev 7112)
+++ trunk/MgDev/Web/src/viewerfiles/statusbar.templ 2012-10-16 06:02:00 UTC (rev 7113)
@@ -35,6 +35,24 @@
position: absolute;
top: 3px;
}
+ select.StatusSelect
+ {
+ height: 20px;
+ border-left: 1px solid #c0c0c0;
+ border-top: 1px solid #c0c0c0;
+ border-bottom: 1px solid white;
+ border-right: 1px solid white;
+ position: absolute;
+ top: 3px;
+ font-family: __#@font#__;
+ font-size: __#@fontsize#__;
+ background-color: #EEEEEE;
+ }
+ #ScaleElement
+ {
+ position: absolute;
+ top: 0px;
+ }
</style>
<script language="javascript" src="../viewerfiles/browserdetect.js"></script>
@@ -63,6 +81,41 @@
SetFieldText(msg, 3);
}
+function SetMapScalesList(scale, scales)
+{
+ // remove the input field
+ var scaleDiv = document.getElementById("ScaleElement");
+ var scaleInput = GetScaleField();
+ scaleDiv.removeChild(scaleInput);
+
+ // add the select element
+ var select = document.createElement("select");
+ select.id = "3";
+ select.name = "3";
+ select.className = "StatusSelect";
+ select.onchange = OnChangeScaleSelect;
+
+ for(var i=0; i<scales.length; i++)
+ {
+ var option = document.createElement("option");
+ option.text = "1: " + scales[i];
+ option.value = scales[i];
+ if(Math.floor(scale) == Math.floor(scales[i]))
+ option.selected=true;
+
+ try
+ {
+ // for IE earlier than version 8
+ select.add(option,select.options[null]);
+ }
+ catch (e)
+ {
+ select.add(option,null);
+ }
+ }
+ scaleDiv.appendChild(select);
+}
+
function SetMapSizeMsg(msg)
{
SetFieldText(msg, 4);
@@ -72,16 +125,9 @@
//
function InitDocument()
{
- document.onmousedown = OnMouseDown;
OnStatusResized();
}
-function OnMouseDown(e)
-{
- parent.ForwardMouseDown(document, e);
- return false;
-}
-
function OnStatusResized()
{
var width = msie? document.body.clientWidth - 3: window.innerWidth - 4;
@@ -96,6 +142,10 @@
for(var i=1; i < 5; i++)
{
elt = document.getElementById(i);
+
+ if(i == 3)
+ elt = document.getElementById("ScaleElement");
+
elt.style.left = posX + "px";
if(i == 1)
{
@@ -184,6 +234,12 @@
SetZoomToScale(scaleField);
}
+function OnChangeScaleSelect()
+{
+ var scaleField = GetScaleField();
+ SetZoomToScale(scaleField);
+}
+
function GetScaleField()
{
return document.getElementById("3");
@@ -197,7 +253,9 @@
<tr><td valign=center>
<input class="StatusField" id="1" type="text" title="" readonly >
<input class="StatusField" id="2" type="text" title="" readonly >
+ <div id="ScaleElement">
<input class="StatusField" id="3" name="3" type="text" onKeyUp="KeyboardController(this)" onKeyDown="OnScaleFieldKeyDown(event)" onfocus="OnScaleFieldFocus()" onblur="OnBlurScaleField()" onclick="this.focus()">
+ </div>
<input class="StatusField" id="4" type="text" readonly >
<img src="../localized/__#POWEREDBYICON#__" width="137" height="18" class="StatusLogo" id="5">
</td></tr>
More information about the mapguide-commits
mailing list