/* * Copyright (C) 2004 Anthony Smith * * 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 2 * 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * ---------------------------------------------------------------------------- * TITLE $Id$ * --------------------------------------------------------------------------- * * --------------------------------------------------------------------------*/ package opendbcopy.gui; import opendbcopy.controller.MainController; import opendbcopy.io.Reader; import opendbcopy.resource.ResourceManager; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.SystemColor; import java.awt.event.ActionEvent; import java.awt.event.WindowEvent; import java.io.File; import java.io.IOException; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; /** * class description * * @author Anthony Smith * @version $Revision$ */ public class FrameShowFile extends JFrame { private MainController controller; private ResourceManager rm; private JPanel panelMain; private JPanel panelControl; private JButton buttonRefresh; private JScrollPane scrollPane; private JTextArea textArea; private File file; private String title; /** * Creates a new FrameLaunchingProgress object. * * @param controller DOCUMENT ME! * @param frameWidth DOCUMENT ME! * @param frameHeight DOCUMENT ME! * @param file DOCUMENT ME! * @param title DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ public FrameShowFile(MainController controller, int frameWidth, int frameHeight, File file, String title) throws Exception { this.controller = controller; this.rm = controller.getResourceManager(); this.file = file; this.title = title; this.setSize(frameWidth, frameHeight); guiInit(); } /** * DOCUMENT ME! */ public final void refreshFile() { if ((file != null) && file.exists()) { if (textArea != null) { try { textArea.setText(Reader.read(file).toString()); } catch (IOException e) { System.out.println(e.getMessage()); } } } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ private void guiInit() throws Exception { this.setTitle(title); textArea = new JTextArea(); textArea.setLineWrap(false); String content = null; try { content = Reader.read(file).toString(); } catch (IOException e) { System.out.println(e.getMessage()); } if (content != null) { textArea.setText(content); } else { textArea.setText(""); } scrollPane = new JScrollPane(textArea); scrollPane.setBorder(new TitledBorder(BorderFactory.createLineBorder(SystemColor.black, 1), " " + title + " (" + file.getAbsolutePath() + ") ")); scrollPane.setBackground(SystemColor.WHITE); buttonRefresh = new JButton(" " + rm.getString("button.refresh"), new ImageIcon("resource/images/Refresh24.gif")); buttonRefresh.addActionListener(new FrameShowFile_buttonRefresh_actionAdapter(this)); panelControl = new JPanel(new GridLayout(1, 1, 20, 20)); panelControl.add(buttonRefresh); panelMain = new JPanel(new BorderLayout(20, 20)); panelMain.setBackground(SystemColor.WHITE); panelMain.setBorder(new EmptyBorder(5, 5, 5, 5)); panelMain.add(panelControl, BorderLayout.NORTH); panelMain.add(scrollPane, BorderLayout.CENTER); this.getContentPane().add(panelMain); } /** * DOCUMENT ME! * * @param e DOCUMENT ME! */ void buttonRefresh_actionPerformed(ActionEvent e) { try { textArea.setText(Reader.read(file).toString()); } catch (IOException ex) { System.out.println(ex.getMessage()); } } /** * DOCUMENT ME! * * @param e DOCUMENT ME! */ protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { hide(); } } } /** * class description * * @author Anthony Smith * @version $Revision$ */ class FrameShowFile_buttonRefresh_actionAdapter implements java.awt.event.ActionListener { FrameShowFile adaptee; /** * Creates a new WorkingMode_buttonNext_actionAdapter object. * * @param adaptee DOCUMENT ME! */ FrameShowFile_buttonRefresh_actionAdapter(FrameShowFile adaptee) { this.adaptee = adaptee; } /** * DOCUMENT ME! * * @param e DOCUMENT ME! */ public final void actionPerformed(ActionEvent e) { adaptee.buttonRefresh_actionPerformed(e); } }