Changeset 9657 in josm for trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/ApplyAction.java
- Timestamp:
- 2016-01-27T22:18:36+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/ApplyAction.java
r9496 r9657 4 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 5 6 import java.awt.Component;7 6 import java.awt.event.ActionEvent; 8 7 8 import java.beans.PropertyChangeEvent; 9 import java.beans.PropertyChangeListener; 10 11 import javax.swing.event.TableModelEvent; 12 import javax.swing.event.TableModelListener; 13 14 import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor; 9 15 import org.openstreetmap.josm.gui.dialogs.relation.MemberTable; 10 16 import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel; … … 18 24 * @since 9496 19 25 */ 20 public class ApplyAction extends SavingAction {26 public class ApplyAction extends SavingAction implements PropertyChangeListener, TableModelListener { 21 27 22 28 /** … … 34 40 putValue(SMALL_ICON, ImageProvider.get("save")); 35 41 putValue(NAME, tr("Apply")); 36 setEnabled(true); 42 updateEnabledState(); 43 memberTableModel.addTableModelListener(this); 44 tagModel.addPropertyChangeListener(this); 37 45 } 38 46 39 47 @Override 40 48 public void actionPerformed(ActionEvent e) { 41 if (editor.getRelation() == null) { 42 applyNewRelation(tagModel); 43 } else if (!memberTableModel.hasSameMembersAs(editor.getRelationSnapshot()) || tagModel.isDirty()) { 44 if (editor.isDirtyRelation()) { 45 if (confirmClosingBecauseOfDirtyState()) { 46 if (layer.getConflicts().hasConflictForMy(editor.getRelation())) { 47 warnDoubleConflict(); 48 return; 49 } 50 applyExistingConflictingRelation(tagModel); 51 if (editor instanceof Component) { 52 ((Component) editor).setVisible(false); 53 } 54 } 55 } else { 56 applyExistingNonConflictingRelation(tagModel); 57 } 49 if (applyChanges()) { 50 ((GenericRelationEditor) editor).reloadDataFromRelation(); 58 51 } 59 52 } 53 54 @Override 55 protected void updateEnabledState() { 56 setEnabled(isEditorDirty()); 57 } 58 59 @Override 60 public void propertyChange(PropertyChangeEvent evt) { 61 updateEnabledState(); 62 } 63 64 @Override 65 public void tableChanged(TableModelEvent e) { 66 updateEnabledState(); 67 } 60 68 }
Note:
See TracChangeset
for help on using the changeset viewer.