From: David ‘Bombe’ Roden Date: Fri, 23 Sep 2011 09:01:31 +0000 (+0200) Subject: Add methods to move an image up and down. X-Git-Tag: 0.7^2~2^2~29 X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=b50dc71166ed2e9e7274fdfe545b21db614f820d;p=Sone.git Add methods to move an image up and down. --- diff --git a/src/main/java/net/pterodactylus/sone/data/Album.java b/src/main/java/net/pterodactylus/sone/data/Album.java index 7d10e72..ab5822b 100644 --- a/src/main/java/net/pterodactylus/sone/data/Album.java +++ b/src/main/java/net/pterodactylus/sone/data/Album.java @@ -208,6 +208,40 @@ public class Album implements Fingerprintable { } /** + * Moves the given image up in this album’s images. If the image is already + * the first image, nothing happens. + * + * @param image + * The image to move up + */ + public void moveImageUp(Image image) { + Validation.begin().isNotNull("Image", image).check().isEqual("Image Album", image.getAlbum(), this).isEqual("Album Owner", image.getAlbum().getSone(), sone).check(); + int oldIndex = imageIds.indexOf(image.getId()); + if (oldIndex <= 0) { + return; + } + imageIds.remove(image.getId()); + imageIds.add(oldIndex - 1, image.getId()); + } + + /** + * Move the given image down in this album’s images. If the image is already + * the last image, nothing happens. + * + * @param image + * The image to move down + */ + public void moveImageDown(Image image) { + Validation.begin().isNotNull("Image", image).check().isEqual("Image Album", image.getAlbum(), this).isEqual("Album Owner", image.getAlbum().getSone(), sone).check(); + int oldIndex = imageIds.indexOf(image.getId()); + if ((oldIndex == -1) || (oldIndex >= (imageIds.size() - 1))) { + return; + } + imageIds.remove(image.getId()); + imageIds.add(oldIndex + 1, image.getId()); + } + + /** * Returns the album image of this album, or {@code null} if no album image * has been set. *