Compare commits

..

No commits in common. 'dacdae229b2f3b63a53fa946bd1c379c19e11162' and 'e3a1fae4ff0578e9c5b8059171824e35a1fcae2a' have entirely different histories.

@ -1,13 +1,17 @@
package de.games.nanoleaf.panelconfig;
import java.io.Serializable;
import java.util.Iterator;
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.LABELNode;
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;
@ -15,12 +19,8 @@ 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) {}
ROWDYNAMICCONTENTBinding m_dynMatrixPanels = new ROWDYNAMICCONTENTBinding();
public ROWDYNAMICCONTENTBinding getDynMatrixPanels() { return m_dynMatrixPanels; }
String m_nanoleafToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4";
@ -48,11 +48,68 @@ public class PanelConfigBean extends PageBean implements Serializable {
}
public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
createNanoleafLayoutList(getMatrixX(), getMatrixY());
createPanelMatrix(getAnzahlPanels(), getMatrixX(), getMatrixY());
}
int m_matrixY = 3;
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; }
@ -76,6 +133,7 @@ public class PanelConfigBean extends PageBean implements Serializable {
/* Listener to the user of the page bean. */
public interface IListener extends Serializable {
}
// ------------------------------------------------------------------------
@ -91,87 +149,43 @@ public class PanelConfigBean extends PageBean implements Serializable {
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) {
private void createPanelsList(int countPanels) {
ROWNode row = new ROWNode();
COLDISTANCENode coldistanceNode = null;
PANENode paneNode = null;
NanoPANENode paneNode = null;
PanelInfo panelInfo = null;
LABELNode labelNode = null;
for (int p = 0; p < countPanels; p++) {
panelInfo = new PanelInfo(56253 + 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:" + 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);
panelInfo = new PanelInfo(p);
paneNode = new NanoPANENode(panelInfo);
row.addSubNode(paneNode);
coldistanceNode = new COLDISTANCENode();
coldistanceNode.setWidth(20);
coldistanceNode.setWidth(10);
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}"; }

@ -1,15 +1,10 @@
package de.games.nanoleaf.server;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import io.github.rowak.nanoleafapi.Aurora;
import io.github.rowak.nanoleafapi.Canvas;
import io.github.rowak.nanoleafapi.Color;
import io.github.rowak.nanoleafapi.NanoleafDevice;
import io.github.rowak.nanoleafapi.Panel;
import io.github.rowak.nanoleafapi.event.DetailedTouchEvent;
@ -37,8 +32,6 @@ public class NanoleafServer {
Canvas nanoleafCanvas = null;
Set<Integer> lastIDSet = new HashSet<Integer>();
try {
//nanoleafCanvas = new Canvas(host, port, accessToken);
@ -46,13 +39,6 @@ public class NanoleafServer {
// Verbinde mit dem Gerät
NanoleafDevice device = NanoleafDevice.createDevice(host, port, accessToken);
// List<Panel> panelList = device.getPanels();
//
// for (Panel panel: panelList) {
// System.out.println("Panel: " + panel.getId());
// }
device.setColor(Color.WHITE);
device.enableTouchEventStreaming(port); // You need to specify a port to listen on
device.registerTouchEventStreamingListener(new NanoleafTouchEventListener() {
@Override
@ -68,78 +54,37 @@ public class NanoleafServer {
@Override
public void onEvent(DetailedTouchEvent[] events) {
// Called when a touch event occurs
//System.out.println("Events: " + events.length);
System.out.println("Events: " + events.length);
DetailedTouchEvent event = events[0];
Integer lastID = event.getPanelId();
//TouchEvent touch = event.getTouchType();
switch (event.getTouchType()) {
case TouchEvent.DOUBLE_TAP:
//System.out.println("DOUBLE_TAP");
System.out.println("DOUBLE_TAP");
break;
case TouchEvent.SINGLE_TAP:
//System.out.println("SINGLE_TAP");
if (lastIDSet.contains(lastID)) {
return;
} else {
lastIDSet.clear();
lastIDSet.add(lastID);
try {
List<Panel> panels = device.getPanels();
device.enableExternalStreaming();
// 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();
}
System.out.println("ID: " + event.getPanelId());
}
System.out.println("SINGLE_TAP");
break;
case TouchEvent.HOLD:
//System.out.println("HOLD");
System.out.println("HOLD");
break;
case TouchEvent.UNKNOWN_ATTRIBUTE:
//System.out.println("UNKNOWN_ATTRIBUTE");
System.out.println("UNKNOWN_ATTRIBUTE");
break;
default:
//System.out.println("Unexpected value: " + event.getTouchType());
}
System.out.println("Unexpected value: " + event.getTouchType());
}
System.out.println("ID: " + event.getPanelId());
}
});

@ -73,10 +73,6 @@
<t:field id="g_67" enabled="false" text="#{d.PanelConfigBean.nanoleafToken}" width="250" />
<t:coldistance id="g_74" />
<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:splitpanesplit>
</t:splitpane>
@ -94,11 +90,12 @@
</t:row>
<t:rowdistance id="g_71" height="15" />
<t:rowline id="g_72" />
<t:rowdistance id="g_86" height="15" />
<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 id="g_83" height="100%" width="100%" >
<t:rowdistance id="g_88" height="50%" />
<t:rowdynamiccontent id="g_84" contentbinding="#{d.PanelConfigBean.dynMatrixPanels}" />
<t:rowdistance id="g_89" height="50%" />
</t:pane>
</t:row>
</t:rowbodypane>

Loading…
Cancel
Save