Update Matirx

master
VogelT 1 year ago
parent 22ba65a8a6
commit f0d40d695e

@ -27,7 +27,7 @@
<properties> <properties>
<!-- This is the CaptainCasa version to be used. --> <!-- This is the CaptainCasa version to be used. -->
<cc.version>20240910</cc.version> <cc.version>20250128</cc.version>
</properties> </properties>
<dependencies> <dependencies>

@ -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);
}
}

@ -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.ArrayList;
import java.util.List;
import org.eclnt.editor.annotations.CCGenClass; 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.COLDISTANCENode;
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.events.BaseActionEventDrop;
import org.eclnt.jsfserver.elements.events.BaseActionEventInvoke;
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_dynMatrixPanels = new ROWDYNAMICCONTENTBinding();
public ROWDYNAMICCONTENTBinding getDynMatrixPanels() { return m_dynMatrixPanels; }
String m_nanoleafToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4"; String m_nanoleafToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4";
public String getNanoleafToken() { return m_nanoleafToken; } 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) { public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
createPanelMatrix(getAnzahlPanels(), 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 int getMatrixY() { return m_matrixY; }
public void setMatrixY(int value) { this.m_matrixY = value; } public void setMatrixY(int value) { this.m_matrixY = value; }
@ -81,25 +149,37 @@ public class PanelConfigBean extends PageBean implements Serializable {
createPanelsList(1); createPanelsList(1);
} }
private void createPanelsList(int countPanels) { 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) {
ROWNode row = new ROWNode(); ROWNode row = new ROWNode();
COLDISTANCENode coldistanceNode = null; COLDISTANCENode coldistanceNode = null;
PANENode paneNode = null; NanoPANENode paneNode = null;
PanelInfo panelInfo = null; PanelInfo panelInfo = null;
for (int p = 0; p < countPanels; p++) { for (int p = 0; p < countPanels; p++) {
panelInfo = new PanelInfo(p); panelInfo = new PanelInfo(p);
paneNode = new PANENode(); paneNode = new NanoPANENode(panelInfo);
paneNode.setHeight(80);
paneNode.setWidth(80);
paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000");
row.addSubNode(paneNode); row.addSubNode(paneNode);
coldistanceNode = new COLDISTANCENode(); coldistanceNode = new COLDISTANCENode();
coldistanceNode.setWidth(20); coldistanceNode.setWidth(10);
paneNode.addSubNode(coldistanceNode);
row.addSubNode(coldistanceNode);
} }
getDynPanelList().setContentNode(row); getDynPanelList().setContentNode(row);

@ -5,7 +5,7 @@
<t:row id="g_5" /> <t:row id="g_5" />
<t:rowbodypane id="g_4" > <t:rowbodypane id="g_4" >
<t:row id="g_13" > <t:row id="g_13" >
<t:splitpane id="g_14" dividerlocation="400" height="160" orientation="horizontal" width="100%" withwritebackdividerlocation="false" > <t:splitpane id="g_14" dividerlocation="400" dividersize="2" height="160" orientation="horizontal" width="100%" withwritebackdividerlocation="true" >
<t:splitpanesplit id="g_15" > <t:splitpanesplit id="g_15" >
<t:row id="g_7" > <t:row id="g_7" >
<t:coldistance id="g_2" /> <t:coldistance id="g_2" />
@ -90,7 +90,14 @@
</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: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>
</t:row>
</t:rowbodypane> </t:rowbodypane>
</t:layoutdefinition> </t:layoutdefinition>

@ -4,6 +4,12 @@
<t:beanprocessing id="g_1" beanbinding="#{d.HomeBean}" /> <t:beanprocessing id="g_1" beanbinding="#{d.HomeBean}" />
<t:rowtitlebar id="g_2" text="Home" /> <t:rowtitlebar id="g_2" text="Home" />
<t:rowheader id="g_3" /> <t:rowheader id="g_3" />
<t:rowbodypane id="g_4" /> <t:rowbodypane id="g_4" >
<t:rowdistance id="g_6" />
<t:row id="g_7" >
<t:coldistance id="g_8" />
<t:label id="g_9" text="My Home Page :-)" />
</t:row>
</t:rowbodypane>
</t:layoutdefinition> </t:layoutdefinition>
Loading…
Cancel
Save