Ignore:
Timestamp:
2011-12-21T12:58:59+01:00 (12 years ago)
Author:
Don-vip
Message:

see #7159 - Layer merging performance

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

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r4623 r4684  
    7171import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
    7272import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
     73import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor;
     74import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    7375import org.openstreetmap.josm.tools.DateUtils;
    7476import org.openstreetmap.josm.tools.FilteredCollection;
     
    282284
    283285    @Override public void mergeFrom(final Layer from) {
    284         mergeFrom(((OsmDataLayer)from).data);
     286        final PleaseWaitProgressMonitor monitor = new PleaseWaitProgressMonitor(tr("Merging layers"));
     287        monitor.setCancelable(false);
     288        mergeFrom(((OsmDataLayer)from).data, monitor);
     289        monitor.close();
    285290    }
    286291
     
    292297     */
    293298    public void mergeFrom(final DataSet from) {
     299        mergeFrom(from, null);
     300    }
     301   
     302    /**
     303     * merges the primitives in dataset <code>from</code> into the dataset of
     304     * this layer
     305     *
     306     * @param from  the source data set
     307     */
     308    public void mergeFrom(final DataSet from, ProgressMonitor progressMonitor) {
    294309        final DataSetMerger visitor = new DataSetMerger(data,from);
    295310        try {
    296             visitor.merge();
     311            visitor.merge(progressMonitor);
    297312        } catch (DataIntegrityProblemException e) {
    298313            JOptionPane.showMessageDialog(
  • trunk/src/org/openstreetmap/josm/gui/progress/PleaseWaitProgressMonitor.java

    r3752 r4684  
    2626    private PleaseWaitDialog dialog;
    2727    private String windowTitle;
     28   
     29    private boolean cancelable;
    2830
    2931    public PleaseWaitProgressMonitor() {
     
    3941        super(new CancelHandler());
    4042        this.dialogParent = JOptionPane.getFrameForComponent(dialogParent);
     43        this.cancelable = true;
    4144    }
    4245
     
    5861    };
    5962
     63    public final boolean isCancelable() {
     64        return cancelable;
     65    }
     66
     67    public final void setCancelable(boolean cancelable) {
     68        this.cancelable = cancelable;
     69    }
     70
    6071    private void doInEDT(Runnable runnable) {
    6172        EventQueue.invokeLater(runnable);
     
    7687                    dialog.setTitle(windowTitle);
    7788                }
    78                 dialog.setCancelEnabled(true);
     89                dialog.setCancelEnabled(cancelable);
    7990                dialog.setCancelCallback(cancelListener);
    8091                dialog.setCustomText("");
Note: See TracChangeset for help on using the changeset viewer.