Ignore:
Timestamp:
2014-01-19T21:51:35+01:00 (6 years ago)
Author:
simon04
Message:

see #7326 - History dialog: move user id to toolbar, remember size/position

Location:
trunk/src/org/openstreetmap/josm/gui/history
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialog.java

    r6084 r6743  
    8989
    9090        HelpUtil.setHelpContext(getRootPane(), ht("/Dialog/HistoryBrowser"));
    91 
    92         setSize(800, 500);
    9391    }
    9492
  • trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java

    r6448 r6743  
    1616
    1717import org.openstreetmap.josm.Main;
    18 import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1918import org.openstreetmap.josm.data.osm.PrimitiveId;
    2019import org.openstreetmap.josm.data.osm.history.History;
     
    7372    }
    7473
     74    final String WINDOW_GEOMETRY_PREF = getClass().getName() + ".geometry";
     75
    7576    public void placeOnScreen(HistoryBrowserDialog dialog) {
    76         WindowGeometry geometry = WindowGeometry.centerOnScreen(new Dimension(800,500));
     77        WindowGeometry geometry = new WindowGeometry(WINDOW_GEOMETRY_PREF, WindowGeometry.centerOnScreen(new Dimension(850, 500)));
    7778        geometry.applySafe(dialog);
    7879        Point p = dialog.getLocation();
    7980        while(hasDialogWithCloseUpperLeftCorner(p)) {
    80             p.x +=20;
     81            p.x += 20;
    8182            p.y += 20;
    8283        }
     
    9495        if (id > 0) {
    9596            dialogs.remove(id);
     97            if (dialogs.isEmpty()) {
     98                new WindowGeometry(dialog).remember(WINDOW_GEOMETRY_PREF);
     99            }
    96100        }
    97101        dialog.setVisible(false);
  • trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java

    r6524 r6743  
    4545import org.openstreetmap.josm.gui.layer.Layer;
    4646import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    47 import org.openstreetmap.josm.io.XmlWriter;
    4847import org.openstreetmap.josm.tools.CheckParameterUtil;
    4948
     
    439438                    User user = p.getUser();
    440439                    if (user != null)
    441                         return "<html>" + XmlWriter.encode(user.getName(), true) + " <font color=gray>(" + user.getId() + ")</font></html>";
     440                        return user.getName();
    442441                }
    443442                return null;
  • trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java

    r6623 r6743  
    3131import org.openstreetmap.josm.Main;
    3232import org.openstreetmap.josm.actions.AbstractInfoAction;
     33import org.openstreetmap.josm.data.osm.User;
    3334import org.openstreetmap.josm.data.osm.history.History;
    3435import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive;
    3536import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     37import org.openstreetmap.josm.io.XmlWriter;
    3638import org.openstreetmap.josm.tools.ImageProvider;
     39import org.openstreetmap.josm.tools.OpenBrowser;
    3740
    3841/**
     
    161164                return;
    162165            String url = createInfoUrl(primitive);
    163             launchBrowser(url);
     166            OpenBrowser.displayUrl(url);
    164167        }
    165168
     
    170173    }
    171174
     175    static class UserInfoAction extends AbstractInfoAction {
     176        private HistoryOsmPrimitive primitive;
     177
     178        public UserInfoAction() {
     179            super(true);
     180            putValue(NAME, tr("User info"));
     181            putValue(SHORT_DESCRIPTION, tr("Launch browser with information about the user"));
     182            putValue(SMALL_ICON, ImageProvider.get("about"));
     183        }
     184
     185        @Override
     186        protected String createInfoUrl(Object infoObject) {
     187            HistoryOsmPrimitive primitive = (HistoryOsmPrimitive) infoObject;
     188            return primitive.getUser() == null ? null : getBaseBrowseUrl() + "/user/" + primitive.getUser().getName();
     189        }
     190
     191        @Override
     192        public void actionPerformed(ActionEvent e) {
     193            if (!isEnabled())
     194                return;
     195            String url = createInfoUrl(primitive);
     196            OpenBrowser.displayUrl(url);
     197        }
     198
     199        public void prepare(HistoryOsmPrimitive primitive) {
     200            final User user = primitive.getUser();
     201            putValue(NAME, "<html>" + tr("Show user {0}", user == null ? "?" :
     202                    XmlWriter.encode(user.getName(), true) + " <font color=gray>(" + user.getId() + ")</font>") + "</html>");
     203            this.primitive = primitive;
     204        }
     205    }
     206
    172207    static class VersionTablePopupMenu extends JPopupMenu {
    173208
    174209        private ChangesetInfoAction changesetInfoAction;
     210        private UserInfoAction userInfoAction;
    175211
    176212        protected void build() {
    177213            changesetInfoAction = new ChangesetInfoAction();
    178214            add(changesetInfoAction);
     215            userInfoAction = new UserInfoAction();
     216            add(userInfoAction);
    179217        }
    180218        public VersionTablePopupMenu() {
     
    185223        public void prepare(HistoryOsmPrimitive primitive) {
    186224            changesetInfoAction.prepare(primitive);
     225            userInfoAction.prepare(primitive);
    187226            invalidate();
    188227        }
Note: See TracChangeset for help on using the changeset viewer.