Changeset 9493 in josm


Ignore:
Timestamp:
2016-01-16T21:35:52+01:00 (8 years ago)
Author:
Don-vip
Message:

reduce code duplication

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

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java

    r9075 r9493  
    5959 *
    6060 */
    61 public class ChangesetContentPanel extends JPanel implements PropertyChangeListener {
     61public class ChangesetContentPanel extends JPanel implements PropertyChangeListener, ChangesetAware {
    6262
    6363    private ChangesetContentTableModel model;
     
    7474        DefaultListSelectionModel selectionModel = new DefaultListSelectionModel();
    7575        model = new ChangesetContentTableModel(selectionModel);
    76         actDownloadContentAction = new DownloadChangesetContentAction();
    77         actDownloadContentAction.initProperties(currentChangeset);
     76        actDownloadContentAction = new DownloadChangesetContentAction(this);
     77        actDownloadContentAction.initProperties();
    7878        actShowHistory = new ShowHistoryAction();
    7979        model.getSelectionModel().addListSelectionListener(actShowHistory);
     
    158158            model.populate(cs.getContent());
    159159        }
    160         actDownloadContentAction.initProperties(cs);
     160        actDownloadContentAction.initProperties();
    161161        pnlHeader.setChangeset(cs);
    162162    }
     
    185185                title, JOptionPane.WARNING_MESSAGE, helpTopic
    186186        );
    187     }
    188 
    189     /**
    190      * Downloads/Updates the content of the changeset
    191      *
    192      */
    193     class DownloadChangesetContentAction extends AbstractAction {
    194         DownloadChangesetContentAction() {
    195             putValue(NAME, tr("Download content"));
    196             putValue(SMALL_ICON, ChangesetCacheManager.DOWNLOAD_CONTENT_ICON);
    197             putValue(SHORT_DESCRIPTION, tr("Download the changeset content from the OSM server"));
    198         }
    199 
    200         @Override
    201         public void actionPerformed(ActionEvent evt) {
    202             if (currentChangeset == null) return;
    203             ChangesetContentDownloadTask task = new ChangesetContentDownloadTask(ChangesetContentPanel.this, currentChangeset.getId());
    204             ChangesetCacheManager.getInstance().runDownloadTask(task);
    205         }
    206 
    207         public void initProperties(Changeset cs) {
    208             if (cs == null) {
    209                 setEnabled(false);
    210                 return;
    211             } else {
    212                 setEnabled(true);
    213             }
    214             if (cs.getContent() == null) {
    215                 putValue(NAME, tr("Download content"));
    216                 putValue(SMALL_ICON, ChangesetCacheManager.DOWNLOAD_CONTENT_ICON);
    217                 putValue(SHORT_DESCRIPTION, tr("Download the changeset content from the OSM server"));
    218             } else {
    219                 putValue(NAME, tr("Update content"));
    220                 putValue(SMALL_ICON, ChangesetCacheManager.UPDATE_CONTENT_ICON);
    221                 putValue(SHORT_DESCRIPTION, tr("Update the changeset content from the OSM server"));
    222             }
    223         }
    224187    }
    225188
     
    457420        }
    458421    }
     422
     423    @Override
     424    public Changeset getCurrentChangeset() {
     425        return currentChangeset;
     426    }
    459427}
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java

    r9059 r9493  
    4848 *
    4949 */
    50 public class ChangesetDetailPanel extends JPanel implements PropertyChangeListener {
     50public class ChangesetDetailPanel extends JPanel implements PropertyChangeListener, ChangesetAware {
    5151
    5252    private final JosmTextField tfID        = new JosmTextField(10);
     
    5757    private final JosmTextField tfClosedOn  = new JosmTextField(20);
    5858
    59     private final DownloadChangesetContentAction actDownloadChangesetContent = new DownloadChangesetContentAction();
     59    private final DownloadChangesetContentAction actDownloadChangesetContent = new DownloadChangesetContentAction(this);
    6060    private final UpdateChangesetAction          actUpdateChangesets         = new UpdateChangesetAction();
    6161    private final RemoveFromCacheAction          actRemoveFromCache          = new RemoveFromCacheAction();
     
    6363    private final ZoomInCurrentLayerAction       actZoomInCurrentLayerAction = new ZoomInCurrentLayerAction();
    6464
    65     private transient Changeset current;
     65    private transient Changeset currentChangeset;
    6666
    6767    protected JPanel buildActionButtonPanel() {
     
    7373        // -- remove from cache action
    7474        tb.add(actRemoveFromCache);
    75         actRemoveFromCache.initProperties(current);
     75        actRemoveFromCache.initProperties(currentChangeset);
    7676
    7777        // -- changeset update
    7878        tb.add(actUpdateChangesets);
    79         actUpdateChangesets.initProperties(current);
     79        actUpdateChangesets.initProperties(currentChangeset);
    8080
    8181        // -- changeset content download
    8282        tb.add(actDownloadChangesetContent);
    83         actDownloadChangesetContent.initProperties(current);
     83        actDownloadChangesetContent.initProperties();
    8484
    8585        tb.add(actSelectInCurrentLayer);
     
    240240
    241241    protected void setCurrentChangeset(Changeset cs) {
    242         current = cs;
     242        currentChangeset = cs;
    243243        if (cs == null) {
    244244            clearView();
     
    246246            updateView(cs);
    247247        }
    248         actDownloadChangesetContent.initProperties(current);
    249         actUpdateChangesets.initProperties(current);
    250         actRemoveFromCache.initProperties(current);
     248        actDownloadChangesetContent.initProperties();
     249        actUpdateChangesets.initProperties(currentChangeset);
     250        actRemoveFromCache.initProperties(currentChangeset);
    251251        actSelectInCurrentLayer.updateEnabledState();
    252252        actZoomInCurrentLayerAction.updateEnabledState();
     
    275275        @Override
    276276        public void actionPerformed(ActionEvent evt) {
    277             if (current == null)
    278                 return;
    279             ChangesetCache.getInstance().remove(current);
     277            if (currentChangeset == null)
     278                return;
     279            ChangesetCache.getInstance().remove(currentChangeset);
    280280        }
    281281
    282282        public void initProperties(Changeset cs) {
    283283            setEnabled(cs != null);
    284         }
    285     }
    286 
    287     /**
    288      * Removes the selected changesets from the local changeset cache
    289      *
    290      */
    291     class DownloadChangesetContentAction extends AbstractAction {
    292         DownloadChangesetContentAction() {
    293             putValue(NAME, tr("Download content"));
    294             putValue(SMALL_ICON, ChangesetCacheManager.DOWNLOAD_CONTENT_ICON);
    295             putValue(SHORT_DESCRIPTION, tr("Download the changeset content from the OSM server"));
    296         }
    297 
    298         @Override
    299         public void actionPerformed(ActionEvent evt) {
    300             if (current == null) return;
    301             ChangesetContentDownloadTask task = new ChangesetContentDownloadTask(ChangesetDetailPanel.this, current.getId());
    302             ChangesetCacheManager.getInstance().runDownloadTask(task);
    303         }
    304 
    305         public void initProperties(Changeset cs) {
    306             if (cs == null) {
    307                 setEnabled(false);
    308                 return;
    309             } else {
    310                 setEnabled(true);
    311             }
    312             if (cs.getContent() == null) {
    313                 putValue(NAME, tr("Download content"));
    314                 putValue(SMALL_ICON, ChangesetCacheManager.DOWNLOAD_CONTENT_ICON);
    315                 putValue(SHORT_DESCRIPTION, tr("Download the changeset content from the OSM server"));
    316             } else {
    317                 putValue(NAME, tr("Update content"));
    318                 putValue(SMALL_ICON, ChangesetCacheManager.UPDATE_CONTENT_ICON);
    319                 putValue(SHORT_DESCRIPTION, tr("Update the changeset content from the OSM server"));
    320             }
    321284        }
    322285    }
     
    335298        @Override
    336299        public void actionPerformed(ActionEvent evt) {
    337             if (current == null) return;
     300            if (currentChangeset == null) return;
    338301            Main.worker.submit(
    339302                    new ChangesetHeaderDownloadTask(
    340303                            ChangesetDetailPanel.this,
    341                             Collections.singleton(current.getId())
     304                            Collections.singleton(currentChangeset.getId())
    342305                    )
    343306            );
     
    368331                    tr("<html>None of the objects in the content of changeset {0} is available in the current<br>"
    369332                            + "edit layer ''{1}''.</html>",
    370                             current.getId(),
     333                            currentChangeset.getId(),
    371334                            Main.main.getEditLayer().getName()
    372335                    ),
     
    385348            Set<OsmPrimitive> target = new HashSet<>();
    386349            for (OsmPrimitive p: layer.data.allPrimitives()) {
    387                 if (p.isUsable() && p.getChangesetId() == current.getId()) {
     350                if (p.isUsable() && p.getChangesetId() == currentChangeset.getId()) {
    388351                    target.add(p);
    389352                }
     
    401364                return;
    402365            }
    403             setEnabled(current != null);
     366            setEnabled(currentChangeset != null);
    404367        }
    405368
     
    429392                    tr("<html>None of the objects in the content of changeset {0} is available in the current<br>"
    430393                            + "edit layer ''{1}''.</html>",
    431                             current.getId(),
     394                            currentChangeset.getId(),
    432395                            Main.main.getEditLayer().getName()
    433396                    ),
     
    446409            Set<OsmPrimitive> target = new HashSet<>();
    447410            for (OsmPrimitive p: layer.data.allPrimitives()) {
    448                 if (p.isUsable() && p.getChangesetId() == current.getId()) {
     411                if (p.isUsable() && p.getChangesetId() == currentChangeset.getId()) {
    449412                    target.add(p);
    450413                }
     
    463426                return;
    464427            }
    465             setEnabled(current != null);
     428            setEnabled(currentChangeset != null);
    466429        }
    467430
     
    471434        }
    472435    }
     436
     437    @Override
     438    public Changeset getCurrentChangeset() {
     439        return currentChangeset;
     440    }
    473441}
Note: See TracChangeset for help on using the changeset viewer.