View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of CosyBeans-Common.
5    *
6    * CosyBeans-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * CosyBeans-Common is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with CosyBeans-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.gui.components.numberfield;
21  
22  /**
23   * Visualize double value in radians by converting it to degrees and displays
24   * it in format XX\u00B0XX'XX\".
25   *
26   * @author <a href="mailto:igor.kriznar@cosylab.com">Igor Kriznar</a>
27   */
28  public class Rad2DegNumberDescriptor extends AngleNumberDescriptor
29  {
30  	/**
31  	 * @see NumberDescriptor
32  	 */
33  	public final static String NAME = "Radians as Degrees Visualization";
34  
35  	/**
36  	 * @see NumberDescriptor
37  	 */
38  	public final static String DESCRIPTION = "Converts double value from radians to degrees and diplays in degree format: XX\u00B0XX'XX\".";
39  	/**
40  		 *
41  		 */
42  	public Rad2DegNumberDescriptor()
43  	{
44  		super();
45  	}
46  
47  	/**
48  	 * Constructs a new Rad2DegNumberDescriptor.
49  	 *
50  	 * @param full should full format be used
51  	 * @see #setUseFullFormat(boolean)
52  	 */
53  	public Rad2DegNumberDescriptor(boolean full)
54  	{
55  		super(full);
56  	}
57  
58  	/**
59  	 * Constructs a new Rad2DegNumberDescriptor.
60  	 *
61  	 * @param degreeSeparator
62  	 * @param minuteSeparator
63  	 * @param secondSeparator
64  	 */
65  	public Rad2DegNumberDescriptor(char degreeSeparator, char minuteSeparator,
66  	    char secondSeparator)
67  	{
68  		super(degreeSeparator, minuteSeparator, secondSeparator);
69  	}
70  
71  	/**
72  	 * Constructs a new Rad2DegNumberDescriptor.
73  	 *
74  	 * @param degreeSeparator
75  	 * @param minuteSeparator
76  	 * @param secondSeparator
77  	 * @param full should full format be used
78  	 * @see #setUseFullFormat(boolean)
79  	 */
80  	public Rad2DegNumberDescriptor(char degreeSeparator, char minuteSeparator,
81  	    char secondSeparator, boolean full)
82  	{
83  		super(degreeSeparator, minuteSeparator, secondSeparator, full);
84  	}
85  
86  	/* (non-Javadoc)
87  	 * @see com.cosylab.gui.components.numberfield.AngleNumberDescriptor#printString(java.lang.Number)
88  	 */
89  	public String printString(Number number)
90  	{
91  		return super.printString(new Double(Math.toDegrees(number.doubleValue())));
92  	}
93  
94  	/* (non-Javadoc)
95  	 * @see com.cosylab.gui.components.numberfield.AngleNumberDescriptor#parseNumber(java.lang.String)
96  	 */
97  	public Number parseNumber(String number)
98  	{
99  		Number n = super.parseNumber(number);
100 
101 		if (n == null) {
102 			return n;
103 		}
104 
105 		return new Double(Math.toRadians(n.doubleValue()));
106 	}
107 }
108 
109 /* __oOo__ */