1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  package org.xnap.plugin.viewer.jmfplayer;
34  
35  import java.awt.Color;
36  import java.io.File;
37  
38  import javax.swing.JLabel;
39  import javax.swing.JPanel;
40  
41  import org.xnap.XNap;
42  import org.xnap.gui.XNapFrame;
43  import org.xnap.gui.util.IconHelper;
44  
45  
46  
47  
48  
49  
50  
51  public class JMFPlayerPanel extends JPanel {
52      
53      /*** Creates new form KazaamMediaPreview */
54      public JMFPlayerPanel() 
55      {
56          initComponents();
57      }
58  
59      /*** This method is called from within the constructor to
60       * initialize the form.
61       * WARNING: Do NOT modify this code. The content of this method is
62       * always regenerated by the Form Editor.
63       */
64      private void initComponents() {
65          PlayerToolbar = new javax.swing.JToolBar();
66          JButtonStop = new javax.swing.JButton();
67          JButtonFullScreenMode = new javax.swing.JButton();
68          RepeatPlaybackCheckbox = new javax.swing.JCheckBox();
69          ContentArea = new javax.swing.JPanel();
70          addHierarchyBoundsListener(new java.awt.event.HierarchyBoundsListener() {
71  				public void ancestorMoved(java.awt.event.HierarchyEvent evt) {
72  				}
73  				public void ancestorResized(java.awt.event.HierarchyEvent evt) {
74  					formAncestorResized(evt);
75  				}
76  			});
77  		setToolTipText("Media Preview");
78          setLayout(new java.awt.BorderLayout());
79  
80  
81  		JButtonStop.setIcon(IconHelper.getToolBarIcon("noatunstop.png"));
82          JButtonStop.setToolTipText(XNap.tr("Stop Media Playback"));
83          JButtonStop.setBorderPainted(false);
84          JButtonStop.setMargin(new java.awt.Insets(0, 0, 0, 0));
85  		JButtonStop.setEnabled(false);
86          JButtonStop.addActionListener(new java.awt.event.ActionListener() 
87  			{
88  				public void actionPerformed(java.awt.event.ActionEvent evt)
89  				{
90  					JButtonStopActionPerformed(evt);
91  				}
92  			});
93          PlayerToolbar.add(JButtonStop);
94  
95  		JButtonFullScreenMode.setIcon(IconHelper.getToolBarIcon("fullscreen.png"));
96          JButtonFullScreenMode.setToolTipText(XNap.tr("Play Media in Full Screen Mode"));
97          JButtonFullScreenMode.setBorderPainted(false);
98          JButtonFullScreenMode.setMargin(new java.awt.Insets(0, 0, 0, 0));
99          JButtonFullScreenMode.addActionListener(new java.awt.event.ActionListener() 
100 			{
101 				public void actionPerformed(java.awt.event.ActionEvent evt)
102 				{
103 					JButtonFullScreenModeActionPerformed(evt);
104 				}
105 			});
106         PlayerToolbar.add(JButtonFullScreenMode);
107 
108 
109         RepeatPlaybackCheckbox.setText(XNap.tr("Continuous Playback"));
110         RepeatPlaybackCheckbox.setToolTipText(XNap.tr("Continuously Repeat Playback of the Media File"));
111         RepeatPlaybackCheckbox.setMargin(new java.awt.Insets(0, 0, 0, 0));
112         RepeatPlaybackCheckbox.setRolloverEnabled(true);
113         RepeatPlaybackCheckbox.addActionListener(new java.awt.event.ActionListener() 
114 			{
115 				public void actionPerformed(java.awt.event.ActionEvent evt) {
116 					RepeatPlaybackCheckboxActionPerformed(evt);
117 				}
118 			});
119         PlayerToolbar.add(RepeatPlaybackCheckbox);
120 
121         add(PlayerToolbar, java.awt.BorderLayout.SOUTH);
122 
123         ContentArea.setLayout(new java.awt.BorderLayout());
124 
125         ContentArea.setBackground(new java.awt.Color(0, 0, 0));
126         ContentArea.setForeground(new java.awt.Color(255, 255, 255));
127 		
128         ContentArea.add(new JLabel(), java.awt.BorderLayout.CENTER);
129 
130         add(ContentArea, java.awt.BorderLayout.CENTER);
131     }
132 
133    
134     private void RepeatPlaybackCheckboxActionPerformed(java.awt.event.ActionEvent evt) 
135 	{
136 		if(RepeatPlaybackCheckbox.isSelected()==true)
137 			{
138 				KazaamMediaPlayer.setLoopPlayback(true);
139 			}
140 		else if(RepeatPlaybackCheckbox.isSelected()==false)
141 			{
142 				KazaamMediaPlayer.setLoopPlayback(false);
143 			}
144 	
145     }
146 
147     public void setOpenFile(File theMediaFile)
148     {
149 		if(KazaamMediaPlayer.isStarted()==true)
150 			{
151 				stopPlayer();
152 			}
153         try
154 			{
155                 myPlayerPanel = new KazaamMediaPlayer();  
156                 
157                 myPlayerPanel.setBackground(Color.black);
158                 myPlayerPanel.setDoubleBuffered(true);
159                 add(myPlayerPanel,"Center");
160                 myPlayerPanel.setPlayFile(theMediaFile); 
161                 JButtonStop.setEnabled(true);
162 			}
163         catch(Exception e)
164 			{
165                 System.out.println(e);
166 			}
167 		
168     }
169     
170     private void JButtonStopActionPerformed(java.awt.event.ActionEvent evt) {
171 		
172 		try
173 			{
174 				stopPlayer();
175 			}
176 		catch(Exception e){}
177 
178 	}
179 	public void stopPlayer()
180 	{
181 		try
182 			{
183 				JButtonStop.setEnabled(false);
184 				myPlayerPanel.stop(); 
185 				remove(myPlayerPanel);
186 				myPlayerPanel=null;
187 				
188 			}
189 		catch(Exception e){}
190 	}
191     
192     private void JButtonPauseActionPerformed(java.awt.event.ActionEvent evt) {
193 		
194 		myPlayerPanel.pause(); 
195 	}
196 
197     
198     private void JButtonFullScreenModeActionPerformed(java.awt.event.ActionEvent evt) 
199 	{
200 		myPlayerPanel.setFullScreen(true, XNapFrame.getInstance());			
201 	}
202 
203     /*** Exit the Application */
204     private void exitForm(java.awt.event.WindowEvent evt) {
205         System.exit(0);
206     }
207         
208 	private void formAncestorResized(java.awt.event.HierarchyEvent evt) {
209 
210         
211     }
212    
213 
214 
215 
216 
217     
218     
219     private javax.swing.JButton JButtonFullScreenMode;
220     private javax.swing.JToolBar PlayerToolbar;
221     private javax.swing.JPanel ContentArea;
222     private javax.swing.JButton JButtonStop;
223     private javax.swing.JCheckBox RepeatPlaybackCheckbox;
224     private KazaamMediaPlayer myPlayerPanel;
225 
226     
227     
228 }