From cb56375de9e8402f2bf93a73fa9b0001fb862c68 Mon Sep 17 00:00:00 2001 From: bancika Date: Mon, 3 Jan 2011 13:26:20 +0000 Subject: [PATCH] painting issue fix --- .../DIYLC/src/com/diyfever/diylc/gui/MainFrame.java | 9 ++++++--- .../diyfever/diylc/plugins/canvas/CanvasPlugin.java | 13 ++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/gui/MainFrame.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/gui/MainFrame.java index 91147b63..251535c3 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/gui/MainFrame.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/gui/MainFrame.java @@ -63,10 +63,11 @@ public class MainFrame extends JFrame implements IView { presenter.installPlugin(new HelpManager()); presenter.installPlugin(new StatusBar()); - presenter.installPlugin(new CanvasPlugin()); + CanvasPlugin canvasPlugin = new CanvasPlugin(); + presenter.installPlugin(canvasPlugin); Project project = new Project(); -// project.getComponents().add(new MockComponentInstance()); + // project.getComponents().add(new MockComponentInstance()); presenter.loadProject(project, true); addWindowListener(new WindowAdapter() { @@ -81,7 +82,9 @@ public class MainFrame extends JFrame implements IView { presenter.dispose(); } }); - + // TODO: hack to fix painting issues with rulers in the scroll pane. + // Find a better solution if possible. + canvasPlugin.refresh(); // setGlassPane(new CustomGlassPane()); // getGlassPane().setVisible(true); } diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPlugin.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPlugin.java index 3705fe88..cc334421 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPlugin.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/com/diyfever/diylc/plugins/canvas/CanvasPlugin.java @@ -2,6 +2,7 @@ package com.diyfever.diylc.plugins.canvas; import java.awt.Dimension; import java.awt.Rectangle; +import java.awt.event.MouseEvent; import java.util.EnumSet; import javax.swing.SwingConstants; @@ -103,6 +104,16 @@ public class CanvasPlugin implements IPlugIn { Dimension d = plugInPort.getCanvasDimensions(true); canvasPanel.setSize(d); canvasPanel.setPreferredSize(d); - scrollPane.setZoomLevel(plugInPort.getZoomLevel()); + getScrollPane().setZoomLevel(plugInPort.getZoomLevel()); + } + + /** + * Causes ruller scroll pane to refresh by sending a fake mouse moved + * message to the canvasPanel. + */ + public void refresh() { + MouseEvent event = new MouseEvent(canvasPanel, MouseEvent.MOUSE_MOVED, System + .currentTimeMillis(), 0, 0, 0, 0, false); + canvasPanel.dispatchEvent(event); } }