1 Commits

11 changed files with 53 additions and 7 deletions

View File

@@ -1,3 +1,8 @@
import controller.PhotoAlbumController;
import model.PhotoAlbumModel;
import view.PhotoAlbumView;
/** /**
* Photo Album Manager application entry point. * Photo Album Manager application entry point.
* <p> * <p>

View File

@@ -1,3 +1,12 @@
package controller;
import model.Photo;
import model.PhotoAlbumModel;
import strategy.SortByDate;
import strategy.SortByName;
import strategy.SortBySize;
import view.PhotoAlbumView;
import javax.swing.*; import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File; import java.io.File;

View File

@@ -1,3 +1,7 @@
package iterator;
import model.Photo;
import java.util.Iterator; import java.util.Iterator;
/** /**

View File

@@ -1,3 +1,7 @@
package iterator;
import model.Photo;
import java.util.List; import java.util.List;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;

View File

@@ -1,3 +1,5 @@
package model;
import java.util.Date; import java.util.Date;
/** /**

View File

@@ -1,3 +1,9 @@
package model;
import strategy.SortingStrategy;
import iterator.AlbumIterator;
import iterator.PhotoIterator;
import java.util.*; import java.util.*;
/** /**
@@ -53,18 +59,14 @@ public class PhotoAlbumModel {
} }
/** /**
* Deletes a photo from the album by name. * Deletes a photo from the album by name (if it exists).
* If the deleted photo is the current photo or the album is empty, * Resets the iterator and notifies the listeners.
* the iterator is reset.
* *
* @param name the name of the photo to delete * @param name the name of the photo to delete
*/ */
public void deletePhoto(String name) { public void deletePhoto(String name) {
Photo currentPhoto = iterator.current();
photos.removeIf(photo -> photo.name().equals(name)); photos.removeIf(photo -> photo.name().equals(name));
if (photos.isEmpty() || (currentPhoto != null && currentPhoto.name().equals(name))) {
iterator = new PhotoIterator(photos); iterator = new PhotoIterator(photos);
}
notifyListeners(); notifyListeners();
} }

View File

@@ -1,3 +1,7 @@
package strategy;
import model.Photo;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;

View File

@@ -1,3 +1,7 @@
package strategy;
import model.Photo;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;

View File

@@ -1,3 +1,7 @@
package strategy;
import model.Photo;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;

View File

@@ -1,3 +1,5 @@
package strategy;
import java.util.List; import java.util.List;
/** /**

View File

@@ -1,3 +1,9 @@
package view;
import controller.PhotoAlbumController;
import model.Photo;
import model.PhotoAlbumModel;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.util.HashMap; import java.util.HashMap;