Ticket #17192: 17192-v2.patch

File 17192-v2.patch, 5.5 KB (added by GerdP, 5 weeks ago)
  • src/org/openstreetmap/josm/actions/AboutAction.java

     
    22package org.openstreetmap.josm.actions;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     5import static org.openstreetmap.josm.tools.Utils.getSystemEnv;
     6import static org.openstreetmap.josm.tools.Utils.getSystemProperty;
    57
    68import java.awt.Color;
    79import java.awt.Dimension;
     
    1618import java.io.InputStream;
    1719import java.io.InputStreamReader;
    1820
     21import javax.swing.AbstractAction;
    1922import javax.swing.BorderFactory;
     23import javax.swing.JButton;
     24import javax.swing.JFileChooser;
    2025import javax.swing.JLabel;
    2126import javax.swing.JPanel;
    2227import javax.swing.JScrollPane;
     
    3742import org.openstreetmap.josm.tools.ImageProvider.ImageSizes;
    3843import org.openstreetmap.josm.tools.Logging;
    3944import org.openstreetmap.josm.tools.OpenBrowser;
     45import org.openstreetmap.josm.tools.PlatformManager;
    4046import org.openstreetmap.josm.tools.Shortcut;
    4147import org.openstreetmap.josm.tools.Utils;
    4248
     
    112118        info.add(logos, GBC.eol().insets(0, 10, 0, 0));
    113119        info.add(GBC.glue(0, 5), GBC.eol());
    114120
     121        final String envJavaHome = getSystemEnv("JAVA_HOME");
     122        final String envJavaHomeAlt = PlatformManager.isPlatformWindows() ? "%JAVA_HOME%" : "${JAVA_HOME}";
     123        final String propJavaHome = getSystemProperty("java.home");
     124        final String propJavaHomeAlt = "<java.home>";
     125        final String prefDir = Config.getDirs().getPreferencesDirectory(false).toString();
     126        final String prefDirAlt = "<josm.pref>";
     127        final String userDataDir = Config.getDirs().getUserDataDirectory(false).toString();
     128        final String userDataDirAlt = "<josm.userdata>";
     129        final String userCacheDir = Config.getDirs().getCacheDirectory(false).toString();
     130        final String userCacheDirAlt = "<josm.cache>";
     131
     132        JPanel inst = new JPanel(new GridBagLayout());
     133        addInstLine(inst, envJavaHomeAlt, envJavaHome);
     134        addInstLine(inst, propJavaHomeAlt, propJavaHome);
     135        addInstLine(inst, prefDirAlt, prefDir);
     136        addInstLine(inst, userDataDirAlt, userDataDir);
     137        addInstLine(inst, userCacheDirAlt, userCacheDir);
     138
    115139        about.addTab(tr("Info"), info);
    116140        about.addTab(tr("Readme"), createScrollPane(readme));
    117141        about.addTab(tr("Revision"), createScrollPane(revision));
     
    118142        about.addTab(tr("Contribution"), createScrollPane(contribution));
    119143        about.addTab(tr("License"), createScrollPane(license));
    120144        about.addTab(tr("Plugins"), new JScrollPane(PluginHandler.getInfoPanel()));
     145        about.addTab(tr("Installation Details"), inst);
    121146
    122147        // Get the list of Launchpad contributors using customary msgid “translator-credits”
    123148        String translators = tr("translator-credits");
     
    133158        panel.add(about, GBC.std().fill());
    134159
    135160        GuiHelper.prepareResizeableOptionPane(panel, panel.getPreferredSize());
    136         int ret = new ExtendedDialog(MainApplication.getMainFrame(), tr("About JOSM..."), tr("OK"), tr("Report bug"))
    137             .setButtonIcons("ok", "bug")
    138             .setContent(panel, false)
    139             .showDialog().getValue();
     161        ExtendedDialog dlg = new ExtendedDialog(MainApplication.getMainFrame(), tr("About JOSM..."), tr("OK"), tr("Report bug"));
     162        int ret = dlg.setButtonIcons("ok", "bug")
     163                .setContent(panel, false)
     164                .showDialog().getValue();
    140165        if (2 == ret) {
    141166            MainApplication.getMenu().reportbug.actionPerformed(null);
    142167        }
     168        GuiHelper.destroyComponents(panel, false);
     169        dlg.dispose();
    143170    }
    144171
     172    private static class OpenDirAction extends AbstractAction {
     173        final String dir;
     174
     175        OpenDirAction(String dir) {
     176            super();
     177
     178            this.dir = dir;
     179        }
     180
     181        @Override
     182        public void actionPerformed(ActionEvent e) {
     183            new JFileChooser(dir).showOpenDialog(null);
     184        }
     185    }
     186
     187    private void addInstLine(JPanel inst, String symbol, String dir) {
     188        inst.add(new JLabel(symbol), GBC.std());
     189        inst.add(GBC.glue(5, 0), GBC.std());
     190        inst.add(new JLabel(dir), GBC.std().fill(GBC.HORIZONTAL));
     191        JButton btn = new JButton(tr("open"));
     192        btn.setAction(new OpenDirAction(dir));
     193        btn.setToolTipText(tr("Open directory"));
     194        btn.setIcon(ImageProvider.get("open", ImageProvider.ImageSizes.SMALLICON));
     195        inst.add(btn, GBC.eol());
     196    }
     197
    145198    private static JLabel createImageLink(String tooltip, String icon, final String link) {
    146199        JLabel label = new JLabel(ImageProvider.get("dialogs/about", icon, ImageSizes.LARGEICON));
    147200        label.setToolTipText(tooltip);
  • src/org/openstreetmap/josm/actions/ShowStatusReportAction.java

     
    241241
    242242        String val = param;
    243243        val = paramReplace(val, envJavaHome, envJavaHomeAlt);
    244         val = paramReplace(val, envJavaHome, envJavaHomeAlt);
    245244        val = paramReplace(val, propJavaHome, propJavaHomeAlt);
    246245        val = paramReplace(val, prefDir, prefDirAlt);
    247246        val = paramReplace(val, userDataDir, userDataDirAlt);