📄 taskresultrenderer.java
字号:
package com.esri.solutions.jitk.web.results.tasks;
import com.esri.adf.web.data.TocModel;
import com.esri.adf.web.data.WebToc;
import com.esri.adf.web.data.results.WebResultsToc;
import com.esri.adf.web.data.results.WebResults;
import com.esri.adf.web.data.results.ResultNode;
import com.esri.adf.web.templates.MapViewerResults;
import com.esri.adf.web.faces.component.TocControl;
import org.apache.log4j.Logger;
import java.util.List;
import java.util.Iterator;
import org.w3c.dom.Element;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import com.esri.adf.web.faces.renderkit.xml.ajax.AJAXRenderer;
import com.esri.adf.web.util.XMLUtil;
class Token{
private String taskName = null;
private String detail = null;
public String getTaskName(){
return this.taskName;
}
public void setTaskName(String taskName){
this.taskName = taskName;
}
public String getDetail(){
return this.detail;
}
public void setDetail(String detail){
this.detail = detail;
}
}
/**
* AJAXRenderer to render current extent & scale of map
*/
public class TaskResultRenderer implements AJAXRenderer {
private static Logger logger = Logger.getLogger(TaskResultRenderer.class.getName());
@SuppressWarnings("unchecked")
public Class getControlClass() {
//returns MapControl
return TocControl.class;
}
public Object getOriginalState(UIComponent component) {
TocControl tocControl = (TocControl) component;
return tocControl.getTocModel();
}
private static Token getToken(String disp){
try{
Token token = new Token();
String vstart = "\\(";
String vend = ")";
String[] vs = disp.split(vstart);
token.setDetail(vs[1].substring(0, vs[1].indexOf(vend)));
token.setTaskName(vs[2].substring(0, vs[2].indexOf(vend)));
return token;
}catch(Exception e){
//NOTE: This method does not only get called by the information
// controls.
//logger.log(Level.SEVERE, "Not a jitk task element", e);
}
return null;
}
public void renderAjaxResponse(FacesContext facesContext, UIComponent component, Object state, boolean isEventSource, Element parentElement) {
TocControl tocControl = (TocControl) component;
TocModel tocModel = tocControl.getTocModel();
if (tocModel instanceof WebToc) return;
try {
//render table result tag
if (tocModel instanceof WebResultsToc || tocModel instanceof MapViewerResults){
Element rootElement = XMLUtil.createElement("jitk-task-result", null, parentElement);
WebResults webResults = null;
if (tocModel instanceof WebResultsToc){
webResults = ((WebResultsToc)tocModel).getResults();
}
if (tocModel instanceof MapViewerResults){
webResults = ((MapViewerResults)tocModel).getResults();
}
if (tocModel == null) return;
List<ResultNode> resultsList = webResults.getResultNodes();
Iterator<ResultNode> it = resultsList.iterator();
while (it.hasNext()){
ResultNode resultNode = (ResultNode)it.next();
Token token = getToken(resultNode.getDisplayName());
if (token != null){
XMLUtil.createElement("taskName", token.getTaskName(), rootElement);
XMLUtil.createElement("detail", token.getDetail(), rootElement);
webResults.removeResultNode(resultNode);
}
}
}
}
catch (Exception e) {
logger.warn("Unable to encode xml.", e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -