package de.games.nanoleaf.panelconfig; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.eclnt.editor.annotations.CCGenClass; import org.eclnt.jsfserver.base.faces.event.ActionEvent; import org.eclnt.jsfserver.defaultscreens.Statusbar; import org.eclnt.jsfserver.elements.componentnodes.COLDISTANCENode; import org.eclnt.jsfserver.elements.componentnodes.PANENode; import org.eclnt.jsfserver.elements.componentnodes.ROWNode; import org.eclnt.jsfserver.elements.events.BaseActionEventDrop; import org.eclnt.jsfserver.elements.events.BaseActionEventInvoke; import org.eclnt.jsfserver.elements.impl.DYNAMICCONTENTBinding; import org.eclnt.jsfserver.elements.impl.ROWDYNAMICCONTENTBinding; import org.eclnt.jsfserver.pagebean.PageBean; @CCGenClass (expressionBase="#{d.PanelConfigBean}") public class PanelConfigBean extends PageBean implements Serializable { ROWDYNAMICCONTENTBinding m_dynMatrixPanels = new ROWDYNAMICCONTENTBinding(); public ROWDYNAMICCONTENTBinding getDynMatrixPanels() { return m_dynMatrixPanels; } String m_nanoleafToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4"; public String getNanoleafToken() { return m_nanoleafToken; } public void setNanoleafToken(String value) { this.m_nanoleafToken = value; } int m_port = 16021; public int getPort() { return m_port; } public void setPort(int value) { this.m_port = value; } String m_ipAdresse = "192.168.178.141"; public String getIpAdresse() { return m_ipAdresse; } public void setIpAdresse(String value) { this.m_ipAdresse = value; } String m_hostname = "Canvas-72FA.fritz.box"; public String getHostname() { return m_hostname; } public void setHostname(String value) { this.m_hostname = value; } DYNAMICCONTENTBinding m_dynPanelList = new DYNAMICCONTENTBinding(); public DYNAMICCONTENTBinding getDynPanelList() { return m_dynPanelList; } public void onPanelsCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) { createPanelsList(getAnzahlPanels()); } public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) { createPanelMatrix(getAnzahlPanels(), getMatrixX(), getMatrixY()); } private void createPanelMatrix(int anzahlPanels, int matrixX, int matrixY) { int anzahlPanelMatrix = 0; anzahlPanelMatrix = matrixX * matrixY; //List componentNodeList = new ArrayList(); ROWNode row = null; PANENode rootPaneNode = new PANENode(); rootPaneNode.setRowdistance("5"); PANENode paneNode = null; COLDISTANCENode coldistanceNode = null; for (int x = 0; x < matrixX; x++) { row = new ROWNode(); for (int y = 0; y < matrixY; y++) { paneNode = new PANENode(); paneNode.setWidth(50); paneNode.setHeight(50); paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#000000"); paneNode.setDropreceive("NANOLEAF"); paneNode.setReference("REF_XY:" + x + "|" + y); paneNode.setActionListener("#{d.PanelConfigBean.onCashierActions}"); coldistanceNode = new COLDISTANCENode(); coldistanceNode.setWidth(5); row.addSubNode(paneNode); row.addSubNode(coldistanceNode); } rootPaneNode.addSubNode(row); } getDynMatrixPanels().setContentNode(rootPaneNode); } public void onCashierActions(ActionEvent event) { if (event instanceof BaseActionEventDrop) { Statusbar.outputSuccess("Drop-Event was processed: " + event.getClass().getName()); BaseActionEventDrop baed = (BaseActionEventDrop)event; String dragInfo = baed.getDragInfo(); if (dragInfo.startsWith("NANOLEAF:")) { System.out.println("Ziel: "); System.out.println("Drop: " + dragInfo); } } else if (event instanceof BaseActionEventInvoke) { Statusbar.outputSuccess("Cashier Icon was pressed!"); } } int m_matrixY = 3; public int getMatrixY() { return m_matrixY; } public void setMatrixY(int value) { this.m_matrixY = value; } int m_matrixX = 3; public int getMatrixX() { return m_matrixX; } public void setMatrixX(int value) { this.m_matrixX = value; } int m_anzahlPanels = 1; public int getAnzahlPanels() { return m_anzahlPanels; } public void setAnzahlPanels(int value) { this.m_anzahlPanels = value; } int m_anzahlPanelsMax = 0; public int getAnzahlPanelsMax() { return m_anzahlPanelsMax; } public void setAnzahlPanelsMax(int value) { this.m_anzahlPanelsMax = value; } // ------------------------------------------------------------------------ // inner classes // ------------------------------------------------------------------------ /* Listener to the user of the page bean. */ public interface IListener extends Serializable { } // ------------------------------------------------------------------------ // members // ------------------------------------------------------------------------ private IListener m_listener; // ------------------------------------------------------------------------ // constructors & initialization // ------------------------------------------------------------------------ public PanelConfigBean() { createPanelsList(1); } private List m_nanoPaneNodeList = null; public List getNanoPaneNodeList() { if (m_nanoPaneNodeList == null) { m_nanoPaneNodeList = new ArrayList(); } return m_nanoPaneNodeList; } public NanoPANENode getNanoPaneNode(int id) { return getNanoPaneNodeList().get(id); } private void createPanelsList(int countPanels) { ROWNode row = new ROWNode(); COLDISTANCENode coldistanceNode = null; NanoPANENode paneNode = null; PanelInfo panelInfo = null; for (int p = 0; p < countPanels; p++) { panelInfo = new PanelInfo(p); paneNode = new NanoPANENode(panelInfo); row.addSubNode(paneNode); coldistanceNode = new COLDISTANCENode(); coldistanceNode.setWidth(10); row.addSubNode(coldistanceNode); } getDynPanelList().setContentNode(row); } public String getPageName() { return "/games/nanoleaf/panelconfig/panelconfig.xml"; } public String getRootExpressionUsedInPage() { return "#{d.PanelConfigBean}"; } // ------------------------------------------------------------------------ // public usage // ------------------------------------------------------------------------ /* Initialization of the bean. Add any parameter that is required within your scenario. */ public void prepare(IListener listener) { m_listener = listener; } // ------------------------------------------------------------------------ // private usage // ------------------------------------------------------------------------ }