Changeset 14701 in josm


Ignore:
Timestamp:
2019-01-16T15:42:29+01:00 (5 weeks ago)
Author:
GerdP
Message:

fix #17192 Improve about installation details dialog

Location:
trunk/src/org/openstreetmap/josm/actions
Files:
2 edited

Legend:

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

    r14697 r14701  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
    5 import static org.openstreetmap.josm.tools.Utils.getSystemEnv;
    65import static org.openstreetmap.josm.tools.Utils.getSystemProperty;
    76
     
    2019import java.io.InputStream;
    2120import java.io.InputStreamReader;
     21import java.util.Map.Entry;
    2222
    2323import javax.swing.AbstractAction;
     
    3131import javax.swing.JTextArea;
    3232
     33import org.openstreetmap.josm.data.Preferences;
    3334import org.openstreetmap.josm.data.Version;
    3435import org.openstreetmap.josm.gui.ExtendedDialog;
     
    4546import org.openstreetmap.josm.tools.Logging;
    4647import org.openstreetmap.josm.tools.OpenBrowser;
    47 import org.openstreetmap.josm.tools.PlatformManager;
    4848import org.openstreetmap.josm.tools.Shortcut;
    4949import org.openstreetmap.josm.tools.Utils;
     
    122122
    123123        JPanel inst = new JPanel(new GridBagLayout());
    124         addInstallationLine(inst, getSystemEnv("JAVA_HOME"), PlatformManager.isPlatformWindows() ? "%JAVA_HOME%" : "${JAVA_HOME}");
    125         addInstallationLine(inst, getSystemProperty("java.home"), "java.home");
    126         addInstallationLine(inst, Config.getDirs().getPreferencesDirectory(false).toString(), null);
    127         addInstallationLine(inst, Config.getDirs().getUserDataDirectory(false).toString(), null);
    128         addInstallationLine(inst, Config.getDirs().getCacheDirectory(false).toString(), null);
     124        final String pathToPreferences = ShowStatusReportAction
     125                .paramCleanup(Preferences.main().getPreferenceFile().getAbsolutePath());
     126        inst.add(new JLabel(tr("Preferences are stored in {0}", pathToPreferences)), GBC.eol().insets(0, 0, 0, 10));
     127        inst.add(new JLabel(tr("Symbolic names for directories and the actual paths:")),
     128                GBC.eol().insets(0, 0, 0, 10));
     129        for (Entry<String, String> entry : ShowStatusReportAction.getAnonimicDirectorySymbolMap().entrySet()) {
     130            addInstallationLine(inst, entry.getValue(), entry.getKey());
     131        }
     132
    129133
    130134        about.addTab(tr("Info"), info);
     
    184188     */
    185189    private void addInstallationLine(JPanel inst, String dir, String source) {
    186         if (dir == null && source == null)
     190        if (source == null)
    187191            return;
    188         JLabel symbol = new JLabel();
     192        JLabel symbol = new JLabel(source);
     193        symbol.setFont(GuiHelper.getMonospacedFont(symbol));
    189194        JosmTextArea dirLabel = new JosmTextArea();
    190195        if (dir != null && !dir.isEmpty()) {
    191             symbol.setText(ShowStatusReportAction.paramCleanup(dir));
    192196            dirLabel.setText(dir);
    193197            dirLabel.setEditable(false);
    194198        } else {
    195             symbol.setText(source);
    196199            dirLabel.setText(tr("(unset)"));
    197200            dirLabel.setFont(dirLabel.getFont().deriveFont(Font.ITALIC));
    198201        }
    199         symbol.setFont(GuiHelper.getMonospacedFont(symbol));
    200202        inst.add(symbol, GBC.std().insets(5, 0, 0, 0));
    201203        inst.add(GBC.glue(10, 0), GBC.std());
  • trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java

    r14693 r14701  
    1616import java.util.Arrays;
    1717import java.util.Collection;
     18import java.util.LinkedHashMap;
    1819import java.util.List;
    1920import java.util.ListIterator;
    2021import java.util.Locale;
     22import java.util.Map;
     23import java.util.Map.Entry;
    2124import java.util.Set;
    2225import java.util.stream.Collectors;
     
    220223
    221224    /**
     225     * Fill map with anonymized name to the actual used path.
     226     * @return map that maps shortened name to full directory path
     227     */
     228    static Map<String, String> getAnonimicDirectorySymbolMap() {
     229        /** maps the anonymized name to the actual used path */
     230        Map<String, String> map = new LinkedHashMap<>();
     231        map.put(PlatformManager.isPlatformWindows() ? "%JAVA_HOME%" : "${JAVA_HOME}", getSystemEnv("JAVA_HOME"));
     232        map.put("<java.home>", getSystemProperty("java.home"));
     233        map.put("<josm.pref>", Config.getDirs().getPreferencesDirectory(false).toString());
     234        map.put("<josm.userdata>", Config.getDirs().getUserDataDirectory(false).toString());
     235        map.put("<josm.cache>", Config.getDirs().getCacheDirectory(false).toString());
     236        map.put(PlatformManager.isPlatformWindows() ? "%UserProfile%" : "${HOME}", getSystemProperty("user.home"));
     237        return map;
     238    }
     239
     240    /**
    222241     * Shortens and removes private informations from a parameter used for status report.
    223242     * @param param parameter to cleanup
     
    225244     */
    226245    static String paramCleanup(String param) {
    227         final String envJavaHome = getSystemEnv("JAVA_HOME");
    228         final String envJavaHomeAlt = PlatformManager.isPlatformWindows() ? "%JAVA_HOME%" : "${JAVA_HOME}";
    229         final String propJavaHome = getSystemProperty("java.home");
    230         final String propJavaHomeAlt = "<java.home>";
    231         final String prefDir = Config.getDirs().getPreferencesDirectory(false).toString();
    232         final String prefDirAlt = "<josm.pref>";
    233         final String userDataDir = Config.getDirs().getUserDataDirectory(false).toString();
    234         final String userDataDirAlt = "<josm.userdata>";
    235         final String userCacheDir = Config.getDirs().getCacheDirectory(false).toString();
    236         final String userCacheDirAlt = "<josm.cache>";
    237         final String userHomeDir = getSystemProperty("user.home");
    238         final String userHomeDirAlt = PlatformManager.isPlatformWindows() ? "%UserProfile%" : "${HOME}";
    239246        final String userName = getSystemProperty("user.name");
    240247        final String userNameAlt = "<user.name>";
    241248
    242249        String val = param;
    243         val = paramReplace(val, envJavaHome, envJavaHomeAlt);
    244         val = paramReplace(val, propJavaHome, propJavaHomeAlt);
    245         val = paramReplace(val, prefDir, prefDirAlt);
    246         val = paramReplace(val, userDataDir, userDataDirAlt);
    247         val = paramReplace(val, userCacheDir, userCacheDirAlt);
    248         val = paramReplace(val, userHomeDir, userHomeDirAlt);
     250        for (Entry<String, String> entry : getAnonimicDirectorySymbolMap().entrySet()) {
     251            val = paramReplace(val, entry.getValue(), entry.getKey());
     252        }
    249253        if (userName != null && userName.length() >= 3) {
    250254            val = paramReplace(val, userName, userNameAlt);
     
    303307            case 1: ta.copyToClipboard(); break;
    304308            case 2: BugReportSender.reportBug(reportHeader); break;
    305             default: // Do nothing
    306         }
     309            default: // do nothing
     310        }
     311        GuiHelper.destroyComponents(ed, false);
    307312    }
    308313}
Note: See TracChangeset for help on using the changeset viewer.