Ignore:
Timestamp:
14.03.2010 12:38:09 (2 years ago)
Author:
Gubaer
Message:

fixed #4371: Changeset comment reverts to previous when switching options

File:
1 edited

Legend:

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

    r3110 r3133  
    2828import org.openstreetmap.josm.data.osm.ChangesetCache; 
    2929import org.openstreetmap.josm.gui.JMultilineLabel; 
     30import org.openstreetmap.josm.tools.CheckParameterUtil; 
    3031import org.openstreetmap.josm.tools.ImageProvider; 
    3132 
     
    4647 * </ul> 
    4748 */ 
    48 public class ChangesetManagementPanel extends JPanel implements ListDataListener { 
     49public class ChangesetManagementPanel extends JPanel implements ListDataListener{ 
    4950    public final static String SELECTED_CHANGESET_PROP = ChangesetManagementPanel.class.getName() + ".selectedChangeset"; 
    5051    public final static String CLOSE_CHANGESET_AFTER_UPLOAD = ChangesetManagementPanel.class.getName() + ".closeChangesetAfterUpload"; 
     
    5859    private JCheckBox cbCloseAfterUpload; 
    5960    private OpenChangesetComboBoxModel model; 
     61    private ChangesetCommentModel changesetCommentModel; 
    6062 
    6163    /** 
     
    159161    } 
    160162 
    161     public ChangesetManagementPanel() { 
     163    /** 
     164     * Creates a new panel 
     165     *  
     166     * @param changesetCommentModel the changeset comment model. Must not be null. 
     167     * @throws IllegalArgumentException thrown if {@code changesetCommentModel} is null 
     168     */ 
     169    public ChangesetManagementPanel(ChangesetCommentModel changesetCommentModel) { 
     170        CheckParameterUtil.ensureParameterNotNull(changesetCommentModel, "changesetCommentModel"); 
     171        this.changesetCommentModel = changesetCommentModel; 
    162172        build(); 
    163173        refreshGUI(); 
     
    174184    } 
    175185 
     186    /** 
     187     * Sets the changeset to be used in the next upload 
     188     *  
     189     * @param cs the changeset 
     190     */ 
    176191    public void setSelectedChangesetForNextUpload(Changeset cs) { 
    177192        int idx  = model.getIndexOf(cs); 
     
    204219    } 
    205220 
    206     /** 
    207      * Replies the default value for "created_by" 
    208      * 
    209      * @return the default value for "created_by" 
    210      */ 
    211     protected String getDefaultCreatedBy() { 
    212         Object ua = System.getProperties().get("http.agent"); 
    213         return(ua == null) ? "JOSM" : ua.toString(); 
    214     } 
    215  
    216221    /* ---------------------------------------------------------------------------- */ 
    217222    /* Interface ListDataListener                                                   */ 
     
    230235 
    231236    /** 
    232      * Listens to changes in the selected changeset and accordingly fires property 
     237     * Listens to changes in the selected changeset and fires property 
    233238     * change events. 
    234239     * 
     
    237242        public void itemStateChanged(ItemEvent e) { 
    238243            Changeset cs = (Changeset)cbOpenChangesets.getSelectedItem(); 
     244            if (cs == null) return; 
    239245            if (rbExisting.isSelected()) { 
     246                // create a clone of the selected changeset and make sure 
     247                // we keep the current changeset comment (see #4371) 
     248                cs = new Changeset(cs); 
     249                cs.put("comment", changesetCommentModel.getComment()); 
    240250                firePropertyChange(SELECTED_CHANGESET_PROP, null, cs); 
    241                 if (cs == null) { 
    242                     rbUseNew.setSelected(true); 
    243                 } 
    244251            } 
    245252        } 
     
    283290                } 
    284291                Changeset cs = (Changeset)cbOpenChangesets.getSelectedItem(); 
     292                if (cs == null) return; 
     293                // create a clone of the selected changeset and make sure 
     294                // we keep the current changeset comment (see #4371) 
     295                cs = new Changeset(cs); 
     296                cs.put("comment", changesetCommentModel.getComment()); 
    285297                firePropertyChange(SELECTED_CHANGESET_PROP, null, cs); 
    286298            } 
Note: See TracChangeset for help on using the changeset viewer.