From 166aeb9a4567f1f1f0231aca3a893faf64ff561c Mon Sep 17 00:00:00 2001 From: aj Date: Thu, 29 Mar 2018 00:11:47 -0700 Subject: [PATCH] abstracted artistlist to fmobj, added self adding of lists to main menu --- .../fmframework/gui/ArtistListView.java | 132 ------------------ .../sarsoo/fmframework/gui/FMObjListView.java | 78 +++++++++++ .../src/sarsoo/fmframework/gui/MainMenu.java | 52 +++---- .../src/sarsoo/fmframework/gui/TrackView.java | 2 +- .../src/sarsoo/fmframework/parser/Parser.java | 6 +- .../util/{ArtistList.java => FMObjList.java} | 15 +- .../sarsoo/fmframework/util/Reference.java | 86 ++++++++++-- .../fmframework/util/ScrobbleSumming.java | 2 +- 8 files changed, 190 insertions(+), 183 deletions(-) delete mode 100644 fmframework/src/sarsoo/fmframework/gui/ArtistListView.java create mode 100644 fmframework/src/sarsoo/fmframework/gui/FMObjListView.java rename fmframework/src/sarsoo/fmframework/util/{ArtistList.java => FMObjList.java} (63%) diff --git a/fmframework/src/sarsoo/fmframework/gui/ArtistListView.java b/fmframework/src/sarsoo/fmframework/gui/ArtistListView.java deleted file mode 100644 index 9ee56df..0000000 --- a/fmframework/src/sarsoo/fmframework/gui/ArtistListView.java +++ /dev/null @@ -1,132 +0,0 @@ -package sarsoo.fmframework.gui; - - -import java.awt.FlowLayout; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.text.NumberFormat; -import java.util.Locale; - -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; - -import sarsoo.fmframework.music.Album; -import sarsoo.fmframework.music.Artist; -import sarsoo.fmframework.net.Network; -import sarsoo.fmframework.util.ArtistList; - -public class ArtistListView extends JFrame{ -// JPanel info = new JPanel(); -// JPanel buttons = new JPanel(); -// JPanel buttons2 = new JPanel(); -// JLabel name = new JLabel(); -// JLabel artist = new JLabel(); -// JLabel listeners = new JLabel(); -// JLabel playCount = new JLabel(); -// JLabel userPlayCount = new JLabel(); -// JButton open = new JButton("View Online"); -// JButton viewArtist = new JButton("View Artist"); -// JButton musicBeanz = new JButton("Open MusicBeanz"); -// JButton rym = new JButton("Open RYM"); -// - public ArtistListView(ArtistList artists, String title) { - super(title); - setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - setLayout(new GridLayout(artists.size() + 2,0)); -// setSize(300, 300); - setResizable(false); -// info.setLayout(new GridLayout()); -// buttons.setLayout(new FlowLayout()); -// buttons2.setLayout(new FlowLayout()); -// -// buttons.add(open); -// buttons.add(viewArtist); -// buttons2.add(musicBeanz); -// buttons2.add(rym); - - NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US); - - JPanel headerLabels = new JPanel(); - headerLabels.setLayout(new GridLayout(1, 5)); - headerLabels.add(new JLabel("Name")); - headerLabels.add(new JLabel("User Scrobbles")); - headerLabels.add(new JLabel("Total Scrobbles")); - headerLabels.add(new JLabel("")); - headerLabels.add(new JLabel("")); - - add(headerLabels); - - int counter; - for(counter = 0; counter < artists.size(); counter++) { - Artist artist = artists.get(counter); - JLabel name = new JLabel(artist.getName()); - JLabel userPlays = new JLabel(Integer.toString(artist.getUserPlayCount())); - JLabel plays = new JLabel(numberFormat.format(artist.getPlayCount())); - JButton openExternal = new JButton("Open Online"); - openExternal.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - Network.openURL(artist.getUrl()); - } - }); - JButton openInternal = new JButton("Open Artist"); - openInternal.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - artist.view(); - } - }); - JPanel panel = new JPanel(); - panel.setLayout(new GridLayout(1, 5)); - panel.add(name); - panel.add(userPlays); - panel.add(plays); - panel.add(openInternal); - panel.add(openExternal); - - add(panel); - } - JLabel totalScrobbles = new JLabel(numberFormat.format(artists.getTotalUserScrobbles()) + " Total Plays"); - add(totalScrobbles); - pack(); - -// name.setText(album.getName()); -// name.setHorizontalTextPosition(JLabel.CENTER); -// artist.setText(album.getArtist().getName()); -// listeners.setText(numberFormat.format(album.getListeners()) + " Listeners"); -// playCount.setText(numberFormat.format(album.getPlayCount()) + " Scrobbles"); -// userPlayCount.setText(numberFormat.format(album.getUserPlayCount()) + " Your Scrobbles"); -// -// -// open.addActionListener(new ActionListener() { -// public void actionPerformed(ActionEvent arg0) { -// Network.openURL(album.getUrl()); -// } -// }); -// viewArtist.addActionListener(new ActionListener() { -// public void actionPerformed(ActionEvent arg0) { -// album.getArtist().view(); -// } -// }); -// musicBeanz.addActionListener(new ActionListener() { -// public void actionPerformed(ActionEvent arg0) { -// Network.openURL(album.getMusicBeanzURL());; -// } -// }); -// rym.addActionListener(new ActionListener() { -// public void actionPerformed(ActionEvent arg0) { -// Network.openURL(album.getRymURL());; -// } -// }); -// -// add(name); -// add(artist); -// add(listeners); -// add(playCount); -// add(userPlayCount); -//// add(info); -// add(buttons); -// add(buttons2); - } -} diff --git a/fmframework/src/sarsoo/fmframework/gui/FMObjListView.java b/fmframework/src/sarsoo/fmframework/gui/FMObjListView.java new file mode 100644 index 0000000..a5e796e --- /dev/null +++ b/fmframework/src/sarsoo/fmframework/gui/FMObjListView.java @@ -0,0 +1,78 @@ +package sarsoo.fmframework.gui; + +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.text.NumberFormat; +import java.util.Locale; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import sarsoo.fmframework.music.FMObj; +import sarsoo.fmframework.net.Network; +import sarsoo.fmframework.util.FMObjList; + +public class FMObjListView extends JFrame{ + + public FMObjListView(FMObjList objects, String title) { + super(title); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + setLayout(new GridLayout(objects.size() + 2,0)); + setResizable(false); + + NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US); + + JPanel headerLabels = new JPanel(); + headerLabels.setLayout(new GridLayout(1, 5)); + headerLabels.add(new JLabel("Name")); + headerLabels.add(new JLabel("User Scrobbles")); + headerLabels.add(new JLabel("Total Scrobbles")); + headerLabels.add(new JLabel("")); + headerLabels.add(new JLabel("")); + + add(headerLabels); + + int counter; + for(counter = 0; counter < objects.size(); counter++) { + FMObj fmObj = objects.get(counter); + JLabel name = new JLabel(fmObj.getName()); + + int playCountString = fmObj.getUserPlayCount(); + + JLabel userPlays; + if(playCountString == 0) + userPlays = new JLabel("0"); + else + userPlays = new JLabel(Integer.toString(fmObj.getUserPlayCount())); + + JLabel plays = new JLabel(numberFormat.format(fmObj.getPlayCount())); + JButton openExternal = new JButton("Open Online"); + openExternal.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + Network.openURL(fmObj.getUrl()); + } + }); + JButton openInternal = new JButton("Open " + fmObj.getClass().getSimpleName()); + openInternal.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + fmObj.view(); + } + }); + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(1, 5)); + panel.add(name); + panel.add(userPlays); + panel.add(plays); + panel.add(openInternal); + panel.add(openExternal); + + add(panel); + } + JLabel totalScrobbles = new JLabel(numberFormat.format(objects.getTotalUserScrobbles()) + " Total Plays"); + add(totalScrobbles); + pack(); + } +} diff --git a/fmframework/src/sarsoo/fmframework/gui/MainMenu.java b/fmframework/src/sarsoo/fmframework/gui/MainMenu.java index b80e5c7..5841151 100644 --- a/fmframework/src/sarsoo/fmframework/gui/MainMenu.java +++ b/fmframework/src/sarsoo/fmframework/gui/MainMenu.java @@ -1,11 +1,11 @@ package sarsoo.fmframework.gui; - import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.NumberFormat; +import java.util.ArrayList; import java.util.Locale; import javax.swing.JButton; @@ -18,30 +18,29 @@ import sarsoo.fmframework.music.Album; import sarsoo.fmframework.music.Artist; import sarsoo.fmframework.music.Track; import sarsoo.fmframework.net.Network; +import sarsoo.fmframework.util.FMObjList; import sarsoo.fmframework.util.GetObject; import sarsoo.fmframework.util.Reference; -public class MainMenu extends JFrame{ +public class MainMenu extends JFrame { JButton getAlbum = new JButton("Get Album"); JButton getArtist = new JButton("Get Artist"); - JButton viewTDE = new JButton("View TDE"); - JButton viewBPHQ = new JButton("View BPHQ"); JButton viewLastTrack = new JButton("View Last Track"); - + public MainMenu() { super("fmframework"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setLayout(new GridLayout(3,2)); - setSize(300, 300); + setLayout(new GridLayout(5, 5)); + setSize(500, 500); setResizable(false); getAlbum.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Album album = GetObject.getAlbum(); - if(album != null) { + if (album != null) { album.view(); - }else { + } else { JOptionPane.showMessageDialog(null, "No Album Found", "Album Error", JOptionPane.ERROR_MESSAGE); } } @@ -49,38 +48,39 @@ public class MainMenu extends JFrame{ getArtist.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Artist artist = GetObject.getArtist(); - if(artist != null) { + if (artist != null) { artist.view(); - }else { + } else { JOptionPane.showMessageDialog(null, "No Artist Found", "Artist Error", JOptionPane.ERROR_MESSAGE); } } }); - viewTDE.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - Reference.getTDE().view(); - } - }); - viewBPHQ.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - Reference.getBPHQ().view(); - } - }); viewLastTrack.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Track track = GetObject.getLastTrack(); - if(track != null) { + if (track != null) { track.view(); - }else { + } else { JOptionPane.showMessageDialog(null, "No Track Found", "Track Error", JOptionPane.ERROR_MESSAGE); } } }); - add(viewLastTrack); add(getAlbum); add(getArtist); - add(viewTDE); - add(viewBPHQ); + + Reference.initGroupsList(); + ArrayList groups = Reference.getGroups(); + int counter; + for (counter = 0; counter < groups.size(); counter++) { + FMObjList group = groups.get(counter); + JButton view = new JButton("View " + group.getGroupName()); + view.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + group.view(); + } + }); + add(view); + } } } diff --git a/fmframework/src/sarsoo/fmframework/gui/TrackView.java b/fmframework/src/sarsoo/fmframework/gui/TrackView.java index 7e30331..6e15f65 100644 --- a/fmframework/src/sarsoo/fmframework/gui/TrackView.java +++ b/fmframework/src/sarsoo/fmframework/gui/TrackView.java @@ -38,7 +38,7 @@ public class TrackView extends JFrame { setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLayout(new GridLayout(8, 1)); // setSize(300, 300); - // setResizable(false); + setResizable(false); buttons.setLayout(new FlowLayout()); buttons2.setLayout(new FlowLayout()); diff --git a/fmframework/src/sarsoo/fmframework/parser/Parser.java b/fmframework/src/sarsoo/fmframework/parser/Parser.java index 50543e1..b64d390 100644 --- a/fmframework/src/sarsoo/fmframework/parser/Parser.java +++ b/fmframework/src/sarsoo/fmframework/parser/Parser.java @@ -41,7 +41,7 @@ public class Parser { try { userPlayCount = Integer.parseInt(doc.getElementsByTagName("userplaycount").item(0).getTextContent()); } catch (Exception e) { - System.err.println("Couldn't parse userPlayCount, possibly unscrobbled"); + System.err.println("Couldn't parse userPlayCount, possibly unscrobbled for " + name); } // Node trackListNode = doc.getElementsByTagName("tracks").item(0); @@ -107,7 +107,7 @@ public class Parser { try { userPlayCount = Integer.parseInt(doc.getElementsByTagName("userplaycount").item(0).getTextContent()); } catch (Exception e) { - System.err.println("Couldn't parse userPlayCount, possibly unscrobbled"); + System.err.println("Couldn't parse userPlayCount, possibly unscrobbled for " + name); } // System.out.println(listeners); @@ -138,7 +138,7 @@ public class Parser { try { userPlayCount = Integer.parseInt(doc.getElementsByTagName("userplaycount").item(0).getTextContent()); } catch (Exception e) { - System.err.println("Couldn't parse userPlayCount, possibly unscrobbled"); + System.err.println("Couldn't parse userPlayCount, possibly unscrobbled for " + name); } // String albumName = diff --git a/fmframework/src/sarsoo/fmframework/util/ArtistList.java b/fmframework/src/sarsoo/fmframework/util/FMObjList.java similarity index 63% rename from fmframework/src/sarsoo/fmframework/util/ArtistList.java rename to fmframework/src/sarsoo/fmframework/util/FMObjList.java index 7980ec6..f3a4c7a 100644 --- a/fmframework/src/sarsoo/fmframework/util/ArtistList.java +++ b/fmframework/src/sarsoo/fmframework/util/FMObjList.java @@ -2,18 +2,19 @@ package sarsoo.fmframework.util; import java.util.ArrayList; -import sarsoo.fmframework.gui.ArtistListView; +import sarsoo.fmframework.gui.FMObjListView; import sarsoo.fmframework.music.Artist; +import sarsoo.fmframework.music.FMObj; -public class ArtistList extends ArrayList { +public class FMObjList extends ArrayList { private String groupName = null; - public ArtistList() { + public FMObjList() { super(); } - public ArtistList(String name) { + public FMObjList(String name) { super(); this.groupName = name; } @@ -28,16 +29,16 @@ public class ArtistList extends ArrayList { } public void view(String title) { - ArtistListView view = new ArtistListView(this, title); + FMObjListView view = new FMObjListView(this, title); view.setVisible(true); } public void view() { if(groupName != null) { - ArtistListView view = new ArtistListView(this, getGroupName()); + FMObjListView view = new FMObjListView(this, getGroupName()); view.setVisible(true); }else { - ArtistListView view = new ArtistListView(this, "Artist List View"); + FMObjListView view = new FMObjListView(this, "List View"); view.setVisible(true); } } diff --git a/fmframework/src/sarsoo/fmframework/util/Reference.java b/fmframework/src/sarsoo/fmframework/util/Reference.java index 8569add..8b625de 100644 --- a/fmframework/src/sarsoo/fmframework/util/Reference.java +++ b/fmframework/src/sarsoo/fmframework/util/Reference.java @@ -1,5 +1,8 @@ package sarsoo.fmframework.util; +import java.util.ArrayList; + +import sarsoo.fmframework.music.Album; import sarsoo.fmframework.music.Artist; public class Reference { @@ -13,40 +16,97 @@ public class Reference { public static void setUserName(String userNameIn) { userName = userNameIn; } - + public static boolean getIsHeadless() { return isHeadless; } - + public static void setIsHeadless(boolean headlessIn) { isHeadless = headlessIn; } + + private static ArrayList groups = new ArrayList(); + + public static void initGroupsList() { + groups.add(getTDE()); + groups.add(getBPHQ()); + groups.add(getDre()); + groups.add(getHopeless()); + groups.add(getSaturation()); + } + + public static FMObjList getSaturation() { + FMObjList saturation = new FMObjList("Saturation"); + + saturation.add(Album.getAlbum("Saturation", "Brockhampton", Reference.getUserName())); + saturation.add(Album.getAlbum("Saturation II", "Brockhampton", Reference.getUserName())); + saturation.add(Album.getAlbum("Saturation III", "Brockhampton", Reference.getUserName())); + + return saturation; + } + + public static ArrayList getGroups() { + return groups; + } - public static ArtistList getTDE() { - ArtistList tde = new ArtistList("TDE"); - + public static FMObjList getHopeless() { + FMObjList hopeless = new FMObjList("Hopless"); + + hopeless.add(Artist.getArtist("Circa Survive", Reference.getUserName())); + hopeless.add(Artist.getArtist("Enter Shikari", Reference.getUserName())); + hopeless.add(Artist.getArtist("Have Mercy", Reference.getUserName())); + hopeless.add(Artist.getArtist("Moose Blood", Reference.getUserName())); +// hopeless.add(Artist.getArtist("New Found Glory", Reference.getUserName())); + hopeless.add(Artist.getArtist("Neck Deep", Reference.getUserName())); + hopeless.add(Artist.getArtist("Sum 41", Reference.getUserName())); +// hopeless.add(Artist.getArtist("Taking Back Saturday", Reference.getUserName())); + hopeless.add(Artist.getArtist("Tonight Alive", Reference.getUserName())); + hopeless.add(Artist.getArtist("Trash Boat", Reference.getUserName())); + hopeless.add(Artist.getArtist("The Wonder Years", Reference.getUserName())); + hopeless.add(Artist.getArtist("With Confidence", Reference.getUserName())); + hopeless.add(Artist.getArtist("Trophy Eyes", Reference.getUserName())); + hopeless.add(Artist.getArtist("Dryjacket", Reference.getUserName())); + hopeless.add(Artist.getArtist("Yellowcard", Reference.getUserName())); + + return hopeless; + } + + public static FMObjList getTDE() { + FMObjList tde = new FMObjList("TDE"); + tde.add(Artist.getArtist("Kendrick Lamar", Reference.getUserName())); tde.add(Artist.getArtist("Jay Rock", Reference.getUserName())); tde.add(Artist.getArtist("ScHoolboy Q", Reference.getUserName())); tde.add(Artist.getArtist("Ab-Soul", Reference.getUserName())); - tde.add(Artist.getArtistByMbid("6fc5c0c6-bf05-4b29-bda0-5fa6cc863785", Reference.getUserName())); //Black Hippy + tde.add(Artist.getArtistByMbid("6fc5c0c6-bf05-4b29-bda0-5fa6cc863785", Reference.getUserName())); // Black Hippy tde.add(Artist.getArtist("Isaiah Rashad", Reference.getUserName())); tde.add(Artist.getArtist("SZA", Reference.getUserName())); tde.add(Artist.getArtist("Sir", Reference.getUserName())); - + return tde; } - - public static ArtistList getBPHQ() { - ArtistList bphq = new ArtistList("British Post Hardcore Quintet"); - + + public static FMObjList getBPHQ() { + FMObjList bphq = new FMObjList("BPHQ"); + bphq.add(Artist.getArtistByMbid("98edd2f1-d136-4c47-ab9b-c31839dd1d98", Reference.getUserName())); bphq.add(Artist.getArtist("Lower Than Atlantis", Reference.getUserName())); bphq.add(Artist.getArtist("Mallory Knox", Reference.getUserName())); bphq.add(Artist.getArtist("Don Broco", Reference.getUserName())); bphq.add(Artist.getArtist("Moose Blood", Reference.getUserName())); - + return bphq; } - + + public static FMObjList getDre() { + FMObjList dre = new FMObjList("Dre"); + + dre.add(Artist.getArtist("N.W.A", Reference.getUserName())); + dre.add(Artist.getArtist("Dr. Dre", Reference.getUserName())); + dre.add(Artist.getArtist("Snoop Dogg", Reference.getUserName())); + dre.add(Artist.getArtist("Eminem", Reference.getUserName())); + + return dre; + } + } diff --git a/fmframework/src/sarsoo/fmframework/util/ScrobbleSumming.java b/fmframework/src/sarsoo/fmframework/util/ScrobbleSumming.java index 2f6aff9..b0e0d1f 100644 --- a/fmframework/src/sarsoo/fmframework/util/ScrobbleSumming.java +++ b/fmframework/src/sarsoo/fmframework/util/ScrobbleSumming.java @@ -4,7 +4,7 @@ import sarsoo.fmframework.music.Artist; public class ScrobbleSumming { public static int getTopDawgScrobbles() { - ArtistList tde = new ArtistList(); + FMObjList tde = new FMObjList(); // Artist kendrick = Artist.getArtist("Kendrick Lamar", "sarsoo"); // Artist jay = Artist.getArtist("Jay Rock", "sarsoo");