Ignore:
Timestamp:
2009-11-19T13:30:09+01:00 (17 years ago)
Author:
Gubaer
Message:

fixed #3937: Closed changeset (due to timeout) remains in the upload dialog

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

Legend:

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

    r2413 r2480  
    1414
    1515import org.openstreetmap.josm.Main;
     16import org.openstreetmap.josm.io.ChangesetClosedException;
    1617import org.openstreetmap.josm.io.OsmApiException;
    1718import org.openstreetmap.josm.io.OsmApiInitializationException;
    18 import org.openstreetmap.josm.io.OsmChangesetCloseException;
    1919import org.openstreetmap.josm.io.OsmTransferException;
    2020import org.openstreetmap.josm.tools.BugReportExceptionHandler;
     
    4949
    5050    /**
    51      * handles an exception caught during OSM API initialization
     51     * handles a ChangesetClosedException
    5252     *
    5353     * @param e the exception
    5454     */
    55     public static void explainOsmChangesetCloseException(OsmChangesetCloseException e) {
    56         HelpAwareOptionPane.showOptionDialog(
    57                 Main.parent,
    58                 ExceptionUtil.explainOsmChangesetCloseException(e),
     55    public static void explainChangesetClosedException(ChangesetClosedException e) {
     56        HelpAwareOptionPane.showOptionDialog(
     57                Main.parent,
     58                ExceptionUtil.explainChangesetClosedException(e),
    5959                tr("Error"),
    6060                JOptionPane.ERROR_MESSAGE,
    61                 ht("/ErrorMessages#OsmChangesetCloseException")
     61                ht("/ErrorMessages#ChangesetClosedException")
    6262        );
    6363    }
     
    294294            return;
    295295        }
    296         if (e instanceof OsmChangesetCloseException) {
    297             explainOsmChangesetCloseException((OsmChangesetCloseException) e);
     296
     297        if (e instanceof ChangesetClosedException) {
     298            explainChangesetClosedException((ChangesetClosedException)e);
    298299            return;
    299300        }
  • trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java

    r2447 r2480  
    334334    public void setOrUpdateChangeset(Changeset cs) {
    335335        pnlChangesetSelection.setOrUpdateChangeset(cs);
     336    }
     337
     338    /**
     339     * Removes <code>cs</code> from the list of open changesets in the upload
     340     * dialog
     341     *
     342     * @param cs the changeset. Ignored if null.
     343     */
     344    public void removeChangeset(Changeset cs) {
     345        if (cs == null) return;
     346        pnlChangesetSelection.removeChangeset(cs);
    336347    }
    337348
     
    842853        public void setOrUpdateChangeset(Changeset cs) {
    843854            if (cs == null) {
    844                 tagEditorPanel.getModel().clear();
    845                 tagEditorPanel.getModel().add("created_by", getDefaultCreatedBy());
     855                cs = new Changeset();
     856                cs.put("created_by", getDefaultCreatedBy());
     857                tagEditorPanel.getModel().initFromPrimitive(cs);
    846858                tagEditorPanel.getModel().appendNewTag();
     859                prepareDialogForNextUpload(cs);
    847860            } else if (cs.getId() == 0) {
    848861                if (cs.get("created_by") == null) {
     
    851864                tagEditorPanel.getModel().initFromPrimitive(cs);
    852865                tagEditorPanel.getModel().appendNewTag();
     866                prepareDialogForNextUpload(cs);
    853867            } else if (cs.getId() > 0 && cs.isOpen()){
    854868                if (cs.get("created_by") == null) {
     
    859873                cs = model.getChangesetById(cs.getId());
    860874                cbOpenChangesets.setSelectedItem(cs);
     875                prepareDialogForNextUpload(cs);
    861876            } else if (cs.getId() > 0 && !cs.isOpen()){
     877                removeChangeset(cs);
     878            }
     879        }
     880
     881        /**
     882         * Remove a changeset from the list of open changeset
     883         *
     884         * @param cs the changeset to be removed. Ignored if null.
     885         */
     886        public void removeChangeset(Changeset cs) {
     887            if (cs ==  null) return;
     888            Changeset selected = (Changeset)model.getSelectedItem();
     889            model.removeChangeset(cs);
     890            if (model.getSize() == 0 || selected == cs) {
     891                // no more changesets or removed changeset is the currently selected
     892                // changeset? Switch to using a new changeset.
     893                //
     894                rbUseNew.setSelected(true);
     895                model.setSelectedItem(null);
     896                southTabbedPane.setTitleAt(1, tr("Tags of new changeset"));
     897
     898                cs = new Changeset();
    862899                if (cs.get("created_by") == null) {
    863900                    cs.put("created_by", getDefaultCreatedBy());
     901                    cs.put("comment", getUploadComment());
    864902                }
    865903                tagEditorPanel.getModel().initFromPrimitive(cs);
    866                 model.removeChangeset(cs);
    867                 if (model.getSize() == 0) {
    868                     rbUseNew.setSelected(true);
    869                     model.setSelectedItem(null);
    870                     southTabbedPane.setTitleAt(1, tr("Tags of new changeset"));
    871                 }
    872904            }
    873905            prepareDialogForNextUpload(cs);
Note: See TracChangeset for help on using the changeset viewer.