Fix issue with file dialog not showing when drawing mapsforge.

This commit is contained in:
Holt59 2018-03-09 21:36:19 +01:00
parent e0268c80af
commit 23928b2c5b

View File

@ -163,7 +163,7 @@ public class MainWindow extends JFrame {
this.currentPalette = this.basicPalette; this.currentPalette = this.basicPalette;
wccPanel = new AlgorithmPanel(this, WeaklyConnectedComponentsAlgorithm.class, wccPanel = new AlgorithmPanel(this, WeaklyConnectedComponentsAlgorithm.class,
"Weakly-Connected Components", new String[]{}, false, false); "Weakly-Connected Components", new String[] {}, false, false);
wccPanel.addStartActionListener(new ActionListener() { wccPanel.addStartActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -208,7 +208,7 @@ public class MainWindow extends JFrame {
}); });
spPanel = new AlgorithmPanel(this, ShortestPathAlgorithm.class, "Shortest-Path", spPanel = new AlgorithmPanel(this, ShortestPathAlgorithm.class, "Shortest-Path",
new String[]{ "Origin", "Destination" }, true, true); new String[] { "Origin", "Destination" }, true, true);
spPanel.addStartActionListener(new ActionListener() { spPanel.addStartActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -261,12 +261,12 @@ public class MainWindow extends JFrame {
}); });
cpPanel = new AlgorithmPanel( cpPanel = new AlgorithmPanel(
this, CarPoolingAlgorithm.class, "Car-Pooling", new String[]{ "Origin Car", this, CarPoolingAlgorithm.class, "Car-Pooling", new String[] { "Origin Car",
"Origin Pedestrian", "Destination Car", "Destination Pedestrian" }, "Origin Pedestrian", "Destination Car", "Destination Pedestrian" },
true, true); true, true);
psPanel = new AlgorithmPanel(this, PackageSwitchAlgorithm.class, "Car-Pooling", psPanel = new AlgorithmPanel(this, PackageSwitchAlgorithm.class, "Car-Pooling",
new String[]{ "Oribin A", "Origin B", "Destination A", "Destination B" }, true, new String[] { "Oribin A", "Origin B", "Destination A", "Destination B" }, true,
true); true);
// add algorithm panels // add algorithm panels
@ -463,7 +463,10 @@ public class MainWindow extends JFrame {
} }
} }
Runnable runnable = null;
if (isMapView && mfile != null) { if (isMapView && mfile != null) {
final File mfileFinal = mfile;
// It is a mapview drawing and the file was found, so: // It is a mapview drawing and the file was found, so:
// 1. We create the drawing if necessary. // 1. We create the drawing if necessary.
if (drawing != mapViewDrawing) { if (drawing != mapViewDrawing) {
@ -473,16 +476,17 @@ public class MainWindow extends JFrame {
mainPanel.setDividerLocation(oldLocation); mainPanel.setDividerLocation(oldLocation);
notifyDrawingLoaded(basicDrawing, mapViewDrawing); notifyDrawingLoaded(basicDrawing, mapViewDrawing);
drawing.clear(); drawing.clear();
((MapViewDrawing) drawing).drawGraph(mfile); isNewGraph = true;
} }
else if (isNewGraph) { if (isNewGraph) {
drawing.clear(); drawing.clear();
((MapViewDrawing) drawing).drawGraph(mfile); runnable = new Runnable() {
public void run() {
((MapViewDrawing) drawing).drawGraph(mfileFinal);
notifyRedrawRequest();
}
};
} }
else {
drawing.clearOverlays();
}
notifyRedrawRequest();
} }
else if (!isMapView || (isMapView && mfile == null && isNewGraph)) { else if (!isMapView || (isMapView && mfile == null && isNewGraph)) {
@ -492,18 +496,25 @@ public class MainWindow extends JFrame {
mainPanel.setLeftComponent(basicDrawing); mainPanel.setLeftComponent(basicDrawing);
mainPanel.setDividerLocation(oldLocation); mainPanel.setDividerLocation(oldLocation);
notifyDrawingLoaded(mapViewDrawing, basicDrawing); notifyDrawingLoaded(mapViewDrawing, basicDrawing);
isNewGraph = true;
}
if (isNewGraph || palette != this.currentPalette) {
this.currentPalette = palette; this.currentPalette = palette;
drawing.clear(); drawing.clear();
drawing.drawGraph(graph, palette); runnable = new Runnable() {
} public void run() {
else if (isNewGraph || palette != this.currentPalette) { drawing.drawGraph(graph, palette);
this.currentPalette = palette; notifyRedrawRequest();
drawing.clear(); }
drawing.drawGraph(graph, palette); };
}
else {
drawing.clearOverlays();
} }
}
if (runnable != null) {
launchThread(runnable, false);
}
else {
drawing.clearOverlays();
notifyRedrawRequest(); notifyRedrawRequest();
} }
@ -696,12 +707,7 @@ public class MainWindow extends JFrame {
drawGraphItem.addActionListener(baf.createBlockingAction(new ActionListener() { drawGraphItem.addActionListener(baf.createBlockingAction(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
launchThread(new Runnable() { drawGraph(BasicDrawing.class, basicPalette);
@Override
public void run() {
drawGraph(BasicDrawing.class, basicPalette);
}
});
} }
})); }));
graphLockItems.add(drawGraphItem); graphLockItems.add(drawGraphItem);
@ -710,12 +716,7 @@ public class MainWindow extends JFrame {
drawGraphBWItem.addActionListener(baf.createBlockingAction(new ActionListener() { drawGraphBWItem.addActionListener(baf.createBlockingAction(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
launchThread(new Runnable() { drawGraph(BasicDrawing.class, blackAndWhitePalette);
@Override
public void run() {
drawGraph(BasicDrawing.class, blackAndWhitePalette);
}
});
} }
})); }));
graphLockItems.add(drawGraphBWItem); graphLockItems.add(drawGraphBWItem);
@ -725,12 +726,7 @@ public class MainWindow extends JFrame {
drawGraphMapsforgeItem.addActionListener(baf.createBlockingAction(new ActionListener() { drawGraphMapsforgeItem.addActionListener(baf.createBlockingAction(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
launchThread(new Runnable() { drawGraph(MapViewDrawing.class);
@Override
public void run() {
drawGraph(MapViewDrawing.class);
}
});
} }
})); }));
graphLockItems.add(drawGraphMapsforgeItem); graphLockItems.add(drawGraphMapsforgeItem);