diff --git a/pom.xml b/pom.xml
index 1cfd457..1af7c46 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
- 20240910
+ 20250128
diff --git a/src/main/java/de/games/nanoleaf/panelconfig/NanoPANENode.java b/src/main/java/de/games/nanoleaf/panelconfig/NanoPANENode.java
new file mode 100644
index 0000000..2abdffa
--- /dev/null
+++ b/src/main/java/de/games/nanoleaf/panelconfig/NanoPANENode.java
@@ -0,0 +1,74 @@
+package de.games.nanoleaf.panelconfig;
+
+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.ROWDISTANCENode;
+import org.eclnt.jsfserver.elements.componentnodes.ROWNode;
+
+public class NanoPANENode extends PANENode {
+
+ private PanelInfo m_panelInfo = null;
+
+ public PanelInfo getPanelInfo() {
+ return m_panelInfo;
+ }
+
+ public void setPanelInfo(PanelInfo panelInfo) {
+ m_panelInfo = panelInfo;
+ }
+
+ public NanoPANENode(PanelInfo panelInfo) {
+ this.m_panelInfo = panelInfo;
+
+ createInnerPane();
+ }
+
+ private void createInnerPane() {
+
+ this.setDragsend("NANOLEAF:ID_" + getPanelInfo().getPanelID());
+ this.setHeight(80);
+ this.setWidth(80);
+ this.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000");
+ ROWDISTANCENode rowdistanceNode = new ROWDISTANCENode();
+ this.addSubNode(rowdistanceNode);
+
+ ROWNode row = new ROWNode();
+
+ COLDISTANCENode coldistanceNode = new COLDISTANCENode();
+ row.addSubNode(coldistanceNode);
+
+ LABELNode labelPaneID = new LABELNode();
+ labelPaneID.setText("ID: " + getPanelInfo().getPanelID());
+
+ row.addSubNode(labelPaneID);
+
+ this.addSubNode(row);
+
+ row = new ROWNode();
+ coldistanceNode = new COLDISTANCENode();
+ row.addSubNode(coldistanceNode);
+ labelPaneID = new LABELNode();
+ labelPaneID.setText("Nano ID: ");
+
+ row.addSubNode(labelPaneID);
+
+ this.addSubNode(row);
+
+ row = new ROWNode();
+ coldistanceNode = new COLDISTANCENode();
+ row.addSubNode(coldistanceNode);
+ labelPaneID = new LABELNode();
+ if (getPanelInfo().getPanelNanoleafID() == null) {
+ labelPaneID.setText("unbek.");
+ } else {
+ labelPaneID.setText(getPanelInfo().getPanelNanoleafID());
+ }
+
+ row.addSubNode(labelPaneID);
+
+ this.addSubNode(row);
+
+ }
+
+}
diff --git a/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java b/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java
index 84ce7ae..9ba6bd1 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.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; }
@@ -38,10 +48,68 @@ public class PanelConfigBean extends PageBean implements Serializable {
}
public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
-
+ createPanelMatrix(getAnzahlPanels(), getMatrixX(), getMatrixY());
}
- int m_matrixY = 3;
+ private void createPanelMatrix(int anzahlPanels, int matrixX, int matrixY) {
+
+ int anzahlPanelMatrix = 0;
+
+ anzahlPanelMatrix = matrixX * matrixY;
+
+ //List componentNodeList = new ArrayList();
+ 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; }
@@ -80,26 +148,38 @@ public class PanelConfigBean extends PageBean implements Serializable {
public PanelConfigBean() {
createPanelsList(1);
}
+
+ private List m_nanoPaneNodeList = null;
+ public List getNanoPaneNodeList() {
+ if (m_nanoPaneNodeList == null) {
+ m_nanoPaneNodeList = new ArrayList();
+ }
+ 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;
for (int p = 0; p < countPanels; p++) {
panelInfo = new PanelInfo(p);
- paneNode = new PANENode();
- paneNode.setHeight(80);
- paneNode.setWidth(80);
- paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000");
+ paneNode = new NanoPANENode(panelInfo);
+
row.addSubNode(paneNode);
coldistanceNode = new COLDISTANCENode();
- coldistanceNode.setWidth(20);
- paneNode.addSubNode(coldistanceNode);
+ coldistanceNode.setWidth(10);
+
+ row.addSubNode(coldistanceNode);
}
getDynPanelList().setContentNode(row);
diff --git a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml b/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml
index bc7e139..caab100 100644
--- a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml
+++ b/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml
@@ -5,7 +5,7 @@
-
+
@@ -90,7 +90,14 @@
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/workplace/home.xml b/src/main/webapp/workplace/home.xml
index da144c0..878febe 100644
--- a/src/main/webapp/workplace/home.xml
+++ b/src/main/webapp/workplace/home.xml
@@ -4,6 +4,12 @@
-
+
+
+
+
+
+
+
\ No newline at end of file