Ignore:
Timestamp:
2009-07-19T17:38:55+02:00 (15 years ago)
Author:
jttt
Message:

PleaseWait refactoring. Progress is now reported using ProgressMonitor interface, that is available through PleaseWaitRunnable.

File:
1 edited

Legend:

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

    r1810 r1811  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
    6 import java.awt.EventQueue;
    76import java.awt.event.ActionEvent;
    87import java.awt.event.KeyEvent;
     
    2322import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    2423import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
     24import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    2525import org.openstreetmap.josm.io.OsmApi;
    2626import org.openstreetmap.josm.io.OsmServerBackreferenceReader;
     
    3232 * This action loads the set of primitives referring to the current selection from the OSM
    3333 * server.
    34  * 
     34 *
    3535 *
    3636 */
     
    4949     * Downloads the primitives referring to the primitives in <code>primitives</code>.
    5050     * Does nothing if primitives is null or empty.
    51      * 
     51     *
    5252     * @param primitives the collection of primitives.
    5353     */
     
    6868    /**
    6969     * The asynchronous task for downloading referring primitives
    70      * 
     70     *
    7171     */
    7272    class DownloadReferrersTask extends PleaseWaitRunnable {
     
    7676        private Collection<OsmPrimitive> primitives;
    7777        private DataSet parents;
    78 
    79         protected void setIndeterminateEnabled(final boolean enabled) {
    80             EventQueue.invokeLater(
    81                     new Runnable() {
    82                         public void run() {
    83                             Main.pleaseWaitDlg.setIndeterminate(enabled);
    84                         }
    85                     }
    86             );
    87         }
    8878
    8979        public DownloadReferrersTask(Collection<OsmPrimitive> primitives) {
     
    140130                            JOptionPane.WARNING_MESSAGE
    141131            );
    142             JDialog dialog = op.createDialog(Main.pleaseWaitDlg, tr("Conflicts in data"));
     132            JDialog dialog = op.createDialog(null, tr("Conflicts in data"));
    143133            dialog.setAlwaysOnTop(true);
    144134            dialog.setModal(true);
     
    147137        }
    148138
    149         protected void downloadParents(OsmPrimitive primitive) throws OsmTransferException{
     139        protected void downloadParents(OsmPrimitive primitive, ProgressMonitor progressMonitor) throws OsmTransferException{
    150140            OsmServerBackreferenceReader reader = new OsmServerBackreferenceReader(primitive);
    151             DataSet ds = reader.parseOsm();
     141            DataSet ds = reader.parseOsm(progressMonitor);
    152142            MergeVisitor visitor = new MergeVisitor(parents, ds);
    153143            visitor.merge();
     
    156146        @Override
    157147        protected void realRun() throws SAXException, IOException, OsmTransferException {
    158             setIndeterminateEnabled(true);
    159148            try {
     149                progressMonitor.setTicksCount(primitives.size());
    160150                int i=1;
    161151                for (OsmPrimitive primitive: primitives) {
    162152                    if (cancelled)
    163153                        return;
    164                     String title = tr("({0}/{1}) Loading parents of primitive {2}", i+1,primitives.size(), primitive.getName());
    165                     Main.pleaseWaitDlg.setTitle(title);
    166                     downloadParents(primitive);
     154                    progressMonitor.subTask(tr("({0}/{1}) Loading parents of primitive {2}", i+1,primitives.size(), primitive.getName()));
     155                    downloadParents(primitive, progressMonitor.createSubTaskMonitor(1, false));
    167156                    i++;
    168157                }
     
    171160                    return;
    172161                lastException = e;
    173             } finally {
    174                 setIndeterminateEnabled(false);
    175162            }
    176163        }
     
    179166    /**
    180167     * Refreshes the enabled state
    181      * 
     168     *
    182169     */
    183170    protected void refreshEnabled() {
Note: See TracChangeset for help on using the changeset viewer.