1 /*
2  * This file is part of the LibreOffice project.
3  *
4  * This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7  *
8  * This file incorporates work covered by the following license notice:
9  *
10  *   Licensed to the Apache Software Foundation (ASF) under one or more
11  *   contributor license agreements. See the NOTICE file distributed
12  *   with this work for additional information regarding copyright
13  *   ownership. The ASF licenses this file to you under the Apache
14  *   License, Version 2.0 (the "License"); you may not use this file
15  *   except in compliance with the License. You may obtain a copy of
16  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
17  */
18 
19 package ifc.awt;
20 
21 import lib.MultiPropertyTest;
22 import util.utils;
23 
24 /*
25 * Testing <code>com.sun.star.awt.UnoControlDateFieldModel</code>
26 * service properties :
27 * <ul>
28 *  <li><code> BackgroundColor</code></li>
29 *  <li><code> Border</code></li>
30 *  <li><code> Date</code></li>
31 *  <li><code> DateMax</code></li>
32 *  <li><code> DateMin</code></li>
33 *  <li><code> DefaultControl</code></li>
34 *  <li><code> Enabled</code></li>
35 *  <li><code> DateFormat</code></li>
36 *  <li><code> FontDescriptor</code></li>
37 *  <li><code> Printable</code></li>
38 *  <li><code> ReadOnly</code></li>
39 *  <li><code> Spin</code></li>
40 *  <li><code> StrictFormat</code></li>
41 *  <li><code> Tabstop</code></li>
42 *  <li><code> TextColor</code></li>
43 * </ul>
44 * Almost all properties testing is automated by
45 * <code>lib.MultiPropertyTest</code>.
46 * @see com.sun.star.awt.UnoControlDateFieldModel
47 */
48 public class _UnoControlDateFieldModel extends MultiPropertyTest {
49 
50     /**
51     * This property can be void, so if old value is <code> null </code>
52     * new value must be specified.
53     */
_BackgroundColor()54     public void _BackgroundColor() {
55         testProperty("BackgroundColor", new PropertyTester() {
56             @Override
57             protected Object getNewValue(String prop, Object old) {
58                 return utils.isVoid(old) ? Integer.valueOf(6543) : null ;
59             }
60         }) ;
61     }
62 
63     /**
64     * This property can be VOID, and in case if it is so new
65     * value must defined.
66     */
_BorderColor()67     public void _BorderColor() {
68         testProperty("BorderColor", new PropertyTester() {
69             @Override
70             protected Object getNewValue(String p, Object old) {
71                 return utils.isVoid(old) ? Integer.valueOf(1234) : null ;
72             }
73         }) ;
74     }
75 
76 
77     /**
78     * This property can be void, so if old value is <code> null </code>
79     * new value must be specified.
80     */
_Date()81     public void _Date() {
82         testProperty("Date", new PropertyTester() {
83             @Override
84             protected Object getNewValue(String prop, Object old) {
85                 return utils.isVoid(old) ? Integer.valueOf(6543) :
86                     super.getNewValue(prop, old) ;
87             }
88         }) ;
89     }
90 
91     /**
92     * This property can be void, so if old value is <code> null </code>
93     * new value must be specified.
94     */
_Tabstop()95     public void _Tabstop() {
96         testProperty("Tabstop", new PropertyTester() {
97             @Override
98             protected Object getNewValue(String prop, Object old) {
99                 return utils.isVoid(old) ? Boolean.TRUE : null ;
100             }
101         }) ;
102     }
103 
104     /**
105     * This property can be void, so if old value is <code> null </code>
106     * new value must be specified.
107     */
_TextColor()108     public void _TextColor() {
109         testProperty("TextColor", new PropertyTester() {
110             @Override
111             protected Object getNewValue(String prop, Object old) {
112                 return utils.isVoid(old) ? Integer.valueOf(123) : null ;
113             }
114         }) ;
115     }
116 
117     /**
118     * Redefined method returns value, that differs from property value.
119     */
120     protected PropertyTester ColorTester = new PropertyTester() {
121         @Override
122         protected Object getNewValue(String propName, Object oldValue) {
123             if (util.ValueComparer.equalValue(oldValue, Integer.valueOf(17)))
124                 return Integer.valueOf(25);
125             else
126                 return Integer.valueOf(17);
127         }
128     };
129 
130     /**
131     * This property can be void, so if old value is <code> null </code>
132     * new value must be specified.
133     */
_TextLineColor()134     public void _TextLineColor() {
135         log.println("Testing with custom Property tester") ;
136         testProperty("TextLineColor", ColorTester) ;
137     }
138 
_DateShowCentury()139     public void _DateShowCentury() {
140         boolean res = false;
141         try {
142             util.dbg.printPropertyInfo(oObj,"DateShowCentury",log);
143             Object oDsc = oObj.getPropertyValue("DateShowCentury");
144             Boolean dsc = null;
145             if (util.utils.isVoid(oDsc)) {
146                 log.println("Property is void, set it to true");
147                 dsc = Boolean.TRUE;
148             } else {
149                 dsc = (Boolean) oDsc;
150                 dsc = Boolean.valueOf(!dsc.booleanValue());
151                 log.println("Setting property to "+dsc);
152             }
153             oObj.setPropertyValue("DateShowCentury",dsc);
154             Boolean getdsc = (Boolean) oObj.getPropertyValue("DateShowCentury");
155             log.println("Getting value "+getdsc);
156             res = dsc.equals(getdsc);
157         } catch (com.sun.star.beans.UnknownPropertyException upe) {
158             log.println("Don't know the Property 'DateShowCentury'");
159         } catch (com.sun.star.lang.WrappedTargetException wte) {
160             log.println("WrappedTargetException while getting Property 'DateShowCentury'");
161         } catch (com.sun.star.lang.IllegalArgumentException iae) {
162             log.println("IllegalArgumentException while getting Property 'DateShowCentury'");
163         } catch (com.sun.star.beans.PropertyVetoException pve) {
164             log.println("PropertyVetoException while getting Property 'DateShowCentury'");
165         }
166         tRes.tested("DateShowCentury",res);
167 
168     }
169 }
170 
171