Changeset 3501 in josm for trunk/src


Ignore:
Timestamp:
2010-08-30T23:22:28+02:00 (14 years ago)
Author:
bastiK
Message:

fixed #4632 - Button Help puts help window under main window

Location:
trunk/src/org/openstreetmap/josm
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/OpenFileAction.java

    r3083 r3501  
    112112            msg.append("</ul>");
    113113
    114             SwingUtilities.invokeLater(new Runnable() {
    115                 public void run() {
    116                     HelpAwareOptionPane.showOptionDialog(
    117                             Main.parent,
    118                             msg.toString(),
    119                             tr("Warning"),
    120                             JOptionPane.WARNING_MESSAGE,
    121                             HelpUtil.ht("/Action/OpenFile#ImporterCantImportFiles")
    122                     );
    123                 }
    124             });
     114            HelpAwareOptionPane.showMessageDialogInEDT(
     115                    Main.parent,
     116                    msg.toString(),
     117                    tr("Warning"),
     118                    JOptionPane.WARNING_MESSAGE,
     119                    HelpUtil.ht("/Action/OpenFile#ImporterCantImportFiles")
     120            );
    125121        }
    126122
     
    142138            msg.append("</ul>");
    143139           
    144             SwingUtilities.invokeLater(new Runnable() {
    145                 public void run() {
    146                     HelpAwareOptionPane.showOptionDialog(
    147                             Main.parent,
    148                             msg.toString(),
    149                             tr("Warning"),
    150                             JOptionPane.WARNING_MESSAGE,
    151                             HelpUtil.ht("/Action/OpenFile#MissingImporterForFiles")
    152                     );
    153                 }
    154             });
     140            HelpAwareOptionPane.showMessageDialogInEDT(
     141                    Main.parent,
     142                    msg.toString(),
     143                    tr("Warning"),
     144                    JOptionPane.WARNING_MESSAGE,
     145                    HelpUtil.ht("/Action/OpenFile#MissingImporterForFiles")
     146            );
    155147        }
    156148
     
    205197                if (!filesNotMatchingWithImporter.isEmpty()) {
    206198                    alertFilesNotMatchingWithImporter(filesNotMatchingWithImporter, chosenImporter);
    207                     // TODO when changing to Java 6: Don't cancel the
    208                     // task here but use different modality. (Currently 2 dialogs
    209                     // would block each other.)
    210                     return;
    211199                }
    212200                if (!filesMatchingWithImporter.isEmpty()) {
     
    230218                if (!filesWithUnknownImporter.isEmpty()) {
    231219                    alertFilesWithUnknownImporter(filesWithUnknownImporter);
    232                     // TODO when changing to Java 6: Don't cancel the
    233                     // task here but use different modality. (Currently 2 dialogs
    234                     // would block each other.)
    235                     return;
    236220                }
    237221                List<FileImporter> ims = new ArrayList<FileImporter>(map.keySet());
  • trunk/src/org/openstreetmap/josm/actions/RenameLayerAction.java

    r2512 r3501  
    55import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    66
     7import java.awt.Dialog.ModalityType;
    78import java.awt.event.ActionEvent;
    89import java.io.File;
     
    6465        };
    6566        final JDialog dlg = optionPane.createDialog(Main.parent, tr("Rename layer"));
    66         dlg.setModal(true);
     67        dlg.setModalityType(ModalityType.DOCUMENT_MODAL);
    6768        dlg.setVisible(true);
    6869
  • trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java

    r3404 r3501  
    125125    public ExtendedDialog(Component parent, String title, String[] buttonTexts,
    126126            boolean modal, boolean disposeOnClose) {
    127         super(JOptionPane.getFrameForComponent(parent), title, modal);
     127        super(JOptionPane.getFrameForComponent(parent), title, modal ? ModalityType.DOCUMENT_MODAL : ModalityType.MODELESS);
    128128        this.parent = parent;
    129129        this.modal = modal;
  • trunk/src/org/openstreetmap/josm/gui/HelpAwareOptionPane.java

    r3083 r3501  
    55
    66import java.awt.Component;
     7import java.awt.Dialog.ModalityType;
    78import java.awt.event.ActionEvent;
    89import java.awt.event.KeyEvent;
     
    2122import javax.swing.JOptionPane;
    2223import javax.swing.KeyStroke;
     24import javax.swing.SwingUtilities;
    2325
    2426import org.openstreetmap.josm.gui.help.HelpBrowser;
     
    181183                JOptionPane.getFrameForComponent(parentComponent),
    182184                title,
    183                 true
     185                ModalityType.DOCUMENT_MODAL
    184186        );
    185187        dialog.setContentPane(pane);
    186         dialog.addWindowListener(
    187                 new WindowAdapter() {
    188 
    189                     @Override
    190                     public void windowClosing(WindowEvent e) {
    191                         pane.setValue(JOptionPane.CLOSED_OPTION);
    192                         super.windowClosed(e);
    193                     }
    194 
    195                     @Override
    196                     public void windowOpened(WindowEvent e) {
    197                         if (defaultOption != null && options != null && options.length > 0) {
    198                             int i;
    199                             for (i=0; i<options.length;i++) {
    200                                 if (options[i] == defaultOption) {
    201                                     break;
    202                                 }
    203                             }
    204                             if (i >= options.length) {
    205                                 buttons.get(0).requestFocusInWindow();
    206                             }
    207                             buttons.get(i).requestFocusInWindow();
    208                         } else {
    209                             buttons.get(0).requestFocusInWindow();
     188        dialog.addWindowListener(new WindowAdapter() {
     189            @Override
     190            public void windowClosing(WindowEvent e) {
     191                pane.setValue(JOptionPane.CLOSED_OPTION);
     192                super.windowClosed(e);
     193            }
     194
     195            @Override
     196            public void windowOpened(WindowEvent e) {
     197                if (defaultOption != null && options != null && options.length > 0) {
     198                    int i;
     199                    for (i=0; i<options.length;i++) {
     200                        if (options[i] == defaultOption) {
     201                            break;
    210202                        }
    211203                    }
     204                    if (i >= options.length) {
     205                        buttons.get(0).requestFocusInWindow();
     206                    }
     207                    buttons.get(i).requestFocusInWindow();
     208                } else {
     209                    buttons.get(0).requestFocusInWindow();
    212210                }
    213         );
     211            }
     212        });
    214213        dialog.getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0), "close");
    215214        dialog.getRootPane().getActionMap().put("close", new AbstractAction() {
     
    256255        return showOptionDialog(parentComponent, msg, title, messageType, null,null,null, helpTopic);
    257256    }
     257
     258    /**
     259     * Run it in Event Dispatch Thread.
     260     * This version does not return anything, so it is more like showMessageDialog.
     261     *
     262     * It can be used, when you need to show a message dialog from a worker thread,
     263     * e.g. from PleaseWaitRunnable
     264     */
     265    static public void showMessageDialogInEDT(final Component parentComponent, final Object msg, final String title, final int messageType, final String helpTopic)  {
     266        SwingUtilities.invokeLater(new Runnable() {
     267            public void run() {
     268                showOptionDialog(parentComponent, msg, title, messageType, null, null, null, helpTopic);
     269            }
     270        });
     271    }
    258272}
  • trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java

    r2582 r3501  
    7272
    7373    public PleaseWaitDialog(Component parent) {
    74         super(JOptionPane.getFrameForComponent(parent), true);
     74        super(JOptionPane.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
    7575        initDialog();
    7676    }
  • trunk/src/org/openstreetmap/josm/gui/actionsupport/DeleteFromRelationConfirmationDialog.java

    r3083 r3501  
    170170
    171171    public DeleteFromRelationConfirmationDialog() {
    172         super(JOptionPane.getFrameForComponent(Main.parent), "", true /* modal */);
     172        super(JOptionPane.getFrameForComponent(Main.parent), "", ModalityType.DOCUMENT_MODAL);
    173173        build();
    174174    }
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java

    r3083 r3501  
    190190
    191191    public CombinePrimitiveResolverDialog(Component owner) {
    192         super(JOptionPane.getFrameForComponent(owner), true /* modal */);
     192        super(JOptionPane.getFrameForComponent(owner), ModalityType.DOCUMENT_MODAL);
    193193        build();
    194194    }
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java

    r3385 r3501  
    6969
    7070    public PasteTagsConflictResolverDialog(Component owner) {
    71         super(JOptionPane.getFrameForComponent(owner),true);
     71        super(JOptionPane.getFrameForComponent(owner), ModalityType.DOCUMENT_MODAL);
    7272        build();
    7373        iconResolved = ImageProvider.get("dialogs/conflict", "tagconflictresolved");
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java

    r3362 r3501  
    176176
    177177    public ConflictResolutionDialog(Component parent) {
    178         super(JOptionPane.getFrameForComponent(parent), true /* modal */);
     178        super(JOptionPane.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
    179179        build();
    180180    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java

    r3479 r3501  
    118118
    119119    public LatLonDialog(Component parent, String title, String help) {
    120         super(JOptionPane.getFrameForComponent(parent), true /* modal */);
     120        super(JOptionPane.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
    121121        this.help = help;
    122122        setTitle(title);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java

    r3083 r3501  
    9898
    9999    public ChangesetQueryDialog(Dialog parent) {
    100         super(parent, true /* modal */);
     100        super(parent, ModalityType.DOCUMENT_MODAL);
    101101        build();
    102102    }
    103103
    104104    public ChangesetQueryDialog(Frame parent) {
    105         super(parent, true /* modal */);
     105        super(parent, ModalityType.DOCUMENT_MODAL);
    106106        build();
    107107    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    r3444 r3501  
    88import java.awt.Component;
    99import java.awt.Cursor;
     10import java.awt.Dialog.ModalityType;
    1011import java.awt.Dimension;
    1112import java.awt.Font;
     
    260261        };
    261262        final JDialog dlg = optionPane.createDialog(Main.parent, tr("Change values?"));
     263        dlg.setModalityType(ModalityType.DOCUMENT_MODAL);
    262264
    263265        values.getEditor().addActionListener(new ActionListener() {
     
    401403        };
    402404        JDialog dialog = pane.createDialog(Main.parent, tr("Change values?"));
     405        dialog.setModalityType(ModalityType.DOCUMENT_MODAL);
    403406        dialog.setVisible(true);
    404407
  • trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java

    r3104 r3501  
    177177
    178178    public DownloadDialog(Component parent) {
    179         super(JOptionPane.getFrameForComponent(parent),tr("Download"), true /* modal */);
     179        super(JOptionPane.getFrameForComponent(parent),tr("Download"), ModalityType.DOCUMENT_MODAL);
    180180        getContentPane().setLayout(new BorderLayout());
    181181        getContentPane().add(buildMainPanel(), BorderLayout.CENTER);
  • trunk/src/org/openstreetmap/josm/gui/help/HelpBrowser.java

    r3238 r3501  
    2424import javax.swing.JButton;
    2525import javax.swing.JComponent;
     26import javax.swing.JDialog;
    2627import javax.swing.JEditorPane;
    27 import javax.swing.JFrame;
    2828import javax.swing.JOptionPane;
    2929import javax.swing.JPanel;
     
    5151import org.openstreetmap.josm.tools.WindowGeometry;
    5252
    53 public class HelpBrowser extends JFrame {
     53public class HelpBrowser extends JDialog {
    5454    static private final Logger logger = Logger.getLogger(HelpBrowser.class.getName());
    5555
  • trunk/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java

    r3083 r3501  
    111111
    112112    public CloseChangesetDialog() {
    113         super(JOptionPane.getFrameForComponent(Main.parent), true /* modal */);
     113        super(JOptionPane.getFrameForComponent(Main.parent), ModalityType.DOCUMENT_MODAL);
    114114        build();
    115115    }
  • trunk/src/org/openstreetmap/josm/gui/io/CredentialDialog.java

    r3083 r3501  
    9393
    9494    public CredentialDialog() {
    95         setModal(true);
     95        setModalityType(ModalityType.DOCUMENT_MODAL);
    9696        try {
    9797            setAlwaysOnTop(true);
  • trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java

    r3441 r3501  
    126126
    127127    public SaveLayersDialog(Component parent) {
    128         super(JOptionPane.getFrameForComponent(parent), true /* modal */);
     128        super(JOptionPane.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
    129129        build();
    130130    }
  • trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java

    r3403 r3501  
    231231     */
    232232    public UploadDialog() {
    233         super(JOptionPane.getFrameForComponent(Main.parent), true /* modal */);
     233        super(JOptionPane.getFrameForComponent(Main.parent), ModalityType.DOCUMENT_MODAL);
    234234        build();
    235235    }
  • trunk/src/org/openstreetmap/josm/gui/io/UploadSelectionDialog.java

    r3083 r3501  
    115115
    116116    public UploadSelectionDialog() {
    117         super(JOptionPane.getFrameForComponent(Main.parent), true /* modal */);
     117        super(JOptionPane.getFrameForComponent(Main.parent), ModalityType.DOCUMENT_MODAL);
    118118        build();
    119119    }
  • trunk/src/org/openstreetmap/josm/gui/oauth/OAuthAuthorizationWizard.java

    r3385 r3501  
    212212     */
    213213    public OAuthAuthorizationWizard(String apiUrl) throws IllegalArgumentException {
    214         super(JOptionPane.getFrameForComponent(Main.parent),true /* modal */);
     214        super(JOptionPane.getFrameForComponent(Main.parent), ModalityType.DOCUMENT_MODAL);
    215215        CheckParameterUtil.ensureParameterNotNull(apiUrl, "apiUrl");
    216216        build();
     
    226226     */
    227227    public OAuthAuthorizationWizard(Component parent, String apiUrl) {
    228         super(JOptionPane.getFrameForComponent(parent),true /* modal */);
     228        super(JOptionPane.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
    229229        CheckParameterUtil.ensureParameterNotNull(apiUrl, "apiUrl");
    230230        build();
  • trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java

    r3461 r3501  
    5959
    6060    public PreferenceDialog(Component parent) {
    61         super(JOptionPane.getFrameForComponent(parent), tr("Preferences"), true /* modal */);
     61        super(JOptionPane.getFrameForComponent(parent), tr("Preferences"), ModalityType.DOCUMENT_MODAL);
    6262        build();
    6363    }
  • trunk/src/org/openstreetmap/josm/io/FileImporter.java

    r3083 r3501  
    1212import org.openstreetmap.josm.Main;
    1313import org.openstreetmap.josm.actions.ExtensionFileFilter;
     14import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    1415import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    1516
     
    5859        } catch (Exception e) {
    5960            e.printStackTrace();
    60             JOptionPane.showMessageDialog(
     61            HelpAwareOptionPane.showMessageDialogInEDT(
    6162                    Main.parent,
    6263                    tr("<html>Could not read file ''{0}''.<br>Error is:<br>{1}</html>", f.getName(), e.getMessage()),
    6364                    tr("Error"),
    64                     JOptionPane.ERROR_MESSAGE
     65                    JOptionPane.ERROR_MESSAGE, null
    6566            );
    6667        }
     
    7273        } catch (Exception e) {
    7374            e.printStackTrace();
    74             JOptionPane.showMessageDialog(
     75            HelpAwareOptionPane.showMessageDialogInEDT(
    7576                    Main.parent,
    7677                    tr("<html>Could not read files.<br>Error is:<br>{0}</html>", e.getMessage()),
    7778                    tr("Error"),
    78                     JOptionPane.ERROR_MESSAGE
     79                    JOptionPane.ERROR_MESSAGE, null
    7980            );
    8081        }
  • trunk/src/org/openstreetmap/josm/io/NMEAImporter.java

    r3083 r3501  
    1212import org.openstreetmap.josm.Main;
    1313import org.openstreetmap.josm.actions.ExtensionFileFilter;
     14import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    1415import org.openstreetmap.josm.gui.layer.GpxLayer;
    1516import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
     
    4243
    4344    private void showNmeaInfobox(boolean success, NmeaReader r) {
    44         String msg = tr("Coordinates imported: ") + r.getNumberOfCoordinates() + "\n" + tr("Malformed sentences: ")
    45         + r.getParserMalformed() + "\n" + tr("Checksum errors: ") + r.getParserChecksumErrors() + "\n";
     45        final StringBuilder msg = new StringBuilder().append("<html>");
     46        msg.append(tr("Coordinates imported: {0}", r.getNumberOfCoordinates()) + "<br>");
     47        msg.append(tr("Malformed sentences: {0}", r.getParserMalformed()) + "<br>");
     48        msg.append(tr("Checksum errors: {0}", r.getParserChecksumErrors()) + "<br>");
    4649        if (!success) {
    47             msg += tr("Unknown sentences: ") + r.getParserUnknown() + "\n";
     50            msg.append(tr("Unknown sentences: {0}", r.getParserUnknown()) + "<br>");
    4851        }
    49         msg += tr("Zero coordinates: ") + r.getParserZeroCoordinates();
     52        msg.append(tr("Zero coordinates: {0}", r.getParserZeroCoordinates()));
     53        msg.append("</html>");
    5054        if (success) {
    51             JOptionPane.showMessageDialog(
     55            HelpAwareOptionPane.showMessageDialogInEDT(
    5256                    Main.parent,
    53                     msg,
     57                    msg.toString(),
    5458                    tr("NMEA import success"),
    55                     JOptionPane.INFORMATION_MESSAGE);
     59                    JOptionPane.INFORMATION_MESSAGE, null);
    5660        } else {
    57             JOptionPane.showMessageDialog(Main.parent, msg, tr("NMEA import failure!"), JOptionPane.ERROR_MESSAGE);
     61            HelpAwareOptionPane.showMessageDialogInEDT(
     62                    Main.parent,
     63                    msg.toString(),
     64                    tr("NMEA import failure!"),
     65                    JOptionPane.ERROR_MESSAGE, null);
    5866        }
    5967    }
    60 
    6168}
Note: See TracChangeset for help on using the changeset viewer.