Changeset 6401 in josm for trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
- Timestamp:
- 2013-11-22T22:19:33+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
r6309 r6401 22 22 23 23 /** checkbox for selecting whether an atomic upload is to be used */ 24 private TagEditorPanel pnlTagEditor;24 private final TagEditorPanel pnlTagEditor = new TagEditorPanel(null); 25 25 /** the model for the changeset comment */ 26 private ChangesetCommentModel changesetCommentModel; 26 private final ChangesetCommentModel changesetCommentModel; 27 private final ChangesetCommentModel changesetSourceModel; 27 28 /** tags that applied to uploaded changesets by default*/ 28 private Map<String, String> defaultTags = new HashMap<String, String>();29 private final Map<String, String> defaultTags = new HashMap<String, String>(); 29 30 30 31 protected void build() { 31 32 setLayout(new BorderLayout()); 32 add(pnlTagEditor = new TagEditorPanel(null), BorderLayout.CENTER);33 add(pnlTagEditor, BorderLayout.CENTER); 33 34 } 34 35 … … 37 38 * 38 39 * @param changesetCommentModel the changeset comment model. Must not be null. 40 * @param changesetSourceModel the changeset source model. Must not be null. 39 41 * @throws IllegalArgumentException thrown if {@code changesetCommentModel} is null 40 42 */ 41 public TagSettingsPanel(ChangesetCommentModel changesetCommentModel ) throws IllegalArgumentException{43 public TagSettingsPanel(ChangesetCommentModel changesetCommentModel, ChangesetCommentModel changesetSourceModel) throws IllegalArgumentException{ 42 44 CheckParameterUtil.ensureParameterNotNull(changesetCommentModel, "changesetCommentModel"); 45 CheckParameterUtil.ensureParameterNotNull(changesetSourceModel, "changesetSourceModel"); 43 46 this.changesetCommentModel = changesetCommentModel; 44 this.changesetCommentModel.addObserver(new ChangesetCommentObserver()); 47 this.changesetSourceModel = changesetSourceModel; 48 this.changesetCommentModel.addObserver(new ChangesetCommentObserver("comment")); 49 this.changesetSourceModel.addObserver(new ChangesetCommentObserver("source")); 45 50 build(); 46 51 pnlTagEditor.getModel().addTableModelListener(this); 47 52 } 48 53 49 protected void set UploadComment(String comment) {50 if ( comment== null) {51 comment= "";54 protected void setProperty(String key, String value) { 55 if (value == null) { 56 value = ""; 52 57 } 53 comment = comment.trim();54 String commentInTag = get UploadComment();55 if ( comment.equals(commentInTag))58 value = value.trim(); 59 String commentInTag = getTagEditorValue(key); 60 if (value.equals(commentInTag)) 56 61 return; 57 62 58 if ( comment.isEmpty()) {59 pnlTagEditor.getModel().delete( "comment");63 if (value.isEmpty()) { 64 pnlTagEditor.getModel().delete(key); 60 65 return; 61 66 } 62 TagModel tag = pnlTagEditor.getModel().get( "comment");67 TagModel tag = pnlTagEditor.getModel().get(key); 63 68 if (tag == null) { 64 tag = new TagModel( "comment", comment);69 tag = new TagModel(key, value); 65 70 pnlTagEditor.getModel().add(tag); 66 71 } else { 67 pnlTagEditor.getModel().updateTagValue(tag, comment);72 pnlTagEditor.getModel().updateTagValue(tag, value); 68 73 } 69 74 } 70 75 71 protected String get UploadComment() {72 TagModel tag = pnlTagEditor.getModel().get( "comment");76 protected String getTagEditorValue(String key) { 77 TagModel tag = pnlTagEditor.getModel().get(key); 73 78 if (tag == null) return null; 74 79 return tag.getValue(); … … 76 81 77 82 public void initFromChangeset(Changeset cs) { 78 String currentComment = get UploadComment();83 String currentComment = getTagEditorValue("comment"); 79 84 Map<String,String> tags = getDefaultTags(); 80 85 if (cs != null) { … … 83 88 if (tags.get("comment") == null) { 84 89 tags.put("comment", currentComment); 90 } 91 if (tags.get("source") == null) { 92 tags.put("source", ""); 85 93 } 86 94 String agent = Version.getInstance().getAgentString(false); … … 123 131 @Override 124 132 public void tableChanged(TableModelEvent e) { 125 String uploadComment = getUploadComment();126 changeset CommentModel.setComment(uploadComment);133 changesetCommentModel.setComment(getTagEditorValue("comment")); 134 changesetSourceModel.setComment(getTagEditorValue("source")); 127 135 } 128 136 … … 133 141 */ 134 142 class ChangesetCommentObserver implements Observer { 143 144 private final String key; 145 146 ChangesetCommentObserver(String key) { 147 this.key = key; 148 } 149 135 150 @Override 136 151 public void update(Observable o, Object arg) { 137 152 if (!(o instanceof ChangesetCommentModel)) return; 138 153 String newValue = (String)arg; 139 String oldValue = get UploadComment();154 String oldValue = getTagEditorValue(key); 140 155 if (oldValue == null) { 141 156 oldValue = ""; 142 157 } 143 158 if (!oldValue.equals(newValue)) { 144 set UploadComment((String)arg);159 setProperty(key, (String) arg); 145 160 } 146 161 }
Note:
See TracChangeset
for help on using the changeset viewer.