⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layercontrol.js

📁 c#中用MapXtreme开发的地理信息系统
💻 JS
📖 第 1 页 / 共 2 页
字号:
	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 + -