/* Copyright (C) 2004 R. Nagel All programs in this directory and subdirectories are published under the GNU General Public License as described below. 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 Further information about the GNU GPL is available at: http://www.gnu.org/copyleft/gpl.ja.html */ // created by : r.nagel 14.09.2004 // // function : // // modified: // package net.sf.jabref.wizard.integrity.gui ; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.net.URL; import javax.swing.*; import javax.swing.border.EtchedBorder; import net.sf.jabref.*; public class IntegrityWizard extends JDialog implements ActionListener { private BibtexDatabase dbase ; private BasePanel basePanel; private JButton closeButton ; private JButton startButton ; private IntegrityMessagePanel warnPanel ; public IntegrityWizard( JabRefFrame frame, BasePanel basePanel) { super( frame.getFrame(), "dialog", false ) ; // no modal this.basePanel = basePanel; dbase = basePanel.database(); try { jbInit() ; pack() ; } catch ( Exception ex ) { ex.printStackTrace() ; } } private void jbInit() { // this.setModal( true ) ; this.setResizable( false ) ; // messages this.setTitle( Globals.lang("Integrity_check") ) ;//Globals.lang( "Plain_text_import" ) + " " + typeStr ) ; //warnPanel = new IntegrityMessagePanel() ; //this.setTitle( "Experimental feature - Integrity Check") ;//Globals.lang( "Plain_text_import" ) + " " + typeStr ) ; warnPanel = new IntegrityMessagePanel(basePanel) ; // ButtonPanel JPanel buttonPanel = new JPanel() ; GridBagLayout gbl = new GridBagLayout() ; GridBagConstraints con = new GridBagConstraints() ; con.weightx = 0 ; con.insets = new Insets( 5, 10, 0, 10 ) ; con.fill = GridBagConstraints.HORIZONTAL ; // Buttons startButton = new JButton(Globals.lang("Scan")) ; startButton.addActionListener( this) ; closeButton = new JButton(Globals.lang("Close")); closeButton.addActionListener( this) ; // insert Buttons con.gridwidth = GridBagConstraints.REMAINDER ; gbl.setConstraints( startButton, con ) ; buttonPanel.add( startButton ) ; gbl.setConstraints( closeButton, con ) ; buttonPanel.add( closeButton ) ; // ---------------------------------------------------------------------- // add a short info, if available JEditorPane infoText = null ; URL infoURL = JabRef.class.getResource(GUIGlobals.getLocaleHelpPath() +GUIGlobals.shortIntegrityCheck); if (infoURL != null) try { infoText = new JEditorPane() ; infoText.setEditable(false); infoText.setPreferredSize( new Dimension(220, 60)); infoText.setMinimumSize( new Dimension(180, 50)); infoText.setPage(infoURL); infoText.setBackground(GUIGlobals.infoField); infoText.setBorder(new EtchedBorder(EtchedBorder.LOWERED)); // bottomPanel.add( infoText, BorderLayout.CENTER ) ; } catch (IOException e) { infoText = null ; } // ----------------------------------------------------------------------- // content Container content = this.getContentPane() ; content.setLayout( new BorderLayout()); if (infoText != null) // only if some help available { content.add( infoText, BorderLayout.PAGE_START ) ; } content.add(warnPanel, BorderLayout.CENTER) ; content.add(buttonPanel, BorderLayout.PAGE_END) ; } // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- public void actionPerformed( ActionEvent e ) { Object sender = e.getSource() ; if (sender == closeButton) { dispose() ; } else if (sender == startButton) { startButton.setEnabled(false); Runnable scanWork = new Runnable() { public void run() { warnPanel.updateView(dbase); } } ; SwingUtilities.invokeLater(scanWork); startButton.setEnabled(true); } } }