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;
}
}