/* This file is part of JFLICKS. JFLICKS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. JFLICKS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with JFLICKS. If not, see <http://www.gnu.org/licenses/>. */ package org.jflicks.metadata.thetvdb; import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.BorderFactory; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JPanel; import javax.swing.JScrollPane; import com.moviejukebox.thetvdb.model.Series; /** * This panel displays info about a series. * * @author Doug Barnum * @version 1.0 - 27 Dec 09 */ public class SeriesInfo extends JPanel { private JTextField nameTextField; private JTextArea overviewTextArea; private JTextField releasedTextField; private Series series; /** * Simple empty constructor. */ public SeriesInfo() { JTextField tf = new JTextField(16); tf.setEditable(false); tf.setBorder(null); setNameTextField(tf); JPanel namePanel = new JPanel(new BorderLayout()); namePanel.setBorder(BorderFactory.createTitledBorder("Name")); namePanel.add(tf, BorderLayout.CENTER); JTextArea ta = new JTextArea(22, 16); ta.setEditable(false); ta.setLineWrap(true); ta.setWrapStyleWord(true); setOverviewTextArea(ta); JScrollPane listScroller = new JScrollPane(getOverviewTextArea(), JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); JPanel overviewPanel = new JPanel(new BorderLayout()); overviewPanel.setBorder(BorderFactory.createTitledBorder("Overview")); overviewPanel.add(listScroller, BorderLayout.CENTER); tf = new JTextField(16); tf.setEditable(false); tf.setBorder(null); setReleasedTextField(tf); JPanel relPanel = new JPanel(new BorderLayout()); relPanel.setBorder(BorderFactory.createTitledBorder("Released")); relPanel.add(tf, BorderLayout.CENTER); setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.gridwidth = 1; gbc.gridheight = 1; gbc.fill = GridBagConstraints.BOTH; gbc.anchor = GridBagConstraints.CENTER; gbc.weightx = 1.0; gbc.weighty = 0.0; gbc.insets = new Insets(4, 4, 4, 4); add(namePanel, gbc); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 1; gbc.gridwidth = 1; gbc.gridheight = 1; gbc.fill = GridBagConstraints.BOTH; gbc.anchor = GridBagConstraints.CENTER; gbc.weightx = 1.0; gbc.weighty = 1.0; gbc.insets = new Insets(4, 4, 4, 4); add(overviewPanel, gbc); gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 4; gbc.gridwidth = 1; gbc.gridheight = 1; gbc.fill = GridBagConstraints.BOTH; gbc.anchor = GridBagConstraints.CENTER; gbc.weightx = 1.0; gbc.weighty = 0.0; gbc.insets = new Insets(4, 4, 4, 4); add(relPanel, gbc); } private JTextField getNameTextField() { return (nameTextField); } private void setNameTextField(JTextField tf) { nameTextField = tf; } private JTextArea getOverviewTextArea() { return (overviewTextArea); } private void setOverviewTextArea(JTextArea ta) { overviewTextArea = ta; } private JTextField getReleasedTextField() { return (releasedTextField); } private void setReleasedTextField(JTextField tf) { releasedTextField = tf; } /** * The currently displayed information is contained in a Series instance. * * @return A Series instance. */ public Series getSeries() { return (series); } /** * The currently displayed information is contained in a Series instance. * * @param s A Series instance. */ public void setSeries(Series s) { series = s; if (series != null) { getNameTextField().setText(series.getSeriesName()); getOverviewTextArea().setText(series.getOverview()); getOverviewTextArea().setCaretPosition(0); getReleasedTextField().setText(series.getFirstAired()); } else { getNameTextField().setText(""); getOverviewTextArea().setText(""); getReleasedTextField().setText(""); } } }