You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
7.2 KiB
205 lines
7.2 KiB
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<ComponentNode> componentNodeList = new ArrayList<ComponentNode>();
|
|
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<NanoPANENode> m_nanoPaneNodeList = null;
|
|
public List<NanoPANENode> getNanoPaneNodeList() {
|
|
if (m_nanoPaneNodeList == null) {
|
|
m_nanoPaneNodeList = new ArrayList<NanoPANENode>();
|
|
}
|
|
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
|
|
// ------------------------------------------------------------------------
|
|
}
|