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
10*e357d40eSAndrew Rist  *
11*e357d40eSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*e357d40eSAndrew Rist  *
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.
19*e357d40eSAndrew Rist  *
20*e357d40eSAndrew Rist  *************************************************************/
21*e357d40eSAndrew Rist 
22*e357d40eSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir import sun.awt.*;
25cdf0e10cSrcweir import com.sun.star.awt.*;
26cdf0e10cSrcweir import com.sun.star.lang.*;
27cdf0e10cSrcweir import java.util.*;
28cdf0e10cSrcweir import javax.swing.*;
29cdf0e10cSrcweir 
30cdf0e10cSrcweir public class WindowAdapter
31cdf0e10cSrcweir {
32cdf0e10cSrcweir     private java.awt.Frame  maFrame;
33cdf0e10cSrcweir     private LinkedList      maEventListeners = new LinkedList();
34cdf0e10cSrcweir     private LinkedList      maWindowListeners = new LinkedList();
35cdf0e10cSrcweir     private LinkedList      maFocusListeners = new LinkedList();
36cdf0e10cSrcweir     private LinkedList      maKeyListeners = new LinkedList();
37cdf0e10cSrcweir     private LinkedList      maMouseListeners = new LinkedList();
38cdf0e10cSrcweir     private LinkedList      maMouseMotionListeners = new LinkedList();
39cdf0e10cSrcweir     private LinkedList      maPaintListeners = new LinkedList();
40cdf0e10cSrcweir     private boolean         mbShift = false, mbMod1 = false, mbMod2 = false;
41cdf0e10cSrcweir 
42cdf0e10cSrcweir     // -----------------
43cdf0e10cSrcweir     // - WindowAdapter -
44cdf0e10cSrcweir     // -----------------
45cdf0e10cSrcweir 
WindowAdapter( int windowHandle )46cdf0e10cSrcweir     public WindowAdapter( int windowHandle )
47cdf0e10cSrcweir     {
48cdf0e10cSrcweir         maFrame = SystemWindowAdapter.createFrame( windowHandle );
49cdf0e10cSrcweir     }
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     //----------------------------------------------------------------------------------
52cdf0e10cSrcweir 
getJavaFrame()53cdf0e10cSrcweir     public java.awt.Frame getJavaFrame()
54cdf0e10cSrcweir     {
55cdf0e10cSrcweir         return maFrame;
56cdf0e10cSrcweir     }
57cdf0e10cSrcweir 
58cdf0e10cSrcweir     //----------------------------------------------------------------------------------
59cdf0e10cSrcweir 
implGetUNOKeyCode( int nJavaKeyCode )60cdf0e10cSrcweir     private short implGetUNOKeyCode( int nJavaKeyCode )
61cdf0e10cSrcweir     {
62cdf0e10cSrcweir         short nRet = 0;
63cdf0e10cSrcweir 
64cdf0e10cSrcweir         switch( nJavaKeyCode )
65cdf0e10cSrcweir         {
66cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD0 ):
67cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_0 ):       nRet = com.sun.star.awt.Key.NUM0; break;
68cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD1 ):
69cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_1 ):       nRet = com.sun.star.awt.Key.NUM1; break;
70cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD2 ):
71cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_2 ):       nRet = com.sun.star.awt.Key.NUM2; break;
72cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD3 ):
73cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_3 ):       nRet = com.sun.star.awt.Key.NUM3; break;
74cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD4 ):
75cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_4 ):       nRet = com.sun.star.awt.Key.NUM4; break;
76cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD5 ):
77cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_5 ):       nRet = com.sun.star.awt.Key.NUM5; break;
78cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD6 ):
79cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_6 ):       nRet = com.sun.star.awt.Key.NUM6; break;
80cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD7 ):
81cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_7 ):       nRet = com.sun.star.awt.Key.NUM7; break;
82cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD8 ):
83cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_8 ):       nRet = com.sun.star.awt.Key.NUM8; break;
84cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_NUMPAD9 ):
85cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_9 ):       nRet = com.sun.star.awt.Key.NUM9; break;
86cdf0e10cSrcweir 
87cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_A ): nRet = com.sun.star.awt.Key.A; break;
88cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_B ): nRet = com.sun.star.awt.Key.B; break;
89cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_C ): nRet = com.sun.star.awt.Key.C; break;
90cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_D ): nRet = com.sun.star.awt.Key.D; break;
91cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_E ): nRet = com.sun.star.awt.Key.E; break;
92cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F ): nRet = com.sun.star.awt.Key.F; break;
93cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_G ): nRet = com.sun.star.awt.Key.G; break;
94cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_H ): nRet = com.sun.star.awt.Key.H; break;
95cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_I ): nRet = com.sun.star.awt.Key.I; break;
96cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_J ): nRet = com.sun.star.awt.Key.J; break;
97cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_K ): nRet = com.sun.star.awt.Key.K; break;
98cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_L ): nRet = com.sun.star.awt.Key.L; break;
99cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_M ): nRet = com.sun.star.awt.Key.M; break;
100cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_N ): nRet = com.sun.star.awt.Key.N; break;
101cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_O ): nRet = com.sun.star.awt.Key.O; break;
102cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_P ): nRet = com.sun.star.awt.Key.P; break;
103cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_Q ): nRet = com.sun.star.awt.Key.Q; break;
104cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_R ): nRet = com.sun.star.awt.Key.R; break;
105cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_S ): nRet = com.sun.star.awt.Key.S; break;
106cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_T ): nRet = com.sun.star.awt.Key.T; break;
107cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_U ): nRet = com.sun.star.awt.Key.U; break;
108cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_V ): nRet = com.sun.star.awt.Key.V; break;
109cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_W ): nRet = com.sun.star.awt.Key.W; break;
110cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_X ): nRet = com.sun.star.awt.Key.X; break;
111cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_Y ): nRet = com.sun.star.awt.Key.Y; break;
112cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_Z ): nRet = com.sun.star.awt.Key.Z; break;
113cdf0e10cSrcweir 
114cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F1 ): nRet = com.sun.star.awt.Key.F1; break;
115cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F2 ): nRet = com.sun.star.awt.Key.F2; break;
116cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F3 ): nRet = com.sun.star.awt.Key.F3; break;
117cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F4 ): nRet = com.sun.star.awt.Key.F4; break;
118cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F5 ): nRet = com.sun.star.awt.Key.F5; break;
119cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F6 ): nRet = com.sun.star.awt.Key.F6; break;
120cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F7 ): nRet = com.sun.star.awt.Key.F7; break;
121cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F8 ): nRet = com.sun.star.awt.Key.F8; break;
122cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F9 ): nRet = com.sun.star.awt.Key.F9; break;
123cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F10 ): nRet = com.sun.star.awt.Key.F10; break;
124cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F11 ): nRet = com.sun.star.awt.Key.F11; break;
125cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F12 ): nRet = com.sun.star.awt.Key.F12; break;
126cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F13 ): nRet = com.sun.star.awt.Key.F13; break;
127cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F14 ): nRet = com.sun.star.awt.Key.F14; break;
128cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F15 ): nRet = com.sun.star.awt.Key.F15; break;
129cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F16 ): nRet = com.sun.star.awt.Key.F16; break;
130cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F17 ): nRet = com.sun.star.awt.Key.F17; break;
131cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F18 ): nRet = com.sun.star.awt.Key.F18; break;
132cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F19 ): nRet = com.sun.star.awt.Key.F19; break;
133cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F20 ): nRet = com.sun.star.awt.Key.F20; break;
134cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F21 ): nRet = com.sun.star.awt.Key.F21; break;
135cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F22 ): nRet = com.sun.star.awt.Key.F22; break;
136cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F23 ): nRet = com.sun.star.awt.Key.F23; break;
137cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_F24 ): nRet = com.sun.star.awt.Key.F24; break;
138cdf0e10cSrcweir 
139cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_UP ):          nRet = com.sun.star.awt.Key.UP; break;
140cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_DOWN):         nRet = com.sun.star.awt.Key.DOWN; break;
141cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_LEFT ):        nRet = com.sun.star.awt.Key.LEFT; break;
142cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_RIGHT ):       nRet = com.sun.star.awt.Key.RIGHT; break;
143cdf0e10cSrcweir 
144cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_HOME ):        nRet = com.sun.star.awt.Key.HOME; break;
145cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_END ):         nRet = com.sun.star.awt.Key.END; break;
146cdf0e10cSrcweir 
147cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_PAGE_UP ):     nRet = com.sun.star.awt.Key.PAGEUP; break;
148cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_PAGE_DOWN ):   nRet = com.sun.star.awt.Key.PAGEDOWN; break;
149cdf0e10cSrcweir 
150cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_ENTER ):       nRet = com.sun.star.awt.Key.RETURN; break;
151cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_ESCAPE ):      nRet = com.sun.star.awt.Key.ESCAPE; break;
152cdf0e10cSrcweir 
153cdf0e10cSrcweir             case( java.awt.event.KeyEvent.VK_TAB ):         nRet = com.sun.star.awt.Key.TAB; break;
154cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_BACK_SPACE ):  nRet = com.sun.star.awt.Key.BACKSPACE; break;
155cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_SPACE ):       nRet = com.sun.star.awt.Key.SPACE; break;
156cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_INSERT):       nRet = com.sun.star.awt.Key.INSERT; break;
157cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_DELETE):       nRet = com.sun.star.awt.Key.DELETE; break;
158cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_ADD ):         nRet = com.sun.star.awt.Key.ADD; break;
159cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_SUBTRACT ):    nRet = com.sun.star.awt.Key.SUBTRACT; break;
160cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_MULTIPLY ):    nRet = com.sun.star.awt.Key.MULTIPLY; break;
161cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_DIVIDE ):      nRet = com.sun.star.awt.Key.DIVIDE; break;
162cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_DECIMAL ):     nRet = com.sun.star.awt.Key.POINT; break;
163cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ COMMA; break;
164cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_LESS ):        nRet = com.sun.star.awt.Key.LESS; break;
165cdf0e10cSrcweir     	    case( java.awt.event.KeyEvent.VK_GREATER ):     nRet = com.sun.star.awt.Key.GREATER; break;
166cdf0e10cSrcweir         	case( java.awt.event.KeyEvent.VK_EQUALS ):      nRet = com.sun.star.awt.Key.EQUAL; break;
167cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ OPEN; break;
168cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ CUT; break;
169cdf0e10cSrcweir         	// case( java.awt.event.KeyEvent.VK_ COPY; break;
170cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ PASTE; break;
171cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ UNDO; break;
172cdf0e10cSrcweir         	// case( java.awt.event.KeyEvent.VK_ REPEAT; break;
173cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ FIND; break;
174cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ PROPERTIES; break;
175cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ FRONT; break;
176cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ CONTEXTMENU; break;
177cdf0e10cSrcweir     	    // case( java.awt.event.KeyEvent.VK_ HELP; break;
178cdf0e10cSrcweir 
179cdf0e10cSrcweir             default:
180cdf0e10cSrcweir             break;
181cdf0e10cSrcweir          }
182cdf0e10cSrcweir 
183cdf0e10cSrcweir          return nRet;
184cdf0e10cSrcweir     }
185cdf0e10cSrcweir 
186cdf0e10cSrcweir     //----------------------------------------------------------------------------------
187cdf0e10cSrcweir 
fireKeyEvent( java.awt.event.KeyEvent aEvt )188cdf0e10cSrcweir     public void fireKeyEvent( java.awt.event.KeyEvent aEvt )
189cdf0e10cSrcweir     {
190cdf0e10cSrcweir         if( maKeyListeners.size() > 0 )
191cdf0e10cSrcweir         {
192cdf0e10cSrcweir             boolean bProcess = false, bPressed = false;
193cdf0e10cSrcweir 
194cdf0e10cSrcweir             if( java.awt.event.KeyEvent.KEY_PRESSED == aEvt.getID() )
195cdf0e10cSrcweir             {
196cdf0e10cSrcweir                 switch( aEvt.getKeyCode() )
197cdf0e10cSrcweir                 {
198cdf0e10cSrcweir                     case( java.awt.event.KeyEvent.VK_SHIFT ): mbShift = true; break;
199cdf0e10cSrcweir                     case( java.awt.event.KeyEvent.VK_CONTROL ): mbMod1 = true; break;
200cdf0e10cSrcweir                     case( java.awt.event.KeyEvent.VK_ALT ): mbMod2 = true; break;
201cdf0e10cSrcweir 
202cdf0e10cSrcweir                     default:
203cdf0e10cSrcweir                     {
204cdf0e10cSrcweir                         bProcess = bPressed = true;
205cdf0e10cSrcweir                     }
206cdf0e10cSrcweir                     break;
207cdf0e10cSrcweir                 }
208cdf0e10cSrcweir             }
209cdf0e10cSrcweir             else if( java.awt.event.KeyEvent.KEY_RELEASED == aEvt.getID() )
210cdf0e10cSrcweir             {
211cdf0e10cSrcweir                 switch( aEvt.getKeyCode() )
212cdf0e10cSrcweir                 {
213cdf0e10cSrcweir                     case( java.awt.event.KeyEvent.VK_SHIFT ): mbShift = false; break;
214cdf0e10cSrcweir                     case( java.awt.event.KeyEvent.VK_CONTROL ): mbMod1 = false; break;
215cdf0e10cSrcweir                     case( java.awt.event.KeyEvent.VK_ALT ): mbMod2 = false; break;
216cdf0e10cSrcweir 
217cdf0e10cSrcweir                     default:
218cdf0e10cSrcweir                     {
219cdf0e10cSrcweir                         bProcess = true;
220cdf0e10cSrcweir                     }
221cdf0e10cSrcweir                     break;
222cdf0e10cSrcweir                 }
223cdf0e10cSrcweir             }
224cdf0e10cSrcweir 
225cdf0e10cSrcweir             if( bProcess )
226cdf0e10cSrcweir             {
227cdf0e10cSrcweir                 KeyEvent aUNOEvt = new KeyEvent();
228cdf0e10cSrcweir 
229cdf0e10cSrcweir                 aUNOEvt.Modifiers = 0;
230cdf0e10cSrcweir 
231cdf0e10cSrcweir                 if( mbShift )
232cdf0e10cSrcweir                     aUNOEvt.Modifiers |= com.sun.star.awt.KeyModifier.SHIFT;
233cdf0e10cSrcweir 
234cdf0e10cSrcweir                 if( mbMod1 )
235cdf0e10cSrcweir                     aUNOEvt.Modifiers |= com.sun.star.awt.KeyModifier.MOD1;
236cdf0e10cSrcweir 
237cdf0e10cSrcweir                 if( mbMod2 )
238cdf0e10cSrcweir                     aUNOEvt.Modifiers |= com.sun.star.awt.KeyModifier.MOD2;
239cdf0e10cSrcweir 
240cdf0e10cSrcweir                 aUNOEvt.KeyCode = implGetUNOKeyCode( aEvt.getKeyCode() );
241cdf0e10cSrcweir                 aUNOEvt.KeyChar = aEvt.getKeyChar();
242cdf0e10cSrcweir                 aUNOEvt.KeyFunc = com.sun.star.awt.KeyFunction.DONTKNOW;
243cdf0e10cSrcweir 
244cdf0e10cSrcweir                 ListIterator aIter = maKeyListeners.listIterator( 0 );
245cdf0e10cSrcweir 
246cdf0e10cSrcweir                 while( aIter.hasNext() )
247cdf0e10cSrcweir                 {
248cdf0e10cSrcweir                     if( bPressed )
249cdf0e10cSrcweir                         ( (XKeyListener) aIter.next() ).keyPressed( aUNOEvt );
250cdf0e10cSrcweir                     else
251cdf0e10cSrcweir                         ( (XKeyListener) aIter.next() ).keyReleased( aUNOEvt );
252cdf0e10cSrcweir                 }
253cdf0e10cSrcweir             }
254cdf0e10cSrcweir         }
255cdf0e10cSrcweir     }
256cdf0e10cSrcweir 
257cdf0e10cSrcweir     //----------------------------------------------------------------------------------
258cdf0e10cSrcweir 
fireMouseEvent( java.awt.event.MouseEvent aEvt )259cdf0e10cSrcweir     public void fireMouseEvent( java.awt.event.MouseEvent aEvt )
260cdf0e10cSrcweir     {
261cdf0e10cSrcweir         MouseEvent aUNOEvt = new MouseEvent();
262cdf0e10cSrcweir 
263cdf0e10cSrcweir         aUNOEvt.Modifiers = 0;
264cdf0e10cSrcweir         aUNOEvt.Buttons = 0;
265cdf0e10cSrcweir         aUNOEvt.X = aEvt.getX();
266cdf0e10cSrcweir         aUNOEvt.Y = aEvt.getY();
267cdf0e10cSrcweir      	aUNOEvt.PopupTrigger = false;
268cdf0e10cSrcweir 
269cdf0e10cSrcweir         // Modifiers
270cdf0e10cSrcweir         if( aEvt.isShiftDown() )
271cdf0e10cSrcweir             aUNOEvt.Modifiers |= com.sun.star.awt.KeyModifier.SHIFT;
272cdf0e10cSrcweir 
273cdf0e10cSrcweir         if( aEvt.isControlDown() )
274cdf0e10cSrcweir             aUNOEvt.Modifiers |= com.sun.star.awt.KeyModifier.MOD1;
275cdf0e10cSrcweir 
276cdf0e10cSrcweir         if( aEvt.isAltDown() )
277cdf0e10cSrcweir             aUNOEvt.Modifiers |= com.sun.star.awt.KeyModifier.MOD2;
278cdf0e10cSrcweir 
279cdf0e10cSrcweir         // Buttons
280cdf0e10cSrcweir         if( SwingUtilities.isLeftMouseButton( aEvt ) )
281cdf0e10cSrcweir             aUNOEvt.Buttons |= com.sun.star.awt.MouseButton.LEFT;
282cdf0e10cSrcweir 
283cdf0e10cSrcweir         if( SwingUtilities.isMiddleMouseButton( aEvt ) )
284cdf0e10cSrcweir             aUNOEvt.Buttons |= com.sun.star.awt.MouseButton.MIDDLE;
285cdf0e10cSrcweir 
286cdf0e10cSrcweir         if( SwingUtilities.isRightMouseButton( aEvt ) )
287cdf0e10cSrcweir             aUNOEvt.Buttons |= com.sun.star.awt.MouseButton.RIGHT;
288cdf0e10cSrcweir 
289cdf0e10cSrcweir         // event type
290cdf0e10cSrcweir         if( java.awt.event.MouseEvent.MOUSE_PRESSED == aEvt.getID() )
291cdf0e10cSrcweir         {
292cdf0e10cSrcweir             ListIterator aIter = maMouseListeners.listIterator( 0 );
293cdf0e10cSrcweir 
294cdf0e10cSrcweir             aUNOEvt.ClickCount = 1;
295cdf0e10cSrcweir 
296cdf0e10cSrcweir             while( aIter.hasNext() )
297cdf0e10cSrcweir                 ( (XMouseListener) aIter.next() ).mousePressed( aUNOEvt );
298cdf0e10cSrcweir         }
299cdf0e10cSrcweir         else if( java.awt.event.MouseEvent.MOUSE_RELEASED == aEvt.getID() )
300cdf0e10cSrcweir         {
301cdf0e10cSrcweir             ListIterator aIter = maMouseListeners.listIterator( 0 );
302cdf0e10cSrcweir 
303cdf0e10cSrcweir             aUNOEvt.ClickCount = 1;
304cdf0e10cSrcweir 
305cdf0e10cSrcweir             while( aIter.hasNext() )
306cdf0e10cSrcweir                 ( (XMouseListener) aIter.next() ).mouseReleased( aUNOEvt );
307cdf0e10cSrcweir         }
308cdf0e10cSrcweir         else if( java.awt.event.MouseEvent.MOUSE_DRAGGED == aEvt.getID() )
309cdf0e10cSrcweir         {
310cdf0e10cSrcweir             ListIterator aIter = maMouseMotionListeners.listIterator( 0 );
311cdf0e10cSrcweir 
312cdf0e10cSrcweir             aUNOEvt.ClickCount = 0;
313cdf0e10cSrcweir 
314cdf0e10cSrcweir             while( aIter.hasNext() )
315cdf0e10cSrcweir                 ( (XMouseMotionListener) aIter.next() ).mouseDragged( aUNOEvt );
316cdf0e10cSrcweir         }
317cdf0e10cSrcweir         else if( java.awt.event.MouseEvent.MOUSE_MOVED == aEvt.getID() )
318cdf0e10cSrcweir         {
319cdf0e10cSrcweir             ListIterator aIter = maMouseMotionListeners.listIterator( 0 );
320cdf0e10cSrcweir 
321cdf0e10cSrcweir             aUNOEvt.ClickCount = 0;
322cdf0e10cSrcweir 
323cdf0e10cSrcweir             while( aIter.hasNext() )
324cdf0e10cSrcweir                 ( (XMouseMotionListener) aIter.next() ).mouseMoved( aUNOEvt );
325cdf0e10cSrcweir         }
326cdf0e10cSrcweir     }
327cdf0e10cSrcweir 
328cdf0e10cSrcweir     //----------------------------------------------------------------------------------
329cdf0e10cSrcweir 
fireFocusEvent( java.awt.event.FocusEvent aEvt )330cdf0e10cSrcweir     public void fireFocusEvent( java.awt.event.FocusEvent aEvt )
331cdf0e10cSrcweir     {
332cdf0e10cSrcweir         if( java.awt.event.FocusEvent.FOCUS_GAINED == aEvt.getID() )
333cdf0e10cSrcweir         {
334cdf0e10cSrcweir             ListIterator aIter = maFocusListeners.listIterator( 0 );
335cdf0e10cSrcweir             FocusEvent   aUNOEvt = new FocusEvent();
336cdf0e10cSrcweir 
337cdf0e10cSrcweir             while( aIter.hasNext() )
338cdf0e10cSrcweir             {
339cdf0e10cSrcweir                 ( (XFocusListener) aIter.next() ).focusGained( aUNOEvt );
340cdf0e10cSrcweir             }
341cdf0e10cSrcweir         }
342cdf0e10cSrcweir     }
343cdf0e10cSrcweir 
344cdf0e10cSrcweir     //----------------------------------------------------------------------------------
345cdf0e10cSrcweir 
fireDisposingEvent()346cdf0e10cSrcweir 	public void fireDisposingEvent()
347cdf0e10cSrcweir 	{
348cdf0e10cSrcweir 		ListIterator aIter = maEventListeners.listIterator( 0 );
349cdf0e10cSrcweir 
350cdf0e10cSrcweir 		while( aIter.hasNext() )
351cdf0e10cSrcweir 		{
352cdf0e10cSrcweir 			( (XEventListener) aIter.next() ).disposing( new com.sun.star.lang.EventObject() );
353cdf0e10cSrcweir 		}
354cdf0e10cSrcweir 	}
355cdf0e10cSrcweir 
356cdf0e10cSrcweir     // --------------------
357cdf0e10cSrcweir     // - XWindow methods  -
358cdf0e10cSrcweir     // --------------------
359cdf0e10cSrcweir 
setPosSize( int X, int Y, int Width, int Height, short Flags )360cdf0e10cSrcweir     public void setPosSize( int X, int Y, int Width, int Height, short Flags )
361cdf0e10cSrcweir     {
362cdf0e10cSrcweir         maFrame.setBounds( X, Y, Width, Height );
363cdf0e10cSrcweir     }
364cdf0e10cSrcweir 
365cdf0e10cSrcweir     //----------------------------------------------------------------------------------
366cdf0e10cSrcweir 
getPosSize( )367cdf0e10cSrcweir     public com.sun.star.awt.Rectangle getPosSize(  )
368cdf0e10cSrcweir     {
369cdf0e10cSrcweir         java.awt.Rectangle bounds = maFrame.getBounds();
370cdf0e10cSrcweir         return new com.sun.star.awt.Rectangle( bounds.x, bounds.y, bounds.width, bounds.height );
371cdf0e10cSrcweir     }
372cdf0e10cSrcweir 
373cdf0e10cSrcweir     //----------------------------------------------------------------------------------
374cdf0e10cSrcweir 
setVisible( boolean visible )375cdf0e10cSrcweir     public void setVisible( boolean visible )
376cdf0e10cSrcweir     {
377cdf0e10cSrcweir          maFrame.setVisible( visible );
378cdf0e10cSrcweir     }
379cdf0e10cSrcweir 
380cdf0e10cSrcweir     //----------------------------------------------------------------------------------
381cdf0e10cSrcweir 
setEnable( boolean enable )382cdf0e10cSrcweir     public void setEnable( boolean enable )
383cdf0e10cSrcweir     {
384cdf0e10cSrcweir         maFrame.setEnabled( enable );
385cdf0e10cSrcweir     }
386cdf0e10cSrcweir 
387cdf0e10cSrcweir     //----------------------------------------------------------------------------------
388cdf0e10cSrcweir 
setFocus()389cdf0e10cSrcweir     public void setFocus()
390cdf0e10cSrcweir     {
391cdf0e10cSrcweir     }
392cdf0e10cSrcweir 
393cdf0e10cSrcweir     //----------------------------------------------------------------------------------
394cdf0e10cSrcweir 
addEventListener( XEventListener xListener )395cdf0e10cSrcweir     public void addEventListener( XEventListener xListener )
396cdf0e10cSrcweir     {
397cdf0e10cSrcweir         if( xListener != null )
398cdf0e10cSrcweir             maEventListeners.add( xListener );
399cdf0e10cSrcweir     }
400cdf0e10cSrcweir 
401cdf0e10cSrcweir     //----------------------------------------------------------------------------------
402cdf0e10cSrcweir 
removeEventListener( XEventListener xListener )403cdf0e10cSrcweir     public void removeEventListener( XEventListener xListener )
404cdf0e10cSrcweir     {
405cdf0e10cSrcweir         if( xListener != null )
406cdf0e10cSrcweir             maEventListeners.remove( xListener );
407cdf0e10cSrcweir     }
408cdf0e10cSrcweir 
409cdf0e10cSrcweir     //----------------------------------------------------------------------------------
410cdf0e10cSrcweir 
addWindowListener( XWindowListener xListener )411cdf0e10cSrcweir     public void addWindowListener( XWindowListener xListener )
412cdf0e10cSrcweir     {
413cdf0e10cSrcweir         if( xListener != null )
414cdf0e10cSrcweir             maWindowListeners.add( xListener );
415cdf0e10cSrcweir     }
416cdf0e10cSrcweir 
417cdf0e10cSrcweir     //----------------------------------------------------------------------------------
418cdf0e10cSrcweir 
removeWindowListener( XWindowListener xListener )419cdf0e10cSrcweir     public void removeWindowListener( XWindowListener xListener )
420cdf0e10cSrcweir     {
421cdf0e10cSrcweir         if( xListener != null )
422cdf0e10cSrcweir             maWindowListeners.remove( xListener );
423cdf0e10cSrcweir     }
424cdf0e10cSrcweir 
425cdf0e10cSrcweir     //----------------------------------------------------------------------------------
426cdf0e10cSrcweir 
addFocusListener( XFocusListener xListener )427cdf0e10cSrcweir     public void addFocusListener( XFocusListener xListener )
428cdf0e10cSrcweir     {
429cdf0e10cSrcweir         if( xListener != null )
430cdf0e10cSrcweir             maFocusListeners.add( xListener );
431cdf0e10cSrcweir     }
432cdf0e10cSrcweir 
433cdf0e10cSrcweir     //----------------------------------------------------------------------------------
434cdf0e10cSrcweir 
removeFocusListener( XFocusListener xListener )435cdf0e10cSrcweir     public void removeFocusListener( XFocusListener xListener )
436cdf0e10cSrcweir     {
437cdf0e10cSrcweir         if( xListener != null )
438cdf0e10cSrcweir             maFocusListeners.remove( xListener );
439cdf0e10cSrcweir     }
440cdf0e10cSrcweir 
441cdf0e10cSrcweir     //----------------------------------------------------------------------------------
442cdf0e10cSrcweir 
addKeyListener( XKeyListener xListener )443cdf0e10cSrcweir     public void addKeyListener( XKeyListener xListener )
444cdf0e10cSrcweir     {
445cdf0e10cSrcweir         if( xListener != null )
446cdf0e10cSrcweir             maKeyListeners.add( xListener );
447cdf0e10cSrcweir     }
448cdf0e10cSrcweir 
449cdf0e10cSrcweir     //----------------------------------------------------------------------------------
450cdf0e10cSrcweir 
removeKeyListener( XKeyListener xListener )451cdf0e10cSrcweir     public void removeKeyListener( XKeyListener xListener )
452cdf0e10cSrcweir     {
453cdf0e10cSrcweir         if( xListener != null )
454cdf0e10cSrcweir             maKeyListeners.remove( xListener );
455cdf0e10cSrcweir     }
456cdf0e10cSrcweir 
457cdf0e10cSrcweir     //----------------------------------------------------------------------------------
458cdf0e10cSrcweir 
addMouseListener( XMouseListener xListener )459cdf0e10cSrcweir     public void addMouseListener( XMouseListener xListener )
460cdf0e10cSrcweir     {
461cdf0e10cSrcweir         if( xListener != null )
462cdf0e10cSrcweir             maMouseListeners.add( xListener );
463cdf0e10cSrcweir     }
464cdf0e10cSrcweir 
465cdf0e10cSrcweir     //----------------------------------------------------------------------------------
466cdf0e10cSrcweir 
removeMouseListener( XMouseListener xListener )467cdf0e10cSrcweir     public void removeMouseListener( XMouseListener xListener )
468cdf0e10cSrcweir     {
469cdf0e10cSrcweir         if( xListener != null )
470cdf0e10cSrcweir             maMouseListeners.remove( xListener );
471cdf0e10cSrcweir     }
472cdf0e10cSrcweir 
473cdf0e10cSrcweir     //----------------------------------------------------------------------------------
474cdf0e10cSrcweir 
addMouseMotionListener( XMouseMotionListener xListener )475cdf0e10cSrcweir     public void addMouseMotionListener( XMouseMotionListener xListener )
476cdf0e10cSrcweir     {
477cdf0e10cSrcweir         if( xListener != null )
478cdf0e10cSrcweir             maMouseMotionListeners.add( xListener );
479cdf0e10cSrcweir     }
480cdf0e10cSrcweir 
481cdf0e10cSrcweir     //----------------------------------------------------------------------------------
482cdf0e10cSrcweir 
removeMouseMotionListener( XMouseMotionListener xListener )483cdf0e10cSrcweir     public void removeMouseMotionListener( XMouseMotionListener xListener )
484cdf0e10cSrcweir     {
485cdf0e10cSrcweir         if( xListener != null )
486cdf0e10cSrcweir             maMouseMotionListeners.remove( xListener );
487cdf0e10cSrcweir     }
488cdf0e10cSrcweir 
489cdf0e10cSrcweir     //----------------------------------------------------------------------------------
490cdf0e10cSrcweir 
addPaintListener( XPaintListener xListener )491cdf0e10cSrcweir     public void addPaintListener( XPaintListener xListener )
492cdf0e10cSrcweir     {
493cdf0e10cSrcweir         if( xListener != null )
494cdf0e10cSrcweir             maPaintListeners.add( xListener );
495cdf0e10cSrcweir     }
496cdf0e10cSrcweir 
497cdf0e10cSrcweir     //----------------------------------------------------------------------------------
498cdf0e10cSrcweir 
removePaintListener( XPaintListener xListener )499cdf0e10cSrcweir     public void removePaintListener( XPaintListener xListener )
500cdf0e10cSrcweir     {
501cdf0e10cSrcweir         if( xListener != null )
502cdf0e10cSrcweir             maPaintListeners.remove( xListener );
503cdf0e10cSrcweir     }
504cdf0e10cSrcweir }
505