/* * Lilith - a log event viewer. * Copyright (C) 2007-2016 Joern Huxhorn * * This program 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. * * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */ package de.huxhorn.lilith.swing; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.Rectangle; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import javax.swing.JDialog; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AboutDialog extends JDialog { private static final long serialVersionUID = -1777026913356705300L; private boolean wasScrolling; private AboutPanel aboutPanel; public AboutDialog(Frame owner, String title, String appName) { super(owner, title, false); wasScrolling = true; setLayout(new BorderLayout()); InputStream is = MainFrame.class.getResourceAsStream("/about/aboutText.txt"); String aboutText = null; final Logger logger = LoggerFactory.getLogger(AboutDialog.class); if(is != null) { try { aboutText = IOUtils.toString(is, StandardCharsets.UTF_8); } catch(IOException e) { if(logger.isErrorEnabled()) logger.error("Exception while loading aboutText!! *grrr*"); } } try { aboutPanel = new AboutPanel(MainFrame.class.getResource("/about/lilith_big.jpg"), new Rectangle(50, 50, 400, 200), aboutText, MainFrame.class.getResource("/about/lilith.jpg"), appName, 20); //aboutPanel.setDebug(true); add(aboutPanel, BorderLayout.CENTER); } catch(IOException e) { if(logger.isErrorEnabled()) logger.error("Exception creating about panel!!"); } setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { /** * Invoked when a window is in the process of being closed. * The close operation can be overridden at this point. */ @Override public void windowClosing(WindowEvent e) { setVisible(false); } }); } @Override public void setVisible(boolean b) { super.setVisible(b); if(b) { aboutPanel.setScrolling(wasScrolling); } else { wasScrolling = aboutPanel.isScrolling(); aboutPanel.setScrolling(false); } } }