Newer
Older
piccolo2d.java / anchorgarden / src / main / java / jaist / css / covis / pui / PMenuRoot.java
@Motoki Miura Motoki Miura on 14 Apr 2022 1 KB edu.umd.cs.piccolo -> org.piccolo2d
package jaist.css.covis.pui;


import java.util.ArrayList;
import java.util.Iterator;

import edu.umd.cs.piccolo.PNode;
import edu.umd.cs.piccolo.nodes.PPath;

/**
 * PMenuItemを並べて表示するための受け皿(メニュールート)
 * @author miuramo
 *
 */
@SuppressWarnings("serial")
public class PMenuRoot extends PPath implements CameraFittable {
	PMenuItem_Abstract selected = null; // 選択中のメニュー

	ArrayList<PMenuItem_Abstract> pmenulist;

	public PMenuRoot() {
		pmenulist = new ArrayList<PMenuItem_Abstract>();
	}

	public void layoutChildren() {
		double xOffset = 0;
		double yOffset = 0;

		Iterator<?> i = getChildrenIterator();
		while (i.hasNext()) {
			PNode each = (PNode) i.next();
			each.setOffset(xOffset - each.getX(), yOffset);
			xOffset += each.getWidth();// + 2; //(gap)
		}
	}

	public void add(PMenuItem_Abstract childMenu) {
		childMenu.parent = this;
		addChild(childMenu);
		pmenulist.add(childMenu);
	}

	public void setSelected(PMenuItem_Abstract childMenu) {
		for (PMenuItem_Abstract pm : pmenulist) {
			if (pm.isToggle) {
				if (pm == childMenu) {
					pm.setSelected(true);
				} else {
					pm.setSelected(false);
				}
			}
		}
		selected = childMenu;
	}
}