package com.pixelmaid.dresscode.data; import java.util.ArrayList; import com.pixelmaid.dresscode.antlr.types.tree.NodeEvent; import com.pixelmaid.dresscode.app.CodeField; import com.pixelmaid.dresscode.app.ui.usercreated.*; import com.pixelmaid.dresscode.drawing.primitive2d.Drawable; import com.pixelmaid.dresscode.events.CustomEvent; import com.pixelmaid.dresscode.events.CustomEventListener; import com.pixelmaid.dresscode.events.EventInterface; public class UserUIManager extends NodeEvent implements CustomEventListener { private ArrayList<UserUI> uis= new ArrayList<UserUI>(); private CodeField codeField; public UserUIManager(CodeField cf){ codeField= cf; } public void addUI(UserUI d) { uis.add(d); d.addEventListener(this); } public void swapUI(UserUI a, UserUI b){ int i = uis.indexOf(a); setUserUI(b,i); b.addEventListener(this); a.removeEventListener(this); } public void setUserUI(UserUI a, int i){ uis.set(i, a); a.addEventListener(this); } public boolean removeUserUI(UserUI d){ d.removeEventListener(this); return true; } public boolean removeUserUIAt(int i){ return uis.remove(i)==null?false:true; } public void clearAllUserUIs() { uis.clear(); } public ArrayList<UserUI> getUserUIs(){ return this.uis; } @Override public void handleCustomInstructionEvent(Object source, int eventType) { } @Override public void handleCustomToolEvent(Object source, int event) { } @Override public void handleCustomDrawableEvent(Object source, int event, Drawable d) { // TODO Auto-generated method stub } @Override public void handleCustomDrawableEvent(Object source, int event, Drawable d1, Drawable d2) { // TODO Auto-generated method stub } @Override public void handleCustomRuntimeErrorEventDrawableEvent(Object source, int event, String message) { // TODO Auto-generated method stub } @Override public void handleCustomPrintEvent(Object source, int event, String value) { // TODO Auto-generated method stub } @Override public void handleCustomUINodeEvent(Object source, int event, UserUI d) { switch (event){ case CustomEvent.UI_CREATED: addUI(d); break; } } @Override public void handleCustomUIEvent(Object source, int event) { switch (event){ case CustomEvent.UI_MODIFIED: Slider s = (Slider)(source); int line = s.getLine(); String insertStatement = s.getId()+"="+Math.round(s.getSliderValue())+";"; codeField.updateVariable(insertStatement, line); System.out.println("insertStatement:"+insertStatement); break; case CustomEvent.UI_RELEASED: this.fireToolEvent(CustomEvent.RUN_REQUEST); break; } } }