From e92e4ae338d932e6b65e855b4b710e14b5ace1b7 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Mon, 15 Apr 2019 08:51:43 +0200 Subject: [PATCH] code cleanup --- .../nikiroo/fanfix/reader/cli/CliReader.java | 2 +- .../fanfix/reader/ui/GuiReaderGroup.java | 55 ++++++++++++++----- 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/src/be/nikiroo/fanfix/reader/cli/CliReader.java b/src/be/nikiroo/fanfix/reader/cli/CliReader.java index 3795cd88..a9dcfeeb 100644 --- a/src/be/nikiroo/fanfix/reader/cli/CliReader.java +++ b/src/be/nikiroo/fanfix/reader/cli/CliReader.java @@ -116,7 +116,7 @@ class CliReader extends BasicReader { displayStories(metas); } else { // ! 1-based index ! - if (item <= 0 | item > metas.size()) { + if (item <= 0 || item > metas.size()) { throw new IOException("Index out of bounds: " + item); } diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderGroup.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderGroup.java index cd98fac5..2d466294 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReaderGroup.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReaderGroup.java @@ -33,6 +33,7 @@ public class GuiReaderGroup extends JPanel { private List infos; private List books; private JPanel pane; + private JLabel titleLabel; private boolean words; // words or authors (secondary info on books) private int itemsPerLine; @@ -43,7 +44,8 @@ public class GuiReaderGroup extends JPanel { * the {@link GuiReaderBook} used to probe some information about * the stories * @param title - * the title of this group + * the title of this group (can be NULL for "no title", an empty + * {@link String} will trigger a default title for empty groups) * @param backgroundColor * the background colour to use (or NULL for default) */ @@ -68,18 +70,10 @@ public class GuiReaderGroup extends JPanel { add(pane, BorderLayout.CENTER); - if (title != null) { - if (title.isEmpty()) { - title = GuiReader.trans(StringIdGui.MENU_AUTHORS_UNKNOWN); - } - - JLabel label = new JLabel(); - label.setText(String.format("" - + "
" - + "%s" + "" + "", title)); - label.setHorizontalAlignment(JLabel.CENTER); - add(label, BorderLayout.NORTH); - } + titleLabel = new JLabel(); + titleLabel.setHorizontalAlignment(JLabel.CENTER); + add(titleLabel, BorderLayout.NORTH); + setTitle(title); // Compute the number of items per line at each resize addComponentListener(new ComponentAdapter() { @@ -119,6 +113,28 @@ public class GuiReaderGroup extends JPanel { }); } + /** + * The title of this group (can be NULL for "no title", an empty + * {@link String} will trigger a default title for empty groups) + * + * @param title + * the title or NULL + */ + public void setTitle(String title) { + if (title != null) { + if (title.isEmpty()) { + title = GuiReader.trans(StringIdGui.MENU_AUTHORS_UNKNOWN); + } + + titleLabel.setText(String.format("" + + "
" + + "%s" + "" + "", title)); + titleLabel.setVisible(true); + } else { + titleLabel.setVisible(false); + } + } + /** * Compute how many items can fit in a line so UP and DOWN can be used to go * up/down one line at a time. @@ -242,12 +258,21 @@ public class GuiReaderGroup extends JPanel { repaint(); } + /** + * The number of books in this group. + * + * @return the count + */ + public int getBooksCount() { + return books.size(); + } + /** * Return the index of the currently selected book if any, -1 if none. * * @return the index or -1 */ - private int getSelectedBookIndex() { + public int getSelectedBookIndex() { int index = -1; for (int i = 0; i < books.size(); i++) { if (books.get(i).isSelected()) { @@ -269,7 +294,7 @@ public class GuiReaderGroup extends JPanel { * TRUE to constraint the index to the first/last element, FALSE * to unselect when outside the range */ - private void setSelectedBook(int index, boolean forceRange) { + public void setSelectedBook(int index, boolean forceRange) { int previousIndex = getSelectedBookIndex(); if (index >= books.size()) { -- 2.27.0