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

📄 timelinepanel.java

📁 fortran并行计算包
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* *  (C) 2001 by Argonne National Laboratory *      See COPYRIGHT in top-level directory. *//* *  @author  Anthony Chan */package viewer.timelines;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.event.*;import base.drawable.Drawable;import base.drawable.Method;import logformat.slog2.LineIDMapList;import logformat.slog2.LineIDMap;import logformat.slog2.input.InputLog;import logformat.slog2.input.TreeTrunk;import logformat.slog2.input.TreeNode;import viewer.common.Const;import viewer.common.Dialogs;import viewer.zoomable.Debug;import viewer.zoomable.ModelTime;import viewer.zoomable.YaxisMaps;import viewer.zoomable.YaxisTree;import viewer.zoomable.ScrollbarTime;import viewer.zoomable.ModelTimePanel;import viewer.zoomable.RulerTime;import viewer.zoomable.ViewportTime;import viewer.zoomable.ViewportTimeYaxis;import viewer.zoomable.ViewportTimePanel;import viewer.zoomable.RowAdjustments;public class TimelinePanel extends JPanel{    private Window                  root_window;    private InputLog                slog_ins;    private TreeTrunk               treetrunk;    private TreeNode                treeroot;    private TimelineToolBar         toolbar;    private TreeTrunkPanel          treetrunk_panel;    private BoundedRangeModel       y_model;    private YaxisMaps               y_maps;    private YaxisTree               y_tree;    private Method[]                methods;    private JScrollPane             y_scroller;    private JScrollBar              y_scrollbar;    private ModelTime               time_model;    private ScrollbarTime           time_scrollbar;    private ModelTimePanel          time_display_panel;    private RulerTime               time_ruler;    private ViewportTime            time_ruler_vport;    private ViewportTimePanel       time_ruler_panel;    private CanvasTimeline          time_canvas;    private ViewportTimeYaxis       time_canvas_vport;    private ViewportTimePanel       time_canvas_panel;    private PreviewStateComboBox    preview_state_combobox;    private RowAdjustments          row_adjs;    private String                  err_msg;    public TimelinePanel( final Window    parent_window,                          final InputLog  in_slog,                                int       view_ID )    {        super();        root_window  = parent_window;        slog_ins     = in_slog;        /*        System.out.println( "ScrollBar.MinThumbSize = "                          + UIManager.get( "ScrollBar.minimumThumbSize" ) );        System.out.println( "ScrollBar.MaxThumbSize = "                          + UIManager.get( "ScrollBar.maximumThumbSize" ) );        */        Dimension sb_minThumbSz = (Dimension)                                  UIManager.get( "ScrollBar.minimumThumbSize" );        sb_minThumbSz.width = 4;        UIManager.put( "ScrollBar.minimumThumbSize", sb_minThumbSz );        /* Initialize the YaxisMaps through the initialization of YaxisTree */        LineIDMapList lineIDmaps = slog_ins.getLineIDMapList();        LineIDMap     lineIDmap  = (LineIDMap) lineIDmaps.get( view_ID );        String[]      y_colnames = lineIDmap.getColumnLabels();        y_maps      = new YaxisMaps( lineIDmap );        y_tree      = new YaxisTree( y_maps.getTreeRoot() );        y_maps.setTreeView( y_tree );                       /* done YaxisMaps initialization */        methods     = lineIDmap.getMethods();        /*           y_scroller for y_tree needs to be created before time_canvas, so           y_model can be extracted to be used for the creation of time_canvas        */        y_scroller  = new JScrollPane( y_tree,                           ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,                          ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS );        y_scrollbar = y_scroller.getVerticalScrollBar();        y_model     = y_scrollbar.getModel();        /* Initialize the ModelTime slog.input.InputLog().getTreeRoot() */        treetrunk     = new TreeTrunk( slog_ins,                                       Drawable.INCRE_STARTTIME_ORDER );        treetrunk.initFromTreeTop();        treeroot      = treetrunk.getTreeRoot();        time_model    = new ModelTime( root_window,                                       treeroot.getEarliestTime(),                                        treeroot.getLatestTime() );        time_model.setTimeZoomFactor( treetrunk.getTimeZoomFactor() );        System.out.println( "slog_ins.tZoomFtr = "                          + time_model.getTimeZoomFactor() );        this.setLayout( new BorderLayout() );            /* Setting up the CENTER panel to store various time-related GUIs */            JPanel center_panel = new JPanel();            center_panel.setLayout( new BoxLayout( center_panel,                                                   BoxLayout.Y_AXIS ) );                /* The Time Ruler */                time_ruler        = new RulerTime( time_model );                time_ruler_vport  = new ViewportTime( time_model );                time_ruler_vport.setView( time_ruler );                time_ruler_panel  = new ViewportTimePanel( time_ruler_vport );                time_ruler_panel.setBorderTitle( " Time (seconds) ",                                                 TitledBorder.RIGHT,                                                 TitledBorder.BOTTOM,                                                 Const.FONT, Color.red );                 time_ruler_vport.initLeftMouseToZoom( false );                /*                   Propagation of AdjustmentEvent originating from scroller:                   scroller -----> time_model -----> viewport -----> view                             adj               time           paint                   viewport is between time_model and view because                   viewport is what user sees.                  */                time_model.addTimeListener( time_ruler_vport );                /*                   Since there is NOT a specific ViewportTime/ViewTimePanel                   for RulerTime, so we need to set PreferredSize of RulerTime                   here.  Since CanvasTimeline's has its MaximumSize set to MAX,                   CanvasTimeline's ViewportTimePanel will become space hungary.                   As we want RulerTime to be fixed height during resize                   of the top level window, So it becomes CRUCIAL to set                    Preferred Height of RulerTime's ViewportTimePanel equal                   to its Minimum Height and Maximum Height.                */                Insets   ruler_panel_insets = time_ruler_panel.getInsets();                int      ruler_panel_height = ruler_panel_insets.top                                            + time_ruler.getJComponentHeight()                                            + ruler_panel_insets.bottom;                time_ruler_panel.setPreferredSize(                     new Dimension( 100, ruler_panel_height ) );                /* The TimeLine Canvas */                time_canvas       = new CanvasTimeline( time_model, treetrunk,                                                        y_model, y_maps,                                                        y_colnames, methods );                time_canvas_vport = new ViewportTimeYaxis( time_model,                                                           y_model, y_tree );                time_canvas_vport.setView( time_canvas );                time_canvas_panel = new ViewportTimePanel( time_canvas_vport );                time_canvas_panel.setBorderTitle( " TimeLines ",                                                  TitledBorder.RIGHT,                                                  TitledBorder.TOP,                                                  null, Color.blue );                time_canvas_vport.initLeftMouseToZoom( true );                /* Inform "time_canvas_vport" time has been changed */                time_model.addTimeListener( time_canvas_vport );                /* The View's Time Display Panel */                time_display_panel = new ModelTimePanel( time_model );                time_model.setParamDisplay( time_display_panel );                time_display_panel.addViewportTime( time_ruler_vport );                time_display_panel.addViewportTime( time_canvas_vport );                JPanel canvas_lmouse;                canvas_lmouse = time_canvas_vport.createLeftMouseModePanel(                                                            BoxLayout.X_AXIS );                canvas_lmouse.setToolTipText(                "Operation for left mouse button click on Timeline canvas" );                time_display_panel.add( canvas_lmouse );                /* The Horizontal "Time" ScrollBar */                time_scrollbar = new ScrollbarTime( time_model );                time_scrollbar.setEnabled( true );                time_model.setScrollBar( time_scrollbar );            center_panel.add( time_display_panel );            center_panel.add( time_canvas_panel );            center_panel.add( time_scrollbar );            center_panel.add( time_ruler_panel );            /* Setting up the LEFT panel to store various Y-axis related GUIs */            JPanel left_panel = new JPanel();            left_panel.setLayout( new BoxLayout( left_panel,                                                 BoxLayout.Y_AXIS ) );

⌨️ 快捷键说明

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