Compare commits

...

4 Commits

Author SHA1 Message Date
mail dacdae229b Merge branch 'master' of
11 months ago
mail be7cf3a015 erweitert
11 months ago
mail 5c8cf8e3c8 Update
11 months ago
mail a8469b0b22 Update
12 months ago

@ -1,17 +1,13 @@
package de.games.nanoleaf.panelconfig;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
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;
@ -19,8 +15,12 @@ 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; }
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";
@ -48,68 +48,11 @@ public class PanelConfigBean extends PageBean implements Serializable {
}
public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
createPanelMatrix(getAnzahlPanels(), getMatrixX(), getMatrixY());
createNanoleafLayoutList(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;
int m_matrixY = 3;
public int getMatrixY() { return m_matrixY; }
public void setMatrixY(int value) { this.m_matrixY = value; }
@ -133,7 +76,6 @@ public class PanelConfigBean extends PageBean implements Serializable {
/* Listener to the user of the page bean. */
public interface IListener extends Serializable {
}
// ------------------------------------------------------------------------
@ -149,43 +91,87 @@ 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;
NanoPANENode paneNode = null;
PANENode paneNode = null;
PanelInfo panelInfo = null;
LABELNode labelNode = null;
for (int p = 0; p < countPanels; p++) {
panelInfo = new PanelInfo(p);
paneNode = new NanoPANENode(panelInfo);
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);
row.addSubNode(paneNode);
coldistanceNode = new COLDISTANCENode();
coldistanceNode.setWidth(10);
coldistanceNode.setWidth(20);
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,10 +1,15 @@
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;
@ -32,6 +37,8 @@ public class NanoleafServer {
Canvas nanoleafCanvas = null;
Set<Integer> lastIDSet = new HashSet<Integer>();
try {
//nanoleafCanvas = new Canvas(host, port, accessToken);
@ -39,6 +46,13 @@ 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
@ -54,37 +68,78 @@ 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");
//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());
}
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,6 +73,10 @@
<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>
@ -90,12 +94,11 @@
</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_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 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>

Loading…
Cancel
Save