OpenJDK / graal / graal-jvmci-8
changeset 2956:f887649da523
IdealGraphVisualizer: ignore selection changes that are triggered when the scene is rebuilding during an update: this fixes problems with hidden nodes or blocks when opening a different graph or a diff view
author | Peter Hofer <peter.hofer@jku.at> |
---|---|
date | Wed, 15 Jun 2011 15:57:08 +0200 |
parents | bf4f8817e3bd |
children | ea1c82618273 66ecfc755c86 |
files | src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java |
diffstat | 1 files changed, 15 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java Wed Jun 15 14:30:40 2011 +0200 +++ b/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java Wed Jun 15 15:57:08 2011 +0200 @@ -57,8 +57,6 @@ import java.awt.Point; import java.awt.Rectangle; import java.awt.event.ActionEvent; -import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.util.ArrayList; @@ -123,6 +121,7 @@ private DiagramViewModel model; private DiagramViewModel modelCopy; private WidgetAction zoomAction; + private boolean rebuilding; /** * The alpha level of partially visible figures. @@ -327,6 +326,11 @@ } public void selectionChanged(ObjectSceneEvent e, Set<Object> oldSet, Set<Object> newSet) { + DiagramScene scene = (DiagramScene) e.getObjectScene(); + if (scene.isRebuilding()) { + return; + } + content.set(newSet, null); Set<Integer> nodeSelection = new HashSet<Integer>(); @@ -507,6 +511,8 @@ private void update() { mainLayer.removeChildren(); blockLayer.removeChildren(); + + rebuilding = true; Collection<Object> objects = new ArrayList<Object>(this.getObjects()); for (Object o : objects) { @@ -515,7 +521,7 @@ Diagram d = getModel().getDiagramToView(); - if (d.getGraph().getBlocks().size() == 0) { + if (d.getGraph().getBlocks().isEmpty()) { Scheduler s = Lookup.getDefault().lookup(Scheduler.class); d.getGraph().clearBlocks(); s.schedule(d.getGraph()); @@ -557,9 +563,13 @@ blockLayer.addChild(w); } } - + + rebuilding = false; this.smallUpdate(true); - + } + + public boolean isRebuilding() { + return rebuilding; } private void smallUpdate(boolean relayout) {