package moviescraper.doctord.view; import java.awt.Dimension; import java.awt.Font; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.Box; import javax.swing.ImageIcon; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.WindowConstants; import javax.swing.border.EmptyBorder; import org.imgscalr.Scalr; import org.imgscalr.Scalr.Method; public class AboutDialog extends JDialog { private static final long serialVersionUID = 2426089852777554719L; //FIXME: is there a way to extract from project?? private static final String versionString = "v0.2.27-alpha"; private static final String nameString = "JAVMovieScraper"; private static final String aboutString = "Scrape Kodi movie metadata and automatically rename " + "files for Japanese Adult Videos (JAV), American Adult DVDs, " + "and American Adult Webcontent"; public AboutDialog(JFrame parent) { super(parent, "About " + nameString, true); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setResizable(false); JLabel nameLabel = new JLabel(nameString); Font baseFont = nameLabel.getFont().deriveFont(Font.PLAIN); nameLabel.setFont(baseFont.deriveFont(Font.BOLD, baseFont.getSize() + 4.0f)); JLabel versionLabel = new JLabel(versionString); versionLabel.setFont(baseFont.deriveFont(baseFont.getSize() + 2.0f)); JTextArea aboutText = new JTextArea(aboutString); aboutText.setFont(baseFont); aboutText.setBackground(null); aboutText.setEditable(false); aboutText.setBorder(null); aboutText.setLineWrap(true); aboutText.setWrapStyleWord(true); aboutText.setFocusable(false); JLabel iconLabel = new JLabel(); iconLabel.setIcon(createAppIcon()); final int margin = 24; final int topMargin = margin * 3 / 2; Box namePanel = Box.createVerticalBox(); namePanel.add(nameLabel); namePanel.add(Box.createVerticalStrut(margin)); namePanel.add(versionLabel); Box iconPanel = Box.createHorizontalBox(); iconPanel.add(iconLabel); iconPanel.add(Box.createHorizontalStrut(margin)); iconPanel.add(namePanel); Box topPanel = Box.createVerticalBox(); topPanel.setBorder(new EmptyBorder(topMargin, margin, margin, margin)); topPanel.add(iconPanel); topPanel.add(Box.createVerticalStrut(topMargin)); topPanel.add(aboutText); setContentPane(topPanel); setPreferredSize(new Dimension(320, 240)); pack(); setLocationByPlatform(true); setLocationRelativeTo(parent); } private ImageIcon createAppIcon() { try { BufferedImage iconBufferedImage; iconBufferedImage = ImageIO.read(getClass().getResource("/res/AppIcon.png")); iconBufferedImage = Scalr.resize(iconBufferedImage, Method.QUALITY, 64, 64, Scalr.OP_ANTIALIAS); ImageIcon icon = new ImageIcon(iconBufferedImage); return icon; } catch (IOException e) { e.printStackTrace(); return null; } } }