diff --git a/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java b/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java index 84ce7ae..7f0888d 100644 --- a/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java +++ b/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java @@ -1,17 +1,27 @@ package de.games.nanoleaf.panelconfig; import java.io.Serializable; +import java.util.Iterator; import org.eclnt.editor.annotations.CCGenClass; import org.eclnt.jsfserver.elements.componentnodes.COLDISTANCENode; +import org.eclnt.jsfserver.elements.componentnodes.LABELNode; import org.eclnt.jsfserver.elements.componentnodes.PANENode; import org.eclnt.jsfserver.elements.componentnodes.ROWNode; 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_dynNanoleafLayout = new ROWDYNAMICCONTENTBinding(); + public ROWDYNAMICCONTENTBinding getDynNanoleafLayout() { return m_dynNanoleafLayout; } + + public void onPanelsOff(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {} + + public void onPanelsOn(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {} + String m_nanoleafToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4"; public String getNanoleafToken() { return m_nanoleafToken; } @@ -39,6 +49,7 @@ public class PanelConfigBean extends PageBean implements Serializable { public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) { + createNanoleafLayoutList(getMatrixX(), getMatrixY()); } int m_matrixY = 3; @@ -87,24 +98,80 @@ public class PanelConfigBean extends PageBean implements Serializable { COLDISTANCENode coldistanceNode = null; PANENode paneNode = null; PanelInfo panelInfo = null; - + LABELNode labelNode = null; for (int p = 0; p < countPanels; p++) { - panelInfo = new PanelInfo(p); + panelInfo = new PanelInfo(56253 + p); paneNode = new PANENode(); - paneNode.setHeight(80); - paneNode.setWidth(80); + paneNode.setHeight(60); + paneNode.setWidth(60); paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000"); + paneNode.setDragsend("Nanoleaf:" + panelInfo.getPanelID()); + ROWNode rowInt = new ROWNode(); + paneNode.addSubNode(rowInt); + coldistanceNode = new COLDISTANCENode(); + coldistanceNode.setWidth("50%"); + rowInt.addSubNode(coldistanceNode); + labelNode = new LABELNode(); + labelNode.setText(panelInfo.getPanelID() + ""); + rowInt.addSubNode(labelNode); row.addSubNode(paneNode); coldistanceNode = new COLDISTANCENode(); coldistanceNode.setWidth(20); - paneNode.addSubNode(coldistanceNode); + row.addSubNode(coldistanceNode); } getDynPanelList().setContentNode(row); } + + + private void createNanoleafLayoutList(int xPanels, int yPanels) { + + ROWNode row = new ROWNode(); + COLDISTANCENode coldistanceNode = null; + PANENode paneNode = null; + PanelInfo panelInfo = null; + PANENode paneNodeRoot = new PANENode(); + + for (int x = 0; x < xPanels; x++) { + row = new ROWNode(); + for (int y = 0; y < yPanels; y++) { + paneNode = new PANENode(); + paneNode.setHeight(60); + paneNode.setWidth(60); + paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000"); + paneNode.setDragsend("Nanoleaf:"); + + row.addSubNode(paneNode); + coldistanceNode = new COLDISTANCENode(); + coldistanceNode.setWidth(5); + row.addSubNode(coldistanceNode); + } + paneNodeRoot.addSubNode(row); + } + + getDynNanoleafLayout().setContentNode(paneNodeRoot); + +// for (int p = 0; p < countPanels; p++) { +// panelInfo = new PanelInfo(p); +// paneNode = new PANENode(); +// paneNode.setHeight(60); +// paneNode.setWidth(60); +// paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000"); +// paneNode.setDragsend("Nanoleaf:"); +// +// row.addSubNode(paneNode); +// coldistanceNode = new COLDISTANCENode(); +// coldistanceNode.setWidth(20); +// row.addSubNode(coldistanceNode); +// } + + getDynPanelList().setContentNode(row); + + } + public String getPageName() { return "/games/nanoleaf/panelconfig/panelconfig.xml"; } public String getRootExpressionUsedInPage() { return "#{d.PanelConfigBean}"; } diff --git a/src/main/java/de/games/nanoleaf/server/NanoleafServer.java b/src/main/java/de/games/nanoleaf/server/NanoleafServer.java index 973662f..ba0f845 100644 --- a/src/main/java/de/games/nanoleaf/server/NanoleafServer.java +++ b/src/main/java/de/games/nanoleaf/server/NanoleafServer.java @@ -93,11 +93,24 @@ public class NanoleafServer { lastIDSet.add(lastID); try { - int panelID = event.getInitialPanelId(); - //device.setPanelColor(panelID, "#ff0000", 2); + List panels = device.getPanels(); + device.enableExternalStreaming(); - device.setPanelExternalStreaming(panelID, Color.RED, 1); + + // enable external streaming +// for (int i = 0; i < 4; i++) { +// device.setPanelExternalStreaming(panels.get(i), "#FF00FF", 1); // set a few panels to purple +// } + + device.setPanelExternalStreaming(lastID, Color.RED, 1); + + +// int panelID = event.getInitialPanelId(); +// +// //device.setPanelColor(panelID, "#ff0000", 2); +// +// device.setPanelExternalStreaming(panelID, Color.RED, 1); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml b/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml index bc7e139..85d2537 100644 --- a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml +++ b/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml @@ -73,6 +73,10 @@ + + + + @@ -90,7 +94,13 @@ - + + + + + + + \ No newline at end of file