Ignore:
Timestamp:
2009-12-11T23:07:59+01:00 (14 years ago)
Author:
Gubaer
Message:

new: global in-memory cache for downloaded changesets
new: toggle dialog for changesets
new: downloading of changesets (currently without changeset content, will follow later)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java

    r2512 r2613  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.io;
     3
     4import static org.openstreetmap.josm.tools.I18n.tr;
    35
    46import java.awt.BorderLayout;
     
    68import java.awt.FlowLayout;
    79import java.awt.event.ActionEvent;
     10import java.awt.event.KeyEvent;
     11import java.awt.event.WindowAdapter;
     12import java.awt.event.WindowEvent;
    813import java.util.ArrayList;
    914import java.util.Collection;
     
    1217import javax.swing.BorderFactory;
    1318import javax.swing.DefaultListModel;
     19import javax.swing.JComponent;
    1420import javax.swing.JDialog;
    1521import javax.swing.JLabel;
     
    1824import javax.swing.JPanel;
    1925import javax.swing.JScrollPane;
     26import javax.swing.KeyStroke;
    2027import javax.swing.event.ListSelectionEvent;
    2128import javax.swing.event.ListSelectionListener;
     
    2633import org.openstreetmap.josm.tools.ImageProvider;
    2734import org.openstreetmap.josm.tools.WindowGeometry;
    28 
    29 import static org.openstreetmap.josm.tools.I18n.tr;
    3035
    3136/**
     
    4146    /** the list model */
    4247    private DefaultListModel model;
     48
     49    private SideButton btnCloseChangesets;
    4350
    4451    protected JPanel buildTopPanel() {
     
    6673        CloseAction closeAction = new CloseAction();
    6774        lstOpenChangesets.addListSelectionListener(closeAction);
    68         pnl.add(new SideButton(closeAction));
    69         pnl.add(new SideButton(new CancelAction()));
     75        pnl.add(btnCloseChangesets = new SideButton(closeAction));
     76        btnCloseChangesets.setFocusable(true);
     77        btnCloseChangesets.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
     78        btnCloseChangesets.getActionMap().put("enter",closeAction);
     79
     80        // -- cancel action
     81        SideButton btn;
     82        pnl.add(btn = new SideButton(new CancelAction()));
     83        btn.setFocusable(true);
    7084        return pnl;
    7185    }
     
    7791        getContentPane().add(buildCenterPanel(), BorderLayout.CENTER);
    7892        getContentPane().add(buildSouthPanel(), BorderLayout.SOUTH);
     93
     94        getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0), "escape");
     95        getRootPane().getActionMap().put("escape", new CancelAction());
     96        addWindowListener(new WindowEventHandler());
    7997    }
    8098
     
    127145        }
    128146
    129         public void actionPerformed(ActionEvent e) {
     147        public void cancel() {
    130148            setCanceled(true);
    131149            setVisible(false);
    132150        }
     151
     152        public void actionPerformed(ActionEvent e) {
     153            cancel();
     154        }
     155    }
     156
     157    class WindowEventHandler extends WindowAdapter {
     158
     159        @Override
     160        public void windowActivated(WindowEvent arg0) {
     161            btnCloseChangesets.requestFocusInWindow();
     162        }
     163
     164        @Override
     165        public void windowClosing(WindowEvent arg0) {
     166            new CancelAction().cancel();
     167        }
     168
    133169    }
    134170
     
    162198        for (Changeset cs: changesets) {
    163199            model.addElement(cs);
     200        }
     201        if (!changesets.isEmpty()) {
     202            lstOpenChangesets.getSelectionModel().setSelectionInterval(0, changesets.size()-1);
    164203        }
    165204    }
Note: See TracChangeset for help on using the changeset viewer.