View Javadoc

1   /* OpenLogViewer
2    *
3    * Copyright 2011
4    *
5    * This file is part of the OpenLogViewer project.
6    *
7    * OpenLogViewer software is free software: you can redistribute it and/or modify
8    * it under the terms of the GNU General Public License as published by
9    * the Free Software Foundation, either version 3 of the License, or
10   * (at your option) any later version.
11   *
12   * OpenLogViewer software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Public License for more details.
16   *
17   * You should have received a copy of the GNU General Public License
18   * along with any OpenLogViewer software.  If not, see http://www.gnu.org/licenses/
19   *
20   * I ask that if you make any changes to this file you fork the code on github.com!
21   *
22   */
23  
24  package org.diyefi.openlogviewer;
25  
26  import java.awt.Dimension;
27  import java.awt.FlowLayout;
28  import java.awt.event.MouseAdapter;
29  import java.awt.event.MouseEvent;
30  
31  import javax.swing.ImageIcon;
32  import javax.swing.JButton;
33  import javax.swing.JPanel;
34  
35  /**
36   *
37   * @author Bryan
38   */
39  public class PlayBarPanel extends JPanel {
40  
41  	/**
42       * Default JPanel constructor initializing the playbar buttons
43       */
44      public PlayBarPanel() {
45          super();
46          zoomInButton = new JButton();
47          zoomOutButton = new JButton();
48          slowDownButton = new JButton();
49          playButton = new JButton();
50          pauseButton = new JButton();
51          stopButton = new JButton();
52          fastForwardButton = new JButton();
53          ejectButton = new JButton();
54          initComponents();
55      }
56      /**
57       * Method to control and setup the components of the playbar
58       */
59      private void initComponents() {
60          this.setName("this"); // NOI18N
61          this.setPreferredSize(new Dimension(857, 40));
62          this.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0));
63          
64          zoomInButton.setIcon(new ImageIcon(getClass().getResource("Playbar_+.png"))); // NOI18N
65          zoomInButton.setAlignmentY(0.0F);
66          zoomInButton.setBorder(null);
67          zoomInButton.setBorderPainted(false);
68          zoomInButton.setContentAreaFilled(false);
69          zoomInButton.setName("zoomInButton"); // NOI18N
70          zoomInButton.setRequestFocusEnabled(false);
71          zoomInButton.addMouseListener(new MouseAdapter() {
72              @Override
73              public void mouseReleased(MouseEvent e) {
74                  zoomInButtonMouseReleased(e);
75              }
76          });
77          this.add(zoomInButton);
78  
79          zoomOutButton.setIcon(new ImageIcon(getClass().getResource("Playbar_-.png"))); // NOI18N
80          zoomOutButton.setAlignmentY(0.0F);
81          zoomOutButton.setBorder(null);
82          zoomOutButton.setBorderPainted(false);
83          zoomOutButton.setContentAreaFilled(false);
84          zoomOutButton.setName("zoomOutButton"); // NOI18N
85          zoomOutButton.setRequestFocusEnabled(false);
86          zoomOutButton.addMouseListener(new MouseAdapter() {
87              @Override
88              public void mouseReleased(MouseEvent e) {
89                  zoomOutButtonMouseReleased(e);
90              }
91          });
92          this.add(zoomOutButton);
93  
94          slowDownButton.setIcon(new ImageIcon(getClass().getResource("Playbar_01.png"))); // NOI18N
95          slowDownButton.setAlignmentY(0.0F);
96          slowDownButton.setBorder(null);
97          slowDownButton.setBorderPainted(false);
98          slowDownButton.setContentAreaFilled(false);
99          slowDownButton.setName("slowDownButton"); // NOI18N
100         slowDownButton.setRequestFocusEnabled(false);
101         slowDownButton.addMouseListener(new MouseAdapter() {
102             @Override
103             public void mouseReleased(MouseEvent e) {
104                 reverseButtonMouseReleased(e);
105             }
106         });
107         this.add(slowDownButton);
108 
109         playButton.setIcon(new ImageIcon(getClass().getResource("Playbar_02.png"))); // NOI18N
110         playButton.setAlignmentY(0.0F);
111         playButton.setBorder(null);
112         playButton.setBorderPainted(false);
113         playButton.setContentAreaFilled(false);
114         playButton.setName("playButton"); // NOI18N
115         playButton.setRequestFocusEnabled(false);
116         playButton.addMouseListener(new MouseAdapter() {
117             @Override
118             public void mouseReleased(MouseEvent e) {
119                 playButtonMouseReleased(e);
120             }
121         });
122         this.add(playButton);
123 
124         pauseButton.setIcon(new ImageIcon(getClass().getResource("Playbar_03.png"))); // NOI18N
125         pauseButton.setAlignmentY(0.0F);
126         pauseButton.setBorder(null);
127         pauseButton.setBorderPainted(false);
128         pauseButton.setContentAreaFilled(false);
129         pauseButton.setName("pauseButton"); // NOI18N
130         pauseButton.setRequestFocusEnabled(false);
131         pauseButton.addMouseListener(new MouseAdapter() {
132             @Override
133             public void mouseReleased(MouseEvent e) {
134                 pauseButtonMouseReleased(e);
135             }
136         });
137         this.add(pauseButton);
138 
139         stopButton.setIcon(new ImageIcon(getClass().getResource("Playbar_04.png"))); // NOI18N
140         stopButton.setAlignmentY(0.0F);
141         stopButton.setBorder(null);
142         stopButton.setBorderPainted(false);
143         stopButton.setContentAreaFilled(false);
144         stopButton.setName("stopButton"); // NOI18N
145         stopButton.setRequestFocusEnabled(false);
146         stopButton.addMouseListener(new MouseAdapter() {
147             @Override
148             public void mouseReleased(MouseEvent e) {
149                 stopButtonMouseReleased(e);
150             }
151         });
152         this.add(stopButton);
153 
154         fastForwardButton.setIcon(new ImageIcon(getClass().getResource("Playbar_05.png"))); // NOI18N
155         fastForwardButton.setAlignmentY(0.0F);
156         fastForwardButton.setBorder(null);
157         fastForwardButton.setBorderPainted(false);
158         fastForwardButton.setContentAreaFilled(false);
159         fastForwardButton.setName("fastForwardButton"); // NOI18N
160         fastForwardButton.setRequestFocusEnabled(false);
161         fastForwardButton.addMouseListener(new MouseAdapter() {
162             @Override
163             public void mouseReleased(MouseEvent e) {
164                 fastForwardButtonMouseReleased(e);
165             }
166         });
167         this.add(fastForwardButton);
168 
169         ejectButton.setIcon(new ImageIcon(getClass().getResource("Playbar_06.png"))); // NOI18N
170         ejectButton.setAlignmentY(0.0F);
171         ejectButton.setBorder(null);
172         ejectButton.setBorderPainted(false);
173         ejectButton.setContentAreaFilled(false);
174         ejectButton.setName("ejectButton"); // NOI18N
175         ejectButton.setRequestFocusEnabled(false);
176         ejectButton.addMouseListener(new MouseAdapter() {
177             @Override
178             public void mouseReleased(MouseEvent e) {
179                 ejectButtonMouseReleased(e);
180             }
181         });
182         this.add(ejectButton);
183     }
184     /**
185      * modifys the state of the PlayableLog zoom in 1 pixel up to 10 pixels
186      * @param evt
187      */
188     private void zoomInButtonMouseReleased(MouseEvent e){
189     	OpenLogViewerApp.getInstance().getEntireGraphingPanel().zoomIn();
190     }
191     /**
192      * modifys the state of the PlayableLog zoom in 1 pixel down to 1 pixel
193      * @param evt
194      */
195     private void zoomOutButtonMouseReleased(MouseEvent e){
196         OpenLogViewerApp.getInstance().getEntireGraphingPanel().zoomOut();
197     }
198     /**
199      * modifys the state of the PlayableLog to begin playing
200      * @param evt
201      */
202     private void playButtonMouseReleased(MouseEvent e) {
203         OpenLogViewerApp.getInstance().getEntireGraphingPanel().play();
204         OpenLogViewerApp.getInstance().getEntireGraphingPanel();
205     }
206     /**
207      * Modifys the state of the PlayableLog to pause
208      * @param evt
209      */
210     private void pauseButtonMouseReleased(MouseEvent e) {
211         OpenLogViewerApp.getInstance().getEntireGraphingPanel().pause();
212     }
213     /**
214      * Modifys the state of the PlayableLog to stop and reset to the beginning
215      * @param evt
216      */
217     private void stopButtonMouseReleased(MouseEvent e) {
218         OpenLogViewerApp.getInstance().getEntireGraphingPanel().stop();
219     }
220     /**
221      * Speeds up the play back speed of the PlayableLog
222      * @param evt
223      */
224     private void fastForwardButtonMouseReleased(MouseEvent e) {
225         OpenLogViewerApp.getInstance().getEntireGraphingPanel().fastForward();
226     }
227     /**
228      * Slows down the play back speed of the Playable Log
229      * @param evt
230      */
231     private void reverseButtonMouseReleased(MouseEvent e) {
232         OpenLogViewerApp.getInstance().getEntireGraphingPanel().slowDown();
233     }
234     /**
235      * Un-Implimented currently, future plans are to have this as an alternate to open a new log
236      * @param evt
237      */
238     private void ejectButtonMouseReleased(MouseEvent e) {
239         
240          //OpenLogViewerApp.openFile();
241          OpenLogViewerApp.getInstance().getEntireGraphingPanel().eject();
242     }
243    // private FreeEMSBin fems;
244     private JButton zoomInButton;
245     private JButton zoomOutButton;
246     private JButton playButton;
247     private JButton slowDownButton;
248     private JButton stopButton;
249     private JButton ejectButton;
250     private JButton fastForwardButton;
251     private JButton pauseButton;
252 	private static final long serialVersionUID = 1294732662423188903L;
253 }