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

📄 viewporttime.java

📁 fortran并行计算包
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                            toolbar.resetZoomButtons();                    }                    else                        this.repaint();                }            }            super.requestFocus();        }        /*             mouse_press_time is a temporary variable among            mousePressed(), mouseDragged() & mouseReleased()        */        private double                    mouse_pressed_time;        private int                       mouse_pressed_Xloc;        private int                       mouse_last_Xloc;        private boolean                   hasControlKeyBeenPressed = false;         public void mousePressed( MouseEvent mouse_evt )        {            Point  vport_click;            double click_time;            // Ignore all mouse events when Control or Escape key is pressed            if ( mouse_evt.isControlDown() ) {                hasControlKeyBeenPressed  = true;                return;            }            vport_timebox.setEarliestTime( time_model.getTimeViewPosition() );            vport_timebox.setLatestFromEarliest(                          time_model.getTimeViewExtent() );            coord_xform.resetTimeBounds( vport_timebox );            vport_click = mouse_evt.getPoint();            click_time  = coord_xform.convertPixelToTime( vport_click.x );            if ( SwingUtilities.isLeftMouseButton( mouse_evt ) ) {                if ( isLeftMouseClick4Zoom ) {  // Zoom Mode                    zoom_timebox = new TimeBoundingBox();                    zoom_timebox.setZeroDuration( click_time );                    this.repaint();                    super.setCursor( CustomCursor.ZoomPlus );                }                else  // Hand Mode                    super.setCursor( CustomCursor.HandClose );            }            else if ( SwingUtilities.isRightMouseButton( mouse_evt ) ) {                info_timebox = new TimeBoundingBox();                info_timebox.setZeroDuration( click_time );                this.repaint();            }            mouse_pressed_time = click_time;            mouse_pressed_Xloc = vport_click.x;            mouse_last_Xloc    = vport_click.x;        }        public void mouseDragged( MouseEvent mouse_evt )        {            Point  vport_click;            double click_time;            double focus_time;            // Ignore all mouse events when Control key is pressed            if ( mouse_evt.isControlDown() || hasControlKeyBeenPressed ) {                hasControlKeyBeenPressed  = true;                return;            }            if ( mouse_evt.isShiftDown() )                if ( super.getCursor() == CustomCursor.ZoomMinus )                    super.setCursor( CustomCursor.ZoomPlus );            vport_click = mouse_evt.getPoint();            click_time  = coord_xform.convertPixelToTime( vport_click.x );            if ( SwingUtilities.isLeftMouseButton( mouse_evt ) ) {                if ( isLeftMouseClick4Zoom ) {  // Zoom Mode                    if ( zoom_timebox != null ) {                         // i.e., Zoom has NOT been cancelled yet                        if ( click_time > mouse_pressed_time )                            zoom_timebox.setLatestTime( click_time );                        else                            zoom_timebox.setEarliestTime( click_time );                        this.repaint();                        // super.setCursor( CustomCursor.ZoomPlus );                    }                }                else {  // Hand Mode                    if ( vport_click.x != mouse_last_Xloc ) {                        time_model.scroll( mouse_last_Xloc - vport_click.x );                        mouse_last_Xloc = vport_click.x;                        super.setCursor( CustomCursor.HandClose );                    }                }            }            else if ( SwingUtilities.isRightMouseButton( mouse_evt ) ) {                if ( click_time > mouse_pressed_time )                    info_timebox.setLatestTime( click_time );                else                    info_timebox.setEarliestTime( click_time );                this.repaint();            }        }        public void mouseReleased( MouseEvent mouse_evt )        {            ScrollableObject  scrollable;            InfoDialog        info_popup;            Window            window;            Point             vport_click, view_click, global_click;            double            click_time, focus_time;            // Ignore all mouse events when Control key is pressed            if ( mouse_evt.isControlDown() || hasControlKeyBeenPressed ) {                hasControlKeyBeenPressed  = false;                return;            }            vport_click = mouse_evt.getPoint();            click_time  = coord_xform.convertPixelToTime( vport_click.x );            if ( SwingUtilities.isLeftMouseButton( mouse_evt ) ) {                if ( isLeftMouseClick4Zoom ) {  // Zoom Mode                    if ( zoom_timebox != null ) {                        // i.e., Zoom has NOT been cancelled yet                        if ( click_time > mouse_pressed_time )                            zoom_timebox.setLatestTime( click_time );                        else                            zoom_timebox.setEarliestTime( click_time );                        this.repaint();                        // if ( zoom_timebox.getDuration() > 0.0d ) {                        if (    Math.abs(vport_click.x - mouse_pressed_Xloc)                             >= Parameters.MIN_WIDTH_TO_DRAG ) {                            time_model.zoomRapidly(                                       zoom_timebox.getEarliestTime(),                                       zoom_timebox.getDuration() );                            focus_time = ( zoom_timebox.getEarliestTime()                                         + zoom_timebox.getLatestTime()                                         ) / 2.0d;                            time_model.setTimeZoomFocus( focus_time );                        }                        zoom_timebox = null;                        this.repaint();                        super.setCursor( CustomCursor.ZoomPlus );                        if ( toolbar != null )                            toolbar.resetZoomButtons();                    }                }                else {  // Hand Mode                    if ( vport_click.x != mouse_last_Xloc ) {                        time_model.scroll( mouse_last_Xloc - vport_click.x );                        mouse_last_Xloc = vport_click.x;                    }                    super.setCursor( CustomCursor.HandOpen );                }            }            else if ( SwingUtilities.isRightMouseButton( mouse_evt ) ) {                if ( click_time > mouse_pressed_time )                    info_timebox.setLatestTime( click_time );                else                    info_timebox.setEarliestTime( click_time );                scrollable = (ScrollableObject) view_img;                // if ( info_timebox.getDuration() > 0.0d ) {                if (    Math.abs(vport_click.x - mouse_pressed_Xloc)                     >= Parameters.MIN_WIDTH_TO_DRAG ) {                    window = SwingUtilities.windowForComponent( this );                    if ( window instanceof Frame )                        info_popup = new InfoDialogForDuration( (Frame) window,                                                                info_timebox,                                                                scrollable );                    else // if ( window instanceof Dialog )                        info_popup = new InfoDialogForDuration( (Dialog) window,                                                                info_timebox,                                                                scrollable );                }                else {                    view_click = SwingUtilities.convertPoint( this,                                                              vport_click,                                                              scrollable );                    info_popup = scrollable.getPropertyAt( view_click,                                                           vport_timebox );                }                global_click = new Point( vport_click );                SwingUtilities.convertPointToScreen( global_click, this );                info_popup.setVisibleAtLocation( global_click );                info_popup.getCloseButton().addActionListener(                                             info_action_listener );                info_popup.addWindowListener( info_window_listener );                info_dialogs.add( info_popup );                info_timebox = null;  // remove to avoid redundant drawing                this.repaint();            }        }        /*            Interface to fulfill KeyListener()        */        public void keyTyped( KeyEvent evt ) {}        public void keyReleased( KeyEvent evt )        {            if ( evt.getKeyCode() == KeyEvent.VK_SHIFT ) {                if ( super.getCursor() == CustomCursor.ZoomMinus )                    super.setCursor( CustomCursor.ZoomPlus );            }        }        public void keyPressed( KeyEvent evt )        {            if ( evt.getKeyCode() == KeyEvent.VK_SHIFT ) {                if ( super.getCursor() == CustomCursor.ZoomPlus )                    super.setCursor( CustomCursor.ZoomMinus );            }            else if ( evt.getKeyCode() == KeyEvent.VK_ESCAPE ) {                if ( zoom_timebox != null ) {                    zoom_timebox = null;                    this.repaint();                }            }        }    public void resetToolBarZoomButtons()    {        if ( toolbar != null )            toolbar.resetZoomButtons();    }    protected InfoDialog getLastInfoDialog()    {        int info_dialogs_size = info_dialogs.size();        if ( info_dialogs_size > 0 )            return (InfoDialog) info_dialogs.get( info_dialogs_size - 1 );        else            return null;    }    private class InfoDialogActionListener implements ActionListener    {        private ViewportTime  viewport;        private List          info_dialogs;        public InfoDialogActionListener( ViewportTime vport, List dialogs )        {            viewport      = vport;            info_dialogs  = dialogs;        }                public void actionPerformed( ActionEvent evt )        {            InfoDialog  info_popup;            Object      evt_src = evt.getSource();            Iterator itr = info_dialogs.iterator();            while ( itr.hasNext() ) {                info_popup = (InfoDialog) itr.next();                if ( evt_src == info_popup.getCloseButton() ) {                    info_dialogs.remove( info_popup );                    info_popup.dispose();                    viewport.repaint();                    break;                }            }        }    }   // InfoDialogActionListener    private class InfoDialogWindowListener extends WindowAdapter    {        private ViewportTime  viewport;        private List          info_dialogs;        public InfoDialogWindowListener( ViewportTime vport, List dialogs )        {            viewport      = vport;            info_dialogs  = dialogs;        }        public void windowClosing( WindowEvent evt )        {            InfoDialog  info_popup;            Object      evt_src = evt.getSource();            Iterator itr = info_dialogs.iterator();            while ( itr.hasNext() ) {                info_popup = (InfoDialog) itr.next();                if ( evt_src == info_popup ) {                    info_dialogs.remove( info_popup );                    info_popup.dispose();                    viewport.repaint();                    break;                }            }        }    }   // Class InfoDialogWindowListener}

⌨️ 快捷键说明

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