From: Frederick W. <fre...@us...> - 2012-01-10 22:29:25
|
rails/ui/swing/ImageLoader.java | 3 +++ rails/ui/swing/MapPanel.java | 3 +++ rails/ui/swing/ORPanel.java | 7 +------ 3 files changed, 7 insertions(+), 6 deletions(-) New commits: commit 1f0b89df9bde415058747b361b366dec5fe6202c Author: Frederick Weld <fre...@gm...> Date: Tue Jan 10 23:25:06 2012 +0100 Fixed resize issues: tiles (adjustment zoom), routes (fit zoom) There is a buffer for tile scalings - it is now invalidated whenever the adjustmentZoomFactor is changed. (This tile buffer is the reason why maintaining zoom steps made sense in the past.) In addition, redrawal of routes is now also triggered upon auto-resize diff --git a/rails/ui/swing/ImageLoader.java b/rails/ui/swing/ImageLoader.java index f663639..fd64570 100644 --- a/rails/ui/swing/ImageLoader.java +++ b/rails/ui/swing/ImageLoader.java @@ -149,6 +149,9 @@ public class ImageLoader { for (int i = 0 ; i < zoomFactors.length ; i++) { zoomFactors[i] = 0; } + + //invalidate buffered tile scalings + if (tileMap != null) tileMap.clear(); } public void resetAdjustmentFactor() { diff --git a/rails/ui/swing/MapPanel.java b/rails/ui/swing/MapPanel.java index 23e4a24..66c81d6 100644 --- a/rails/ui/swing/MapPanel.java +++ b/rails/ui/swing/MapPanel.java @@ -138,6 +138,9 @@ public class MapPanel extends JPanel { if (mapImage != null) { mapImage.setBoundsAndResize(currentMapSize,map.getZoomStep()); } + //access from map panel to or panel not nice but currently necessary for route drawing + if (gameUIManager.getORUIManager() != null && gameUIManager.getORUIManager().getORPanel() != null) + gameUIManager.getORUIManager().getORPanel().redrawRoutes(); layeredPane.revalidate(); } diff --git a/rails/ui/swing/ORPanel.java b/rails/ui/swing/ORPanel.java index 959d644..aeb19e7 100644 --- a/rails/ui/swing/ORPanel.java +++ b/rails/ui/swing/ORPanel.java @@ -790,7 +790,7 @@ implements ActionListener, KeyListener, RevenueListener { disableRoutesDisplay(); } - private void redrawRoutes() { + public void redrawRoutes() { if (revenueAdapter != null && isDisplayRoutes()) { revenueAdapter.drawOptimalRunAsPath(orUIManager.getMap()); } @@ -827,19 +827,16 @@ implements ActionListener, KeyListener, RevenueListener { fitToWidth.setSelected(false); fitToHeight.setSelected(false); orWindow.getMapPanel().zoom(true); - redrawRoutes(); } else if (source == zoomOut) { fitToWindow.setSelected(false); fitToWidth.setSelected(false); fitToHeight.setSelected(false); orWindow.getMapPanel().zoom(false); - redrawRoutes(); } else if (source == fitToWindow) { if (fitToWindow.isSelected()) { fitToWidth.setSelected(false); fitToHeight.setSelected(false); orWindow.getMapPanel().fitToWindow(); - redrawRoutes(); } else { orWindow.getMapPanel().removeFitToOption(); } @@ -848,7 +845,6 @@ implements ActionListener, KeyListener, RevenueListener { fitToWindow.setSelected(false); fitToHeight.setSelected(false); orWindow.getMapPanel().fitToWidth(); - redrawRoutes(); } else { orWindow.getMapPanel().removeFitToOption(); } @@ -857,7 +853,6 @@ implements ActionListener, KeyListener, RevenueListener { fitToWindow.setSelected(false); fitToWidth.setSelected(false); orWindow.getMapPanel().fitToHeight(); - redrawRoutes(); } else { orWindow.getMapPanel().removeFitToOption(); } |