/* * $Id$ * * Copyright (c) 2000-2003 by Rodney Kinney * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License (LGPL) as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, copies are available * at http://www.opensource.org. */ package VASSAL.build.module; import java.awt.Dimension; import java.awt.Rectangle; import VASSAL.build.module.documentation.HelpFile; import VASSAL.build.module.map.CounterDetailViewer; import VASSAL.build.module.map.HandMetrics; import VASSAL.build.module.map.StackExpander; import VASSAL.build.module.map.StackMetrics; import VASSAL.counters.GamePiece; import VASSAL.i18n.Resources; public class PlayerHand extends PrivateMap { public void build(org.w3c.dom.Element el) { super.build(el); if (el == null) { for (StackExpander se : getComponentsOf(StackExpander.class)) { remove(se); removeLocalMouseListener(se); } for (CounterDetailViewer cdv : getComponentsOf(CounterDetailViewer.class)) { remove(cdv); cdv.removeFrom(this); } } } public static String getConfigureTypeName() { return Resources.getString("Editor.PlayerHand.component_type"); //$NON-NLS-1$ } public HelpFile getHelpFile() { return HelpFile.getReferenceManualPage("PlayerHand.htm"); //$NON-NLS-1$ } public StackMetrics getStackMetrics() { if (metrics == null) { metrics = new HandMetrics(); metrics.build(null); add(metrics); metrics.addTo(this); } return metrics; } public Dimension mapSize() { final Rectangle r = new Rectangle(0,0,200,200); r.add(new Rectangle(super.mapSize())); for (GamePiece p : pieces.getPieces()) { final Rectangle bb = boundingBoxOf(p); if (bb != null) { r.add(bb); } } return r.getSize(); } }