package org.andrewberman.evogame; import java.util.ArrayList; import java.util.HashMap; import org.andrewberman.ui.UIUtils; import org.andrewberman.ui.menu.Toolbar; import org.phylowidget.PWPlatform; import org.phylowidget.PhyloWidget; import org.phylowidget.tree.PhyloNode; import processing.core.PGraphicsJava2D; public class EvoGameApplet extends PhyloWidget { public static EvoGameApplet p; public static String nextMenu; private Toolbar next; public EvoGameApplet() { p = this; } @Override public void setup() { // super.setup(); frameRate(60); PGraphicsJava2D pg = (PGraphicsJava2D) g; // new UIGlobals(this); PWPlatform.getInstance().registerApp(this); // cfg = new PhyloConfig(); // trees = new EvoTreeManager(this); // ui = new PhyloUI(this); // treeUpdater = new PWTreeUpdater(); // clipUpdater = new PWClipUpdater(); // ui.setup(); // trees.setup(); clearQueues(); // trees.camera.nudgeTo(200, 0); // trees.camera.zoomTo(0.7f); // unregisterDraw(UIGlobals.g.event()); DragDropImage.nodeToImage = null; // Set this to null -- applets HATE static variables left over from previous instantiations. changeSetting("colorHoveredBranch", "false"); changeSetting("textSize", "0.7"); changeSetting("respondToMouseWheel","false"); changeSetting("suppressMessages","true"); // if (ui.context != null) // ui.context.setGlow(false); // next = new Toolbar(this); // next.add("Next"); // next.setPosition(400, 400); // next.setEnabled(false); } String curMenu = ""; @Override public synchronized void changeSetting(String setting, String newValue) { if (setting.equals("menus")) { curMenu = newValue; DragDropImage.nodeToImage = null; } super.changeSetting(setting, newValue); } @Override public void resize(int width, int height) { super.resize(width, height); PGraphicsJava2D pg = (PGraphicsJava2D) g; if (pg == null) return; UIUtils.setRenderingHints(pg); } @Override public synchronized void draw() { super.draw(); // for (MenuItem m : ui.menus) // { // m.layout(); // } } public void next() { if (curMenu.equals("1.xml")) changeSetting("menus","2.xml"); else changeSetting("menus","1.xml"); } public boolean allNodesAreCorrect() { // if (trees.getTree() == null) // return false; HashMap<PhyloNode,DragDropImage> map = DragDropImage.nodeToImage; if (map == null) { return false; } ArrayList<PhyloNode> leaves = new ArrayList<PhyloNode>(); // trees.getTree().getAll(trees.getTree().getRoot(), leaves, null); int size = leaves.size(); if (map.size() != leaves.size()) { return false; } for (PhyloNode n : map.keySet()) { DragDropImage ddi = map.get(n); if (!ddi.isAttachedToCorrectNode()) { return false; } } return true; } }