master
mail 11 months ago
parent 5c8cf8e3c8
commit be7cf3a015

@ -1,17 +1,27 @@
package de.games.nanoleaf.panelconfig; package de.games.nanoleaf.panelconfig;
import java.io.Serializable; import java.io.Serializable;
import java.util.Iterator;
import org.eclnt.editor.annotations.CCGenClass; import org.eclnt.editor.annotations.CCGenClass;
import org.eclnt.jsfserver.elements.componentnodes.COLDISTANCENode; 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.PANENode;
import org.eclnt.jsfserver.elements.componentnodes.ROWNode; import org.eclnt.jsfserver.elements.componentnodes.ROWNode;
import org.eclnt.jsfserver.elements.impl.DYNAMICCONTENTBinding; import org.eclnt.jsfserver.elements.impl.DYNAMICCONTENTBinding;
import org.eclnt.jsfserver.elements.impl.ROWDYNAMICCONTENTBinding;
import org.eclnt.jsfserver.pagebean.PageBean; import org.eclnt.jsfserver.pagebean.PageBean;
@CCGenClass (expressionBase="#{d.PanelConfigBean}") @CCGenClass (expressionBase="#{d.PanelConfigBean}")
public class PanelConfigBean extends PageBean implements Serializable { 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"; String m_nanoleafToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4";
public String getNanoleafToken() { return m_nanoleafToken; } 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) { public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
createNanoleafLayoutList(getMatrixX(), getMatrixY());
} }
int m_matrixY = 3; int m_matrixY = 3;
@ -87,24 +98,80 @@ public class PanelConfigBean extends PageBean implements Serializable {
COLDISTANCENode coldistanceNode = null; COLDISTANCENode coldistanceNode = null;
PANENode paneNode = null; PANENode paneNode = null;
PanelInfo panelInfo = null; PanelInfo panelInfo = null;
LABELNode labelNode = null;
for (int p = 0; p < countPanels; p++) { for (int p = 0; p < countPanels; p++) {
panelInfo = new PanelInfo(p); panelInfo = new PanelInfo(56253 + p);
paneNode = new PANENode(); paneNode = new PANENode();
paneNode.setHeight(80); paneNode.setHeight(60);
paneNode.setWidth(80); paneNode.setWidth(60);
paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000"); 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); row.addSubNode(paneNode);
coldistanceNode = new COLDISTANCENode(); coldistanceNode = new COLDISTANCENode();
coldistanceNode.setWidth(20); coldistanceNode.setWidth(20);
paneNode.addSubNode(coldistanceNode); row.addSubNode(coldistanceNode);
} }
getDynPanelList().setContentNode(row); 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 getPageName() { return "/games/nanoleaf/panelconfig/panelconfig.xml"; }
public String getRootExpressionUsedInPage() { return "#{d.PanelConfigBean}"; } public String getRootExpressionUsedInPage() { return "#{d.PanelConfigBean}"; }

@ -93,11 +93,24 @@ public class NanoleafServer {
lastIDSet.add(lastID); lastIDSet.add(lastID);
try { try {
int panelID = event.getInitialPanelId();
//device.setPanelColor(panelID, "#ff0000", 2); List<Panel> 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) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

@ -73,6 +73,10 @@
<t:field id="g_67" enabled="false" text="#{d.PanelConfigBean.nanoleafToken}" width="250" /> <t:field id="g_67" enabled="false" text="#{d.PanelConfigBean.nanoleafToken}" width="250" />
<t:coldistance id="g_74" /> <t:coldistance id="g_74" />
<t:button id="g_46" text="Connect" width="80" /> <t:button id="g_46" text="Connect" width="80" />
<t:coldistance id="g_83" />
<t:button id="g_84" actionListener="#{d.PanelConfigBean.onPanelsOn}" background="#00ff00" text="ON" width="60" />
<t:coldistance id="g_85" />
<t:button id="g_86" actionListener="#{d.PanelConfigBean.onPanelsOff}" background="#ff0000" text="OFF" width="60" />
</t:row> </t:row>
</t:splitpanesplit> </t:splitpanesplit>
</t:splitpane> </t:splitpane>
@ -90,7 +94,13 @@
</t:row> </t:row>
<t:rowdistance id="g_71" height="15" /> <t:rowdistance id="g_71" height="15" />
<t:rowline id="g_72" /> <t:rowline id="g_72" />
<t:row id="g_51" /> <t:row id="g_51" >
<t:pane id="g_87" >
<t:row id="g_88" />
<t:rowdistance id="g_91" height="50%" />
<t:rowdynamiccontent id="g_89" contentbinding="#{d.PanelConfigBean.dynNanoleafLayout}" />
</t:pane>
</t:row>
</t:rowbodypane> </t:rowbodypane>
</t:layoutdefinition> </t:layoutdefinition>
Loading…
Cancel
Save