Index: trunk/src/org/openstreetmap/josm/actions/AbstractInfoAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AbstractInfoAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/AbstractInfoAction.java	(revision 1847)
@@ -13,4 +13,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.OpenBrowser;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -58,5 +59,5 @@
 
         if (primitivesToShow.isEmpty()) {
-            JOptionPane.showMessageDialog(
+            OptionPaneUtil.showMessageDialog(
                     Main.parent,
                     tr("Please select at least one already uploaded node, way, or relation."),
Index: trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/AlignInCircleAction.java	(revision 1847)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -132,5 +133,10 @@
 
         if (nodes.size() < 4) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Please select at least four nodes."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Please select at least four nodes."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/AlignInLineAction.java	(revision 1847)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -60,5 +61,10 @@
         }
         if (nodes.size() < 3) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Please select at least three nodes."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Please select at least three nodes."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/ApiPreconditionChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ApiPreconditionChecker.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/ApiPreconditionChecker.java	(revision 1847)
@@ -15,4 +15,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.io.OsmApiInitializationException;
@@ -47,5 +48,5 @@
                 total = add.size() + update.size() + delete.size();
                 if(total > maxElements) {
-                    JOptionPane.showMessageDialog(
+                    OptionPaneUtil.showMessageDialog(
                             Main.parent,
                             tr("Current number of changes exceeds the max. number of changes, current is {0}, max is {1}",
@@ -61,5 +62,5 @@
         } catch (OsmApiInitializationException e) {
             e.printStackTrace();
-            JOptionPane.showMessageDialog(
+            OptionPaneUtil.showMessageDialog(
                     Main.parent,
                     tr("Failed to initialize API. Please try again later."),
@@ -88,5 +89,5 @@
                         continue;
                     }
-                    JOptionPane.showMessageDialog(Main.parent,
+                    OptionPaneUtil.showMessageDialog(Main.parent,
                             tr("Length of value for tag ''{0}'' on primitive {1} exceeds the max. allowed length {2}. Values length is {3}.",
                                     e.getKey(), Long.toString(osmPrimitive.id), 255, e.getValue().length()
@@ -104,5 +105,5 @@
             if (osmPrimitive instanceof Way &&
                     ((Way)osmPrimitive).nodes.size() > maxNodes) {
-                JOptionPane.showMessageDialog(
+                OptionPaneUtil.showMessageDialog(
                         Main.parent,
                         tr("{0} nodes in way {1} exceed the max. allowed number of nodes {2}",
Index: trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 1847)
@@ -16,4 +16,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -86,6 +87,10 @@
             }
             if (sel.isEmpty()) {
-                JOptionPane.showMessageDialog(Main.parent,
-                        mode.equals("selection") ? tr("Nothing selected to zoom to.") : tr("No conflicts to zoom to"));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        (mode.equals("selection") ? tr("Nothing selected to zoom to.") : tr("No conflicts to zoom to")),
+                        tr("Information"),
+                        JOptionPane.INFORMATION_MESSAGE
+                );
                 return null;
             }
Index: trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 1847)
@@ -37,4 +37,5 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.Pair;
@@ -65,5 +66,10 @@
 
         if (selectedWays.size() < 2) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Please select at least two ways to combine."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Please select at least two ways to combine."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
@@ -152,5 +158,10 @@
                 nodeList = (List<Node>) secondTry;
             } else {
-                JOptionPane.showMessageDialog(Main.parent, secondTry);
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        secondTry, // FIXME: not sure whether this fits in a dialog
+                        tr("Information"),
+                        JOptionPane.INFORMATION_MESSAGE
+                );
                 return;
             }
Index: trunk/src/org/openstreetmap/josm/actions/CopyAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 1847)
@@ -24,4 +24,5 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.visitor.AbstractVisitor;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -136,7 +137,9 @@
         Collection<OsmPrimitive> sel = getCurrentDataSet().getSelected();
         if (sel.isEmpty()) {
-            JOptionPane.showMessageDialog(
+            OptionPaneUtil.showMessageDialog(
                     Main.parent,
-                    tr("Please select something to copy.")
+                    tr("Please select something to copy."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
             );
             return true;
Index: trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 1847)
@@ -23,4 +23,5 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.visitor.CollectBackReferencesVisitor;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -202,5 +203,10 @@
 
             if (sUnder == 0) {
-                JOptionPane.showMessageDialog(Main.parent, tr("Those nodes are not in a circle."));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Those nodes are not in a circle. Aborting."),
+                        tr("Warning"),
+                        JOptionPane.WARNING_MESSAGE
+                );
                 return;
             }
@@ -261,5 +267,10 @@
 
         } else {
-            JOptionPane.showMessageDialog(Main.parent, tr("Please select exactly two or three nodes or one way with exactly two or three nodes."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Please select exactly two or three nodes or one way with exactly two or three nodes."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/DistributeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DistributeAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/DistributeAction.java	(revision 1847)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -59,5 +60,10 @@
 
         if (nodes.size() < 3) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Please select at least three nodes."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Please select at least three nodes."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/DownloadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 1847)
@@ -13,4 +13,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
@@ -32,5 +33,5 @@
     public DownloadAction() {
         super(tr("Download from OSM..."), "download", tr("Download map data from the OSM server."),
-        Shortcut.registerShortcut("file:download", tr("File: {0}", tr("Download from OSM...")), KeyEvent.VK_D, Shortcut.GROUPS_ALT1+Shortcut.GROUP_HOTKEY), true);
+                Shortcut.registerShortcut("file:download", tr("File: {0}", tr("Download from OSM...")), KeyEvent.VK_D, Shortcut.GROUPS_ALT1+Shortcut.GROUP_HOTKEY), true);
     }
 
@@ -46,8 +47,10 @@
         dialog.setOptionPane(pane);
 
-        if (dlg.getWidth() > 1000)
+        if (dlg.getWidth() > 1000) {
             dlg.setSize(1000, dlg.getHeight());
-        if (dlg.getHeight() > 600)
+        }
+        if (dlg.getHeight() > 600) {
             dlg.setSize(dlg.getWidth(),600);
+        }
 
         boolean finish = false;
@@ -64,11 +67,18 @@
                     }
                 }
-            } else
+            } else {
                 finish = true;
-            if (!finish)
-                JOptionPane.showMessageDialog(Main.parent, tr("Please select at least one task to download"));
+            }
+            if (!finish) {
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Please select at least one task to download"),
+                        tr("Error"),
+                        JOptionPane.ERROR_MESSAGE
+                );
+            }
         }
 
-                dialog = null;
+        dialog = null;
         dlg.dispose();
     }
Index: trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 1847)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -85,5 +86,5 @@
                 msg = lastException.toString();
             }
-            JOptionPane.showMessageDialog(
+            OptionPaneUtil.showMessageDialog(
                     Main.map,
                     msg,
@@ -121,14 +122,12 @@
                 return;
             Main.map.mapView.getEditLayer().getConflicts().add(visitor.getConflicts());
-            JOptionPane op = new JOptionPane(
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
                     tr("There were {0} conflicts during import.",
-                            visitor.getConflicts().size()),
-                            JOptionPane.WARNING_MESSAGE
+                            visitor.getConflicts().size()
+                    ),
+                    tr("Conflicts during download"),
+                    JOptionPane.WARNING_MESSAGE
             );
-            JDialog dialog = op.createDialog(null, tr("Conflicts in data"));
-            dialog.setAlwaysOnTop(true);
-            dialog.setModal(true);
-            dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
-            dialog.setVisible(true);
         }
 
Index: trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 1847)
@@ -29,4 +29,5 @@
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -62,5 +63,10 @@
         GpxLayer layer = getLayer();
         if (layer == null) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Nothing to export. Get some data first."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Nothing to export. Get some data first."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/HelpAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1847)
@@ -30,4 +30,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.LanguageInfo;
@@ -110,5 +111,10 @@
         } else if (tr("Edit").equals(e.getActionCommand())) {
             if (!url.startsWith(baseurl)) {
-                JOptionPane.showMessageDialog(Main.parent, tr("Can only edit help pages from JOSM Online Help"));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Can only edit help pages from JOSM Online Help"),
+                        tr("Warning"),
+                        JOptionPane.WARNING_MESSAGE
+                );
                 return;
             }
Index: trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 1847)
@@ -72,5 +72,10 @@
 
         if (selectedNodes.size() < 2) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Please select at least two nodes to merge."));
+            JOptionPane.showMessageDialog(
+                    Main.parent,
+                    tr("Please select at least two nodes to merge."),
+                    tr("Warning"),
+                    JOptionPane.WARNING_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/MirrorAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MirrorAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/MirrorAction.java	(revision 1847)
@@ -49,5 +49,10 @@
 
         if (nodes.size() == 0) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Please select at least one node or way."));
+            JOptionPane.showMessageDialog(
+                    Main.parent,
+                    tr("Please select at least one node or way."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/MoveAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/MoveAction.java	(revision 1847)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.visitor.AllNodesVisitor;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -102,6 +103,10 @@
                 // Revert move
                 ((MoveCommand) c).moveAgain(-distx, -disty);
-                JOptionPane.showMessageDialog(Main.parent,
-                        tr("Cannot move objects outside of the world."));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Cannot move objects outside of the world."),
+                        tr("Warning"),
+                        JOptionPane.WARNING_MESSAGE
+                );
                 return;
             }
Index: trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java	(revision 1847)
@@ -13,4 +13,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.io.FileImporter;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -29,5 +30,5 @@
     public OpenFileAction() {
         super(tr("Open..."), "open", tr("Open a file."),
-        Shortcut.registerShortcut("system:open", tr("File: {0}", tr("Open...")), KeyEvent.VK_O, Shortcut.GROUP_MENU));
+                Shortcut.registerShortcut("system:open", tr("File: {0}", tr("Open...")), KeyEvent.VK_O, Shortcut.GROUP_MENU));
     }
 
@@ -37,6 +38,7 @@
             return;
         File[] files = fc.getSelectedFiles();
-        for (int i = files.length; i > 0; --i)
+        for (int i = files.length; i > 0; --i) {
             openFile(files[i-1]);
+        }
     }
 
@@ -48,10 +50,16 @@
             System.out.println("Open file: " + file.getAbsolutePath() + " (" + file.length() + " bytes)");
             for (FileImporter importer : ExtensionFileFilter.importers)
-                if (importer.acceptFile(file))
+                if (importer.acceptFile(file)) {
                     importer.importData(file);
+                }
         } catch (IOException x) {
             x.printStackTrace();
-            JOptionPane.showMessageDialog(Main.parent, tr("Could not read \"{0}\"", file.getName()) + "\n"
-                    + x.getMessage());
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("<html>Could not read file ''{0}\''. Error is: <br>{1}</html>", file.getName(), x.getMessage()),
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+            );
+
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 1847)
@@ -12,4 +12,5 @@
 
 import javax.swing.JOptionPane;
+import javax.swing.text.html.Option;
 
 import org.openstreetmap.josm.Main;
@@ -23,4 +24,5 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -57,5 +59,10 @@
             if(osm instanceof Node) {
                 if(dirnodes.size() == 2) {
-                    JOptionPane.showMessageDialog(Main.parent, tr("Only two nodes allowed"));
+                    OptionPaneUtil.showMessageDialog(
+                            Main.parent,
+                            tr("Only two nodes allowed"),
+                            tr("Information"),
+                            JOptionPane.INFORMATION_MESSAGE
+                    );
                     return;
                 }
@@ -65,5 +72,10 @@
             // Check if selection consists now only of ways
             if (!(osm instanceof Way)) {
-                JOptionPane.showMessageDialog(Main.parent, tr("Selection must consist only of ways."));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Selection must consist only of ways."),
+                        tr("Information"),
+                        JOptionPane.INFORMATION_MESSAGE
+                );
                 return;
             }
@@ -72,5 +84,10 @@
             Way way = (Way)osm;
             if ((way.nodes.size() < 5) || (!way.nodes.get(0).equals(way.nodes.get(way.nodes.size() - 1)))) {
-                JOptionPane.showMessageDialog(Main.parent, tr("Please select one or more closed ways of at least four nodes."));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Please select one or more closed ways of at least four nodes."),
+                        tr("Information"),
+                        JOptionPane.INFORMATION_MESSAGE
+                );
                 return;
             }
@@ -112,5 +129,10 @@
         // Check, if selection held neither none nor two nodes
         if(dirnodes.size() == 1) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Only one node selected"));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Only one node selected"),
+                    tr("Warning"),
+                    JOptionPane.WARNING_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 1847)
@@ -103,17 +103,16 @@
         /* only enable if there is something selected to paste into and
             if we don't have conflicting keys in the pastebuffer */
-        setEnabled(selection != null &&
-                ! selection.isEmpty() &&
-                ! pasteBuffer.allPrimitives().isEmpty() &&
-                (getCurrentDataSet().getSelectedNodes().isEmpty() ||
-                        ! containsSameKeysWithDifferentValues(pasteBuffer.nodes)) &&
-                        (getCurrentDataSet().getSelectedWays().isEmpty() ||
-                                ! containsSameKeysWithDifferentValues(pasteBuffer.ways)) &&
-                                (getCurrentDataSet().getSelectedRelations().isEmpty() ||
-                                        ! containsSameKeysWithDifferentValues(pasteBuffer.relations)));
+        DataSet ds = getCurrentDataSet();
+        if (ds == null || ds.getSelected().isEmpty() || pasteBuffer == null || pasteBuffer.allPrimitives().isEmpty()) {
+            setEnabled(false);
+            return;
+        }
+        setEnabled((!ds.getSelectedNodes().isEmpty() && ! containsSameKeysWithDifferentValues(pasteBuffer.nodes)) ||
+                (!ds.getSelectedWays().isEmpty() && ! containsSameKeysWithDifferentValues(pasteBuffer.ways)) ||
+                (! ds.getSelectedRelations().isEmpty() && ! containsSameKeysWithDifferentValues(pasteBuffer.relations)));
     }
 
     @Override public void pasteBufferChanged(DataSet newPasteBuffer) {
-        possiblyEnable(getCurrentDataSet().getSelected(), newPasteBuffer);
+        updateEnabledState();
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java	(revision 1847)
@@ -15,4 +15,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -52,6 +53,7 @@
             filerename.setEnabled(file != null);
         }
-        if (filerename.isEnabled())
+        if (filerename.isEnabled()) {
             filerename.setSelected(Main.pref.getBoolean("layer.rename-file", true));
+        }
 
         final JOptionPane optionPane = new JOptionPane(panel, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION){
@@ -62,11 +64,13 @@
         };
         final JDialog dlg = optionPane.createDialog(Main.parent, tr("Rename layer"));
+        dlg.setModal(true);
+        dlg.setAlwaysOnTop(true);
+        dlg.toFront();
         dlg.setVisible(true);
 
         Object answer = optionPane.getValue();
         if (answer == null || answer == JOptionPane.UNINITIALIZED_VALUE ||
-                (answer instanceof Integer && (Integer)answer != JOptionPane.OK_OPTION)) {
+                (answer instanceof Integer && (Integer)answer != JOptionPane.OK_OPTION))
             return;
-        }
 
         String nameText = name.getText();
@@ -75,9 +79,11 @@
             if (filerename.isSelected()) {
                 String newname = nameText;
-                if (newname.indexOf("/") == -1 && newname.indexOf("\\") == -1)
+                if (newname.indexOf("/") == -1 && newname.indexOf("\\") == -1) {
                     newname = file.getParent() + File.separator + newname;
+                }
                 String oldname = file.getName();
-                if (name.getText().indexOf('.') == -1 && oldname.indexOf('.') >= 0)
+                if (name.getText().indexOf('.') == -1 && oldname.indexOf('.') >= 0) {
                     newname += oldname.substring(oldname.lastIndexOf('.'));
+                }
                 File newFile = new File(newname);
                 if (file.renameTo(newFile)) {
@@ -85,5 +91,10 @@
                     nameText = newFile.getName();
                 } else {
-                    JOptionPane.showMessageDialog(Main.parent, tr("Could not rename the file \"{0}\".", file.getPath()));
+                    OptionPaneUtil.showMessageDialog(
+                            Main.parent,
+                            tr("Could not rename file ''{0}''", file.getPath()),
+                            tr("Error"),
+                            JOptionPane.ERROR_MESSAGE
+                    );
                     return;
                 }
Index: trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 1847)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -43,6 +44,10 @@
         }
         if (sel.isEmpty()) {
-            JOptionPane.showMessageDialog(Main.parent,
-                    tr("Please select at least one way."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Please select at least one way."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
             return;
         }
Index: trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 1847)
@@ -23,4 +23,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -90,5 +91,10 @@
         }
         if (Main.map == null) {
-            JOptionPane.showMessageDialog(Main.parent, tr("No document open so nothing to save."));
+            JOptionPane.showMessageDialog(
+                    Main.parent,
+                    tr("No document open so nothing to save."),
+                    tr("Warning"),
+                    JOptionPane.WARNING_MESSAGE
+            );
             return false;
         }
@@ -128,5 +134,10 @@
             dstStream = new FileOutputStream(dst);
         } catch (FileNotFoundException e) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Could not back up file.")+"\n"+e.getMessage());
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Could not back up file. Exception is: {0}", e.getMessage()),
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+            );
             return;
         }
@@ -192,5 +203,10 @@
                 }
             } else {
-                JOptionPane.showMessageDialog(Main.parent, tr("Unknown file extension."));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Unknown file extension for file ''{0}''", file.toString()),
+                        tr("Error"),
+                        JOptionPane.ERROR_MESSAGE
+                );
                 return;
             }
@@ -198,5 +214,10 @@
         } catch (IOException e) {
             e.printStackTrace();
-            JOptionPane.showMessageDialog(Main.parent, tr("An error occurred while saving.")+"\n"+e.getMessage());
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("<html>An error occurred while saving. <br>Error is: <br>{0}</html>", e.getMessage()),
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+            );
 
             try {
@@ -208,5 +229,10 @@
             } catch (IOException e2) {
                 e2.printStackTrace();
-                JOptionPane.showMessageDialog(Main.parent, tr("An error occurred while restoring backup file.")+"\n"+e2.getMessage());
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("<html>An error occurred while restoring backup file.<br> Error is: <br>{0}</html>", e2.getMessage()),
+                        tr("Error"),
+                        JOptionPane.ERROR_MESSAGE
+                );
             }
         }
@@ -235,5 +261,10 @@
                 }
             } else {
-                JOptionPane.showMessageDialog(Main.parent, tr("Unknown file extension."));
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("Unknown file extension."),
+                        tr("Error"),
+                        JOptionPane.ERROR_MESSAGE
+                );
                 return;
             }
@@ -250,5 +281,10 @@
         } catch (IOException e) {
             e.printStackTrace();
-            JOptionPane.showMessageDialog(Main.parent, tr("An error occurred while restoring backup file.")+"\n"+e.getMessage());
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("<html>An error occurred while restoring backup file.<br>Error is:<br>{0}</html>", e.getMessage()),
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+            );;
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java	(revision 1847)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -100,6 +101,7 @@
 
         if(! errors.equals("")) {
-            JOptionPane.showMessageDialog(Main.parent,
-                    tr("The following errors occurred during mass download:") + "\r\n" + errors,
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("<html>The following errors occurred during mass download: {0}</html>", errors),
                     tr("Errors during Download"),
                     JOptionPane.ERROR_MESSAGE);
@@ -167,5 +169,5 @@
         );
 
-        int ret = JOptionPane.showOptionDialog(
+        int ret =OptionPaneUtil.showOptionDialog(
                 Main.parent,
                 message,
@@ -173,5 +175,4 @@
                 JOptionPane.YES_NO_OPTION,
                 JOptionPane.WARNING_MESSAGE,
-                null,
                 options,
                 options[0]
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1847)
@@ -41,4 +41,5 @@
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.SelectionManager;
 import org.openstreetmap.josm.gui.SelectionManager.SelectionEnded;
@@ -246,6 +247,11 @@
                         ((MoveCommand) c).moveAgain(-dx, -dy);
 
-                        JOptionPane.showMessageDialog(Main.parent,
-                                tr("Cannot move objects outside of the world."));
+                        OptionPaneUtil.showMessageDialog(
+                                Main.parent,
+                                tr("Cannot move objects outside of the world."),
+                                tr("Warning"),
+                                JOptionPane.WARNING_MESSAGE
+
+                        );
                         restoreCursor();
                         return;
Index: trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 1847)
@@ -23,4 +23,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -47,5 +48,10 @@
             return;
         if (Main.map == null) {
-            JOptionPane.showMessageDialog(Main.parent, tr("No data loaded."));
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    tr("Can't search because there is no loaded data."),
+                    tr("Warning"),
+                    JOptionPane.WARNING_MESSAGE
+            );
             return;
         }
@@ -190,10 +196,21 @@
                 }
                 Main.map.statusLine.setHelpText(msg);
-                JOptionPane.showMessageDialog(Main.parent, msg);
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        msg,
+                        tr("Warning"),
+                        JOptionPane.WARNING_MESSAGE
+                );
             } else {
                 Main.map.statusLine.setHelpText(tr("Found {0} matches", foundMatches));
             }
         } catch (SearchCompiler.ParseError e) {
-            JOptionPane.showMessageDialog(Main.parent, e.getMessage());
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    e.getMessage(),
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+
+            );
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModel.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModel.java	(revision 1847)
@@ -27,4 +27,5 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.conflict.MergeDecisionType;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
@@ -417,5 +418,5 @@
         String msg = e.getMessage() != null ? e.getMessage() : e.toString();
         msg = msg.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
-        JOptionPane.showMessageDialog(
+        OptionPaneUtil.showMessageDialog(
                 Main.parent,
                 tr("<html>An error occurred while communicating with the server<br>"
@@ -468,5 +469,5 @@
                 tr("No, cancel operation")
         };
-        int ret = JOptionPane.showOptionDialog(
+        int ret = OptionPaneUtil.showOptionDialog(
                 Main.parent,
                 tr("<html>There are {0} additional nodes used by way {1}<br>"
@@ -478,5 +479,4 @@
                         JOptionPane.YES_NO_OPTION,
                         JOptionPane.QUESTION_MESSAGE,
-                        null,
                         options,
                         options[0]
@@ -497,5 +497,5 @@
                 tr("No, cancel operation")
         };
-        int ret = JOptionPane.showOptionDialog(
+        int ret = OptionPaneUtil.showOptionDialog(
                 Main.parent,
                 tr("<html>There are {0} additional primitives referred to by relation {1}<br>"
@@ -507,5 +507,4 @@
                         JOptionPane.YES_NO_OPTION,
                         JOptionPane.QUESTION_MESSAGE,
-                        null,
                         options,
                         options[0]
Index: trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMerger.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMerger.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/properties/PropertiesMerger.java	(revision 1847)
@@ -25,4 +25,5 @@
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.conflict.MergeDecisionType;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -582,5 +583,5 @@
                     tr("No, abort")
             };
-            int ret = JOptionPane.showOptionDialog(
+            int ret = OptionPaneUtil.showOptionDialog(
                     null,
                     tr("<html>To keep your local version, JOSM<br>"
@@ -595,5 +596,4 @@
                     JOptionPane.YES_NO_OPTION,
                     JOptionPane.QUESTION_MESSAGE,
-                    null,
                     options,
                     options[1]
@@ -624,5 +624,5 @@
                     tr("No, abort")
             };
-            int ret = JOptionPane.showOptionDialog(
+            int ret = OptionPaneUtil.showOptionDialog(
                     null,
                     tr("<html>JOSM will have to remove your local primitive with id {0}<br>"
@@ -634,5 +634,4 @@
                     JOptionPane.YES_NO_OPTION,
                     JOptionPane.QUESTION_MESSAGE,
-                    null,
                     options,
                     options[1]
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java	(revision 1847)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.conflict.ConflictResolver;
 import org.openstreetmap.josm.gui.conflict.properties.OperationCancelledException;
@@ -174,5 +175,5 @@
                         tr("Apply partial resolutions"),
                         tr("Continue resolving")};
-                int n = JOptionPane.showOptionDialog(null,
+                int n = OptionPaneUtil.showOptionDialog(null,
                         tr("<html>You didn''t finish to resolve all conflicts.<br>"
                                 + "Click <strong>{0}</strong> to apply already resolved conflicts anyway.<br>"
@@ -184,5 +185,4 @@
                         JOptionPane.YES_NO_OPTION,
                         JOptionPane.WARNING_MESSAGE,
-                        null,
                         options,
                         options[1]
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 1847)
@@ -43,4 +43,5 @@
 import org.openstreetmap.josm.data.osm.history.History;
 import org.openstreetmap.josm.data.osm.history.HistoryDataSet;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.SideButton;
@@ -246,5 +247,5 @@
                 msg = task.getLastException().toString();
             }
-            JOptionPane.showMessageDialog(
+            OptionPaneUtil.showMessageDialog(
                     Main.parent,
                     tr(
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java	(revision 1847)
@@ -13,4 +13,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -28,11 +29,17 @@
         }
         public void actionPerformed(ActionEvent e) {
-            JOptionPane.showMessageDialog(Main.parent, layer.getInfoComponent());
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    layer.getInfoComponent(),
+                    tr("Information about layer"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
         }
     }
 
     public LayerListPopup(final JList layers, final Layer layer) {
-        for (Component c : layer.getMenuEntries())
+        for (Component c : layer.getMenuEntries()) {
             add(c);
+        }
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 1847)
@@ -16,5 +16,4 @@
 import javax.swing.DefaultListModel;
 import javax.swing.JList;
-import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -28,6 +27,4 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
-import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
-import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
 import org.openstreetmap.josm.gui.SideButton;
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java	(revision 1847)
@@ -34,4 +34,5 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
@@ -309,5 +310,10 @@
                 msg = lastException.toString();
             }
-            JOptionPane.showMessageDialog(null, msg, tr("Error"), JOptionPane.ERROR_MESSAGE);
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    msg,
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+            );
         }
 
@@ -331,13 +337,10 @@
 
             if (conflictsCount > 0) {
-                JOptionPane op = new JOptionPane(
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
                         tr("There were {0} conflicts during import.", conflictsCount),
+                        tr("Conflicts in data"),
                         JOptionPane.WARNING_MESSAGE
                 );
-                JDialog dialog = op.createDialog(ChildRelationBrowser.this, tr("Conflicts in data"));
-                dialog.setAlwaysOnTop(true);
-                dialog.setModal(true);
-                dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
-                dialog.setVisible(true);
             }
         }
@@ -423,5 +426,10 @@
                 msg = lastException.toString();
             }
-            JOptionPane.showMessageDialog(null, msg, tr("Error"), JOptionPane.ERROR_MESSAGE);
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    msg,
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+            );
         }
 
@@ -445,13 +453,10 @@
 
             if (conflictsCount > 0) {
-                JOptionPane op = new JOptionPane(
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
                         tr("There were {0} conflicts during import.", conflictsCount),
+                        tr("Conflicts in data"),
                         JOptionPane.WARNING_MESSAGE
                 );
-                JDialog dialog = op.createDialog(ChildRelationBrowser.this, tr("Conflicts in data"));
-                dialog.setAlwaysOnTop(true);
-                dialog.setModal(true);
-                dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
-                dialog.setVisible(true);
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1847)
@@ -713,5 +713,10 @@
                     this.nameFormatter.getName(primitive)
             );
-            OptionPaneUtil.showMessageDialog(Main.parent, msg, tr("Warning"), JOptionPane.WARNING_MESSAGE);
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    msg,
+                    tr("Warning"),
+                    JOptionPane.WARNING_MESSAGE
+            );
         }
 
@@ -986,14 +991,11 @@
                 Conflict<Relation> conflict = new Conflict<Relation>(getRelation(), editedRelation);
                 getLayer().getConflicts().add(conflict);
-                JOptionPane op = new JOptionPane(
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
                         tr("<html>The relation has changed outside of the editor.<br>"
                                 + "Your edits can't be applied directly, a conflict has been created instead.</html>"),
+                                tr("Warning"),
                                 JOptionPane.WARNING_MESSAGE
                 );
-                JDialog dialog = op.createDialog(GenericRelationEditor.this, tr("Conflict created"));
-                dialog.setAlwaysOnTop(true);
-                dialog.setModal(true);
-                dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
-                dialog.setVisible(true);
             } else {
                 tagEditorModel.applyToPrimitive(editedRelation);
@@ -1292,5 +1294,10 @@
                 msg = lastException.toString();
             }
-            JOptionPane.showMessageDialog(null, msg, tr("Error"), JOptionPane.ERROR_MESSAGE);
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
+                    msg,
+                    tr("Error"),
+                    JOptionPane.ERROR_MESSAGE
+            );
         }
 
@@ -1305,11 +1312,10 @@
 
             if (conflictsCount > 0) {
-                JOptionPane op = new JOptionPane(tr("There were {0} conflicts during import.", conflictsCount),
-                        JOptionPane.WARNING_MESSAGE);
-                JDialog dialog = op.createDialog(GenericRelationEditor.this, tr("Conflicts in data"));
-                dialog.setAlwaysOnTop(true);
-                dialog.setModal(true);
-                dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
-                dialog.setVisible(true);
+                OptionPaneUtil.showMessageDialog(
+                        Main.parent,
+                        tr("There were {0} conflicts during import.", conflictsCount),
+                        tr("Warning"),
+                        JOptionPane.WARNING_MESSAGE
+                );
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowser.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ReferringRelationsBrowser.java	(revision 1847)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
@@ -202,6 +203,6 @@
                 msg = lastException.toString();
             }
-            JOptionPane.showMessageDialog(
-                    null,
+            OptionPaneUtil.showMessageDialog(
+                    Main.parent,
                     msg,
                     tr("Error"),
@@ -259,14 +260,11 @@
                         return;
                     getLayer().getConflicts().add(visitor.getConflicts());
-                    JOptionPane op = new JOptionPane(
+                    OptionPaneUtil.showMessageDialog(
+                            Main.parent,
                             tr("There were {0} conflicts during import.",
                                     visitor.getConflicts().size()),
+                                    tr("Warning"),
                                     JOptionPane.WARNING_MESSAGE
                     );
-                    JDialog dialog = op.createDialog(ReferringRelationsBrowser.this, tr("Conflicts in data"));
-                    dialog.setAlwaysOnTop(true);
-                    dialog.setModal(true);
-                    dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
-                    dialog.setVisible(true);
                 }
             } catch(Exception e) {
Index: trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 1847)
@@ -23,4 +23,5 @@
 import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.gui.BookmarkList;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.tools.GBC;
 
@@ -78,5 +79,10 @@
 
                 if (tempBookmark == null) {
-                    JOptionPane.showMessageDialog(Main.parent, tr("Please enter the desired coordinates first."));
+                    OptionPaneUtil.showMessageDialog(
+                            Main.parent,
+                            tr("Please enter the desired coordinates first."),
+                            tr("Information"),
+                            JOptionPane.INFORMATION_MESSAGE
+                    );
                     return;
                 }
@@ -94,5 +100,10 @@
                 Object sel = bookmarks.getSelectedValue();
                 if (sel == null) {
-                    JOptionPane.showMessageDialog(Main.parent,tr("Select a bookmark first."));
+                    OptionPaneUtil.showMessageDialog(
+                            Main.parent,
+                            tr("Select a bookmark first."),
+                            tr("Information"),
+                            JOptionPane.INFORMATION_MESSAGE
+                    );
                     return;
                 }
Index: trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 1847)
@@ -32,4 +32,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.OptionPaneUtil;
 import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.download.DownloadSelection;
@@ -166,5 +167,10 @@
                     if(searchtext.length()==0)
                     {
-                        JOptionPane.showMessageDialog(Main.parent,tr("Please enter a search string"));
+                        OptionPaneUtil.showMessageDialog(
+                                Main.parent,
+                                tr("Please enter a search string"),
+                                tr("Information"),
+                                JOptionPane.INFORMATION_MESSAGE
+                        );
                     }
                     else
@@ -173,5 +179,5 @@
                         component.repaint();
                         URL url = new URL("http://gazetteer.openstreetmap.org/namefinder/search.xml?find="
-                        +java.net.URLEncoder.encode(searchTerm.getText(), "UTF-8"));
+                                +java.net.URLEncoder.encode(searchTerm.getText(), "UTF-8"));
                         HttpURLConnection activeConnection = (HttpURLConnection)url.openConnection();
                         //System.out.println("got return: "+activeConnection.getResponseCode());
@@ -318,5 +324,7 @@
     // if bounding box selected on other tab, de-select item
     public void boundingBoxChanged(DownloadDialog gui) {
-        if (!updatingSelf) searchResultDisplay.clearSelection();
+        if (!updatingSelf) {
+            searchResultDisplay.clearSelection();
+        }
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java	(revision 1846)
+++ trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/ImageMarker.java	(revision 1847)
@@ -61,8 +61,9 @@
             public void actionPerformed(ActionEvent ev) {
                 p.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
-                if (scale.getModel().isSelected())
+                if (scale.getModel().isSelected()) {
                     ((JLabel)vp.getView()).setIcon(loadScaledImage(imageUrl, Math.max(vp.getWidth(), vp.getHeight())));
-                else
+                } else {
                     ((JLabel)vp.getView()).setIcon(new ImageIcon(imageUrl));
+                }
                 p.setCursor(Cursor.getDefaultCursor());
             }
@@ -72,4 +73,5 @@
         JDialog dlg = pane.createDialog(Main.parent, imageUrl.toString());
         dlg.setModal(false);
+        dlg.toFront();
         dlg.setVisible(true);
     }
