fmobj comparable, objects in objlist get sorted

This commit is contained in:
aj 2018-04-05 00:10:58 -07:00
parent e90f12f6dd
commit 4c18bd07a2
6 changed files with 116 additions and 92 deletions

View File

@ -9,17 +9,17 @@ import sarsoo.fmframework.util.Reference;
public class Driver {
public static void main(String[] args) {
String username = JOptionPane.showInputDialog(null, "Enter User-Name");
// String username = JOptionPane.showInputDialog(null, "Enter User-Name");
// System.out.println(username);
if (username != null) {
// Reference.setUserName("sarsoo");
Reference.setUserName(username);
// if (username != null) {
Reference.setUserName("sarsoo");
// Reference.setUserName(username);
// System.out.println(Getter.getScrobbles(Reference.getUserName()));
MainMenu main = new MainMenu();
main.setVisible(true);
}
// }
}
}

View File

@ -7,6 +7,7 @@ import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.NumberFormat;
import java.util.Collections;
import java.util.Locale;
import javax.swing.JButton;
@ -64,6 +65,9 @@ public class FMObjListView extends JFrame {
add(headerLabels);
Collections.sort(objects);
Collections.reverse(objects);
int counter;
for (counter = 0; counter < objects.size(); counter++) {
FMObj fmObj = objects.get(counter);

View File

@ -9,17 +9,18 @@ import sarsoo.fmframework.net.Network;
import sarsoo.fmframework.parser.Parser;
import sarsoo.fmframework.util.Reference;
public class Album extends FMObj{
public class Album extends FMObj {
protected Artist artist;
protected ArrayList<Tag> tagList;
// protected ArrayList<Track> trackList;
// protected ArrayList<Track> trackList;
public Album(String name, String artist) {
super(name, null, null, 0, 0, 0, null);
this.artist = Artist.getArtist(artist, Reference.getUserName());
}
public Album(String name, String url, String mbid, Artist artist, int listeners, int playCount, int userPlayCount, Wiki wiki) {
public Album(String name, String url, String mbid, Artist artist, int listeners, int playCount, int userPlayCount,
Wiki wiki) {
super(name, url, mbid, listeners, playCount, userPlayCount, wiki);
this.artist = artist;
}
@ -31,33 +32,37 @@ public class Album extends FMObj{
public static Album getAlbum(String name, String artist, String username) {
String url = Network.getAlbumInfoUrl(name, artist, username);
Document response = Network.getResponse(url);
Album album = Parser.parseAlbum(response);
return album;
if (response != null) {
Album album = Parser.parseAlbum(response);
return album;
}
return null;
}
// public Track getTrack(int track) {
// return trackList.get(track);
// }
//
// public ArrayList<Track> getTrackList(){
// return trackList;
// }
//
// public void addTrack(Track track) {
// trackList.add(track);
// }
//
public ArrayList<Tag> getTags(){
// public Track getTrack(int track) {
// return trackList.get(track);
// }
//
// public ArrayList<Track> getTrackList(){
// return trackList;
// }
//
// public void addTrack(Track track) {
// trackList.add(track);
// }
//
public ArrayList<Tag> getTags() {
return tagList;
}
public String getRymURL() {
return "https://rateyourmusic.com/release/album/" + getArtist().getName().replaceAll(" ", "_").toLowerCase() + "/" + getName().replaceAll(" ", "_").toLowerCase();
return "https://rateyourmusic.com/release/album/" + getArtist().getName().replaceAll(" ", "_").toLowerCase()
+ "/" + getName().replaceAll(" ", "_").toLowerCase();
}
@Override
public String getMusicBrainzURL() {
return "https://musicbrainz.org/release/" + mbid;
return "https://musicbrainz.org/release/" + mbid;
}
@ -69,11 +74,12 @@ public class Album extends FMObj{
@Override
public boolean equals(Object obj) {
if(obj.getClass() != this.getClass()) return false;
if (obj.getClass() != this.getClass())
return false;
Album album = (Album)obj;
if(getName() == album.getName())
if(getArtist().equals(album.getArtist()))
Album album = (Album) obj;
if (getName() == album.getName())
if (getArtist().equals(album.getArtist()))
return true;
return false;

View File

@ -8,9 +8,9 @@ import sarsoo.fmframework.net.Network;
//import sarsoo.fmframework.net.TestCall;
import sarsoo.fmframework.parser.Parser;
public class Artist extends FMObj{
// protected boolean streamable;
// protected boolean onTour;
public class Artist extends FMObj {
// protected boolean streamable;
// protected boolean onTour;
protected ArrayList<Album> albums;
protected ArrayList<Artist> similarArtists;
protected ArrayList<Tag> tagList;
@ -25,10 +25,13 @@ public class Artist extends FMObj{
public static Artist getArtist(String name, String username) {
String url = Network.getArtistInfoUrl(name, username);
// TestCall.test(url);
// TestCall.test(url);
Document response = Network.getResponse(url);
Artist artist = Parser.parseArtist(response);
return artist;
if (response != null) {
Artist artist = Parser.parseArtist(response);
return artist;
}
return null;
}
public static Artist getArtistByMbid(String mbid, String username) {
@ -38,21 +41,21 @@ public class Artist extends FMObj{
return artist;
}
public ArrayList<Album> getAlbum(){
public ArrayList<Album> getAlbum() {
return albums;
}
public ArrayList<Artist> getSimilarArtists(){
public ArrayList<Artist> getSimilarArtists() {
return similarArtists;
}
public ArrayList<Tag> getTags(){
public ArrayList<Tag> getTags() {
return tagList;
}
@Override
public String getMusicBrainzURL() {
return "https://musicbrainz.org/artist/" + mbid;
return "https://musicbrainz.org/artist/" + mbid;
}
public String getRymURL() {
@ -61,11 +64,12 @@ public class Artist extends FMObj{
@Override
public boolean equals(Object obj) {
if(obj.getClass() != this.getClass()) return false;
if (obj.getClass() != this.getClass())
return false;
Artist artist = (Artist)obj;
if(getName() == artist.getName())
return true;
Artist artist = (Artist) obj;
if (getName() == artist.getName())
return true;
return false;
}
@ -74,5 +78,4 @@ public class Artist extends FMObj{
return name;
}
}

View File

@ -2,7 +2,7 @@ package sarsoo.fmframework.music;
import sarsoo.fmframework.gui.FMObjView;
public abstract class FMObj {
public abstract class FMObj implements Comparable<FMObj>{
protected String name;
protected String url;
@ -33,6 +33,12 @@ public abstract class FMObj {
return name;
}
@Override
public int compareTo(FMObj obj) {
return userPlayCount - obj.getUserPlayCount();
}
public String getName() {
return name;
}

View File

@ -9,7 +9,7 @@ import sarsoo.fmframework.net.Network;
//import sarsoo.fmframework.net.TestCall;
import sarsoo.fmframework.parser.Parser;
public class Track extends FMObj{
public class Track extends FMObj {
protected Album album;
protected Artist artist;
protected int trackNumber;
@ -23,24 +23,28 @@ public class Track extends FMObj{
this.artist = new Artist(artist);
}
public Track(String name, String url, String mbid, Artist artist, int listeners, int playCount, int userPlayCount, Wiki wiki) {
public Track(String name, String url, String mbid, Artist artist, int listeners, int playCount, int userPlayCount,
Wiki wiki) {
super(name, url, mbid, listeners, playCount, userPlayCount, wiki);
this.artist = artist;
}
public static Track getTrack(String name, String artist, String username) {
String url = Network.getTrackInfoUrl(name, artist, username);
// TestCall.test(url);
// TestCall.test(url);
Document response = Network.getResponse(url);
Track track = Parser.parseTrack(response);
return track;
if (response != null) {
Track track = Parser.parseTrack(response);
return track;
}
return null;
}
public Artist getArtist() {
return artist;
}
public ArrayList<Tag> getTags(){
public ArrayList<Tag> getTags() {
return tagList;
}
@ -50,7 +54,7 @@ public class Track extends FMObj{
@Override
public String getMusicBrainzURL() {
return "https://musicbrainz.org/artist/" + mbid;
return "https://musicbrainz.org/artist/" + mbid;
}
public String getLyricsURL() {
@ -63,11 +67,12 @@ public class Track extends FMObj{
@Override
public boolean equals(Object obj) {
if(obj.getClass() != this.getClass()) return false;
if (obj.getClass() != this.getClass())
return false;
Track track = (Track)obj;
if(getName() == track.getName())
if(getArtist().equals(track.getArtist()))
Track track = (Track) obj;
if (getName() == track.getName())
if (getArtist().equals(track.getArtist()))
return true;
return false;