All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.peers.gui.AboutFrame Maven / Gradle / Ivy

The newest version!
/*
    This file is part of Peers, a java SIP softphone.

    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
    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 .
    
    Copyright 2010-2013 Yohann Martineau
*/

package net.sourceforge.peers.gui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.event.HyperlinkEvent.EventType;

import net.sourceforge.peers.Logger;

public class AboutFrame extends JFrame implements ActionListener,
        HyperlinkListener {

    public static final String LICENSE_FILE = File.separator + "gpl.txt";

    private static final long serialVersionUID = 1L;

    private Logger logger;

    public AboutFrame(String peersHome, Logger logger) {
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("About");

        String message = "Peers: java SIP softphone
" + "Copyright 2007-2010 Yohann Martineau
" + "" + EventManager.PEERS_URL + ""; JTextPane textPane = new JTextPane(); textPane.setContentType("text/html"); textPane.setEditable(false); textPane.setText(message); textPane.addHyperlinkListener(this); textPane.setOpaque(false); textPane.setBorder(BorderFactory.createEmptyBorder(5, 15, 5, 15)); add(textPane, BorderLayout.PAGE_START); String gpl = null; try { FileReader fileReader = new FileReader(peersHome + LICENSE_FILE); BufferedReader bufferedReader = new BufferedReader(fileReader); StringBuffer buf = new StringBuffer(); String line; while ((line = bufferedReader.readLine()) != null) { buf.append(" "); buf.append(line); buf.append("\r\n"); } bufferedReader.close(); gpl = buf.toString(); } catch (IOException e) { logger.error(e.getMessage(), e); } JTextArea textArea = new JTextArea(); textArea.setEditable(false); Font font = textArea.getFont(); font = new Font(font.getName(), font.getStyle(), font.getSize() - 2); textArea.setFont(font); if (gpl != null) { textArea.setText(gpl); } JPanel panel = new JPanel(); JScrollPane scrollPane = new JScrollPane(textArea); textArea.setCaretPosition(0); //scrollPane.setPreferredSize(new Dimension(600, 300)); panel.add(scrollPane); panel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10)); add(panel, BorderLayout.CENTER); panel = new JPanel(); JButton button = new JButton("Close"); button.addActionListener(this); panel.add(button); add(panel, BorderLayout.PAGE_END); pack(); Dimension dimension = scrollPane.getSize(); dimension = new Dimension(dimension.width + 20, 300); scrollPane.setPreferredSize(dimension); pack(); } @Override public void actionPerformed(ActionEvent e) { dispose(); } @Override public void hyperlinkUpdate(HyperlinkEvent hyperlinkEvent) { if (EventType.ACTIVATED.equals(hyperlinkEvent.getEventType())) { try { URI uri = hyperlinkEvent.getURL().toURI(); java.awt.Desktop.getDesktop().browse(uri); } catch (URISyntaxException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy