You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
267 lines
7.7 KiB
267 lines
7.7 KiB
package de.examples.components;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.concurrent.ThreadLocalRandom;
|
|
|
|
import org.eclnt.editor.annotations.CCGenClass;
|
|
import org.eclnt.jsfserver.defaultscreens.Statusbar;
|
|
import org.eclnt.jsfserver.elements.events.BaseActionEventDrop;
|
|
import org.eclnt.jsfserver.elements.events.BaseActionEventInvoke;
|
|
import org.eclnt.jsfserver.pagebean.PageBean;
|
|
|
|
@CCGenClass (expressionBase="#{d.DragDropPaneBean}")
|
|
|
|
public class DragDropPaneBean
|
|
extends PageBean
|
|
implements Serializable
|
|
{
|
|
public void onDropSendPaneTarget(org.eclnt.jsfserver.base.faces.event.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:"))
|
|
{
|
|
String nanoID = dragInfo.substring("NANOLEAF:".length());
|
|
System.out.println("NanoLeaf ID: " + nanoID);
|
|
int paneID = 0;
|
|
try {
|
|
//
|
|
paneID = getPaneIDSourceMap().get(nanoID);
|
|
//
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
System.out.println("Pane ID " + paneID);
|
|
//
|
|
PaneInfoTest paneInfoTest = getPanelSourceList().get(paneID);
|
|
|
|
int posX = 1;
|
|
int posY = 2;
|
|
|
|
getPaneRepeatList().get(posX).getPaneInfoList().set(posY, paneInfoTest);
|
|
|
|
System.out.println("Ziel: ");
|
|
System.out.println("Drop: " + dragInfo);
|
|
}
|
|
}
|
|
}
|
|
|
|
HashMap<String, Integer> m_paneIDSourceMap = null;
|
|
|
|
public HashMap<String, Integer> getPaneIDSourceMap() {
|
|
if (m_paneIDSourceMap == null) {
|
|
m_paneIDSourceMap = new HashMap<String, Integer>();
|
|
}
|
|
return m_paneIDSourceMap;
|
|
}
|
|
|
|
int m_yMatrix = 7;
|
|
public int getYMatrix() { return m_yMatrix; }
|
|
public void setYMatrix(int value) { this.m_yMatrix = value; }
|
|
|
|
int m_xMatrix = 7;
|
|
public int getXMatrix() { return m_xMatrix; }
|
|
public void setXMatrix(int value) { this.m_xMatrix = value; }
|
|
|
|
int m_countPanels = 15;
|
|
public int getCountPanels() { return m_countPanels; }
|
|
public void setCountPanels(int value) { this.m_countPanels = value; }
|
|
|
|
|
|
List<PaneRepeat> m_paneRepeatList = new ArrayList<PaneRepeat>();
|
|
public List<PaneRepeat> getPaneRepeatList() { return m_paneRepeatList; }
|
|
|
|
List<PaneInfoTest> m_panelSourceList = new ArrayList<PaneInfoTest>();
|
|
public List<PaneInfoTest> getPanelSourceList() { return m_panelSourceList; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ------------------------------------------------------------------------
|
|
// inner classes
|
|
// ------------------------------------------------------------------------
|
|
|
|
public class PaneRepeat {
|
|
private int i_paneRepeatID = 0;
|
|
private List<PaneInfoTest> i_paneInfoList = null;
|
|
public int getPaneRepeatID() {
|
|
return i_paneRepeatID;
|
|
}
|
|
public void setPaneRepeatID(int paneRepeatID) {
|
|
i_paneRepeatID = paneRepeatID;
|
|
}
|
|
public List<PaneInfoTest> getPaneInfoList() {
|
|
return i_paneInfoList;
|
|
}
|
|
public void setPaneInfoList(List<PaneInfoTest> paneInfoList) {
|
|
i_paneInfoList = paneInfoList;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
public class PaneInfoTest {
|
|
|
|
private int i_paneID = 0;
|
|
private String i_color = null;
|
|
private String i_border = null;
|
|
private String i_reference = null;
|
|
Integer i_nanoleafID;
|
|
String i_drangsendSource;
|
|
|
|
|
|
public int getPaneID() { return i_paneID; }
|
|
public void setPaneID(int paneID) { i_paneID = paneID; }
|
|
|
|
public String getColor() { return i_color; }
|
|
public void setColor(String color) {
|
|
i_color = color;
|
|
createBorder();
|
|
}
|
|
|
|
public String getBorder() { return i_border; }
|
|
public void setBorder(String border) { i_border = border; }
|
|
|
|
public String getReference() { return i_reference; }
|
|
public void setReference(String reference) { i_reference = reference; }
|
|
|
|
public Integer getNanoleafID() { return i_nanoleafID; }
|
|
public void setNanoleafID(Integer value) { this.i_nanoleafID = value; }
|
|
|
|
public String getDrangsendSource() { return i_drangsendSource; }
|
|
public void setDrangsendSource(String value) { this.i_drangsendSource = value; }
|
|
|
|
|
|
public void createBorder() {
|
|
String border = "left:1;right:1;top:1;bottom:1;color:" + getColor();
|
|
|
|
setBorder(border);
|
|
}
|
|
|
|
public PaneInfoTest(int paneID) {
|
|
this.i_paneID = paneID;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Listener to the user of the page bean. */
|
|
public interface IListener extends Serializable
|
|
{
|
|
}
|
|
|
|
// ------------------------------------------------------------------------
|
|
// members
|
|
// ------------------------------------------------------------------------
|
|
|
|
private IListener m_listener;
|
|
|
|
// ------------------------------------------------------------------------
|
|
// constructors & initialization
|
|
// ------------------------------------------------------------------------
|
|
|
|
public DragDropPaneBean() {
|
|
|
|
createSourcePanels(getCountPanels());
|
|
try {
|
|
createDynTargetPanels(getXMatrix(), getYMatrix());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
private void createDynTargetPanels(int matrixX, int matrixY) throws Exception {
|
|
System.out.println("createDynTargetPanels: " + matrixX + "-" + matrixY);
|
|
|
|
List<PaneInfoTest> paneInfoList = null;
|
|
PaneRepeat paneRepeat = new PaneRepeat();
|
|
int panelID = 0;
|
|
|
|
for (int x = 0; x < matrixX; x++) {
|
|
|
|
paneInfoList = new ArrayList<PaneInfoTest>();
|
|
paneRepeat = new PaneRepeat();
|
|
|
|
for (int y = 0; y < matrixY; y++) {
|
|
PaneInfoTest paneInfoTest = new PaneInfoTest(panelID);
|
|
paneInfoTest.setReference("REF_XY|" + x + "|" + y);
|
|
paneInfoTest.setColor("#a5a5a5");
|
|
paneInfoTest.setNanoleafID(panelID);
|
|
|
|
// paneInfoTest.setDrangsendSource("#{d.DragDropPaneBean.onDragSendPaneSource}");
|
|
|
|
paneInfoList.add(paneInfoTest);
|
|
|
|
|
|
panelID++;
|
|
|
|
}
|
|
paneRepeat.setPaneRepeatID(x);
|
|
paneRepeat.setPaneInfoList(paneInfoList);
|
|
|
|
getPaneRepeatList().add(paneRepeat);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void createSourcePanels(int countPanels) {
|
|
|
|
ThreadLocalRandom random = ThreadLocalRandom.current();
|
|
|
|
for (int p = 0; p < countPanels; p++) {
|
|
PaneInfoTest paneInfoTest = null;
|
|
Integer randomID = random.nextInt(100000, 999999);
|
|
paneInfoTest = new PaneInfoTest(p);
|
|
paneInfoTest.setNanoleafID(randomID);
|
|
paneInfoTest.setColor("#a5a5a5");
|
|
paneInfoTest.setDrangsendSource("NANOLEAF:" + randomID);
|
|
|
|
getPaneIDSourceMap().put(randomID.toString(), Integer.valueOf(p));
|
|
|
|
getPanelSourceList().add(paneInfoTest);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getPageName() { return "/examples/componets/dragDropPane.xml"; }
|
|
public String getRootExpressionUsedInPage() { return "#{d.DragDropPaneBean}"; }
|
|
|
|
// ------------------------------------------------------------------------
|
|
// 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
|
|
// ------------------------------------------------------------------------
|
|
}
|