Changeset 3501 in josm


Ignore:
Timestamp:
Aug 30, 2010 11:22:28 PM (3 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.