From 4a7cc53a88c4f6550a0adce60c31b63de61163a2 Mon Sep 17 00:00:00 2001 From: Charlie Groves Date: Thu, 17 Apr 2008 18:12:03 +0000 Subject: [PATCH] Allow things other than portals to be painted using the portal drawing code git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@581 c613c5cb-e716-0410-b11b-feb51c14d237 --- .../stage/tools/editor/EditorScenePanel.java | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/java/com/threerings/stage/tools/editor/EditorScenePanel.java b/src/java/com/threerings/stage/tools/editor/EditorScenePanel.java index 6b6abe4f..b5b7fbb7 100644 --- a/src/java/com/threerings/stage/tools/editor/EditorScenePanel.java +++ b/src/java/com/threerings/stage/tools/editor/EditorScenePanel.java @@ -386,7 +386,7 @@ public class EditorScenePanel extends StageScenePanel repaint(); } - // documentation inherited from interface + @Override public void mousePressed (MouseEvent event) { int mx = event.getX(), my = event.getY(); @@ -422,14 +422,14 @@ public class EditorScenePanel extends StageScenePanel } } - // documentation inherited + @Override protected boolean handleMousePressed (Object hobject, MouseEvent event) { // don't do the standard cluster and location stuff here return false; } - // documentation inherited + @Override public void mouseReleased (MouseEvent e) { super.mouseReleased(e); @@ -466,7 +466,7 @@ public class EditorScenePanel extends StageScenePanel repaint(); } - // documentation inherited + @Override public void mouseMoved (MouseEvent e) { super.mouseMoved(e); @@ -504,7 +504,7 @@ public class EditorScenePanel extends StageScenePanel } } - // documentation inherited + @Override public void mouseDragged (MouseEvent e) { super.mouseDragged(e); @@ -512,7 +512,7 @@ public class EditorScenePanel extends StageScenePanel mouseMoved(e); } - // documentation inherited + @Override public void mouseExited (MouseEvent e) { super.mouseExited(e); @@ -522,7 +522,7 @@ public class EditorScenePanel extends StageScenePanel _hfull.setLocation(Integer.MIN_VALUE, 0); } - // documentation inherited + @Override public void keyPressed (KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ALT) { @@ -531,7 +531,7 @@ public class EditorScenePanel extends StageScenePanel } } - // documentation inherited + @Override public void keyReleased (KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ALT) { @@ -540,13 +540,7 @@ public class EditorScenePanel extends StageScenePanel } } - // documentation inherited - public void keyTyped (KeyEvent e) - { - // nothing - } - - // documentation inherited + @Override protected void fireObjectAction ( ObjectActionHandler handler, SceneObject scobj, ActionEvent event) { @@ -557,6 +551,7 @@ public class EditorScenePanel extends StageScenePanel * A place for subclasses to react to the hover object changing. * One of the supplied arguments may be null. */ + @Override protected void hoverObjectChanged (Object oldHover, Object newHover) { super.hoverObjectChanged(oldHover, newHover); @@ -763,20 +758,19 @@ public class EditorScenePanel extends StageScenePanel _scene.setDefaultEntrance(port); } - // documentation inherited + @Override protected void recomputeVisible () { super.recomputeVisible(); // see if any of our visible objects overlap and mark them as bad // monkeys; we love N^2 algorithms - for (Iterator iter = _vizobjs.iterator(); iter.hasNext(); ) { - SceneObject scobj = (SceneObject)iter.next(); + for (SceneObject scobj : _vizobjs) { scobj.setWarning(overlaps(scobj)); } } - // documentation inherited + @Override protected void warnVisible (SceneBlock block, Rectangle sbounds) { // nothing doing @@ -785,8 +779,7 @@ public class EditorScenePanel extends StageScenePanel /** Helper function for {@link #recomputeVisible}. */ protected boolean overlaps (SceneObject tobj) { - for (Iterator iter = _vizobjs.iterator(); iter.hasNext(); ) { - SceneObject scobj = (SceneObject)iter.next(); + for (SceneObject scobj : _vizobjs) { if (scobj != tobj && tobj.objectFootprintOverlaps(scobj) && tobj.getPriority() == scobj.getPriority()) { return true; @@ -795,7 +788,6 @@ public class EditorScenePanel extends StageScenePanel return false; } - // documentation inherited protected void paintHighlights (Graphics2D gfx, Rectangle dirty) { Polygon hpoly = null; @@ -835,7 +827,7 @@ public class EditorScenePanel extends StageScenePanel } } - // documentation inherited + @Override protected void paintExtras (Graphics2D gfx, Rectangle dirty) { super.paintExtras(gfx, dirty); @@ -851,7 +843,7 @@ public class EditorScenePanel extends StageScenePanel // and call into any extras painters for (int ii = 0; ii < _extras.size(); ii++) { - ((ExtrasPainter)_extras.get(ii)).paintExtras(gfx); + _extras.get(ii).paintExtras(gfx); } } @@ -928,9 +920,17 @@ public class EditorScenePanel extends StageScenePanel * Paint the specified portal. */ protected void paintPortal (Graphics2D gfx, EditablePortal port) + { + paintLocation(gfx, (StageLocation)port.loc, Color.BLUE, + port.equals(_scene.getDefaultEntrance())); + } + + /** + * Paint the specified StageLocation + */ + protected void paintLocation(Graphics2D gfx, StageLocation loc, Color color, boolean highlight) { // get the portal's center coordinate - StageLocation loc = (StageLocation) port.loc; Point spos = new Point(); MisoUtil.fullToScreen(_metrics, loc.x, loc.y, spos); int cx = spos.x, cy = spos.y; @@ -943,7 +943,7 @@ public class EditorScenePanel extends StageScenePanel gfx.rotate(rot); // draw the triangle - gfx.setColor(Color.blue); + gfx.setColor(color); gfx.fill(_locTri); // outline the triangle in black @@ -959,7 +959,7 @@ public class EditorScenePanel extends StageScenePanel gfx.translate(-cx, -cy); // highlight the portal if it's the default entrance - if (port.equals(_scene.getDefaultEntrance())) { + if (highlight) { gfx.setColor(Color.cyan); gfx.drawRect(spos.x - 5, spos.y - 5, 10, 10); } @@ -1002,7 +1002,7 @@ public class EditorScenePanel extends StageScenePanel return true; } - // documentation inherited + @Override protected boolean skipHitObject (SceneObject scobj) { return false; // skip nothing @@ -1089,7 +1089,7 @@ public class EditorScenePanel extends StageScenePanel _box = box; } - // documentation inherited + @Override protected void paint (Graphics2D gfx, Rectangle[] dirty) { // if we need to refresh the box and we have all the scene data, do it @@ -1155,7 +1155,7 @@ public class EditorScenePanel extends StageScenePanel protected SceneObject _pscobj; /** A list of things that will do some extra painting for us. */ - protected ArrayList _extras = new ArrayList(); + protected ArrayList _extras = new ArrayList(); /** The dialog providing portal edit functionality. */ protected PortalDialog _dialogPortal;