1  /**************************************************************
2   *
3   * Licensed to the Apache Software Foundation (ASF) under one
4   * or more contributor license agreements.  See the NOTICE file
5   * distributed with this work for additional information
6   * regarding copyright ownership.  The ASF licenses this file
7   * to you under the Apache License, Version 2.0 (the
8   * "License"); you may not use this file except in compliance
9   * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   *
20   *************************************************************/
21  
22  
23  package ifc.awt;
24  
25  import com.sun.star.accessibility.XAccessible;
26  import com.sun.star.accessibility.XAccessibleComponent;
27  import com.sun.star.awt.Point;
28  import com.sun.star.awt.ScrollBarOrientation;
29  import com.sun.star.awt.XScrollBar;
30  import com.sun.star.lang.XMultiServiceFactory;
31  import com.sun.star.text.XTextDocument;
32  import com.sun.star.uno.UnoRuntime;
33  
34  import java.awt.Robot;
35  import java.awt.event.InputEvent;
36  
37  import lib.MultiMethodTest;
38  
39  
40  public class _XScrollBar extends MultiMethodTest {
41      public XScrollBar oObj;
42      public boolean adjusted = false;
43      com.sun.star.awt.XAdjustmentListener listener = new AdjustmentListener();
44  
_addAdjustmentListener()45      public void _addAdjustmentListener() {
46          util.FormTools.switchDesignOf((XMultiServiceFactory) tParam.getMSF(),
47                                   (XTextDocument) tEnv.getObjRelation("Document"));
48          shortWait();
49          oObj.addAdjustmentListener(listener);
50          adjustScrollBar();
51  
52          boolean res = adjusted;
53          oObj.removeAdjustmentListener(listener);
54          adjusted = false;
55          adjustScrollBar();
56          res &= !adjusted;
57          tRes.tested("addAdjustmentListener()", res);
58      }
59  
_removeAdjustmentListener()60      public void _removeAdjustmentListener() {
61          //this method is checked in addAjustmentListener
62          //so that method is requiered here and if it works
63          //this method is given OK too
64          requiredMethod("addAdjustmentListener()");
65          tRes.tested("removeAdjustmentListener()", true);
66      }
67  
_setBlockIncrement()68      public void _setBlockIncrement() {
69          oObj.setBlockIncrement(15);
70          oObj.setBlockIncrement(5);
71          int bi = oObj.getBlockIncrement();
72          tRes.tested("setBlockIncrement()",bi==5);
73      }
74  
_getBlockIncrement()75      public void _getBlockIncrement() {
76          //this method is checked in the corresponding set method
77          //so that method is requiered here and if it works
78          //this method is given OK too
79          requiredMethod("setBlockIncrement()");
80          tRes.tested("getBlockIncrement()", true);
81      }
82  
_setLineIncrement()83      public void _setLineIncrement() {
84          oObj.setLineIncrement(12);
85          oObj.setLineIncrement(2);
86          int li = oObj.getLineIncrement();
87          tRes.tested("setLineIncrement()",li==2);
88      }
89  
_getLineIncrement()90      public void _getLineIncrement() {
91          //this method is checked in the corresponding set method
92          //so that method is requiered here and if it works
93          //this method is given OK too
94          requiredMethod("setLineIncrement()");
95          tRes.tested("getLineIncrement()", true);
96      }
97  
_setMaximum()98      public void _setMaximum() {
99          oObj.setMaximum(490);
100          oObj.setMaximum(480);
101          int max = oObj.getMaximum();
102          tRes.tested("setMaximum()",max==480);
103      }
104  
_getMaximum()105      public void _getMaximum() {
106          //this method is checked in the corresponding set method
107          //so that method is requiered here and if it works
108          //this method is given OK too
109          requiredMethod("setMaximum()");
110          tRes.tested("getMaximum()", true);
111      }
112  
_setOrientation()113      public void _setOrientation() {
114          oObj.setOrientation(ScrollBarOrientation.HORIZONTAL);
115          oObj.setOrientation(ScrollBarOrientation.VERTICAL);
116          int ori = oObj.getOrientation();
117          tRes.tested("setOrientation()",ori==ScrollBarOrientation.VERTICAL);
118      }
119  
_getOrientation()120      public void _getOrientation() {
121          //this method is checked in the corresponding set method
122          //so that method is requiered here and if it works
123          //this method is given OK too
124          requiredMethod("setOrientation()");
125          tRes.tested("getOrientation()", true);
126      }
127  
_setValue()128      public void _setValue() {
129          oObj.setMaximum(600);
130          oObj.setValue(480);
131          oObj.setValue(520);
132          int val = oObj.getValue();
133          tRes.tested("setValue()",val==520);
134      }
135  
_getValue()136      public void _getValue() {
137          //this method is checked in the corresponding set method
138          //so that method is requiered here and if it works
139          //this method is given OK too
140          requiredMethod("setValue()");
141          tRes.tested("getValue()", true);
142      }
143  
_setVisibleSize()144      public void _setVisibleSize() {
145          oObj.setVisibleSize(700);
146          oObj.setVisibleSize(500);
147          int vs = oObj.getVisibleSize();
148          tRes.tested("setVisibleSize()",vs==500);
149      }
150  
_getVisibleSize()151      public void _getVisibleSize() {
152          //this method is checked in the corresponding set method
153          //so that method is requiered here and if it works
154          //this method is given OK too
155          requiredMethod("setVisibleSize()");
156          tRes.tested("getVisibleSize()", true);
157      }
158  
_setValues()159      public void _setValues() {
160          oObj.setValues(80, 200, 300);
161          oObj.setValues(70, 210, 500);
162          int val = oObj.getValue();
163          int vs = oObj.getVisibleSize();
164          int max = oObj.getMaximum();
165          tRes.tested("setValues()",((val==70) && (vs==210) && (max==500)));
166      }
167  
adjustScrollBar()168      private void adjustScrollBar() {
169  
170  
171          XScrollBar sc = (XScrollBar) UnoRuntime.queryInterface(
172                                  XScrollBar.class, tEnv.getTestObject());
173  
174          sc.setValue(500);
175  
176          shortWait();
177  
178          XAccessible acc = (XAccessible) UnoRuntime.queryInterface(
179                                    XAccessible.class, tEnv.getTestObject());
180  
181          XAccessibleComponent aCom = (XAccessibleComponent) UnoRuntime.queryInterface(
182                                              XAccessibleComponent.class,
183                                              acc.getAccessibleContext());
184  
185          Point location = aCom.getLocationOnScreen();
186          //Point location = (Point) tEnv.getObjRelation("Location");
187          //XAccessibleComponent aCom = (XAccessibleComponent) tEnv.getObjRelation("Location");
188          //Point location = aCom.getLocationOnScreen();
189          try {
190              Robot rob = new Robot();
191              rob.mouseMove(location.X + 50, location.Y + 75);
192              rob.mousePress(InputEvent.BUTTON1_MASK);
193              rob.mouseRelease(InputEvent.BUTTON1_MASK);
194          } catch (java.awt.AWTException e) {
195              System.out.println("couldn't adjust scrollbar");
196          }
197  
198          shortWait();
199      }
200  
201      /**
202       * Sleeps for 0.5 sec. to allow Office to react
203       */
shortWait()204      private void shortWait() {
205          try {
206              Thread.sleep(500);
207          } catch (InterruptedException e) {
208              log.println("While waiting :" + e);
209          }
210      }
211  
212      public class AdjustmentListener
213          implements com.sun.star.awt.XAdjustmentListener {
adjustmentValueChanged(com.sun.star.awt.AdjustmentEvent adjustmentEvent)214          public void adjustmentValueChanged(com.sun.star.awt.AdjustmentEvent adjustmentEvent) {
215              System.out.println("Adjustment Value changed");
216              System.out.println("AdjustmentEvent: " + adjustmentEvent.Value);
217              adjusted = true;
218          }
219  
disposing(com.sun.star.lang.EventObject eventObject)220          public void disposing(com.sun.star.lang.EventObject eventObject) {
221              System.out.println("Listener disposed");
222          }
223      }
224  }
225