⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logfileoperations.java

📁 fortran并行计算包
💻 JAVA
字号:
/* *  (C) 2001 by Argonne National Laboratory *      See COPYRIGHT in top-level directory. *//* *  @author  Anthony Chan */package viewer.first;import java.awt.Window;import javax.swing.JTextField;import java.util.List;import java.io.File;import java.io.FileNotFoundException;import logformat.slog2.input.InputLog;import viewer.common.SwingWorker;import viewer.common.Dialogs;import viewer.common.TopWindow;import viewer.common.Parameters;import viewer.common.PreferenceFrame;import viewer.common.LogFileChooser;import viewer.convertor.ConvertorDialog;import viewer.legends.LegendFrame;import viewer.timelines.TimelineFrame;public class LogFileOperations{    private        LogFileChooser    file_chooser;    private        InputLog          slog_ins;    private        PreferenceFrame   pptys_frame;    private        LegendFrame       legend_frame;    private        TimelineFrame     timeline_frame;    public LogFileOperations( boolean isApplet )    {        file_chooser    = new LogFileChooser( isApplet );        slog_ins        = null;        legend_frame    = null;        timeline_frame  = null;    }    public void init()    {        /*  Initialization  */        Parameters.initSetupFile();        Parameters.readFromSetupFile( TopWindow.First.getWindow() );        Parameters.initStaticClasses();        pptys_frame     = new PreferenceFrame();        pptys_frame.setVisible( false );    }    private static InputLog createInputLog( Window window, String pathname )    {        String logname = pathname.trim();        if ( logname != null && logname.length() > 0 ) {            File logfile = new File( logname );            if ( ! logfile.exists() ) {                Dialogs.error( window,                               "File Not Found when initializing "                             + logname + "." );                return null;            }            if ( logfile.isDirectory() ) {                Dialogs.error( window,                               logname + " is a directory." );                return null;            }            if ( ! logfile.canRead() ) {                Dialogs.error( window,                               "File " + logname + " cannot be read." );                return null;            }            InputLog slog = null;            try {                slog = new InputLog( logname );            } catch ( NullPointerException nperr ) {                Dialogs.error( window,                               "NullPointerException when initializing "                             + logname + "!" );                return null;            } catch ( Exception err ) {                Dialogs.error( window,                               "EOFException when initializing "                             + logname + "!" );                return null;            }            return slog;        }        else {            if ( logname == null )                Dialogs.error( window, "Null pathname!" );            else // if ( logname.length() == 0 )                Dialogs.error( window, "pathname is empty!" );            return null;        }    }    /* This disposes all the windows and InputLog related resources. */    public void disposeLogFileAndResources()    {        if ( slog_ins != null ) {            TopWindow.Legend.disposeAll();            slog_ins.close();            slog_ins        = null;            legend_frame    = null;            timeline_frame  = null;        }    }    public String selectLogFile()    {        int   istat;        istat = file_chooser.showOpenDialog( TopWindow.First.getWindow() );        if ( istat == LogFileChooser.APPROVE_OPTION ) {            File   selected_file, selected_dir;            selected_file = file_chooser.getSelectedFile();            if ( selected_file != null ) {                selected_dir  = selected_file.getParentFile();                if ( selected_dir != null )                    file_chooser.setCurrentDirectory( selected_dir );                return selected_file.getPath();            }        }        else            Dialogs.info( TopWindow.First.getWindow(), "No file chosen", null );        return null;    }    public String convertLogFile( String filename )    {        return ConvertorDialog.convertLogFile( TopWindow.First.getWindow(),                                               file_chooser, filename );    }    /*        this.disposeLogFileAndResources() has to be called        before this.openLogFile() can be invoked.    */    public List openLogFile( JTextField  logname_txtfld )    {        String filename, new_filename, err_msg;        filename  = logname_txtfld.getText();        slog_ins  = LogFileOperations.createInputLog(                           TopWindow.First.getWindow(), filename );        if ( slog_ins == null ) {            Dialogs.error( TopWindow.First.getWindow(), "Null InputLog!" );            return null;        }        if ( ! slog_ins.isSLOG2() ) {            slog_ins = null;            if ( Dialogs.confirm( TopWindow.First.getWindow(),                                  filename + " is NOT a SLOG-2 file!\n"                                + "Do you want to convert it to SLOG-2 format "                                + "readable by this viewer?" ) ) {                new_filename = ConvertorDialog.convertLogFile(                                               TopWindow.First.getWindow(),                                               file_chooser, filename );                // Since ConvertorDialog can return null if ConvertorPanel's                // Cancel button is clicked, needs to check for null return.                // But don't check for new_filename.length()==0, so subsequent                // createInputLog() can emit a warning message for zero-length.                if ( new_filename != null ) {                    logname_txtfld.setText( new_filename );                    return openLogFile( logname_txtfld );                }                else                    return null;            }            else                return null;        }        err_msg   = null;        if ( (err_msg = slog_ins.getCompatibleHeader() ) != null ) {            if ( ! Dialogs.confirm( TopWindow.First.getWindow(),                             err_msg                          + "Check the following version history "                          + "for compatibility.\n\n"                          + logformat.slog2.Const.VERSION_HISTORY + "\n"                          + "Do you still want to continue reading "                          + "the logfile ?" ) ) {                slog_ins = null;                return null;            }        }        slog_ins.initialize();        legend_frame = new LegendFrame( slog_ins );        legend_frame.pack();        TopWindow.layoutIdealLocations();        legend_frame.setVisible( true );        return (List) slog_ins.getLineIDMapList();    }    /*    public void createTimelineWindow( int view_ID )    {        if ( slog_ins != null && view_ID >= 0 ) {            timeline_frame  = new TimelineFrame( slog_ins, view_ID );            timeline_frame.pack();            TopWindow.layoutIdealLocations();            timeline_frame.setVisible( true );            timeline_frame.init();        }    }    */    /*  The following works as if no thread is used!    public void createTimelineWindow( final int view_ID )    {        if ( slog_ins != null && view_ID >= 0 ) {            Runnable create_timeline_thread = new Runnable() {                public void run()                {                    timeline_frame  = new TimelineFrame( slog_ins, view_ID );                    timeline_frame.pack();                    TopWindow.layoutIdealLocations();                    timeline_frame.setVisible( true );                    timeline_frame.init();                }            };            SwingUtilities.invokeLater( create_timeline_thread );        }    }    */    public void createTimelineWindow( final int view_ID )    {        if ( slog_ins != null && view_ID >= 0 ) {            SwingWorker create_timeline_worker = new SwingWorker() {                public Object construct()                {                    timeline_frame = new TimelineFrame( slog_ins, view_ID );                    return null;  // returned value is not needed                }                public void finished()                {                    timeline_frame.pack();                    TopWindow.layoutIdealLocations();                    timeline_frame.setVisible( true );                    timeline_frame.init();                }            };            create_timeline_worker.start();        }    }    public void showLegendWindow()    {        if ( slog_ins != null && legend_frame != null ) {            legend_frame.pack();            TopWindow.layoutIdealLocations();            legend_frame.setVisible( true );        }    }    public void showPreferenceWindow()    {        if ( pptys_frame != null ) {            pptys_frame.pack();            TopWindow.layoutIdealLocations();            pptys_frame.setVisible( true );            pptys_frame.toFront();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -