📄 contextmenuitemtaskrenderer.java
字号:
package com.esri.solutions.jitk.common.contextmenus;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.esri.adf.web.faces.component.TocControl;
import com.esri.adf.web.faces.renderkit.xml.ajax.AJAXRenderer;
import com.esri.adf.web.util.XMLUtil;
/**
* Provides necessary rendering to the browser for opening
* a Task that is associated with a Context Menu Item in the
* Table of Contents. This object will need a reference to
* the Context Menu Item Task Manager as it provides the logic
* to open the Task UI.
*/
public class ContextMenuItemTaskRenderer implements AJAXRenderer {
/**
* Contains logic to generate XML so the Task UI can be
* opened in the browser.
*/
private ContextMenuItemTaskManager m_mgr;
/*
* (non-Javadoc)
* @see com.esri.adf.web.faces.renderkit.xml.ajax.AJAXRenderer#getControlClass()
*/
@SuppressWarnings("unchecked")
public Class getControlClass() {
return TocControl.class;
}
/*
* (non-Javadoc)
* @see com.esri.adf.web.faces.renderkit.xml.ajax.AJAXRenderer#getOriginalState(javax.faces.component.UIComponent)
*/
public Object getOriginalState(UIComponent ctrl) {
Document xmlDoc = XMLUtil.newDocument();
renderOurOwnXML(XMLUtil.createElement(xmlDoc, "root", null, null), ctrl);
return XMLUtil.transform(xmlDoc, null);
}
/*
* (non-Javadoc)
* @see com.esri.adf.web.faces.renderkit.xml.ajax.AJAXRenderer#renderAjaxResponse(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object, boolean, org.w3c.dom.Element)
*/
public void renderAjaxResponse(FacesContext fc,
UIComponent ctrl,
Object oldState,
boolean b,
Element parent) {
Document xmlDoc = XMLUtil.newDocument();
renderOurOwnXML(XMLUtil.createElement(xmlDoc, "root", null, null), ctrl);
String newState = XMLUtil.transform(xmlDoc, null);
if( ! oldState.equals(newState)) {
parent.appendChild(parent.getOwnerDocument().importNode(xmlDoc.getElementsByTagName("root").item(0).getFirstChild(), true));
}
}
/**
* Renders the necessary XML in order to open the Task UI in the browser.
* There will be Javascript code in the browser to interpret the XML
* and provide the logic to open the Task UI. This method will delegate
* to the Context Menu Item Task Manager to implement the rendering
* logic.
*
* @param parentElement Parent XML element. Rendered XML must be
* added as a child to this element.
* @param aComponent UI Component that this rendering is associated
* with, typically {@link TocControl}.
*/
public void renderOurOwnXML(final Element parentElement, final UIComponent aComponent) {
m_mgr.open(parentElement, aComponent);
}
/**
* Sets the reference to the Context Menu Item Task Manager object.
* This object is required in order for this renderer to function
* correctly.
*
* @param mgr Reference to Context Menu Item Task Manager.
*/
public void setContextMenuItemTaskManager (ContextMenuItemTaskManager mgr) {
m_mgr = mgr;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -