package amidst.map.widget; import java.awt.Graphics2D; import java.util.ArrayList; import MoF.MapViewer; import amidst.Options; import amidst.map.FragmentManager; public class DebugWidget extends PanelWidget { public DebugWidget(MapViewer mapViewer) { super(mapViewer); forceVisibility(onVisibilityCheck()); } @Override public void draw(Graphics2D g2d, float time) { FragmentManager fragmentManager = mapViewer.getFragmentManager(); ArrayList<String> panelText = new ArrayList<String>(); panelText.add("Fragment Manager:"); panelText.add("Pool Size: " + fragmentManager.getCacheSize()); panelText.add("Free Queue Size: " + fragmentManager.getFreeFragmentQueueSize()); panelText.add("Request Queue Size: " + fragmentManager.getRequestQueueSize()); panelText.add("Recycle Queue Size: " + fragmentManager.getRecycleQueueSize()); panelText.add(""); panelText.add("Map Viewer:"); panelText.add("Map Size: " + map.tileWidth + "x" + map.tileHeight + " [" + (map.tileWidth * map.tileHeight) + "]"); int width = 0, height; for (int i = 0; i < panelText.size(); i++) { int textWidth = mapViewer.getFontMetrics().stringWidth(panelText.get(i)); if (textWidth > width) width = textWidth; } width += 20; height = panelText.size() * 20 + 10; setDimensions(width, height); super.draw(g2d, time); g2d.setColor(textColor); for (int i = 0; i < panelText.size(); i++) g2d.drawString(panelText.get(i), x + 10, y + 20 + i*20); } @Override protected boolean onVisibilityCheck() { return Options.instance.showDebug.get(); } }