xref: /AOO41X/main/avmedia/source/java/PlayerWindow.java (revision e357d40e15f361adee5a8c2a5199dfabaf4d2b4b)
1*e357d40eSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*e357d40eSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*e357d40eSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*e357d40eSAndrew Rist  * distributed with this work for additional information
6*e357d40eSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*e357d40eSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*e357d40eSAndrew Rist  * "License"); you may not use this file except in compliance
9*e357d40eSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*e357d40eSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*e357d40eSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*e357d40eSAndrew Rist  * software distributed under the License is distributed on an
15*e357d40eSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*e357d40eSAndrew Rist  * KIND, either express or implied.  See the License for the
17*e357d40eSAndrew Rist  * specific language governing permissions and limitations
18*e357d40eSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*e357d40eSAndrew Rist  *************************************************************/
21*e357d40eSAndrew Rist 
22*e357d40eSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
25cdf0e10cSrcweir import com.sun.star.uno.XComponentContext;
26cdf0e10cSrcweir import com.sun.star.uno.AnyConverter;
27cdf0e10cSrcweir import com.sun.star.uno.IQueryInterface;
28cdf0e10cSrcweir import com.sun.star.lang.XInitialization;
29cdf0e10cSrcweir import com.sun.star.lang.XEventListener;
30cdf0e10cSrcweir import com.sun.star.awt.*;
31cdf0e10cSrcweir import com.sun.star.media.*;
32cdf0e10cSrcweir 
33cdf0e10cSrcweir // -----------------
34cdf0e10cSrcweir // - Player Window -
35cdf0e10cSrcweir // -----------------
36cdf0e10cSrcweir 
37cdf0e10cSrcweir public class PlayerWindow implements java.awt.event.KeyListener,
38cdf0e10cSrcweir                                      java.awt.event.MouseListener,
39cdf0e10cSrcweir                                      java.awt.event.MouseMotionListener,
40cdf0e10cSrcweir                                      java.awt.event.FocusListener,
41cdf0e10cSrcweir                                      com.sun.star.lang.XServiceInfo,
42cdf0e10cSrcweir                                      com.sun.star.media.XPlayerWindow
43cdf0e10cSrcweir {
44cdf0e10cSrcweir     private com.sun.star.lang.XMultiServiceFactory maFactory;
45cdf0e10cSrcweir     private WindowAdapter maFrame;
46cdf0e10cSrcweir     private javax.media.Player maPlayer;
47cdf0e10cSrcweir     private com.sun.star.media.ZoomLevel meZoomLevel = com.sun.star.media.ZoomLevel.ORIGINAL;
48cdf0e10cSrcweir     private boolean mbShowControls = false;
49cdf0e10cSrcweir 
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     // -------------------------------------------------------------------------
52cdf0e10cSrcweir 
PlayerWindow( com.sun.star.lang.XMultiServiceFactory aFactory, java.lang.Object[] aArgs, javax.media.Player aPlayer )53cdf0e10cSrcweir     public PlayerWindow( com.sun.star.lang.XMultiServiceFactory aFactory,
54cdf0e10cSrcweir                          java.lang.Object[] aArgs, javax.media.Player aPlayer )
55cdf0e10cSrcweir     {
56cdf0e10cSrcweir         maFactory = aFactory;
57cdf0e10cSrcweir 
58cdf0e10cSrcweir         try
59cdf0e10cSrcweir         {
60cdf0e10cSrcweir             if( aArgs.length > 1 )
61cdf0e10cSrcweir             {
62cdf0e10cSrcweir                 com.sun.star.awt.Rectangle aBoundRect = (com.sun.star.awt.Rectangle) aArgs[ 1 ];
63cdf0e10cSrcweir 
64cdf0e10cSrcweir                 maFrame = new WindowAdapter( AnyConverter.toInt( aArgs[ 0 ] ) );
65cdf0e10cSrcweir                 maFrame.setPosSize( aBoundRect.X, aBoundRect.Y, aBoundRect.Width, aBoundRect.Height, (short) 0 );
66cdf0e10cSrcweir                 mbShowControls = false;
67cdf0e10cSrcweir 
68cdf0e10cSrcweir                 java.awt.Panel aPanel = new java.awt.Panel( new java.awt.BorderLayout() );
69cdf0e10cSrcweir 
70cdf0e10cSrcweir                 aPanel.setLayout( null );
71cdf0e10cSrcweir                 aPanel.setBackground( java.awt.Color.black );
72cdf0e10cSrcweir                 aPanel.addKeyListener( this );
73cdf0e10cSrcweir                 aPanel.addMouseListener( this );
74cdf0e10cSrcweir                 aPanel.addMouseMotionListener( this );
75cdf0e10cSrcweir 
76cdf0e10cSrcweir                 if( mbShowControls )
77cdf0e10cSrcweir                 {
78cdf0e10cSrcweir                     java.awt.Component aControlComponent = aPlayer.getControlPanelComponent();
79cdf0e10cSrcweir 
80cdf0e10cSrcweir                     if( aControlComponent != null )
81cdf0e10cSrcweir                         aPanel.add( aControlComponent );
82cdf0e10cSrcweir                     else
83cdf0e10cSrcweir                         mbShowControls = false;
84cdf0e10cSrcweir                 }
85cdf0e10cSrcweir 
86cdf0e10cSrcweir                 java.awt.Component aVisualComponent = aPlayer.getVisualComponent();
87cdf0e10cSrcweir 
88cdf0e10cSrcweir                 if( aVisualComponent != null )
89cdf0e10cSrcweir                 {
90cdf0e10cSrcweir                     aVisualComponent.addKeyListener( this );
91cdf0e10cSrcweir                     aVisualComponent.addMouseListener( this );
92cdf0e10cSrcweir                     aVisualComponent.addMouseMotionListener( this );
93cdf0e10cSrcweir                     aVisualComponent.addFocusListener( this );
94cdf0e10cSrcweir                     aPanel.add( aVisualComponent );
95cdf0e10cSrcweir                 }
96cdf0e10cSrcweir                 else
97cdf0e10cSrcweir                     meZoomLevel = com.sun.star.media.ZoomLevel.NOT_AVAILABLE;
98cdf0e10cSrcweir 
99cdf0e10cSrcweir                 if( maFrame.getJavaFrame() != null )
100cdf0e10cSrcweir                     maFrame.getJavaFrame().add( aPanel );
101cdf0e10cSrcweir 
102cdf0e10cSrcweir                 LayoutComponents();
103cdf0e10cSrcweir             }
104cdf0e10cSrcweir         }
105cdf0e10cSrcweir         catch( com.sun.star.lang.IllegalArgumentException e )
106cdf0e10cSrcweir         {
107cdf0e10cSrcweir         }
108cdf0e10cSrcweir     }
109cdf0e10cSrcweir 
110cdf0e10cSrcweir     // -------------------------------------------------------------------------
111cdf0e10cSrcweir 
LayoutComponents()112cdf0e10cSrcweir     protected synchronized void LayoutComponents()
113cdf0e10cSrcweir     {
114cdf0e10cSrcweir         if( maFrame.getJavaFrame() != null )
115cdf0e10cSrcweir         {
116cdf0e10cSrcweir             java.awt.Panel  aPanel = (java.awt.Panel) maFrame.getJavaFrame().getComponent( 0 );
117cdf0e10cSrcweir             int             nW = maFrame.getJavaFrame().getWidth();
118cdf0e10cSrcweir             int             nH = maFrame.getJavaFrame().getHeight();
119cdf0e10cSrcweir             int             nControlH = 0;
120cdf0e10cSrcweir 
121cdf0e10cSrcweir             aPanel.setBounds( 0, 0, nW, nH );
122cdf0e10cSrcweir 
123cdf0e10cSrcweir             if( mbShowControls )
124cdf0e10cSrcweir             {
125cdf0e10cSrcweir                 java.awt.Component aControlComponent = aPanel.getComponent( 0 );
126cdf0e10cSrcweir 
127cdf0e10cSrcweir                 if( aControlComponent != null )
128cdf0e10cSrcweir                 {
129cdf0e10cSrcweir                     java.awt.Dimension aControlDimension = aControlComponent.getPreferredSize();
130cdf0e10cSrcweir 
131cdf0e10cSrcweir                     nControlH = Math.min( nH, aControlDimension.height );
132cdf0e10cSrcweir                     aControlComponent.setBounds( 0, nH - nControlH, nW, nControlH );
133cdf0e10cSrcweir                 }
134cdf0e10cSrcweir             }
135cdf0e10cSrcweir 
136cdf0e10cSrcweir             if( com.sun.star.media.ZoomLevel.NOT_AVAILABLE != meZoomLevel )
137cdf0e10cSrcweir             {
138cdf0e10cSrcweir                 java.awt.Component aVisualComponent = aPanel.getComponent( mbShowControls ? 1 : 0 );
139cdf0e10cSrcweir 
140cdf0e10cSrcweir                 if( aVisualComponent != null )
141cdf0e10cSrcweir                 {
142cdf0e10cSrcweir                     java.awt.Dimension  aPrefDim = aVisualComponent.getPreferredSize();
143cdf0e10cSrcweir                     int                 nVideoW = nW, nVideoH = ( nH - nControlH );
144cdf0e10cSrcweir                     int                 nX = 0, nY = 0, nWidth = 0, nHeight = 0;
145cdf0e10cSrcweir                     boolean             bDone = false, bZoom = false;
146cdf0e10cSrcweir 
147cdf0e10cSrcweir                     if( com.sun.star.media.ZoomLevel.ORIGINAL == meZoomLevel )
148cdf0e10cSrcweir                     {
149cdf0e10cSrcweir                         bZoom = true;
150cdf0e10cSrcweir                     }
151cdf0e10cSrcweir                     else if( com.sun.star.media.ZoomLevel.ZOOM_1_TO_4 == meZoomLevel )
152cdf0e10cSrcweir                     {
153cdf0e10cSrcweir                         aPrefDim.width >>= 2;
154cdf0e10cSrcweir                         aPrefDim.height >>= 2;
155cdf0e10cSrcweir                         bZoom = true;
156cdf0e10cSrcweir                     }
157cdf0e10cSrcweir                     else if( com.sun.star.media.ZoomLevel.ZOOM_1_TO_2 == meZoomLevel )
158cdf0e10cSrcweir                     {
159cdf0e10cSrcweir                         aPrefDim.width >>= 1;
160cdf0e10cSrcweir                         aPrefDim.height >>= 1;
161cdf0e10cSrcweir                         bZoom = true;
162cdf0e10cSrcweir                     }
163cdf0e10cSrcweir                     else if( com.sun.star.media.ZoomLevel.ZOOM_2_TO_1 == meZoomLevel )
164cdf0e10cSrcweir                     {
165cdf0e10cSrcweir                         aPrefDim.width <<= 1;
166cdf0e10cSrcweir                         aPrefDim.height <<= 1;
167cdf0e10cSrcweir                         bZoom = true;
168cdf0e10cSrcweir                     }
169cdf0e10cSrcweir                     else if( com.sun.star.media.ZoomLevel.ZOOM_4_TO_1 == meZoomLevel )
170cdf0e10cSrcweir                     {
171cdf0e10cSrcweir                         aPrefDim.width <<= 2;
172cdf0e10cSrcweir                         aPrefDim.height <<= 2;
173cdf0e10cSrcweir                         bZoom = true;
174cdf0e10cSrcweir                     }
175cdf0e10cSrcweir                     else if( com.sun.star.media.ZoomLevel.FIT_TO_WINDOW == meZoomLevel )
176cdf0e10cSrcweir                     {
177cdf0e10cSrcweir                         nWidth = nVideoW;
178cdf0e10cSrcweir                         nHeight = nVideoH;
179cdf0e10cSrcweir                         bDone = true;
180cdf0e10cSrcweir                     }
181cdf0e10cSrcweir 
182cdf0e10cSrcweir                     if( bZoom )
183cdf0e10cSrcweir                     {
184cdf0e10cSrcweir                         if( ( aPrefDim.width <= nVideoW ) && ( aPrefDim.height <= nVideoH ) )
185cdf0e10cSrcweir                         {
186cdf0e10cSrcweir                             nX = ( nVideoW - aPrefDim.width ) >> 1;
187cdf0e10cSrcweir                             nY = ( nVideoH - aPrefDim.height ) >> 1;
188cdf0e10cSrcweir                             nWidth = aPrefDim.width;
189cdf0e10cSrcweir                             nHeight = aPrefDim.height;
190cdf0e10cSrcweir                             bDone = true;
191cdf0e10cSrcweir                         }
192cdf0e10cSrcweir                     }
193cdf0e10cSrcweir 
194cdf0e10cSrcweir                     if( !bDone )
195cdf0e10cSrcweir                     {
196cdf0e10cSrcweir                         if( aPrefDim.width > 0 && aPrefDim.height > 0 && nVideoW > 0 && nVideoH > 0 )
197cdf0e10cSrcweir                         {
198cdf0e10cSrcweir                             double fPrefWH = (double) aPrefDim.width / aPrefDim.height;
199cdf0e10cSrcweir 
200cdf0e10cSrcweir                             if( fPrefWH < ( (double) nVideoW / nVideoH ) )
201cdf0e10cSrcweir                                 nVideoW = (int)( nVideoH * fPrefWH );
202cdf0e10cSrcweir                             else
203cdf0e10cSrcweir                                 nVideoH = (int)( nVideoW / fPrefWH );
204cdf0e10cSrcweir 
205cdf0e10cSrcweir                             nX = ( nW - nVideoW ) >> 1;
206cdf0e10cSrcweir                             nY = ( nH - nControlH - nVideoH ) >> 1;
207cdf0e10cSrcweir                             nWidth = nVideoW;
208cdf0e10cSrcweir                             nHeight = nVideoH;
209cdf0e10cSrcweir                         }
210cdf0e10cSrcweir                         else
211cdf0e10cSrcweir                             nX = nY = nWidth = nHeight = 0;
212cdf0e10cSrcweir                     }
213cdf0e10cSrcweir 
214cdf0e10cSrcweir                     aVisualComponent.setBounds( nX, nY, nWidth, nHeight );
215cdf0e10cSrcweir                     aVisualComponent.requestFocus();
216cdf0e10cSrcweir                 }
217cdf0e10cSrcweir                 else
218cdf0e10cSrcweir                     aPanel.requestFocus();
219cdf0e10cSrcweir             }
220cdf0e10cSrcweir             else
221cdf0e10cSrcweir                 aPanel.requestFocus();
222cdf0e10cSrcweir         }
223cdf0e10cSrcweir     }
224cdf0e10cSrcweir 
225cdf0e10cSrcweir     // -------------------------------------------------------------------------
226cdf0e10cSrcweir 
implFireMouseEvent( java.awt.event.MouseEvent aEvt )227cdf0e10cSrcweir     private void implFireMouseEvent( java.awt.event.MouseEvent aEvt )
228cdf0e10cSrcweir     {
229cdf0e10cSrcweir         if( aEvt.getSource() != null &&
230cdf0e10cSrcweir             aEvt.getSource() instanceof java.awt.Component )
231cdf0e10cSrcweir         {
232cdf0e10cSrcweir             aEvt.translatePoint( ( (java.awt.Component) aEvt.getSource() ).getX(),
233cdf0e10cSrcweir                                  ( (java.awt.Component) aEvt.getSource() ).getY() );
234cdf0e10cSrcweir         }
235cdf0e10cSrcweir 
236cdf0e10cSrcweir         maFrame.fireMouseEvent( aEvt );
237cdf0e10cSrcweir     }
238cdf0e10cSrcweir 
239cdf0e10cSrcweir     // ---------------
240cdf0e10cSrcweir     // - KeyListener -
241cdf0e10cSrcweir     // ---------------
242cdf0e10cSrcweir 
keyPressed( java.awt.event.KeyEvent aEvt )243cdf0e10cSrcweir     public void keyPressed( java.awt.event.KeyEvent aEvt )
244cdf0e10cSrcweir     {
245cdf0e10cSrcweir         maFrame.fireKeyEvent( aEvt );
246cdf0e10cSrcweir     }
247cdf0e10cSrcweir 
248cdf0e10cSrcweir     // -------------------------------------------------------------------------
249cdf0e10cSrcweir 
keyReleased( java.awt.event.KeyEvent aEvt )250cdf0e10cSrcweir     public void keyReleased( java.awt.event.KeyEvent aEvt )
251cdf0e10cSrcweir     {
252cdf0e10cSrcweir         maFrame.fireKeyEvent( aEvt );
253cdf0e10cSrcweir     }
254cdf0e10cSrcweir 
255cdf0e10cSrcweir     // -------------------------------------------------------------------------
256cdf0e10cSrcweir 
keyTyped( java.awt.event.KeyEvent aEvt )257cdf0e10cSrcweir     public void keyTyped( java.awt.event.KeyEvent aEvt )
258cdf0e10cSrcweir     {
259cdf0e10cSrcweir         maFrame.fireKeyEvent( aEvt );
260cdf0e10cSrcweir     }
261cdf0e10cSrcweir 
262cdf0e10cSrcweir     // -----------------
263cdf0e10cSrcweir     // - MouseListener -
264cdf0e10cSrcweir     // -----------------
265cdf0e10cSrcweir 
mousePressed( java.awt.event.MouseEvent aEvt )266cdf0e10cSrcweir     public void mousePressed( java.awt.event.MouseEvent aEvt )
267cdf0e10cSrcweir     {
268cdf0e10cSrcweir         implFireMouseEvent( aEvt );
269cdf0e10cSrcweir     }
270cdf0e10cSrcweir 
271cdf0e10cSrcweir     // -------------------------------------------------------------------------
272cdf0e10cSrcweir 
mouseClicked( java.awt.event.MouseEvent aEvt )273cdf0e10cSrcweir     public void mouseClicked( java.awt.event.MouseEvent aEvt )
274cdf0e10cSrcweir     {
275cdf0e10cSrcweir         implFireMouseEvent( aEvt );
276cdf0e10cSrcweir     }
277cdf0e10cSrcweir 
278cdf0e10cSrcweir     // -------------------------------------------------------------------------
279cdf0e10cSrcweir 
mouseEntered( java.awt.event.MouseEvent aEvt )280cdf0e10cSrcweir     public void mouseEntered( java.awt.event.MouseEvent aEvt )
281cdf0e10cSrcweir     {
282cdf0e10cSrcweir         implFireMouseEvent( aEvt );
283cdf0e10cSrcweir     }
284cdf0e10cSrcweir 
285cdf0e10cSrcweir     // -------------------------------------------------------------------------
286cdf0e10cSrcweir 
mouseExited( java.awt.event.MouseEvent aEvt )287cdf0e10cSrcweir     public void mouseExited( java.awt.event.MouseEvent aEvt )
288cdf0e10cSrcweir     {
289cdf0e10cSrcweir         implFireMouseEvent( aEvt );
290cdf0e10cSrcweir     }
291cdf0e10cSrcweir 
292cdf0e10cSrcweir     // -------------------------------------------------------------------------
293cdf0e10cSrcweir 
mouseReleased( java.awt.event.MouseEvent aEvt )294cdf0e10cSrcweir     public void mouseReleased( java.awt.event.MouseEvent aEvt )
295cdf0e10cSrcweir     {
296cdf0e10cSrcweir         implFireMouseEvent( aEvt );
297cdf0e10cSrcweir     }
298cdf0e10cSrcweir 
299cdf0e10cSrcweir     // -----------------------
300cdf0e10cSrcweir     // - MouseMotionListener -
301cdf0e10cSrcweir     // -----------------------
302cdf0e10cSrcweir 
mouseDragged( java.awt.event.MouseEvent aEvt )303cdf0e10cSrcweir     public void mouseDragged( java.awt.event.MouseEvent aEvt )
304cdf0e10cSrcweir     {
305cdf0e10cSrcweir         implFireMouseEvent( aEvt );
306cdf0e10cSrcweir     }
307cdf0e10cSrcweir 
308cdf0e10cSrcweir     // -------------------------------------------------------------------------
309cdf0e10cSrcweir 
mouseMoved( java.awt.event.MouseEvent aEvt )310cdf0e10cSrcweir     public void mouseMoved( java.awt.event.MouseEvent aEvt )
311cdf0e10cSrcweir     {
312cdf0e10cSrcweir         implFireMouseEvent( aEvt );
313cdf0e10cSrcweir     }
314cdf0e10cSrcweir 
315cdf0e10cSrcweir     // -----------------------
316cdf0e10cSrcweir     // - FocusListener -
317cdf0e10cSrcweir     // -----------------------
318cdf0e10cSrcweir 
focusGained( java.awt.event.FocusEvent aEvt )319cdf0e10cSrcweir     public void focusGained( java.awt.event.FocusEvent aEvt )
320cdf0e10cSrcweir     {
321cdf0e10cSrcweir         if( maFrame.getJavaFrame() != null )
322cdf0e10cSrcweir             maFrame.fireFocusEvent( aEvt );
323cdf0e10cSrcweir     }
324cdf0e10cSrcweir 
325cdf0e10cSrcweir     // -------------------------------------------------------------------------
326cdf0e10cSrcweir 
focusLost( java.awt.event.FocusEvent aEvt )327cdf0e10cSrcweir     public void focusLost( java.awt.event.FocusEvent aEvt )
328cdf0e10cSrcweir     {
329cdf0e10cSrcweir         if( maFrame.getJavaFrame() != null )
330cdf0e10cSrcweir             maFrame.fireFocusEvent( aEvt );
331cdf0e10cSrcweir     }
332cdf0e10cSrcweir 
333cdf0e10cSrcweir     // -----------------
334cdf0e10cSrcweir     // - XPlayerWindow -
335cdf0e10cSrcweir     // -----------------
336cdf0e10cSrcweir 
update()337cdf0e10cSrcweir     public synchronized void update()
338cdf0e10cSrcweir     {
339cdf0e10cSrcweir         if( maFrame.getJavaFrame() != null )
340cdf0e10cSrcweir             maFrame.getJavaFrame().repaint();
341cdf0e10cSrcweir     }
342cdf0e10cSrcweir 
343cdf0e10cSrcweir     // -------------------------------------------------------------------------
344cdf0e10cSrcweir 
setZoomLevel( com.sun.star.media.ZoomLevel eZoomLevel )345cdf0e10cSrcweir     public synchronized boolean setZoomLevel( com.sun.star.media.ZoomLevel eZoomLevel )
346cdf0e10cSrcweir     {
347cdf0e10cSrcweir         boolean bRet = false;
348cdf0e10cSrcweir 
349cdf0e10cSrcweir         if( com.sun.star.media.ZoomLevel.NOT_AVAILABLE != meZoomLevel &&
350cdf0e10cSrcweir             com.sun.star.media.ZoomLevel.NOT_AVAILABLE != eZoomLevel )
351cdf0e10cSrcweir         {
352cdf0e10cSrcweir             if( eZoomLevel != meZoomLevel )
353cdf0e10cSrcweir             {
354cdf0e10cSrcweir                 meZoomLevel = eZoomLevel;
355cdf0e10cSrcweir                 LayoutComponents();
356cdf0e10cSrcweir             }
357cdf0e10cSrcweir 
358cdf0e10cSrcweir             bRet = true;
359cdf0e10cSrcweir         }
360cdf0e10cSrcweir 
361cdf0e10cSrcweir         return bRet;
362cdf0e10cSrcweir     }
363cdf0e10cSrcweir 
364cdf0e10cSrcweir     // -------------------------------------------------------------------------
365cdf0e10cSrcweir 
getZoomLevel()366cdf0e10cSrcweir     public synchronized com.sun.star.media.ZoomLevel getZoomLevel()
367cdf0e10cSrcweir     {
368cdf0e10cSrcweir         return meZoomLevel;
369cdf0e10cSrcweir     }
370cdf0e10cSrcweir 
371cdf0e10cSrcweir     // -------------------------------------------------------------------------
372cdf0e10cSrcweir 
setPointerType( int nPointerType )373cdf0e10cSrcweir     public synchronized void setPointerType( int nPointerType )
374cdf0e10cSrcweir     {
375cdf0e10cSrcweir         if( maFrame.getJavaFrame() != null )
376cdf0e10cSrcweir         {
377cdf0e10cSrcweir             int nCursor;
378cdf0e10cSrcweir 
379cdf0e10cSrcweir             switch( nPointerType )
380cdf0e10cSrcweir             {
381cdf0e10cSrcweir                 case( com.sun.star.awt.SystemPointer.CROSS ): nCursor = java.awt.Cursor.CROSSHAIR_CURSOR; break;
382cdf0e10cSrcweir                 case( com.sun.star.awt.SystemPointer.HAND ): nCursor = java.awt.Cursor.HAND_CURSOR; break;
383cdf0e10cSrcweir                 case( com.sun.star.awt.SystemPointer.MOVE ): nCursor = java.awt.Cursor.MOVE_CURSOR; break;
384cdf0e10cSrcweir                 case( com.sun.star.awt.SystemPointer.WAIT ): nCursor = java.awt.Cursor.WAIT_CURSOR; break;
385cdf0e10cSrcweir 
386cdf0e10cSrcweir                 default: nCursor = java.awt.Cursor.DEFAULT_CURSOR; break;
387cdf0e10cSrcweir             }
388cdf0e10cSrcweir 
389cdf0e10cSrcweir             maFrame.getJavaFrame().setCursor( java.awt.Cursor.getPredefinedCursor( nCursor ) );
390cdf0e10cSrcweir         }
391cdf0e10cSrcweir     }
392cdf0e10cSrcweir 
393cdf0e10cSrcweir     // --------------
394cdf0e10cSrcweir     // - XComponent -
395cdf0e10cSrcweir     // --------------
396cdf0e10cSrcweir 
dispose()397cdf0e10cSrcweir     public synchronized void dispose()
398cdf0e10cSrcweir     {
399cdf0e10cSrcweir         if( maFrame != null )
400cdf0e10cSrcweir         {
401cdf0e10cSrcweir             java.awt.Panel aPanel = (java.awt.Panel) maFrame.getJavaFrame().getComponent( 0 );
402cdf0e10cSrcweir 
403cdf0e10cSrcweir             if( aPanel != null && aPanel.getComponent( 0 ) != null )
404cdf0e10cSrcweir                 aPanel.getComponent( 0 ).removeFocusListener( this );
405cdf0e10cSrcweir 
406cdf0e10cSrcweir             if( maFrame.getJavaFrame() != null )
407cdf0e10cSrcweir                 maFrame.getJavaFrame().dispose();
408cdf0e10cSrcweir 
409cdf0e10cSrcweir             maFrame.fireDisposingEvent();
410cdf0e10cSrcweir         }
411cdf0e10cSrcweir 
412cdf0e10cSrcweir         maFrame = null;
413cdf0e10cSrcweir     }
414cdf0e10cSrcweir 
415cdf0e10cSrcweir     // -----------
416cdf0e10cSrcweir     // - XWindow -
417cdf0e10cSrcweir     // -----------
418cdf0e10cSrcweir 
setPosSize( int X, int Y, int Width, int Height, short Flags )419cdf0e10cSrcweir     public synchronized void setPosSize( int X, int Y, int Width, int Height, short Flags )
420cdf0e10cSrcweir     {
421cdf0e10cSrcweir         if( maFrame != null )
422cdf0e10cSrcweir         {
423cdf0e10cSrcweir             maFrame.setPosSize( X, Y, Width, Height, Flags );
424cdf0e10cSrcweir             LayoutComponents();
425cdf0e10cSrcweir         }
426cdf0e10cSrcweir     }
427cdf0e10cSrcweir 
428cdf0e10cSrcweir     // -------------------------------------------------------------------------
429cdf0e10cSrcweir 
getPosSize()430cdf0e10cSrcweir     public synchronized com.sun.star.awt.Rectangle getPosSize()
431cdf0e10cSrcweir     {
432cdf0e10cSrcweir         return( ( maFrame != null ) ? maFrame.getPosSize() : new com.sun.star.awt.Rectangle() );
433cdf0e10cSrcweir     }
434cdf0e10cSrcweir 
435cdf0e10cSrcweir     // -------------------------------------------------------------------------
436cdf0e10cSrcweir 
setVisible( boolean visible )437cdf0e10cSrcweir     public synchronized void setVisible( boolean visible )
438cdf0e10cSrcweir     {
439cdf0e10cSrcweir         if( maFrame != null )
440cdf0e10cSrcweir             maFrame.setVisible( visible );
441cdf0e10cSrcweir     }
442cdf0e10cSrcweir 
443cdf0e10cSrcweir     // -------------------------------------------------------------------------
444cdf0e10cSrcweir 
setEnable( boolean enable )445cdf0e10cSrcweir     public synchronized void setEnable( boolean enable )
446cdf0e10cSrcweir     {
447cdf0e10cSrcweir         if( maFrame != null )
448cdf0e10cSrcweir             maFrame.setEnable( enable );
449cdf0e10cSrcweir     }
450cdf0e10cSrcweir 
451cdf0e10cSrcweir     // -------------------------------------------------------------------------
452cdf0e10cSrcweir 
setFocus()453cdf0e10cSrcweir     public synchronized void setFocus()
454cdf0e10cSrcweir     {
455cdf0e10cSrcweir         if( maFrame != null )
456cdf0e10cSrcweir             maFrame.setFocus();
457cdf0e10cSrcweir     }
458cdf0e10cSrcweir 
459cdf0e10cSrcweir     // -------------------------------------------------------------------------
460cdf0e10cSrcweir 
addEventListener( com.sun.star.lang.XEventListener xListener )461cdf0e10cSrcweir     public synchronized void addEventListener( com.sun.star.lang.XEventListener xListener )
462cdf0e10cSrcweir     {
463cdf0e10cSrcweir         if( maFrame != null )
464cdf0e10cSrcweir             maFrame.addEventListener( xListener );
465cdf0e10cSrcweir     }
466cdf0e10cSrcweir 
467cdf0e10cSrcweir     // -------------------------------------------------------------------------
468cdf0e10cSrcweir 
removeEventListener( com.sun.star.lang.XEventListener xListener )469cdf0e10cSrcweir     public synchronized void removeEventListener( com.sun.star.lang.XEventListener xListener )
470cdf0e10cSrcweir     {
471cdf0e10cSrcweir         if( maFrame != null )
472cdf0e10cSrcweir             maFrame.removeEventListener( xListener );
473cdf0e10cSrcweir     }
474cdf0e10cSrcweir 
475cdf0e10cSrcweir     // -------------------------------------------------------------------------
476cdf0e10cSrcweir 
addWindowListener( XWindowListener xListener )477cdf0e10cSrcweir     public synchronized void addWindowListener( XWindowListener xListener )
478cdf0e10cSrcweir     {
479cdf0e10cSrcweir         if( maFrame != null )
480cdf0e10cSrcweir             maFrame.addWindowListener( xListener );
481cdf0e10cSrcweir     }
482cdf0e10cSrcweir 
483cdf0e10cSrcweir     // -------------------------------------------------------------------------
484cdf0e10cSrcweir 
removeWindowListener( XWindowListener xListener )485cdf0e10cSrcweir     public synchronized void removeWindowListener( XWindowListener xListener )
486cdf0e10cSrcweir     {
487cdf0e10cSrcweir         if( maFrame != null )
488cdf0e10cSrcweir             maFrame.removeWindowListener( xListener );
489cdf0e10cSrcweir     }
490cdf0e10cSrcweir 
491cdf0e10cSrcweir     // -------------------------------------------------------------------------
492cdf0e10cSrcweir 
addFocusListener( XFocusListener xListener )493cdf0e10cSrcweir     public synchronized void addFocusListener( XFocusListener xListener )
494cdf0e10cSrcweir     {
495cdf0e10cSrcweir         if( maFrame != null )
496cdf0e10cSrcweir             maFrame.addFocusListener( xListener );
497cdf0e10cSrcweir     }
498cdf0e10cSrcweir 
499cdf0e10cSrcweir     // -------------------------------------------------------------------------
500cdf0e10cSrcweir 
removeFocusListener( XFocusListener xListener )501cdf0e10cSrcweir     public synchronized void removeFocusListener( XFocusListener xListener )
502cdf0e10cSrcweir     {
503cdf0e10cSrcweir         if( maFrame != null )
504cdf0e10cSrcweir             maFrame.removeFocusListener( xListener );
505cdf0e10cSrcweir     }
506cdf0e10cSrcweir 
507cdf0e10cSrcweir     // -------------------------------------------------------------------------
508cdf0e10cSrcweir 
addKeyListener( XKeyListener xListener )509cdf0e10cSrcweir     public synchronized void addKeyListener( XKeyListener xListener )
510cdf0e10cSrcweir     {
511cdf0e10cSrcweir         if( maFrame != null )
512cdf0e10cSrcweir             maFrame.addKeyListener( xListener );
513cdf0e10cSrcweir     }
514cdf0e10cSrcweir 
515cdf0e10cSrcweir     // -------------------------------------------------------------------------
516cdf0e10cSrcweir 
removeKeyListener( XKeyListener xListener )517cdf0e10cSrcweir     public synchronized void removeKeyListener( XKeyListener xListener )
518cdf0e10cSrcweir     {
519cdf0e10cSrcweir         if( maFrame != null )
520cdf0e10cSrcweir             maFrame.removeKeyListener( xListener );
521cdf0e10cSrcweir     }
522cdf0e10cSrcweir 
523cdf0e10cSrcweir     // -------------------------------------------------------------------------
524cdf0e10cSrcweir 
addMouseListener( XMouseListener xListener )525cdf0e10cSrcweir     public synchronized void addMouseListener( XMouseListener xListener )
526cdf0e10cSrcweir     {
527cdf0e10cSrcweir         if( maFrame != null )
528cdf0e10cSrcweir             maFrame.addMouseListener( xListener );
529cdf0e10cSrcweir     }
530cdf0e10cSrcweir 
531cdf0e10cSrcweir     // -------------------------------------------------------------------------
532cdf0e10cSrcweir 
removeMouseListener( XMouseListener xListener )533cdf0e10cSrcweir     public synchronized void removeMouseListener( XMouseListener xListener )
534cdf0e10cSrcweir     {
535cdf0e10cSrcweir         if( maFrame != null )
536cdf0e10cSrcweir             maFrame.removeMouseListener( xListener );
537cdf0e10cSrcweir     }
538cdf0e10cSrcweir 
539cdf0e10cSrcweir     // -------------------------------------------------------------------------
540cdf0e10cSrcweir 
addMouseMotionListener( XMouseMotionListener xListener )541cdf0e10cSrcweir     public synchronized void addMouseMotionListener( XMouseMotionListener xListener )
542cdf0e10cSrcweir     {
543cdf0e10cSrcweir         if( maFrame != null )
544cdf0e10cSrcweir             maFrame.addMouseMotionListener( xListener );
545cdf0e10cSrcweir     }
546cdf0e10cSrcweir 
547cdf0e10cSrcweir     // -------------------------------------------------------------------------
548cdf0e10cSrcweir 
removeMouseMotionListener( XMouseMotionListener xListener )549cdf0e10cSrcweir     public synchronized void removeMouseMotionListener( XMouseMotionListener xListener )
550cdf0e10cSrcweir     {
551cdf0e10cSrcweir         if( maFrame != null )
552cdf0e10cSrcweir             maFrame.removeMouseMotionListener( xListener );
553cdf0e10cSrcweir     }
554cdf0e10cSrcweir 
555cdf0e10cSrcweir     // -------------------------------------------------------------------------
556cdf0e10cSrcweir 
addPaintListener( XPaintListener xListener )557cdf0e10cSrcweir     public synchronized void addPaintListener( XPaintListener xListener )
558cdf0e10cSrcweir     {
559cdf0e10cSrcweir         if( maFrame != null )
560cdf0e10cSrcweir             maFrame.addPaintListener( xListener );
561cdf0e10cSrcweir     }
562cdf0e10cSrcweir 
563cdf0e10cSrcweir     // -------------------------------------------------------------------------
564cdf0e10cSrcweir 
removePaintListener( XPaintListener xListener )565cdf0e10cSrcweir     public synchronized void removePaintListener( XPaintListener xListener )
566cdf0e10cSrcweir     {
567cdf0e10cSrcweir         if( maFrame != null )
568cdf0e10cSrcweir             maFrame.removePaintListener( xListener );
569cdf0e10cSrcweir     }
570cdf0e10cSrcweir 
571cdf0e10cSrcweir     // ----------------
572cdf0e10cSrcweir     // - XServiceInfo -
573cdf0e10cSrcweir     // ----------------
574cdf0e10cSrcweir 
575cdf0e10cSrcweir     private static final String s_implName = "com.sun.star.comp.PlayerWindow_Java";
576cdf0e10cSrcweir     private static final String s_serviceName = "com.sun.star.media.PlayerWindow_Java";
577cdf0e10cSrcweir 
getImplementationName()578cdf0e10cSrcweir     public synchronized String getImplementationName()
579cdf0e10cSrcweir     {
580cdf0e10cSrcweir         return s_implName;
581cdf0e10cSrcweir     }
582cdf0e10cSrcweir 
583cdf0e10cSrcweir     // -------------------------------------------------------------------------
584cdf0e10cSrcweir 
getSupportedServiceNames()585cdf0e10cSrcweir     public synchronized String [] getSupportedServiceNames()
586cdf0e10cSrcweir     {
587cdf0e10cSrcweir         return new String [] { s_serviceName };
588cdf0e10cSrcweir     }
589cdf0e10cSrcweir 
590cdf0e10cSrcweir     // -------------------------------------------------------------------------
591cdf0e10cSrcweir 
supportsService( String serviceName )592cdf0e10cSrcweir     public synchronized boolean supportsService( String serviceName )
593cdf0e10cSrcweir     {
594cdf0e10cSrcweir         return serviceName.equals( s_serviceName );
595cdf0e10cSrcweir     }
596cdf0e10cSrcweir }
597