/*
* Licensed Materials - Property of Perforce Software, Inc.
* © Copyright Perforce Software, Inc. 2014, 2021
* © Copyright IBM Corp. 2009, 2014
* © Copyright ILOG 1996, 2009
* All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* The Software and Documentation were developed at private expense and
* are "Commercial Items" as that term is defined at 48 CFR 2.101,
* consisting of "Commercial Computer Software" and
* "Commercial Computer Software Documentation", as such terms are
* used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
* as applicable.
*/
package thinstock.faces.renderer;
import java.io.IOException;
import java.io.Writer;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import ilog.views.chart.faces.dhtml.component.IlvChartDHTMLView;
import ilog.views.chart.faces.dhtml.renderkit.IlvChartRenderer;
import ilog.views.faces.dhtml.renderkit.ComponentCreationListener;
import ilog.views.faces.dhtml.renderkit.IlvDHTMLResponseWriter;
import ilog.views.faces.dhtml.renderkit.IlvDHTMLUtil;
import ilog.views.faces.dhtml.renderkit.IlvDependencyManager;
import ilog.views.faces.dhtml.renderkit.IlvFacesManager;
import ilog.views.faces.dhtml.renderkit.IlvScriptDescriptor;
import ilog.views.faces.dhtml.renderkit.IlvScriptManager;
/**
*
*/
public class MinorChartViewRenderer extends IlvChartRenderer {
public static IlvScriptDescriptor scriptDescriptor = new IlvScriptDescriptor("minorChart",
IlvChartRenderer.scriptDescriptor) {
Override
public void addScriptsToLoad(IlvScriptManager scriptManager, Writer writer) {
scriptManager.addScript("/data/MinorChartViewProxy.js");
}
};
Override
public IlvScriptDescriptor getScriptDescriptor() {
return scriptDescriptor;
}
public static String getRendererType() {
return MinorChartViewRenderer.class.getName();
}
Override
protected void resolveDependencies(UIComponent component, IlvDependencyManager depManager) {
super.resolveDependencies(component, depManager);
String view = (String) component.getAttributes().get(VIEW_ID);
new ComponentCreationListener(component, view, VIEW) {
Override
public void onComponentCreated(Writer writer, UIComponent depComponent) throws IOException {
String depJSRef = IlvDHTMLUtil.getJSRef(depComponent);
String jsRef = IlvDHTMLUtil.getJSRef(getComponent());
writer.write(depJSRef + ".chartUpdater.addTarget(" + jsRef + ");");
}
};
resolveDependency(component, VIEW, view, depManager);
}
Override
protected void emitJSCreation(FacesContext facesContext, UIComponent component) throws IOException {
IlvDHTMLResponseWriter writer = new IlvDHTMLResponseWriter(facesContext, component);
IlvChartDHTMLView cv = (IlvChartDHTMLView) component;
String[] params = { getReferenceNodeRef(facesContext, component), component.getAttributes().get(WIDTH).toString(),
component.getAttributes().get(HEIGHT).toString(), (cv.getClientState() == null ? "" : cv.getClientState()) };
writer.writeJSProxyCreation("MinorChartViewProxy", params);
}
Override
protected void emitJSSetProperties(FacesContext ctx, UIComponent component) throws IOException {
super.emitJSSetProperties(ctx, component);
UIComponent view = (UIComponent) component.getAttributes().get(VIEW);
String jsRef = IlvDHTMLUtil.getJSRef(component);
IlvFacesManager mgr = IlvDHTMLUtil.findManager(ctx);
IlvDependencyManager dMgr = mgr.getDependencyManager();
if (view != null && IlvDHTMLUtil.isDependencyRendered(component, dMgr)) {
String depJSRef = IlvDHTMLUtil.getJSRef(view);
ctx.getResponseWriter().write(depJSRef + ".chartUpdater.addTarget(" + jsRef + ");\n");
}
}
Override
protected void emitOnLoadHandler(FacesContext ctx, UIComponent component) throws IOException {
// Avoid the init of the minor chart views.
IlvDHTMLResponseWriter writer = new IlvDHTMLResponseWriter(ctx, component);
writer.writeJSBodyEventHandler("load", "IlvSizedViewProxy.onload");
}
}