📄 layercontrol.js
字号:
if (_curGroupLayer.visible == "True")
{
visElem.checked = true;
} else {
visElem.checked = false;
}
if (_curGroupLayer.allzoomrange == "True")
{
allvisrangeElem.checked = true;
visrangeElem.disabled = false;
} else {
allvisrangeElem.checked = false;
visrangeElem.disabled = true;
}
if (_curGroupLayer.visiblerangeenabled == "True")
{
visrangeElem.checked = true;
} else {
visrangeElem.checked = false;
}
if ( visrangeElem.disabled == true )
{
rangestartElem.disabled = true;
rangeendElem.disabled = true;
} else {
if (visrangeElem.checked == true)
{
rangestartElem.disabled = false;
rangeendElem.disabled = false;
} else {
rangestartElem.disabled = true;
rangeendElem.disabled = true;
}
}
rangestartElem.value = _curGroupLayer.rangestart;
rangeendElem.value = _curGroupLayer.rangeend;
}
function updateGroupLayerArray(lyrCntrlID)
{
var group;
var i;
var grpsArray = eval("_groups_"+lyrCntrlID);
for ( i=0;i<grpsArray.Layers.length;i++ )
{
group = grpsArray.Layers[i];
if ( (group.alias == _curGroupLayer.alias) )
{
grpsArray.Layers[i] = _curGroupLayer;
break;
}
}
}
function setCurrentGroup(alias, lyrCntrlID)
{
var group;
var i;
var found=false;
var grpsArray = eval("_groups_"+lyrCntrlID);
for ( i=0;i<grpsArray.Layers.length;i++ )
{
group = grpsArray.Layers[i];
if ((group.alias == alias) )
{
_curGroupLayer = group;
found = true;
break;
}
}
if (found == true)
{
return true;
} else {
return false;
}
}
function MapInfoWebTreeFolders()
{
}
function MapInfoWebTreeFolder()
{
this.alias="";
this.expanded="";
}
function MapInfoWebBuildTreeState(lcid)
{
var propString="";
var foldersArray = eval("_treeFolders_"+lcid);
var isFirst = true;
for ( i=0;i<foldersArray.Folders.length;i++ )
{
var folder = foldersArray.Folders[i];
if ( !isFirst )
{
propString = propString + "^";
}
propString = propString + folder.alias + "^";
propString = propString + folder.expanded;
isFirst = false;
}
return propString;
}
// ---------------------------------------------------------------------------
// --- Name: Easy DHTML Treeview --
// --- Original idea by : D.D. de Kerf --
// --- Updated by Jean-Michel Garnier, garnierjm@yahoo.fr --
// ---------------------------------------------------------------------------
/*****************************************************************************
Name : toggle
Parameters : node , DOM element (<a> tag)
Description : Description, collapse or unfold a branch
Author : Jean-Michel Garnier / D.D. de Kerf
*****************************************************************************/
function toggle(node, lyrCntrlID, lyrAlias) {
if (node.className == "branch")
{
updateTreeState(node, lyrCntrlID, lyrAlias);
}
updateNodeStyle(node);
// Get the next tag (read the HTML source)
var nextDIV = node.nextSibling;
// find the next DIV
while(nextDIV.nodeName != "DIV") {
nextDIV = nextDIV.nextSibling;
}
// Unfold the branch if it isn't visible
if (nextDIV.style.display == 'none') {
// Change the image (if there is an image)
if (node.childNodes.length > 0) {
if (node.childNodes.item(0).nodeName == "IMG") {
node.childNodes.item(0).src = getImgDirectory(node.childNodes.item(0).src) + "minus.gif";
}
}
nextDIV.style.display = 'block';
}
// Collapse the branch if it IS visible
else {
// Change the image (if there is an image)
if (node.childNodes.length > 0) {
if (node.childNodes.item(0).nodeName == "IMG") {
node.childNodes.item(0).src = getImgDirectory(node.childNodes.item(0).src) + "plus.gif";
}
}
nextDIV.style.display = 'none';
}
}
/*****************************************************************************
Name : toggle2
Parameters : node DOM element (<a> tag), folderCode String
Description : if you use the "code" attribute in a folder element, toggle2 is called
instead of toggle. The consequence is that you MUST implement a selectFolder function in your page.
Author : Jean-Michel Garnier
*****************************************************************************/
function toggle2(node, folderCode, id, lyrCntrlID, mapid) {
if (_curElemType == "groupfolder")
{
MapInfoWebUpdateGroupVisible(lyrCntrlID);
MapInfoWebUpdateEntireGroupZoomDisplay(lyrCntrlID);
}
else if (_curElemType == "labelfolder")
{
MapInfoWebUpdateVisible(lyrCntrlID);
MapInfoWebUpdateZoomDisplay(lyrCntrlID);
}
else if (_curElemType == "lyrnode")
{
MapInfoWebUpdateVisible(lyrCntrlID);
MapInfoWebUpdateZoomDisplay(lyrCntrlID);
MapInfoWebUpdateSelectable(lyrCntrlID, mapid);
}
if (folderCode == 1)
{
var mapzoomElem = document.getElementById("mapzoom_" + lyrCntrlID);
mapzoomElem.value = eval("_map_"+lyrCntrlID).zoom;
updateNodeStyle(node);
showPanel("root", lyrCntrlID)
_curElemType = "root";
}
else if (folderCode == 2)
{
toggle(node, lyrCntrlID, id);
MapInfoWebSelectedNodeChanged(node, id, "nonselectable", lyrCntrlID, mapid, id);
_curElemType = "labelfolder";
}
else if (folderCode == 3)
{
setCurrentGroup(id, lyrCntrlID);
setGroupPanelElements(lyrCntrlID);
toggle(node, lyrCntrlID, id);
showPanel("grplayerpanel", lyrCntrlID);
_curElemType = "groupfolder";
}
else if (folderCode == 4)
{
toggle(node, lyrCntrlID, id);
MapInfoWebSelectedNodeChanged(node, id, "featurelayer", lyrCntrlID, mapid, id);
_curElemType = "featurefolder";
}
}
/*****************************************************************************
Name : getImgDirectory
Parameters : Image source path
Return : Image source Directory
Author : Jean-Michel Garnier
*****************************************************************************/
function getImgDirectory(source) {
return source.substring(0, source.lastIndexOf('/') + 1);
}
/***********************************************************************
* Tabbed dialog support *
************************************************************************/
function showPanel(panel, lyrCntrlID){
//hide visible panel, show selected panel, set tab
curPanel = eval("currentPanel_"+lyrCntrlID)
hidePanel(curPanel.panel);
document.getElementById(panel + "_" + lyrCntrlID).style.display = 'block';
document.getElementById('activePanel_'+lyrCntrlID).innerHtml = document.getElementById(panel + "_" + lyrCntrlID).innerHtml
curPanel.panel = panel + "_" + lyrCntrlID
//setState(panel);
}
function hidePanel(panelname){
//hide visible panel, unhilite tab
document.getElementById(panelname).style.display = 'none';
//document.getElementById('tab'+currentPanel).style.backgroundColor = '#ffffff';
//document.getElementById('tab'+currentPanel).style.color = 'navy';
}
function setState(tabNum){
if(tabNum==currentPanel){
document.getElementById('tab'+tabNum).style.backgroundColor = '#ddddff';
document.getElementById('tab'+tabNum).style.color = 'red';
}else{
document.getElementById('tab'+tabNum).style.backgroundColor = '#ffffff';
document.getElementById('tab'+tabNum).style.color = 'navy';
}
}
function hover(tab){
tab.style.backgroundColor = 'ddddff';
}
function updateNodeStyle(node){
if (_curNode)
{
_curNode.style.backgroundColor = "";
}
node.style.backgroundColor = "#0066FF";
_curNode = node;
}
function updateTreeState(node, lcid, lyrAlias){
var foldersArray = eval("_treeFolders_"+lcid);
var folder;
for ( i=0;i<foldersArray.Folders.length;i++ )
{
folder = foldersArray.Folders[i];
if ( folder.alias == lyrAlias )
{
break;
}
}
// This function is called as node is toggled. So if node display is none,
// it means the folder will be expanded as a result of the calling procedure (toggle)
var nextDIV = node.nextSibling;
// find the next DIV
while(nextDIV.nodeName != "DIV") {
nextDIV = nextDIV.nextSibling;
}
// Unfold the branch if it isn't visible
if (nextDIV.style.display == 'none') {
folder.expanded = "true";
} else {
folder.expanded = "false";
}
}
// Control Validation
//-------------------------------------------------------------------
// isDigit(value)
// Returns true if value is a 1-character digit
//-------------------------------------------------------------------
function isDigit(num) {
if (num.length>1)
{
return false;
}
var validChars="1234567890";
validChars = validChars + _decimalSeparator
if (validChars.indexOf(num)!=-1)
{
return true;
}
return false;
}
function isNumeric(val) {
for (n = 0; n < val.length; n++)
{
if ( ! isDigit(val.charAt(n))) {
return false;
}
}
return true;
}
function isLess(val1, val2) {
return parseFloat(val1) < parseFloat(val2);
}
function isMore(val1, val2) {
return parseFloat(val1) > parseFloat(val2);
}
function validate(obj, lyrCntrlID)
{
if (obj.type == "text")
{
if (!isNumeric(obj.value))
{
alert(validate_numericfield);
if (obj.id == 'mapzoom_'+ lyrCntrlID)
{
obj.value = eval("_map_"+lyrCntrlID).zoom;
return false;
}
if (obj.id == 'lyrMinzoom_'+ lyrCntrlID ||
obj.id == 'lblMinzoom_'+ lyrCntrlID )
{
obj.value = _curLayer.rangestart;
return false;
}
if (obj.id == 'lyrMaxzoom_'+ lyrCntrlID ||
obj.id == 'lblMaxzoom_'+ lyrCntrlID )
{
obj.value = _curLayer.rangeend;
return false;
}
}
if (obj.id == 'lyrMinzoom_'+ lyrCntrlID)
{
var elem = document.getElementById("lyrMaxzoom_"+lyrCntrlID);
if ( isMore(obj.value, elem.value) )
{
alert(validate_mingtrmax);
obj.value = _curLayer.rangestart;
return false;
}
}
if (obj.id == 'lblMinzoom_'+ lyrCntrlID)
{
var elem = document.getElementById("lblMaxzoom_"+lyrCntrlID);
if ( isMore(obj.value, elem.value) )
{
alert(validate_mingtrmax);
obj.value = _curLayer.rangestart;
return false;
}
}
if (obj.id == 'lyrMaxzoom_'+ lyrCntrlID)
{
var elem = document.getElementById("lyrMinzoom_"+lyrCntrlID);
if ( isLess(obj.value, elem.value) )
{
alert(validate_maxltmin);
obj.value = _curLayer.rangeend;
return false;
}
}
if (obj.id == 'lblMaxzoom_'+ lyrCntrlID)
{
var elem = document.getElementById("lblMinzoom_"+lyrCntrlID);
if ( isLess(obj.value, elem.value) )
{
alert(validate_maxltmin);
obj.value = _curLayer.rangeend;
return false;
}
}
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -