diff --git a/src/main/java/de/games/nanoleaf/tictactoe/TicTacToeBean.java b/src/main/java/de/examples/components/DragDropPaneBean.java
similarity index 60%
rename from src/main/java/de/games/nanoleaf/tictactoe/TicTacToeBean.java
rename to src/main/java/de/examples/components/DragDropPaneBean.java
index 0e23f4f..82e2041 100644
--- a/src/main/java/de/games/nanoleaf/tictactoe/TicTacToeBean.java
+++ b/src/main/java/de/examples/components/DragDropPaneBean.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.tictactoe;
+package de.examples.components;
import java.io.Serializable;
import org.eclnt.editor.annotations.CCGenClass;
@@ -6,12 +6,38 @@ import org.eclnt.jsfserver.pagebean.PageBean;
import org.eclnt.jsfserver.base.faces.event.ActionEvent;
-@CCGenClass (expressionBase="#{d.TicTacToeBean}")
+@CCGenClass (expressionBase="#{d.DragDropPaneBean}")
-public class TicTacToeBean
+public class DragDropPaneBean
extends PageBean
implements Serializable
{
+ public void onPaneSource(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
+
+ System.out.println("Hier");
+ }
+
+
+ public class PaneInfo {
+ int i_paneNr;
+ public int getPaneNr() { return i_paneNr; }
+ public void setPaneNr(int value) { this.i_paneNr = value; }
+
+ int i_nanoleafID;
+ public int getNanoleafID() { return i_nanoleafID; }
+ public void setNanoleafID(int value) { this.i_nanoleafID = value; }
+
+
+ String i_drangsendSource;
+ public String getDrangsendSource() { return i_drangsendSource; }
+ public void setDrangsendSource(String value) { this.i_drangsendSource = value; }
+
+ }
+
+
+
+
+
// ------------------------------------------------------------------------
// inner classes
// ------------------------------------------------------------------------
@@ -31,12 +57,12 @@ public class TicTacToeBean
// constructors & initialization
// ------------------------------------------------------------------------
- public TicTacToeBean()
+ public DragDropPaneBean()
{
}
- public String getPageName() { return "/games/nanoleaf/tictactoe/tictactoe.xml"; }
- public String getRootExpressionUsedInPage() { return "#{d.TicTacToeBean}"; }
+ public String getPageName() { return "/examples/componets/dragDropPane.xml"; }
+ public String getRootExpressionUsedInPage() { return "#{d.DragDropPaneBean}"; }
// ------------------------------------------------------------------------
// public usage
diff --git a/src/main/java/de/examples/managedbeans.xml b/src/main/java/de/examples/managedbeans.xml
index ec52e03..751ddf1 100644
--- a/src/main/java/de/examples/managedbeans.xml
+++ b/src/main/java/de/examples/managedbeans.xml
@@ -2,8 +2,11 @@
-
+
+
\ No newline at end of file
diff --git a/src/main/java/de/games/managedbeans.xml b/src/main/java/de/games/managedbeans.xml
deleted file mode 100644
index 7ced9d4..0000000
--- a/src/main/java/de/games/managedbeans.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/de/games/nanoleaf/lightsswitch/LightsOnOffBean.java b/src/main/java/de/nanoleaf/games/lightswitch/LightsOnOffBean.java
similarity index 98%
rename from src/main/java/de/games/nanoleaf/lightsswitch/LightsOnOffBean.java
rename to src/main/java/de/nanoleaf/games/lightswitch/LightsOnOffBean.java
index 2e1f44b..f76681f 100644
--- a/src/main/java/de/games/nanoleaf/lightsswitch/LightsOnOffBean.java
+++ b/src/main/java/de/nanoleaf/games/lightswitch/LightsOnOffBean.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.lightsswitch;
+package de.nanoleaf.games.lightswitch;
import java.io.Serializable;
import java.util.ArrayList;
@@ -76,7 +76,7 @@ public class LightsOnOffBean
random = null;
m_countSteps = 0;
m_colorButton1 = null;
- m_colorButton2= null;
+ m_colorButton2 = null;
m_colorButton3 = null;
m_colorButton4 = null;
m_colorButton5 = null;
@@ -397,7 +397,7 @@ public class LightsOnOffBean
}
@Override
- public String getPageName() { return "/games/nanoleaf/lightswitch/lightsOnOff.jsp"; }
+ public String getPageName() { return "/nanoleaf/games/lightswitch/lightsOnOff.jsp"; }
@Override
public String getRootExpressionUsedInPage() { return "#{d.LightsOnOffBean}"; }
diff --git a/src/main/java/de/nanoleaf/games/tictactoe/CheckTicTacToe.java b/src/main/java/de/nanoleaf/games/tictactoe/CheckTicTacToe.java
new file mode 100644
index 0000000..d585d62
--- /dev/null
+++ b/src/main/java/de/nanoleaf/games/tictactoe/CheckTicTacToe.java
@@ -0,0 +1,119 @@
+package de.nanoleaf.games.tictactoe;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CheckTicTacToe {
+
+ private class Fields {
+
+ List fieldsList = null;
+
+
+
+
+ public List getFieldsList() {
+ return fieldsList;
+ }
+
+
+
+
+ public Fields(int field1, int field2, int field3) {
+ fieldsList = new ArrayList();
+ fieldsList.add(field1);
+ fieldsList.add(field2);
+ fieldsList.add(field3);
+ }
+ }
+
+ List m_checkList = null;
+ public List getCheckList() {
+ if (m_checkList == null) {
+ m_checkList = new ArrayList();
+ }
+ return m_checkList;
+ }
+
+
+ public CheckTicTacToe() {
+ initCheckList();
+ }
+
+
+ private void initCheckList() {
+
+ /**
+ * ###
+ * ###
+ * ###
+ *
+ */
+
+ getCheckList().add(new Fields(1, 2, 3));
+ getCheckList().add(new Fields(4, 5, 6));
+ getCheckList().add(new Fields(7, 8, 9));
+
+ getCheckList().add(new Fields(1, 4, 7));
+ getCheckList().add(new Fields(2, 5, 6));
+ getCheckList().add(new Fields(3, 6, 9));
+
+ getCheckList().add(new Fields(1, 5, 9));
+ getCheckList().add(new Fields(3, 5, 7));
+
+ }
+
+
+ public boolean checkFinal(int[] playerArray) {
+
+ boolean finish = false;
+ Integer playerlast = 0;
+ boolean next = false;
+ //System.out.println("Start Check...");
+ List playerList = new ArrayList();
+ for (Fields fields: getCheckList()) {
+ next = false;
+ finish = false;
+ playerList = new ArrayList();
+ //System.out.println("List: " + fields.getFieldsList().toString());
+ for (int f = 0; f < fields.getFieldsList().size(); f++) {
+ int field = fields.getFieldsList().get(f).intValue();
+
+ int player = playerArray[field];
+ //System.out.println("Find Player: " + player);
+ if (player == 0) {
+ next = true;
+ finish = false;
+ //System.out.println("NEXT");
+ } else {
+ if (f == 0) {
+ playerlast = player;
+ playerList.add(playerlast);
+ } else {
+ if (playerlast == player) {
+ playerList.add(playerlast);
+ } else {
+ next = true;
+ }
+
+ }
+ }
+
+ if (next) {
+ break;
+ }
+
+ }
+ if (next == false) {
+ //System.out.println("FINISH");
+ finish = true;
+ //System.out.println("List: " + fields.getFieldsList().toString());
+ break;
+ }
+ }
+
+
+ return finish;
+ }
+
+}
diff --git a/src/main/java/de/nanoleaf/games/tictactoe/TicTacToeBean.java b/src/main/java/de/nanoleaf/games/tictactoe/TicTacToeBean.java
new file mode 100644
index 0000000..94644d7
--- /dev/null
+++ b/src/main/java/de/nanoleaf/games/tictactoe/TicTacToeBean.java
@@ -0,0 +1,325 @@
+package de.nanoleaf.games.tictactoe;
+
+import java.io.Serializable;
+
+import org.eclnt.editor.annotations.CCGenClass;
+import org.eclnt.jsfserver.base.faces.event.ActionEvent;
+import org.eclnt.jsfserver.pagebean.PageBean;
+
+import de.tools.ReflectClass;
+
+@CCGenClass (expressionBase="#{d.TicTacToeBean}")
+
+public class TicTacToeBean extends PageBean implements Serializable {
+
+ int[] playerArray = new int[10];
+
+ String m_colorButton1;
+ public String getColorButton1() { return m_colorButton1; }
+ public void setColorButton1(String value) { this.m_colorButton1 = value; }
+
+ String m_colorButton2;
+ public String getColorButton2() { return m_colorButton2; }
+ public void setColorButton2(String value) { this.m_colorButton2 = value; }
+
+ String m_colorButton3;
+ public String getColorButton3() { return m_colorButton3; }
+ public void setColorButton3(String value) { this.m_colorButton3 = value; }
+
+ String m_colorButton4;
+ public String getColorButton4() { return m_colorButton4; }
+ public void setColorButton4(String value) { this.m_colorButton4 = value; }
+
+ String m_colorButton5;
+ public String getColorButton5() { return m_colorButton5; }
+ public void setColorButton5(String value) { this.m_colorButton5 = value; }
+
+ String m_colorButton6;
+ public String getColorButton6() { return m_colorButton6; }
+ public void setColorButton6(String value) { this.m_colorButton6 = value; }
+
+ String m_colorButton7;
+ public String getColorButton7() { return m_colorButton7; }
+ public void setColorButton7(String value) { this.m_colorButton7 = value; }
+
+ String m_colorButton8;
+ public String getColorButton8() { return m_colorButton8; }
+ public void setColorButton8(String value) { this.m_colorButton8 = value; }
+
+ String m_colorButton9;
+ public String getColorButton9() { return m_colorButton9; }
+ public void setColorButton9(String value) { this.m_colorButton9 = value; }
+
+ boolean m_enabledButton1;
+ public boolean getEnabledButton1() { return m_enabledButton1; }
+ public void setEnabledButton1(boolean value) { this.m_enabledButton1 = value; }
+
+ boolean m_enabledButton2;
+ public boolean getEnabledButton2() { return m_enabledButton2; }
+ public void setEnabledButton2(boolean value) { this.m_enabledButton2 = value; }
+
+ boolean m_enabledButton3;
+ public boolean getEnabledButton3() { return m_enabledButton3; }
+ public void setEnabledButton3(boolean value) { this.m_enabledButton3 = value; }
+
+ boolean m_enabledButton4;
+ public boolean getEnabledButton4() { return m_enabledButton4; }
+ public void setEnabledButton4(boolean value) { this.m_enabledButton4 = value; }
+
+ boolean m_enabledButton5;
+ public boolean getEnabledButton5() { return m_enabledButton5; }
+ public void setEnabledButton5(boolean value) { this.m_enabledButton5 = value; }
+
+ boolean m_enabledButton6;
+ public boolean getEnabledButton6() { return m_enabledButton6; }
+ public void setEnabledButton6(boolean value) { this.m_enabledButton6 = value; }
+
+ boolean m_enabledButton7;
+ public boolean getEnabledButton7() { return m_enabledButton7; }
+ public void setEnabledButton7(boolean value) { this.m_enabledButton7 = value; }
+
+ boolean m_enabledButton8;
+ public boolean getEnabledButton8() { return m_enabledButton8; }
+ public void setEnabledButton8(boolean value) { this.m_enabledButton8 = value; }
+
+ boolean m_enabledButton9;
+ public boolean getEnabledButton9() { return m_enabledButton9; }
+ public void setEnabledButton9(boolean value) { this.m_enabledButton9 = value; }
+
+ private void changeColor() {
+
+ if (getLightPlayerNext().equals(getLightPlayer1())) {
+ setLightPlayerNext(getLightPlayer2());
+ setNextPlayer(2);
+ } else {
+ setLightPlayerNext(getLightPlayer1());
+ setNextPlayer(1);
+ }
+ }
+
+ public void onButton1(ActionEvent event) {
+ if (getEnabledButton1() == true) {
+ setColorButton1(getLightPlayerNext());
+ setEnabledButton1(false);
+ playerArray[1] = getNextPlayer();
+ changeColor();
+ }
+
+
+ resultTextSetter();
+ }
+
+
+ public void onButton2(ActionEvent event) {
+ if (getEnabledButton2() == true) {
+ setColorButton2(getLightPlayerNext());
+ setEnabledButton2(false);
+ playerArray[2] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public void onButton3(ActionEvent event) {
+ if (getEnabledButton3() == true) {
+ setColorButton3(getLightPlayerNext());
+ setEnabledButton3(false);
+ playerArray[3] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public void onButton4(ActionEvent event) {
+ if (getEnabledButton4() == true) {
+ setColorButton4(getLightPlayerNext());
+ setEnabledButton4(false);
+ playerArray[4] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public void onButton5(ActionEvent event) {
+ if (getEnabledButton5() == true) {
+ setColorButton5(getLightPlayerNext());
+ setEnabledButton5(false);
+ playerArray[5] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public void onButton6(ActionEvent event) {
+ if (getEnabledButton6() == true) {
+ setColorButton6(getLightPlayerNext());
+ setEnabledButton6(false);
+ playerArray[6] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public void onButton7(ActionEvent event) {
+ if (getEnabledButton7() == true) {
+ setColorButton7(getLightPlayerNext());
+ setEnabledButton7(false);
+ playerArray[7] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public void onButton8(ActionEvent event) {
+ if (getEnabledButton8() == true) {
+ setColorButton8(getLightPlayerNext());
+ setEnabledButton8(false);
+ playerArray[8] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public void onButton9(ActionEvent event) {
+ if (getEnabledButton9() == true) {
+ setColorButton9(getLightPlayerNext());
+ setEnabledButton9(false);
+ playerArray[9] = getNextPlayer();
+ changeColor();
+ }
+
+ resultTextSetter();
+ }
+
+ public String m_lightPlayer1 = "#66FF00";
+ public String getLightPlayer1() { return m_lightPlayer1; }
+
+ public String m_lightPlayer2 = "#FF0000";
+ public String getLightPlayer2() { return m_lightPlayer2; }
+
+ public String m_lightPlayerNext = "#66FF00";
+ public void setLightPlayerNext(String lightPlayerNext) { m_lightPlayerNext = lightPlayerNext; }
+ public String getLightPlayerNext() { return m_lightPlayerNext; }
+
+ public int m_nextPlayer = 1;
+ public int getNextPlayer() { return m_nextPlayer; }
+ public void setNextPlayer(int nextPlayer) { m_nextPlayer = nextPlayer; }
+
+ String m_resultText;
+ public String getResultText() { return m_resultText; }
+ public void setResultText(String value) { this.m_resultText = value; }
+
+ public void onReset(ActionEvent event) {
+
+ enabledAllButtons(true);
+
+ playerArray = new int[10];
+ for (int i = 0; i < 10; i++) {
+ playerArray[i] = 0;
+ }
+
+ m_colorButton1 = null;
+ m_colorButton2 = null;
+ m_colorButton3 = null;
+ m_colorButton4 = null;
+ m_colorButton5 = null;
+ m_colorButton6 = null;
+ m_colorButton7 = null;
+ m_colorButton8 = null;
+ m_colorButton9 = null;
+
+ setNextPlayer(1);
+ setLightPlayerNext(getLightPlayer1());
+
+ resultTextSetter();
+ }
+
+ private void enabledAllButtons(boolean enabled) {
+ for (int i = 1; i <= 9; i++) {
+ getReflectClass().setMethod("setEnabledButton" + i, enabled);
+ }
+ }
+
+ CheckTicTacToe m_checkTicTacToe = new CheckTicTacToe();
+
+ public CheckTicTacToe getCheckTicTacToe() {
+ return m_checkTicTacToe;
+ }
+ private boolean checkFinish() {
+ boolean finish = false;
+
+ finish = getCheckTicTacToe().checkFinal(playerArray);
+
+ return finish;
+ }
+
+ ReflectClass m_reflectClass;
+ public ReflectClass getReflectClass() { return m_reflectClass; }
+
+ private void resultTextSetter() {
+
+ if (checkFinish()) {
+ m_resultText = " GEWONNEN. :-)";
+ enabledAllButtons(false);
+
+ } else {
+ m_resultText = "Player "+ getNextPlayer();
+ }
+ }
+ // ------------------------------------------------------------------------
+ // inner classes
+ // ------------------------------------------------------------------------
+
+ /* Listener to the user of the page bean. */
+ public interface IListener extends Serializable
+ {
+ }
+
+ // ------------------------------------------------------------------------
+ // members
+ // ------------------------------------------------------------------------
+
+ private IListener m_listener;
+
+ // ------------------------------------------------------------------------
+ // constructors & initialization
+ // ------------------------------------------------------------------------
+
+ public TicTacToeBean() {
+ m_reflectClass = new ReflectClass(this);
+ onReset(null);
+ }
+
+ public TicTacToeBean(String lightPlayer1, String lightPlayer2) {
+ this.m_lightPlayer1 = lightPlayer1;
+ this.m_lightPlayer2 = lightPlayer2;
+
+ m_reflectClass = new ReflectClass(this);
+ onReset(null);
+ }
+
+
+ public String getPageName() { return "/nanoleaf/games/tictactoe/tictactoe.xml"; }
+ public String getRootExpressionUsedInPage() { return "#{d.TicTacToeBean}"; }
+
+ // ------------------------------------------------------------------------
+ // public usage
+ // ------------------------------------------------------------------------
+
+ /* Initialization of the bean. Add any parameter that is required within your scenario. */
+ public void prepare(IListener listener)
+ {
+ m_listener = listener;
+ }
+
+ // ------------------------------------------------------------------------
+ // private usage
+ // ------------------------------------------------------------------------
+}
diff --git a/src/main/java/de/nanoleaf/managedbeans.xml b/src/main/java/de/nanoleaf/managedbeans.xml
new file mode 100644
index 0000000..b4cc61a
--- /dev/null
+++ b/src/main/java/de/nanoleaf/managedbeans.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/de/nanoleaf/server/ChangeColorMod.java b/src/main/java/de/nanoleaf/server/ChangeColorMod.java
new file mode 100644
index 0000000..022fa0b
--- /dev/null
+++ b/src/main/java/de/nanoleaf/server/ChangeColorMod.java
@@ -0,0 +1,9 @@
+package de.nanoleaf.server;
+
+public class ChangeColorMod {
+
+ public ChangeColorMod() {
+ // TODO Auto-generated constructor stub
+ }
+
+}
diff --git a/src/main/java/de/nanoleaf/server/ColorEnum.java b/src/main/java/de/nanoleaf/server/ColorEnum.java
new file mode 100644
index 0000000..8a34499
--- /dev/null
+++ b/src/main/java/de/nanoleaf/server/ColorEnum.java
@@ -0,0 +1,45 @@
+package de.nanoleaf.server;
+
+import io.github.rowak.nanoleafapi.Color;
+
+public enum ColorEnum {
+
+ BLACK(Color.BLACK),
+
+ WHITE(Color.WHITE),
+
+ RED(Color.RED),
+
+ GREEN(Color.GREEN),
+
+ BLUE(Color.BLUE),
+
+ MAGENTA(Color.MAGENTA),
+
+ YELLOW(Color.YELLOW),
+
+ CYAN(Color.CYAN),
+
+ GRAY(Color.GRAY),
+
+ LIGHT_GRAY(Color.LIGHT_GRAY),
+
+ DARK_GRAY(Color.DARK_GRAY),
+
+ PINK(Color.PINK),
+
+ ORANGE(Color.ORANGE),
+
+ ;
+
+ private Color m_color;
+ public Color getColor() { return m_color; }
+
+ ColorEnum(Color color) {
+ this.m_color = color;
+ }
+
+
+
+
+}
diff --git a/src/main/java/de/nanoleaf/server/ColorModEnum.java b/src/main/java/de/nanoleaf/server/ColorModEnum.java
new file mode 100644
index 0000000..121f88f
--- /dev/null
+++ b/src/main/java/de/nanoleaf/server/ColorModEnum.java
@@ -0,0 +1,14 @@
+package de.nanoleaf.server;
+
+public enum ColorModEnum {
+
+ NANOLEAF_LIGHT_SWITCH_PANEL_9_GAME,
+
+ NANOLEAF_TIC_TAC_TOE_PANEL_9_GAME,
+
+ NANOLEAF_ON_OFF_TEST,
+
+
+
+ ;
+}
diff --git a/src/main/java/de/nanoleaf/server/Funktionen.txt b/src/main/java/de/nanoleaf/server/Funktionen.txt
new file mode 100644
index 0000000..99c9e3b
--- /dev/null
+++ b/src/main/java/de/nanoleaf/server/Funktionen.txt
@@ -0,0 +1,3 @@
+Funktionen Nanoleaf Server
+
+-
\ No newline at end of file
diff --git a/src/main/java/de/nanoleaf/server/NanoleafDeviceServer.java b/src/main/java/de/nanoleaf/server/NanoleafDeviceServer.java
new file mode 100644
index 0000000..f13353b
--- /dev/null
+++ b/src/main/java/de/nanoleaf/server/NanoleafDeviceServer.java
@@ -0,0 +1,209 @@
+package de.nanoleaf.server;
+
+import java.io.IOException;
+import java.util.List;
+
+import io.github.rowak.nanoleafapi.Color;
+import io.github.rowak.nanoleafapi.NanoleafDevice;
+import io.github.rowak.nanoleafapi.NanoleafException;
+import io.github.rowak.nanoleafapi.Panel;
+import io.github.rowak.nanoleafapi.event.DetailedTouchEvent;
+import io.github.rowak.nanoleafapi.event.NanoleafTouchEventListener;
+import io.github.rowak.nanoleafapi.event.TouchEvent;
+
+public class NanoleafDeviceServer {
+
+ private String m_nanoleafHostname = "Canvas-72FA.fritz.box";
+ public String getNanoleafHostname() { return m_nanoleafHostname; }
+
+ private String m_nanoleafHostIP = "";
+ public String getNanoleafHostIP() { return m_nanoleafHostIP; }
+
+ private int m_nanoleafPort = 16021;
+ public int getNanoleafPort() { return m_nanoleafPort; }
+
+ private String m_nanoleafApiLevel = "v1";
+ public String getNanoleafApiLevel() { return m_nanoleafApiLevel; }
+
+ private String m_nanoleafAccessToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4";
+ public String getNanoleafAccessToken() { return m_nanoleafAccessToken; }
+
+ private NanoleafDevice m_nanoleafDevice = null;
+ public NanoleafDevice getNanoleafDevice() { return m_nanoleafDevice; }
+
+ private int m_nanoleafTouchTimer = 50;
+ public int getNanoleafTouchTimer() { return m_nanoleafTouchTimer; }
+ public void setNanoleafTouchTimer(int nanoleafTouchTimer) { m_nanoleafTouchTimer = nanoleafTouchTimer; }
+
+ private Integer m_nanoleafLastID = null;
+ public Integer getNanoleafLastID() { return m_nanoleafLastID; }
+ public void setNanoleafLastID(Integer nanoleafLastID) { m_nanoleafLastID = nanoleafLastID; }
+
+ private List m_nanoLeafPanels = null;
+ public List getNanoLeafPanels() { return m_nanoLeafPanels; }
+
+
+ public NanoleafDeviceServer() {
+
+ }
+
+ public NanoleafDeviceServer(String nanoleafHostname, String nanoleafHostIP, int nanoleafPort, String nanoleafAccessToken) {
+ this.m_nanoleafHostname = nanoleafHostname;
+ this.m_nanoleafHostIP = nanoleafHostIP;
+ this.m_nanoleafPort = nanoleafPort;
+ this.m_nanoleafAccessToken = nanoleafAccessToken;
+ }
+
+ public boolean deConnectNanoLeaf() throws NanoleafException, IOException {
+ boolean finish = false;
+ try {
+ getNanoleafDevice().closeEventListeners();
+ getNanoleafDevice().closeTouchEventListeners();
+ getNanoleafDevice().closeAsync();
+ m_nanoleafDevice = null;
+ getNanoLeafPanels().clear();
+
+ finish = true;
+ } catch (Exception e) {
+ throw e;
+ }
+
+
+ return finish;
+ }
+
+ public boolean connectNanoLeaf() throws NanoleafException, IOException {
+ boolean connected = false;
+
+ try {
+ m_nanoleafDevice = NanoleafDevice.createDevice(getNanoleafHostname(), getNanoleafPort(), getNanoleafAccessToken());
+
+ if (m_nanoleafDevice != null) {
+ connected = true;
+ refreshPanels();
+ }
+ } catch (Exception e) {
+ throw e;
+ }
+ return connected;
+ }
+
+ private void refreshPanels() throws NanoleafException, IOException {
+
+ if (getNanoleafDevice() != null) {
+ m_nanoLeafPanels = getNanoleafDevice().getPanels();
+ }
+ }
+
+ private boolean checkLastIdActiv(Integer lastID) {
+
+ if (getNanoleafLastID() == null) {
+ return false;
+ }
+
+ return getNanoleafLastID().equals(lastID);
+ }
+
+ public void startNanoLeafEvent() {
+
+
+
+ try {
+ getNanoleafDevice().setColor(Color.BLACK);
+
+ getNanoleafDevice().enableExternalStreaming();
+
+ getNanoleafDevice().enableTouchEventStreaming(getNanoleafPort()); // You need to specify a port to listen on
+ getNanoleafDevice().registerTouchEventStreamingListener(new NanoleafTouchEventListener() {
+ @Override
+ public void onOpen() {
+ // Called when the listener is created
+ }
+
+ @Override
+ public void onClosed() {
+ // Called when the listener is closed
+ }
+
+ @Override
+ public void onEvent(DetailedTouchEvent[] events) {
+ // Called when a touch event occurs
+ //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");
+ break;
+
+ case TouchEvent.SINGLE_TAP:
+ //System.out.println("SINGLE_TAP");
+ if (checkLastIdActiv(lastID)) {
+ return;
+ } else {
+ setNanoleafLastID(lastID);
+
+ try {
+
+ getNanoleafDevice().setPanelExternalStreaming(lastID, Color.RED, 1);
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+
+ System.out.println("ID: " + event.getPanelId());
+ }
+
+
+ break;
+
+ case TouchEvent.HOLD:
+ //System.out.println("HOLD");
+ break;
+
+ case TouchEvent.UNKNOWN_ATTRIBUTE:
+ //System.out.println("UNKNOWN_ATTRIBUTE");
+ break;
+
+
+ default:
+ System.out.println("Unexpected value: " + event.getTouchType());
+ }
+ }
+
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+ }
+
+ public static void main(String[] args) {
+ NanoleafDeviceServer nanoleafDeviceServer = new NanoleafDeviceServer();
+ try {
+ boolean nanoLeafActiv = nanoleafDeviceServer.connectNanoLeaf();
+
+ if (nanoLeafActiv) {
+ nanoleafDeviceServer.startNanoLeafEvent();
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+ }
+
+}
diff --git a/src/main/java/de/games/nanoleaf/server/NanoLiefAPIExample.java b/src/main/java/de/nanoleaf/server/test/NanoLiefAPIExample.java
similarity index 97%
rename from src/main/java/de/games/nanoleaf/server/NanoLiefAPIExample.java
rename to src/main/java/de/nanoleaf/server/test/NanoLiefAPIExample.java
index f31ae8c..667e36e 100644
--- a/src/main/java/de/games/nanoleaf/server/NanoLiefAPIExample.java
+++ b/src/main/java/de/nanoleaf/server/test/NanoLiefAPIExample.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.server;
+package de.nanoleaf.server.test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
diff --git a/src/main/java/de/games/nanoleaf/server/NanoleafEventServer.java b/src/main/java/de/nanoleaf/server/test/NanoleafEventServer.java
similarity index 93%
rename from src/main/java/de/games/nanoleaf/server/NanoleafEventServer.java
rename to src/main/java/de/nanoleaf/server/test/NanoleafEventServer.java
index ab3cac2..307a2c9 100644
--- a/src/main/java/de/games/nanoleaf/server/NanoleafEventServer.java
+++ b/src/main/java/de/nanoleaf/server/test/NanoleafEventServer.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.server;
+package de.nanoleaf.server.test;
import java.util.List;
diff --git a/src/main/java/de/games/nanoleaf/server/NanoleafMonitoring.java b/src/main/java/de/nanoleaf/server/test/NanoleafMonitoring.java
similarity index 97%
rename from src/main/java/de/games/nanoleaf/server/NanoleafMonitoring.java
rename to src/main/java/de/nanoleaf/server/test/NanoleafMonitoring.java
index fc9cc07..c339da9 100644
--- a/src/main/java/de/games/nanoleaf/server/NanoleafMonitoring.java
+++ b/src/main/java/de/nanoleaf/server/test/NanoleafMonitoring.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.server;
+package de.nanoleaf.server.test;
import java.util.List;
diff --git a/src/main/java/de/games/nanoleaf/server/NanoleafPanelExample.java b/src/main/java/de/nanoleaf/server/test/NanoleafPanelExample.java
similarity index 95%
rename from src/main/java/de/games/nanoleaf/server/NanoleafPanelExample.java
rename to src/main/java/de/nanoleaf/server/test/NanoleafPanelExample.java
index f4ed2ec..a130db8 100644
--- a/src/main/java/de/games/nanoleaf/server/NanoleafPanelExample.java
+++ b/src/main/java/de/nanoleaf/server/test/NanoleafPanelExample.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.server;
+package de.nanoleaf.server.test;
import io.github.rowak.nanoleafapi.Aurora;
diff --git a/src/main/java/de/games/nanoleaf/server/NanoleafServer.java b/src/main/java/de/nanoleaf/server/test/NanoleafServer.java
similarity index 98%
rename from src/main/java/de/games/nanoleaf/server/NanoleafServer.java
rename to src/main/java/de/nanoleaf/server/test/NanoleafServer.java
index ba0f845..1b08bd3 100644
--- a/src/main/java/de/games/nanoleaf/server/NanoleafServer.java
+++ b/src/main/java/de/nanoleaf/server/test/NanoleafServer.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.server;
+package de.nanoleaf.server.test;
import java.util.HashMap;
import java.util.HashSet;
@@ -51,7 +51,7 @@ public class NanoleafServer {
// for (Panel panel: panelList) {
// System.out.println("Panel: " + panel.getId());
// }
- device.setColor(Color.WHITE);
+ device.setColor(Color.BLACK);
device.enableTouchEventStreaming(port); // You need to specify a port to listen on
device.registerTouchEventStreamingListener(new NanoleafTouchEventListener() {
diff --git a/src/main/java/de/games/nanoleaf/panelconfig/MatrixInfo.java b/src/main/java/de/nanoleaf/tools/panelconfig/MatrixInfo.java
similarity index 94%
rename from src/main/java/de/games/nanoleaf/panelconfig/MatrixInfo.java
rename to src/main/java/de/nanoleaf/tools/panelconfig/MatrixInfo.java
index 4daf985..0b07292 100644
--- a/src/main/java/de/games/nanoleaf/panelconfig/MatrixInfo.java
+++ b/src/main/java/de/nanoleaf/tools/panelconfig/MatrixInfo.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.panelconfig;
+package de.nanoleaf.tools.panelconfig;
public class MatrixInfo {
diff --git a/src/main/java/de/games/nanoleaf/panelconfig/NanoPANENode.java b/src/main/java/de/nanoleaf/tools/panelconfig/NanoPANENode.java
similarity index 65%
rename from src/main/java/de/games/nanoleaf/panelconfig/NanoPANENode.java
rename to src/main/java/de/nanoleaf/tools/panelconfig/NanoPANENode.java
index a5f50b6..3621afc 100644
--- a/src/main/java/de/games/nanoleaf/panelconfig/NanoPANENode.java
+++ b/src/main/java/de/nanoleaf/tools/panelconfig/NanoPANENode.java
@@ -1,4 +1,4 @@
-package de.games.nanoleaf.panelconfig;
+package de.nanoleaf.tools.panelconfig;
import org.eclnt.jsfserver.elements.componentnodes.COLDISTANCENode;
import org.eclnt.jsfserver.elements.componentnodes.LABELNode;
@@ -13,6 +13,15 @@ public class NanoPANENode extends PANENode {
public PanelInfo getPanelInfo() {
return m_panelInfo;
}
+
+ public String getBorderColor() {
+ String color = "#e7e6e6";
+
+ if (getPanelInfo() != null && getPanelInfo().getPanelColor() != null) {
+ color = getPanelInfo().getPanelColor();
+ }
+ return color;
+ }
public void setPanelInfo(PanelInfo panelInfo) {
m_panelInfo = panelInfo;
@@ -26,9 +35,9 @@ public class NanoPANENode extends PANENode {
private void createInnerPane() {
- this.setDragsend("NANOLEAF:ID_" + getPanelInfo().getPanelID());
- this.setHeight(80);
- this.setWidth(80);
+ this.setDragsend("NANOLEAF:" + getPanelInfo().getPanelID());
+ this.setHeight(60);
+ this.setWidth(60);
this.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000");
ROWDISTANCENode rowdistanceNode = new ROWDISTANCENode();
this.addSubNode(rowdistanceNode);
@@ -36,6 +45,7 @@ public class NanoPANENode extends PANENode {
ROWNode row = new ROWNode();
COLDISTANCENode coldistanceNode = new COLDISTANCENode();
+ coldistanceNode.setWidth("50%");
row.addSubNode(coldistanceNode);
LABELNode labelPaneID = new LABELNode();
@@ -46,23 +56,24 @@ public class NanoPANENode extends PANENode {
this.addSubNode(row);
row = new ROWNode();
- coldistanceNode = new COLDISTANCENode();
- row.addSubNode(coldistanceNode);
- labelPaneID = new LABELNode();
- labelPaneID.setText("Nano ID: ");
-
- row.addSubNode(labelPaneID);
+// coldistanceNode = new COLDISTANCENode();
+// row.addSubNode(coldistanceNode);
+// labelPaneID = new LABELNode();
+// labelPaneID.setText("Nr: " + getPanelInfo().getPanelID());
+//
+// row.addSubNode(labelPaneID);
this.addSubNode(row);
row = new ROWNode();
coldistanceNode = new COLDISTANCENode();
+ coldistanceNode.setWidth("50%");
row.addSubNode(coldistanceNode);
labelPaneID = new LABELNode();
- if (getPanelInfo().getPanelNanoleafID() == null) {
+ if (getPanelInfo().getPanelNanoleafID() == 0) {
labelPaneID.setText("unbek.");
} else {
- labelPaneID.setText(getPanelInfo().getPanelNanoleafID());
+ labelPaneID.setText(getPanelInfo().getPanelNanoleafID() +"");
}
row.addSubNode(labelPaneID);
diff --git a/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java b/src/main/java/de/nanoleaf/tools/panelconfig/PanelConfigBean.java
similarity index 51%
rename from src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java
rename to src/main/java/de/nanoleaf/tools/panelconfig/PanelConfigBean.java
index f2712bd..1923e93 100644
--- a/src/main/java/de/games/nanoleaf/panelconfig/PanelConfigBean.java
+++ b/src/main/java/de/nanoleaf/tools/panelconfig/PanelConfigBean.java
@@ -1,31 +1,122 @@
-package de.games.nanoleaf.panelconfig;
+package de.nanoleaf.tools.panelconfig;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Iterator;
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.BaseActionEvent;
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.elements.impl.ROWDYNAMICCONTENTBinding.ComponentNode;
+import org.eclnt.jsfserver.elements.util.ValidValuesBinding;
import org.eclnt.jsfserver.pagebean.PageBean;
+import de.nanoleaf.server.ColorEnum;
+import de.nanoleaf.server.NanoleafDeviceServer;
+import io.github.rowak.nanoleafapi.Panel;
+import io.github.rowak.nanoleafapi.ShapeType;
+
@CCGenClass (expressionBase="#{d.PanelConfigBean}")
-public class PanelConfigBean extends PageBean implements Serializable {
+public class PanelConfigBean extends PageBean implements Serializable {
+
+ String m_color = "#000000";
+ public String getColor() { return m_color; }
+ public void setColor(String value) { this.m_color = value; }
+
+
+ ValidValuesBinding m_colorCombo = new ValidValuesBinding();
+ public ValidValuesBinding getColorCombo() { return m_colorCombo; }
+
+
+
+ public void onPanelSourceAction(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
+ //System.out.println(event);
+ BaseActionEventInvoke actionEvent = (BaseActionEventInvoke) event;
+
+ System.out.println("SourceAction: " + actionEvent.getSourceReference());
+
+// PanelInfo panelInfo = getPanelIDNanoPANENodeSourceMap().get(actionEvent.getSourceReference());
+//
+// if (panelInfo != null) {
+// Panel panel = panelInfo.getPanel();
+//
+// System.out.println("PanelID: " + panel.getId());
+// }
+
+
+ }
+
+ boolean m_nanoleafConnected = false;
+ public boolean getNanoleafConnected() { return m_nanoleafConnected; }
+ public void setNanoleafConnected(boolean value) { this.m_nanoleafConnected = value; }
+
+ public void onNanoleafDeconnect(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
+ boolean deconnected = false;
+ // TODO: Pruefen: Host IP Tocken port
+
+ try {
+ if (getNanoleafDeviceServer() != null) {
+ deconnected = getNanoleafDeviceServer().deConnectNanoLeaf();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ setNanoleafConnected(false);
+ }
+
+ public void onNanoleafConnect(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
+ boolean connected = false;
+ // TODO: Pruefen: Host IP Tocken port
+
+ try {
+ m_nanoleafDeviceServer = new NanoleafDeviceServer(getHostname(), getIpAdresse(), getPort(), getNanoleafToken());
+
+ connected = m_nanoleafDeviceServer.connectNanoLeaf();
+
+ setAnzahlPanels(m_nanoleafDeviceServer.getNanoLeafPanels().size());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ setNanoleafConnected(true);
+
+ }
+
+
+ private NanoleafDeviceServer m_nanoleafDeviceServer = null;
+ public NanoleafDeviceServer getNanoleafDeviceServer() { return m_nanoleafDeviceServer; }
+
+
ROWDYNAMICCONTENTBinding m_dynMatrixPanels = new ROWDYNAMICCONTENTBinding();
public ROWDYNAMICCONTENTBinding getDynMatrixPanels() { return m_dynMatrixPanels; }
- public void onPanelsOff(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {}
+ public void onPanelsOff(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
+ List componentNodes = getDynMatrixPanels().getContentNodes();
+
+ System.out.println("List: " + componentNodes.size());
+ List paneList = new ArrayList();
+ for (ComponentNode componentNode: componentNodes) {
+ System.out.println(componentNode);
+ if (componentNode instanceof PANENode) {
+ paneList.add((PANENode)componentNode);
+ }
+
+ }
+ }
- public void onPanelsOn(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {}
+ public void onPanelsOn(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
+
+ }
String m_nanoleafToken = "LAG28BQWrXK2p79NbHMQsvcYYCN1TcD4";
@@ -60,7 +151,12 @@ public class PanelConfigBean extends PageBean implements Serializable {
public DYNAMICCONTENTBinding getDynPanelList() { return m_dynPanelList; }
public void onPanelsCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
- createPanelsList(getAnzahlPanels());
+ List panelList = null;
+ if (getNanoleafDeviceServer() != null) {
+ panelList = getNanoleafDeviceServer().getNanoLeafPanels();
+
+ }
+ createPanelsList(panelList);
}
public void onCheckAndCreate(org.eclnt.jsfserver.base.faces.event.ActionEvent event) {
@@ -105,36 +201,87 @@ public class PanelConfigBean extends PageBean implements Serializable {
// ------------------------------------------------------------------------
public PanelConfigBean() {
- createPanelsList(1);
+ initColorCombo();
+
}
- private void createPanelsList(int countPanels) {
+ private void initColorCombo() {
+
+ for (ColorEnum colorEnum: ColorEnum.values()) {
+ getColorCombo().addValidValue(colorEnum.name(), colorEnum.name());
+ }
+
+ }
+
+ Hashtable m_panelIDPanelInfoSourceMap = null;
+ public Hashtable getPanelIDPanelInfoSourceMap() {
+ if (m_panelIDPanelInfoSourceMap == null) {
+ m_panelIDPanelInfoSourceMap = new Hashtable();
+ }
+ return m_panelIDPanelInfoSourceMap;
+ }
+
+ Hashtable m_panelIDPanelInfoTargetMap = null;
+ public Hashtable getPanelIDPanelInfoTargetMap() {
+ if (m_panelIDPanelInfoTargetMap == null) {
+ m_panelIDPanelInfoTargetMap = new Hashtable();
+ }
+ return m_panelIDPanelInfoTargetMap;
+ }
+
+
+ public NanoPANENode createNanoLeafNanoPANENode(int listNr, Panel panel) {
+ NanoPANENode nanoPANENode = null;
+ PanelInfo panelInfo = new PanelInfo(listNr, panel);
+ Integer panelID = panel.getId();
+
+ nanoPANENode = new NanoPANENode(panelInfo);
+ nanoPANENode.setActionListener("#{d.PanelConfigBean.onPanelSourceAction}");
+ nanoPANENode.setInvokeevent("click");
+ nanoPANENode.setHeight(60);
+ nanoPANENode.setWidth(60);
+ nanoPANENode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000");
+ nanoPANENode.setDragsend("NANOLEAF:" + panelID);
+ nanoPANENode.setReference(panelID.toString());
+
+
+
+ return nanoPANENode;
+ }
+
+
+ private void createPanelsList(List panelList) {
+
+ if (panelList != null && panelList.size() > 0) {
+ System.out.println("Panels: " + panelList.size());
+ } else {
+ panelList = new ArrayList();
+ Panel panel = new Panel(58456, 1, 2, 2, ShapeType.rhythm());
+ panelList.add(panel);
+ panel = new Panel(43456, 1, 2, 2, ShapeType.rhythm());
+
+ panelList.add(panel);
+ }
+ setAnzahlPanels(panelList.size());
+
ROWNode row = new ROWNode();
COLDISTANCENode coldistanceNode = 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);
- paneNode.setHeight(60);
- paneNode.setWidth(60);
- paneNode.setBorder("left:2;right:2;top:2;bottom:2;color:#ff0000");
- paneNode.setDragsend("Nanoleaf:" + panelInfo.getPanelID());
+ NanoPANENode paneNode = null;
+
+
+ int panelnr = 0;
+ for (int p = 0; p < panelList.size(); p++) {
+ Panel panel = panelList.get(p);
+ panelnr++;
+ paneNode = createNanoLeafNanoPANENode(panelnr, panel);
+
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(20);
+ coldistanceNode.setWidth(10);
row.addSubNode(coldistanceNode);
}
@@ -143,6 +290,7 @@ public class PanelConfigBean extends PageBean implements Serializable {
}
+
private void createPanelMatrix(int anzahlPanels, int matrixX, int matrixY) {
int anzahlPanelMatrix = 0;
@@ -153,19 +301,22 @@ public class PanelConfigBean extends PageBean implements Serializable {
ROWNode row = null;
PANENode rootPaneNode = new PANENode();
rootPaneNode.setRowdistance("5");
- PANENode paneNode = null;
+ NanoPANENode paneNode = null;
COLDISTANCENode coldistanceNode = null;
+ PanelInfo panelInfo = null;
for (int x = 0; x < matrixX; x++) {
row = new ROWNode();
for (int y = 0; y < matrixY; y++) {
- paneNode = new PANENode();
+ panelInfo = new PanelInfo();
+ paneNode = new NanoPANENode(panelInfo);
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}");
+
+ paneNode.setActionListener("#{d.PanelConfigBean.onDropPanelActions}");
coldistanceNode = new COLDISTANCENode();
coldistanceNode.setWidth(5);
@@ -180,12 +331,20 @@ public class PanelConfigBean extends PageBean implements Serializable {
}
- public void onCashierActions(ActionEvent event) {
+ public void onDropPanelActions(ActionEvent event) {
if (event instanceof BaseActionEventDrop)
{
+
Statusbar.outputSuccess("Drop-Event was processed: " + event.getClass().getName());
BaseActionEventDrop baed = (BaseActionEventDrop)event;
String dragInfo = baed.getDragInfo();
+
+
+
+
+
+ System.out.println(baed.getSourceReference());
+
if (dragInfo.startsWith("NANOLEAF:"))
{
System.out.println("Ziel: ");
@@ -198,7 +357,7 @@ public class PanelConfigBean extends PageBean implements Serializable {
}
}
- public String getPageName() { return "/games/nanoleaf/panelconfig/panelconfig.xml"; }
+ public String getPageName() { return "/nanoleaf/tools/panelconfig/panelconfig.xml"; }
public String getRootExpressionUsedInPage() { return "#{d.PanelConfigBean}"; }
// ------------------------------------------------------------------------
diff --git a/src/main/java/de/games/nanoleaf/panelconfig/PanelInfo.java b/src/main/java/de/nanoleaf/tools/panelconfig/PanelInfo.java
similarity index 69%
rename from src/main/java/de/games/nanoleaf/panelconfig/PanelInfo.java
rename to src/main/java/de/nanoleaf/tools/panelconfig/PanelInfo.java
index c989ec5..9266d53 100644
--- a/src/main/java/de/games/nanoleaf/panelconfig/PanelInfo.java
+++ b/src/main/java/de/nanoleaf/tools/panelconfig/PanelInfo.java
@@ -1,18 +1,28 @@
-package de.games.nanoleaf.panelconfig;
+package de.nanoleaf.tools.panelconfig;
+
+import io.github.rowak.nanoleafapi.Panel;
public class PanelInfo {
int m_panelID = 0;
- String m_panelNanoleafID = null;
+ int m_panelNanoleafID = 0;
int m_panelMatrixPosX = 0;
int m_panelMatrixPosY = 0;
String m_panelColor = null;
boolean m_panelActiv = true;
boolean m_panelInit = false;
+ Panel m_panel;
+ public PanelInfo() {
+
+ }
- public PanelInfo(int panelID) {
- this.m_panelID = panelID;
+ public PanelInfo(int panelnr, Panel panel) {
+ this.m_panelID = panelnr;
+ this.m_panel = panel;
+ this.m_panelNanoleafID = panel.getId();
+ this.m_panelMatrixPosX = panel.getX();
+ this.m_panelMatrixPosY = panel.getY();
}
@@ -24,10 +34,10 @@ public class PanelInfo {
}
- public String getPanelNanoleafID() {
+ public int getPanelNanoleafID() {
return m_panelNanoleafID;
}
- public void setPanelNanoleafID(String panelNanoleafID) {
+ public void setPanelNanoleafID(int panelNanoleafID) {
m_panelNanoleafID = panelNanoleafID;
}
@@ -70,6 +80,10 @@ public class PanelInfo {
public void setPanelInit(boolean panelInit) {
m_panelInit = panelInit;
}
+
+ public Panel getPanel() {
+ return m_panel;
+ }
diff --git a/src/main/java/de/nanoleaf/tools/panelconfig/TestClass.java b/src/main/java/de/nanoleaf/tools/panelconfig/TestClass.java
new file mode 100644
index 0000000..05173e6
--- /dev/null
+++ b/src/main/java/de/nanoleaf/tools/panelconfig/TestClass.java
@@ -0,0 +1,33 @@
+package de.nanoleaf.tools.panelconfig;
+
+import java.util.List;
+
+import de.tools.ReflectClass;
+import io.github.rowak.nanoleafapi.Color;
+
+public class TestClass {
+
+ public TestClass() {
+
+ Color color = new Color();
+
+ ReflectClass reflectClass = new ReflectClass(color);
+
+ List fieldsList = reflectClass.getAllFields();
+
+ for (String field: fieldsList) {
+
+ System.out.println(field);
+
+ }
+
+ Color farbe = Color.BLUE;
+
+ System.out.println(farbe);
+ }
+
+ public static void main(String[] args) {
+ new TestClass();
+ }
+
+}
diff --git a/src/main/java/de/tools/ReflectClass.java b/src/main/java/de/tools/ReflectClass.java
index 42da6b7..b312bb7 100644
--- a/src/main/java/de/tools/ReflectClass.java
+++ b/src/main/java/de/tools/ReflectClass.java
@@ -216,7 +216,7 @@ public class ReflectClass {
}
- public List getAllFields() {
+ public List getAllDeclaredFields() {
List resultList = new ArrayList();
Field[] fields = getWorkObject().getClass().getDeclaredFields();
@@ -226,6 +226,16 @@ public class ReflectClass {
return resultList;
}
+ public List getAllFields() {
+ List resultList = new ArrayList();
+ Field[] fields = getWorkObject().getClass().getFields();
+
+ for (Field field : fields) {
+ resultList.add(field.getName());
+ }
+ return resultList;
+ }
+
public String getType(String fieldname) {
String result = null;
try {
diff --git a/src/main/java/de/tvo/workplace/DefaultWorkplaceBean.java b/src/main/java/de/tvo/workplace/DefaultWorkplaceBean.java
index c31f809..2a74f4a 100644
--- a/src/main/java/de/tvo/workplace/DefaultWorkplaceBean.java
+++ b/src/main/java/de/tvo/workplace/DefaultWorkplaceBean.java
@@ -10,7 +10,7 @@ import org.eclnt.workplace.IWorkpageDispatcher;
import org.eclnt.workplace.WorkpageDispatchedPageBean;
import org.eclnt.workplace.WorkpageStarterFactory;
-import de.geis.portal.workplace.layout.DefaultLayout;
+import de.tvo.workplace.layout.DefaultLayout;
import jakarta.servlet.http.HttpSession;
@CCGenClass (expressionBase="#{d.DefaultWorkplaceBean}")
diff --git a/src/main/java/de/tvo/workplace/MainPage.java b/src/main/java/de/tvo/workplace/MainPage.java
index 3beb6d4..01f8446 100644
--- a/src/main/java/de/tvo/workplace/MainPage.java
+++ b/src/main/java/de/tvo/workplace/MainPage.java
@@ -9,8 +9,8 @@ import org.eclnt.jsfserver.util.HttpSessionAccess;
import org.eclnt.workplace.IWorkpageDispatcher;
import org.eclnt.workplace.WorkpageDispatchedPageBean;
-import de.geis.portal.workplace.layout.DefaultLayout;
-import de.geis.portal.workplace.layout.LayoutManager;
+import de.tvo.workplace.layout.DefaultLayout;
+import de.tvo.workplace.layout.LayoutManager;
import jakarta.servlet.http.HttpSession;
@CCGenClass (expressionBase="#{d.MainPage}")
diff --git a/src/main/java/de/geis/portal/workplace/layout/DefaultLayout.java b/src/main/java/de/tvo/workplace/layout/DefaultLayout.java
similarity index 98%
rename from src/main/java/de/geis/portal/workplace/layout/DefaultLayout.java
rename to src/main/java/de/tvo/workplace/layout/DefaultLayout.java
index ee25f8c..0307c68 100644
--- a/src/main/java/de/geis/portal/workplace/layout/DefaultLayout.java
+++ b/src/main/java/de/tvo/workplace/layout/DefaultLayout.java
@@ -1,4 +1,4 @@
-package de.geis.portal.workplace.layout;
+package de.tvo.workplace.layout;
import java.io.Serializable;
diff --git a/src/main/java/de/geis/portal/workplace/layout/LayoutInterface.java b/src/main/java/de/tvo/workplace/layout/LayoutInterface.java
similarity index 90%
rename from src/main/java/de/geis/portal/workplace/layout/LayoutInterface.java
rename to src/main/java/de/tvo/workplace/layout/LayoutInterface.java
index 1b26171..df40a2f 100644
--- a/src/main/java/de/geis/portal/workplace/layout/LayoutInterface.java
+++ b/src/main/java/de/tvo/workplace/layout/LayoutInterface.java
@@ -1,4 +1,4 @@
-package de.geis.portal.workplace.layout;
+package de.tvo.workplace.layout;
public interface LayoutInterface {
diff --git a/src/main/java/de/geis/portal/workplace/layout/LayoutManager.java b/src/main/java/de/tvo/workplace/layout/LayoutManager.java
similarity index 96%
rename from src/main/java/de/geis/portal/workplace/layout/LayoutManager.java
rename to src/main/java/de/tvo/workplace/layout/LayoutManager.java
index 92708a5..d3a39c1 100644
--- a/src/main/java/de/geis/portal/workplace/layout/LayoutManager.java
+++ b/src/main/java/de/tvo/workplace/layout/LayoutManager.java
@@ -1,4 +1,4 @@
-package de.geis.portal.workplace.layout;
+package de.tvo.workplace.layout;
import java.io.Serializable;
diff --git a/src/main/java/managedbeans/dispatcherinfo.xml b/src/main/java/managedbeans/dispatcherinfo.xml
index 1026811..24b5cb0 100644
--- a/src/main/java/managedbeans/dispatcherinfo.xml
+++ b/src/main/java/managedbeans/dispatcherinfo.xml
@@ -2,7 +2,10 @@
+
+
-
+
+
\ No newline at end of file
diff --git a/src/main/webapp/examples/componets/dragDropPane.xml b/src/main/webapp/examples/componets/dragDropPane.xml
new file mode 100644
index 0000000..17ceb78
--- /dev/null
+++ b/src/main/webapp/examples/componets/dragDropPane.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/games/nanoleaf/tictactoe/tictactoe.xml b/src/main/webapp/games/nanoleaf/tictactoe/tictactoe.xml
deleted file mode 100644
index 28d10d8..0000000
--- a/src/main/webapp/games/nanoleaf/tictactoe/tictactoe.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/games/nanoleaf/lightswitch/lightsOnOffPage.xml b/src/main/webapp/nanoleaf/games/lightswitch/lightsOnOffPage.xml
similarity index 100%
rename from src/main/webapp/games/nanoleaf/lightswitch/lightsOnOffPage.xml
rename to src/main/webapp/nanoleaf/games/lightswitch/lightsOnOffPage.xml
diff --git a/src/main/webapp/nanoleaf/games/tictactoe/tictactoe.xml b/src/main/webapp/nanoleaf/games/tictactoe/tictactoe.xml
new file mode 100644
index 0000000..f143603
--- /dev/null
+++ b/src/main/webapp/nanoleaf/games/tictactoe/tictactoe.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml b/src/main/webapp/nanoleaf/tools/panelconfig/panelconfig.xml
similarity index 83%
rename from src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml
rename to src/main/webapp/nanoleaf/tools/panelconfig/panelconfig.xml
index 92a8a01..c9d7a7e 100644
--- a/src/main/webapp/games/nanoleaf/panelconfig/panelconfig.xml
+++ b/src/main/webapp/nanoleaf/tools/panelconfig/panelconfig.xml
@@ -20,7 +20,7 @@
-
+
@@ -37,6 +37,13 @@
+
+
+
+
+
+
+
@@ -72,7 +79,9 @@
-
+
+
+
@@ -93,7 +102,6 @@
-