Add artist management to track.
[demoscenemusic.git] / src / main / java / net / pterodactylus / demoscenemusic / page / admin / EditTrackPage.java
index c8a9be2..05bf3d0 100644 (file)
 package net.pterodactylus.demoscenemusic.page.admin;
 
 import java.util.Collection;
+import java.util.List;
 
 import net.pterodactylus.demoscenemusic.core.Core;
+import net.pterodactylus.demoscenemusic.data.Artist;
 import net.pterodactylus.demoscenemusic.data.Party;
 import net.pterodactylus.demoscenemusic.data.Track;
 import net.pterodactylus.demoscenemusic.page.ServletRequest;
@@ -72,10 +74,14 @@ public class EditTrackPage extends AdminBasePage {
                        templateContext.set("track", track);
                        if (request.getMethod() == Method.POST) {
 
+                               String partyId = request.getServletRequest().getParameter("party");
+                               Party party = getCore().getDataManager().getPartyById(partyId);
+
+                               String artistId = request.getServletRequest().getParameter("artist");
+                               Artist artist = getCore().getDataManager().getArtistById(artistId);
+
                                /* check if a party should be removed. */
                                if ("true".equals(request.getServletRequest().getParameter("delete-party"))) {
-                                       String partyId = request.getServletRequest().getParameter("party");
-                                       Party party = getCore().getDataManager().getPartyById(partyId);
                                        Collection<Party> parties = track.getParties();
                                        parties.remove(party);
                                        track.setParties(parties);
@@ -83,13 +89,43 @@ public class EditTrackPage extends AdminBasePage {
 
                                /* check if a party should be added. */
                                if ("true".equals(request.getServletRequest().getParameter("add-party"))) {
-                                       String partyId = request.getServletRequest().getParameter("party");
-                                       Party party = getCore().getDataManager().getPartyById(partyId);
                                        Collection<Party> parties = track.getParties();
                                        parties.add(party);
                                        track.setParties(parties);
                                }
 
+                               if ("true".equals(request.getServletRequest().getParameter("delete-artist"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       artists.remove(artist);
+                                       track.setArtists(artists);
+                               }
+
+                               if ("true".equals(request.getServletRequest().getParameter("move-up"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       int index = artists.indexOf(artist);
+                                       if (index > 0) {
+                                               artists.remove(artist);
+                                               artists.add(index - 1, artist);
+                                       }
+                                       track.setArtists(artists);
+                               }
+
+                               if ("true".equals(request.getServletRequest().getParameter("move-down"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       int index = artists.indexOf(artist);
+                                       if (index < (artists.size() - 1)) {
+                                               artists.remove(artist);
+                                               artists.add(index + 1, artist);
+                                       }
+                                       track.setArtists(artists);
+                               }
+
+                               if ("true".equals(request.getServletRequest().getParameter("add-artist"))) {
+                                       List<Artist> artists = track.getArtists();
+                                       artists.add(artist);
+                                       track.setArtists(artists);
+                               }
+
                                String name = request.getServletRequest().getParameter("name");
                                if ((name != null) && (name.trim().length() > 0)) {
                                        track.setName(name);