From 1e19e5aed83bffb8596191ca91215a17d36d0cae Mon Sep 17 00:00:00 2001 From: VogelT Date: Mon, 24 Mar 2025 08:03:58 +0100 Subject: [PATCH] Last Version --- .../nanoleaf/panelconfig/PanelConfigBean.java | 106 +++++++++++------- .../nanoleaf/panelconfig/panelconfig.xml | 2 +- 2 files changed, 67 insertions(+), 41 deletions(-) diff --git a/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java b/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java index 7f0888d..f2712bd 100644 --- a/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java +++ b/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java @@ -1,13 +1,18 @@ 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,8 +20,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; } + ROWDYNAMICCONTENTBinding m_dynMatrixPanels = new ROWDYNAMICCONTENTBinding(); + public ROWDYNAMICCONTENTBinding getDynMatrixPanels() { return m_dynMatrixPanels; } public void onPanelsOff(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {} @@ -39,6 +44,17 @@ public class PanelConfigBean extends PageBean implements Serializable { public String getHostname() { return m_hostname; } public void setHostname(String value) { this.m_hostname = value; } + 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); + } DYNAMICCONTENTBinding m_dynPanelList = new DYNAMICCONTENTBinding(); public DYNAMICCONTENTBinding getDynPanelList() { return m_dynPanelList; } @@ -49,7 +65,7 @@ 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; @@ -101,8 +117,8 @@ public class PanelConfigBean extends PageBean implements Serializable { LABELNode labelNode = null; for (int p = 0; p < countPanels; p++) { - panelInfo = new PanelInfo(56253 + p); - paneNode = new PANENode(); + panelInfo = new PanelInfo(p); + paneNode = new NanoPANENode(panelInfo); paneNode.setHeight(60); paneNode.setWidth(60); paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000"); @@ -127,51 +143,61 @@ public class PanelConfigBean extends PageBean implements Serializable { } - private void createNanoleafLayoutList(int xPanels, int yPanels) { + private void createPanelMatrix(int anzahlPanels, int matrixX, int matrixY) { - ROWNode row = new ROWNode(); - COLDISTANCENode coldistanceNode = null; + int anzahlPanelMatrix = 0; + + anzahlPanelMatrix = matrixX * matrixY; + + //List componentNodeList = new ArrayList(); + ROWNode row = null; + PANENode rootPaneNode = new PANENode(); + rootPaneNode.setRowdistance("5"); PANENode paneNode = null; - PanelInfo panelInfo = null; - PANENode paneNodeRoot = new PANENode(); + COLDISTANCENode coldistanceNode = null; - for (int x = 0; x < xPanels; x++) { + for (int x = 0; x < matrixX; x++) { row = new ROWNode(); - for (int y = 0; y < yPanels; y++) { + for (int y = 0; y < matrixY; 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); + 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); } - paneNodeRoot.addSubNode(row); + + rootPaneNode.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); + 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!"); + } + } + public String getPageName() { return "/games/nanoleaf/panelconfig/panelconfig.xml"; } public String getRootExpressionUsedInPage() { return "#{d.PanelConfigBean}"; } diff --git a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml b/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml index a11833f..92a8a01 100644 --- a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml +++ b/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml @@ -98,7 +98,7 @@ - +