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

📄 modeltimepanel.java

📁 fortran并行计算包
💻 JAVA
字号:
/* *  (C) 2001 by Argonne National Laboratory *      See COPYRIGHT in top-level directory. *//* *  @author  Anthony Chan */package viewer.zoomable;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.List;import java.util.ArrayList;import java.net.URL;import java.awt.Window;import javax.swing.*;import viewer.common.Const;import viewer.common.Dialogs;import viewer.common.LabeledTextField;public class ModelTimePanel extends JPanel                            implements TimeListener{    private ModelTime         model = null;    private LabeledTextField  fld_iZoom_level;    private LabeledTextField  fld_tGlobal_min;    private LabeledTextField  fld_tGlobal_max;    private LabeledTextField  fld_tView_init;    private LabeledTextField  fld_tView_final;    private LabeledTextField  fld_tZoom_focus;    private LabeledTextField  fld_time_per_pixel;    private List              vport_list;    public ModelTimePanel( ModelTime model )    {        super();        this.model         = model;        setLayout( new BoxLayout( this, BoxLayout.X_AXIS ) );        vport_list         = new ArrayList();        fld_iZoom_level    = new LabeledTextField( "Zoom Level ",                                                   Const.INTEGER_FORMAT );        fld_iZoom_level.setEditable( false );        fld_iZoom_level.setHorizontalAlignment( JTextField.CENTER );        add( fld_iZoom_level ); // addSeparator();        fld_tGlobal_min    = new LabeledTextField( "Global Min Time",                                                   Const.PANEL_TIME_FORMAT );        fld_tGlobal_min.setEditable( false );        add( fld_tGlobal_min ); // addSeparator();        fld_tView_init     = new LabeledTextField( "View  Init Time",                                                   Const.PANEL_TIME_FORMAT );        fld_tView_init.setEditable( true );        add( fld_tView_init ); // addSeparator();        fld_tZoom_focus    = new LabeledTextField( "Zoom Focus Time",                                                   Const.PANEL_TIME_FORMAT );        fld_tZoom_focus.setEditable( true );        add( fld_tZoom_focus );        fld_tView_final    = new LabeledTextField( "View Final Time",                                                   Const.PANEL_TIME_FORMAT );        fld_tView_final.setEditable( true );        add( fld_tView_final ); // addSeparator();        fld_tGlobal_max    = new LabeledTextField( "Global Max Time",                                                   Const.PANEL_TIME_FORMAT );        fld_tGlobal_max.setEditable( false );        add( fld_tGlobal_max ); // addSeparator();        fld_time_per_pixel = new LabeledTextField( "Time Per Pixel",                                                   Const.PANEL_TIME_FORMAT );        fld_time_per_pixel.setEditable( true );        add( fld_time_per_pixel ); // addSeparator();        super.setBorder( BorderFactory.createEtchedBorder() );        // Set up ActionListeners        ActionListener time_focus_action, time_bounds_action, time_pixel_action;        time_focus_action = new TimeFocusActionListener( model, vport_list,                                                         fld_tZoom_focus );        fld_tZoom_focus.addActionListener( time_focus_action );        time_bounds_action = new TimeBoundsActionListener( model, vport_list,                                                           fld_tView_init,                                                           fld_tView_final );        fld_tView_init.addActionListener( time_bounds_action );        fld_tView_final.addActionListener( time_bounds_action );        time_pixel_action = new TimePixelActionListener( model, vport_list,                                                         fld_time_per_pixel );        fld_time_per_pixel.addActionListener( time_pixel_action );    }    public void addViewportTime( final ViewportTime  vport )    {        if ( vport != null )            vport_list.add( vport );    }    public void zoomLevelChanged()    {        fld_iZoom_level.setInteger( model.getZoomLevel() );    }    /*        timeChanged() is invoked by ModelTime's updateParamDisplay()    */    public void timeChanged( TimeEvent evt )    {        if ( Debug.isActive() )            Debug.println( "ModelTimePanel: timeChanged()'s START: " );        fld_tGlobal_min.setDouble( model.getTimeGlobalMinimum() );        fld_tView_init.setDouble( model.getTimeViewPosition() );        fld_tZoom_focus.setDouble( model.getTimeZoomFocus() );        fld_tView_final.setDouble( model.getTimeViewPosition()                                 + model.getTimeViewExtent() );        fld_tGlobal_max.setDouble( model.getTimeGlobalMaximum() );        fld_time_per_pixel.setDouble( 1.0d/model.getViewPixelsPerUnitTime() );        if ( Debug.isActive() )            Debug.println( "ModelTimePanel: timeChanged()'s END: " );    }    private class TimeFocusActionListener implements ActionListener    {          private ModelTime         time_model      = null;        private List              vport_list      = null;        private LabeledTextField  fld_tZoom_focus = null;        public TimeFocusActionListener( ModelTime model, List vports,                                        LabeledTextField field_tZoom_focus )        {            time_model      = model;            vport_list      = vports;            fld_tZoom_focus = field_tZoom_focus;        }        public void actionPerformed( ActionEvent evt )        {            Window  win;            double  tView_focus;            tView_focus = fld_tZoom_focus.getDouble();            if (    tView_focus < time_model.getTimeGlobalMinimum()                 || tView_focus > time_model.getTimeGlobalMaximum() ) {                 win = SwingUtilities.windowForComponent( ModelTimePanel.this );                Dialogs.error( win,                               "Zoom Focus Time is out of the range of the\n"                             + "Global Min/Max Times! Restore the old value." );                fld_tZoom_focus.setDouble( time_model.getTimeZoomFocus() );                return;            }            ViewportTime  vport;            time_model.setTimeZoomFocus( tView_focus );            for ( int idx = vport_list.size()-1; idx >=0; idx-- ) {                vport  = (ViewportTime) vport_list.get( idx );                vport.repaint();            }        }    }    private class TimeBoundsActionListener implements ActionListener    {          private ModelTime         time_model      = null;        private List              vport_list      = null;        private LabeledTextField  fld_tView_init  = null;        private LabeledTextField  fld_tView_final = null;        public TimeBoundsActionListener( ModelTime  model, List vports,                                         LabeledTextField field_tView_init,                                         LabeledTextField field_tView_final )        {            time_model       = model;            vport_list       = vports;            fld_tView_init   = field_tView_init;            fld_tView_final  = field_tView_final;         }        public void actionPerformed( ActionEvent evt )        {            Window  win;            double  tView_init, tView_final;            boolean isOK = true;            tView_init   = fld_tView_init.getDouble();            if (    tView_init < time_model.getTimeGlobalMinimum()                 || tView_init > time_model.getTimeGlobalMaximum() ) {                 win = SwingUtilities.windowForComponent( ModelTimePanel.this );                Dialogs.error( win,                               "View Init Time is out of the range of the\n"                             + "Global Min/Max Times! Restore the old value." );                fld_tView_init.setDouble( time_model.getTimeViewPosition() );                isOK = false;            }            tView_final  = fld_tView_final.getDouble();            if (    tView_final < time_model.getTimeGlobalMinimum()                 || tView_final > time_model.getTimeGlobalMaximum() ) {                win = SwingUtilities.windowForComponent( ModelTimePanel.this );                Dialogs.error( win,                               "View Final Time is out of the range of the\n"                             + "Global Min/Max Times! Restore the old value." );                fld_tView_final.setDouble( time_model.getTimeViewPosition()                                         + time_model.getTimeViewExtent() );                isOK = false;            }            if ( tView_init >= tView_final ) {                win = SwingUtilities.windowForComponent( ModelTimePanel.this );                Dialogs.error( win,                               "View Init Time is later or equal to\n"                             + "View Final Time!  Restore the old value." );                fld_tView_init.setDouble( time_model.getTimeViewPosition() );                fld_tView_final.setDouble( time_model.getTimeViewPosition()                                         + time_model.getTimeViewExtent() );                isOK = false;            }            if ( ! isOK )                return;            double  tView_extent, tView_focus;            tView_extent = tView_final - tView_init;            time_model.zoomRapidly( tView_init, tView_extent );            tView_focus  = ( tView_init + tView_final ) / 2.0d;             time_model.setTimeZoomFocus( tView_focus );            ViewportTime  vport;            for ( int idx = vport_list.size()-1; idx >=0; idx-- ) {                vport  = (ViewportTime) vport_list.get( idx );                vport.repaint();                vport.resetToolBarZoomButtons();            }        }    }    private class TimePixelActionListener implements ActionListener    {        private ModelTime         time_model      = null;        private List              vport_list      = null;        private LabeledTextField  fld_time_pixel  = null;        public TimePixelActionListener( ModelTime  model, List vports,                                        LabeledTextField field_time_pixel )        {            time_model       = model;            vport_list       = vports;            fld_time_pixel   = field_time_pixel;        }        public void actionPerformed( ActionEvent evt )        {            Window  win;            if ( fld_time_pixel.getDouble() <= 0.0d ) {                win = SwingUtilities.windowForComponent( ModelTimePanel.this );                Dialogs.error( win,                               "Time Per Pixel is less than or equal to 0.0!\n"                             + "Restore the old value." );                fld_time_pixel.setDouble(                               1.0d / time_model.getViewPixelsPerUnitTime() );                return;            }                        double   tView_init, tView_final, tView_extent, tView_focus;            tView_extent = time_model.computeTimeViewExtent(                                             fld_time_pixel.getDouble() );            tView_focus  = time_model.getTimeZoomFocus();            tView_init   = tView_focus - tView_extent / 2.0d;            time_model.zoomRapidly( tView_init, tView_extent );            ViewportTime  vport;            for ( int idx = vport_list.size()-1; idx >=0; idx-- ) {                vport  = (ViewportTime) vport_list.get( idx );                vport.repaint();                vport.resetToolBarZoomButtons();            }        }    }}

⌨️ 快捷键说明

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