📄 convertorpanel.java
字号:
/* * (C) 2001 by Argonne National Laboratory * See COPYRIGHT in top-level directory. *//* * @author Anthony Chan */package viewer.convertor;import java.awt.Color;import java.awt.Insets;import java.awt.Dimension;import java.awt.Component;import java.awt.Window;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JPanel;import javax.swing.JLabel;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JTextField;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JProgressBar;import javax.swing.ImageIcon;import javax.swing.AbstractButton;import javax.swing.BorderFactory;import javax.swing.border.Border;import javax.swing.border.TitledBorder;import javax.swing.SwingUtilities;import javax.swing.UIManager;import java.util.Properties;import java.io.File;import java.io.InputStream;import java.io.InputStreamReader;import java.io.BufferedReader;import java.io.IOException;import java.net.URL;import logformat.slog2.input.InputLog;import viewer.common.Const;import viewer.common.Dialogs;import viewer.common.Routines;import viewer.common.CustomCursor;import viewer.common.ActableTextField;import viewer.common.LogFileChooser;import viewer.common.RuntimeExecCommand;public class ConvertorPanel extends JPanel implements WaitingContainer{ private JComboBox cmd_pulldown; private ActableTextField cmd_infile; private JButton infile_btn; private JTextField cmd_outfile; private JButton outfile_btn; private AdvancingTextArea cmd_textarea; private JTextField cmd_outfile_size; private JProgressBar cmd_progress; private JTextField cmd_option4jvm; private JTextField cmd_option4jar; private JTextField cmd_path2jvm; private ActableTextField cmd_path2jardir; private JTextField cmd_path2tracelib; private JSplitPane cmd_splitter; private JButton cmd_start_btn; private JButton cmd_stop_btn; private JButton cmd_help_btn; private JButton cmd_close4ok_btn; private JButton cmd_close4cancel_btn; private Window top_window; private LogFileChooser file_chooser; private String file_sep, path_sep; private String err_msg; private SwingProcessWorker logconv_worker; public ConvertorPanel( LogFileChooser in_file_chooser ) { super(); this.initComponents( in_file_chooser != null ); this.initAllTextFields(); if ( in_file_chooser != null ) file_chooser = in_file_chooser; else file_chooser = new LogFileChooser( false ); cmd_pulldown.addActionListener( new PulldownListener() ); cmd_infile.addActionListener( new LogNameListener() ); infile_btn.addActionListener( new InputFileSelectorListener() ); outfile_btn.addActionListener( new OutputFileSelectorListener() ); cmd_path2jardir.addActionListener( new JarDirectoryListener() ); cmd_start_btn.addActionListener( new StartConvertorListener() ); cmd_stop_btn.addActionListener( new StopConvertorListener() ); cmd_help_btn.addActionListener( new HelpConvertorListener() ); this.finalizeWaiting(); logconv_worker = null; } public void init( String filename ) { top_window = SwingUtilities.windowForComponent( this ); cmd_splitter.setDividerLocation( 1.0d ); if ( filename != null && filename.length() > 0 ) { cmd_infile.setText( filename ); cmd_infile.fireActionPerformed(); // Invoke LogNameListener() cmd_pulldown.setSelectedItem( ConvertorConst.getDefaultConvertor( filename ) ); if ( cmd_close4ok_btn != null ) cmd_close4ok_btn.setEnabled( false ); if ( cmd_close4cancel_btn != null ) cmd_close4cancel_btn.setEnabled( true ); } if ( err_msg != null ) Dialogs.error( top_window, err_msg ); } private URL getURL( String filename ) { URL url = null; url = getClass().getResource( filename ); return url; } private void initComponents( boolean has_close4ok_btn ) { Border raised_border, etched_border; raised_border = BorderFactory.createRaisedBevelBorder(); etched_border = BorderFactory.createEtchedBorder(); // Setup all relevant Dimension of various components Dimension row_pref_sz; // for typical row JPanel Dimension lbl_pref_sz; // for all JLabel Dimension fld_pref_sz; // for all JTextField Dimension pfld_pref_sz; // for JProgressBar Dimension pbar_pref_sz; // for JTextField of Output File Size row_pref_sz = new Dimension( 410, 30 ); lbl_pref_sz = new Dimension( 130, 26 ); fld_pref_sz = new Dimension( row_pref_sz.width - lbl_pref_sz.width, lbl_pref_sz.height ); pfld_pref_sz = new Dimension( lbl_pref_sz.width, 2 * lbl_pref_sz.height ); pbar_pref_sz = new Dimension( row_pref_sz.width, pfld_pref_sz.height ); super.setLayout( new BoxLayout( this, BoxLayout.Y_AXIS ) ); Color thumb_color, pulldown_bg_color; thumb_color = UIManager.getColor( "ScrollBar.thumb" ); pulldown_bg_color = Routines.getSlightBrighterColor( thumb_color ); JLabel label; Insets btn_insets; URL icon_URL; JPanel upper_panel = new JPanel(); upper_panel.setAlignmentX( Component.CENTER_ALIGNMENT ); upper_panel.setLayout( new BoxLayout( upper_panel, BoxLayout.Y_AXIS ) ); upper_panel.add( Box.createVerticalStrut( 4 ) ); JPanel cmd_name_panel = new JPanel(); cmd_name_panel.setAlignmentX( Component.CENTER_ALIGNMENT ); cmd_name_panel.setLayout( new BoxLayout( cmd_name_panel, BoxLayout.X_AXIS ) ); cmd_name_panel.add( Box.createHorizontalStrut( 5 ) ); cmd_pulldown = new JComboBox(); cmd_pulldown.setForeground( Color.yellow ); cmd_pulldown.setBackground( pulldown_bg_color ); cmd_pulldown.setToolTipText( " Logfile Convertor's Name " ); cmd_pulldown.addItem( ConvertorConst.CLOG2_TO_SLOG2 ); cmd_pulldown.addItem( ConvertorConst.CLOG_TO_SLOG2 ); cmd_pulldown.addItem( ConvertorConst.RLOG_TO_SLOG2 ); cmd_pulldown.addItem( ConvertorConst.UTE_TO_SLOG2 ); cmd_pulldown.addItem( ConvertorConst.TXT_TO_SLOG2 ); cmd_pulldown.setBorder( raised_border ); cmd_pulldown.setEditable( false ); cmd_pulldown.setAlignmentX( Component.CENTER_ALIGNMENT ); cmd_name_panel.add( cmd_pulldown ); cmd_name_panel.add( Box.createHorizontalStrut( 5 ) ); Routines.setShortJComponentSizes( cmd_name_panel, row_pref_sz ); upper_panel.add( cmd_name_panel ); upper_panel.add( Box.createVerticalStrut( 4 ) ); btn_insets = new Insets( 1, 1, 1, 1 ); JPanel cmd_infile_panel = new JPanel(); cmd_infile_panel.setAlignmentX( Component.CENTER_ALIGNMENT ); cmd_infile_panel.setLayout( new BoxLayout( cmd_infile_panel, BoxLayout.X_AXIS ) ); label = new JLabel( " Input File Spec. : " ); label.setToolTipText( "File Specification of the Input Trace File." ); Routines.setShortJComponentSizes( label, lbl_pref_sz ); cmd_infile_panel.add( label ); cmd_infile = new ActableTextField(); cmd_infile_panel.add( cmd_infile ); icon_URL = getURL( Const.IMG_PATH + "Open24.gif" ); infile_btn = null; if ( icon_URL != null ) infile_btn = new JButton( new ImageIcon( icon_URL ) ); else infile_btn = new JButton( "Browse" ); infile_btn.setToolTipText( "Select a new Input Logfile" ); infile_btn.setMargin( btn_insets ); cmd_infile_panel.add( infile_btn ); Routines.setShortJComponentSizes( cmd_infile_panel, row_pref_sz ); upper_panel.add( cmd_infile_panel ); upper_panel.add( Box.createVerticalStrut( 4 ) ); JPanel cmd_outfile_panel = new JPanel(); cmd_outfile_panel.setAlignmentX( Component.CENTER_ALIGNMENT ); cmd_outfile_panel.setLayout( new BoxLayout( cmd_outfile_panel, BoxLayout.X_AXIS ) ); label = new JLabel( " Output File Name : " ); label.setToolTipText( "File Name of the SLOG-2 File" ); Routines.setShortJComponentSizes( label, lbl_pref_sz ); cmd_outfile_panel.add( label ); cmd_outfile = new JTextField(); cmd_outfile_panel.add( cmd_outfile ); icon_URL = getURL( Const.IMG_PATH + "Open24.gif" ); outfile_btn = null; if ( icon_URL != null ) outfile_btn = new JButton( new ImageIcon( icon_URL ) ); else outfile_btn = new JButton( "Browse" ); outfile_btn.setToolTipText( "Select a new Output Logfile" ); outfile_btn.setMargin( btn_insets ); cmd_outfile_panel.add( outfile_btn ); Routines.setShortJComponentSizes( cmd_outfile_panel, row_pref_sz ); upper_panel.add( cmd_outfile_panel ); upper_panel.add( Box.createVerticalStrut( 4 ) ); cmd_textarea = new AdvancingTextArea(); cmd_textarea.setColumns( 50 ); cmd_textarea.setRows( 5 ); cmd_textarea.setEditable( false ); cmd_textarea.setLineWrap( false ); JScrollPane scroller = new JScrollPane( cmd_textarea ); scroller.setAlignmentX( Component.CENTER_ALIGNMENT ); upper_panel.add( scroller ); upper_panel.add( Box.createVerticalStrut( 4 ) ); JPanel cmd_outfile_status_panel = new JPanel(); cmd_outfile_status_panel.setAlignmentX( Component.CENTER_ALIGNMENT ); cmd_outfile_status_panel.setLayout( new BoxLayout( cmd_outfile_status_panel, BoxLayout.X_AXIS ) ); JPanel cmd_outfile_size_panel = new JPanel(); cmd_outfile_size_panel.setAlignmentY( Component.CENTER_ALIGNMENT ); cmd_outfile_size_panel.setLayout( new BoxLayout( cmd_outfile_size_panel, BoxLayout.X_AXIS ) ); cmd_outfile_size_panel.setBorder( new TitledBorder( etched_border, " Output File Size ") ); cmd_outfile_size = new JTextField(); cmd_outfile_size.setEditable( false ); cmd_outfile_size_panel.add( cmd_outfile_size ); Routines.setShortJComponentSizes( cmd_outfile_size_panel, pfld_pref_sz ); cmd_outfile_status_panel.add( cmd_outfile_size_panel ); JPanel cmd_progress_panel = new JPanel(); cmd_progress_panel.setAlignmentY( Component.CENTER_ALIGNMENT ); cmd_progress_panel.setLayout( new BoxLayout( cmd_progress_panel, BoxLayout.X_AXIS ) ); cmd_progress_panel.setBorder( new TitledBorder( etched_border, " Output to Input Logfile Size Ratio " ) ); cmd_progress = new JProgressBar(); cmd_progress.setStringPainted( true ); cmd_progress_panel.add( cmd_progress ); Routines.setShortJComponentSizes( cmd_progress_panel, pbar_pref_sz ); cmd_outfile_status_panel.add( cmd_progress_panel ); upper_panel.add( cmd_outfile_status_panel ); row_pref_sz = new Dimension( 410, 27 ); lbl_pref_sz = new Dimension( 130, 25 ); fld_pref_sz = new Dimension( row_pref_sz.width - lbl_pref_sz.width, lbl_pref_sz.height ); JPanel lower_panel = new JPanel(); lower_panel.setAlignmentX( Component.CENTER_ALIGNMENT ); lower_panel.setLayout( new BoxLayout( lower_panel,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -