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

📄 maprefreshphaselistener.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
字号:
package com.esri.solutions.jitk.data.svg.importer;

import java.util.Map;
import java.util.Vector;

import javax.faces.component.UIComponent;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.w3c.dom.Document;

import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.WebMap;
import com.esri.adf.web.faces.component.MapControl;
import com.esri.adf.web.faces.renderkit.xml.ajax.AJAXResponseRenderer;
import com.esri.adf.web.faces.renderkit.xml.ajax.AJAXUtil;

public class MapRefreshPhaseListener implements PhaseListener {

	private static Logger logger = Logger.getLogger(MapRefreshPhaseListener.class.getName());
	
	//parameter names expected in request
	static final String MAP_REFRESH = "mapRefresh";
	static final String FORM_ID = "formId";
	static final String MAP_ID = "mapId";
	 
	
	public PhaseId getPhaseId() {
		return PhaseId.APPLY_REQUEST_VALUES;
	}
	
	public void beforePhase(PhaseEvent phaseEvent) {
		//do nothing
	}
	
	public void afterPhase(PhaseEvent phaseEvent) {
		FacesContext facesContext = phaseEvent.getFacesContext();
	    ExternalContext externalContext = facesContext.getExternalContext();
	    Map paramMap = externalContext.getRequestParameterMap();
	    
	    //verify if request is to be processed by this PhaseListener
	    if (!MAP_REFRESH.equals((String) paramMap.get(MAP_REFRESH))) return;

	    try {
	      //get Form from view
	      UIComponent form = facesContext.getViewRoot().findComponent((String) paramMap.get(FORM_ID));

	      //get MapControl
	      MapControl mapControl = (MapControl) form.findComponent((String) paramMap.get(MAP_ID));

	      //get WebMap
	      WebMap webMap = mapControl.getWebMap();

	      //get WebContext
	      WebContext webContext = webMap.getWebContext();

	      //set event source as map, since operation is to be performed on the map
	      Vector eventSources = new Vector();
	      eventSources.add(mapControl.getId());
	      AJAXResponseRenderer ajaxRenderer = new AJAXResponseRenderer(facesContext, eventSources, form);

	      //refresh context to update all controls
	      webContext.refresh();

	      //render and get AJAX response Document
	      Document doc = ajaxRenderer.renderResponse(facesContext);

	      //initialize response
	      AJAXUtil.writeResponse(facesContext, doc);
	    
	    } catch (Exception e) { logger.log(Level.FATAL, "Unable to render xml", e); }
	    
	    finally { //notify Faces Lifecycle
	      facesContext.responseComplete();
	    }	    
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -