Ignore:
Timestamp:
2019-09-02T22:35:07+02:00 (7 years ago)
Author:
Don-vip
Message:

see #11905 - Option to move multiple images at once (core part, patch by francois2, modified)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java

    r15219 r15333  
    1414import java.text.DateFormat;
    1515import java.text.SimpleDateFormat;
     16import java.util.Collections;
     17import java.util.List;
    1618import java.util.Optional;
    1719
     
    377379     * @param data geo image data
    378380     * @param entry image entry
    379      */
     381     * @deprecated Use {@link #displayImage}
     382     */
     383    @Deprecated
    380384    public static void showImage(ImageData data, ImageEntry entry) {
    381385        getInstance().displayImage(data, entry);
     
    417421
    418422    /**
    419      * Displays image for the given layer.
     423     * Displays a single image for the given layer.
    420424     * @param data the image data
    421425     * @param entry image entry
     426     * @see #displayImages
    422427     */
    423428    public void displayImage(ImageData data, ImageEntry entry) {
     429        displayImages(data, Collections.singletonList(entry));
     430    }
     431
     432    /**
     433     * Displays images for the given layer.
     434     * @param data the image data
     435     * @param entries image entries
     436     * @since 15333
     437     */
     438    public void displayImages(ImageData data, List<ImageEntry> entries) {
    424439        boolean imageChanged;
     440        ImageEntry entry = entries != null && entries.size() == 1 ? entries.get(0) : null;
    425441
    426442        synchronized (this) {
     
    491507            btnDeleteFromDisk.setEnabled(false);
    492508            btnCopyPath.setEnabled(false);
     509            if (entries != null && entries.size() > 1) {
     510                imgDisplay.setEmptyText(tr("Multiple images selected"));
     511                btnFirst.setEnabled(!isFirstImageSelected(data));
     512                btnLast.setEnabled(!isLastImageSelected(data));
     513            }
     514            imgDisplay.setImage(null);
     515            imgDisplay.setOsdText("");
    493516            return;
    494517        }
     
    504527    }
    505528
     529    private static boolean isLastImageSelected(ImageData data) {
     530        return data.isImageSelected(data.getImages().get(data.getImages().size() - 1));
     531    }
     532
     533    private static boolean isFirstImageSelected(ImageData data) {
     534        return data.isImageSelected(data.getImages().get(0));
     535    }
     536
    506537    /**
    507538     * When an image is closed, really close it and do not pop
     
    562593            ImageData removedData = ((GeoImageLayer) e.getRemovedLayer()).getImageData();
    563594            if (removedData == currentData) {
    564                 displayImage(null, null);
     595                displayImages(null, null);
    565596            }
    566597            removedData.removeImageDataUpdateListener(this);
     
    592623    @Override
    593624    public void selectedImageChanged(ImageData data) {
    594         showImage(data, data.getSelectedImage());
     625        displayImages(data, data.getSelectedImages());
    595626    }
    596627
    597628    @Override
    598629    public void imageDataUpdated(ImageData data) {
    599         showImage(data, data.getSelectedImage());
     630        displayImages(data, data.getSelectedImages());
    600631    }
    601632}
Note: See TracChangeset for help on using the changeset viewer.