package org.adempiere.webui.apps.graph;
import org.adempiere.webui.component.Grid;
import org.adempiere.webui.component.Panel;
import org.adempiere.webui.component.Row;
import org.adempiere.webui.component.Rows;
import org.compiere.model.MGoal;
import org.compiere.util.CLogger;
import org.compiere.util.Env;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
public class WPAPanel extends Panel implements EventListener
{
/**
*
*/
private static final long serialVersionUID = -6491684272848160726L;
/**
* Get Panel if User has Performance Goals
* @return panel pr null
*/
public static WPAPanel get()
{
int AD_User_ID = Env.getAD_User_ID(Env.getCtx());
MGoal[] goals = MGoal.getUserGoals(Env.getCtx(), AD_User_ID);
if (goals.length == 0)
return null;
return new WPAPanel(goals);
}
/**************************************************************************
* Constructor
* @param goals
*/
private WPAPanel (MGoal[] goals)
{
super ();
m_goals = goals;
init();
}
/** Goals */
private MGoal[] m_goals = null;
/** Logger */
private static CLogger log = CLogger.getCLogger (WPAPanel.class);
/**
* Static/Dynamic Init
*/
private void init()
{
Grid grid = new Grid();
appendChild(grid);
grid.setWidth("100%");
grid.setStyle("margin:0; padding:0; position: absolute;");
grid.makeNoStrip();
grid.setOddRowSclass("even");
Rows rows = new Rows();
grid.appendChild(rows);
for (int i = 0; i < m_goals.length; i++)
{
Row row = new Row();
rows.appendChild(row);
row.setWidth("100%");
WPerformanceIndicator pi = new WPerformanceIndicator(m_goals[i]);
row.appendChild(pi);
pi.addEventListener(Events.ON_CLICK, this);
}
} // init
/**
* Action Listener for Drill Down
* @param e event
*/
public void onEvent(Event e) throws Exception
{
if (e.getTarget() instanceof WPerformanceIndicator)
{
WPerformanceIndicator pi = (WPerformanceIndicator) e.getTarget();
log.info(pi.toString());
MGoal goal = pi.getGoal();
if (goal.getMeasure() != null)
new WPerformanceDetail(goal);
}
}
}