* improved HistoryPanel layout
* TVRageClient.EpisodeListFeed will not fail, if XML does not contain an episode list
This commit is contained in:
parent
197bfd1b42
commit
192da2cb17
|
@ -32,14 +32,27 @@ public class HistoryPanel extends JPanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected void setupHeader() {
|
private void setupHeader() {
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
JLabel columnHeader = new JLabel();
|
JLabel columnHeader = new JLabel();
|
||||||
|
|
||||||
columnHeader.setFont(columnHeader.getFont().deriveFont(Font.BOLD));
|
columnHeader.setFont(columnHeader.getFont().deriveFont(Font.BOLD));
|
||||||
|
|
||||||
columnHeaders.add(columnHeader);
|
columnHeaders.add(columnHeader);
|
||||||
add(columnHeader, (i == 0) ? "align left, gapbefore 20" : "align right, gapafter 20");
|
|
||||||
|
add(columnHeader, getHeaderConstraint(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String getHeaderConstraint(int headerIndex) {
|
||||||
|
switch (headerIndex) {
|
||||||
|
case 0:
|
||||||
|
return "align left, gapbefore 24";
|
||||||
|
case 1:
|
||||||
|
return "align center";
|
||||||
|
default:
|
||||||
|
return "align right, gapafter 12";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -138,14 +138,14 @@ public class TVRageClient implements EpisodeListClient {
|
||||||
|
|
||||||
private final int totalSeasons;
|
private final int totalSeasons;
|
||||||
|
|
||||||
private final Node episodeListNode;
|
private final Document feed;
|
||||||
|
|
||||||
|
|
||||||
public EpisodeListFeed(Document dom) {
|
public EpisodeListFeed(Document feed) {
|
||||||
name = XPathUtil.selectString("Show/name", dom);
|
name = XPathUtil.selectString("Show/name", feed);
|
||||||
totalSeasons = XPathUtil.selectInteger("Show/totalseasons", dom);
|
totalSeasons = XPathUtil.selectInteger("Show/totalseasons", feed);
|
||||||
|
|
||||||
episodeListNode = XPathUtil.selectNode("Show/Episodelist", dom);
|
this.feed = feed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -172,9 +172,9 @@ public class TVRageClient implements EpisodeListClient {
|
||||||
|
|
||||||
public List<Episode> getEpisodeList(int season) {
|
public List<Episode> getEpisodeList(int season) {
|
||||||
if (season > getTotalSeasons() || season < 0)
|
if (season > getTotalSeasons() || season < 0)
|
||||||
throw new IllegalArgumentException(String.format("%s only has %d seasons", getName(), getTotalSeasons()));
|
throw new IllegalArgumentException(String.format("%s only has %d seasons.", getName(), getTotalSeasons()));
|
||||||
|
|
||||||
List<Node> nodes = XPathUtil.selectNodes("Season[@no='" + season + "']/episode", episodeListNode);
|
List<Node> nodes = XPathUtil.selectNodes("//Season[@no='" + season + "']/episode", feed);
|
||||||
|
|
||||||
List<Episode> episodes = new ArrayList<Episode>(nodes.size());
|
List<Episode> episodes = new ArrayList<Episode>(nodes.size());
|
||||||
String numberOfSeason = Integer.toString(season);
|
String numberOfSeason = Integer.toString(season);
|
||||||
|
|
Loading…
Reference in New Issue