01: /*
02: * Copyright 2006-2007 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt.
07: *
08: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
09: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
10: * the license for the specific language governing your rights and limitations.
11: *
12: * Additional Contributor(s): Martin Schmid gridvision engineering GmbH
13: */
14: package org.pentaho.reportdesigner.crm.report.properties.editors;
15:
16: import org.jetbrains.annotations.NotNull;
17: import org.jetbrains.annotations.Nullable;
18:
19: import java.awt.geom.Point2D;
20: import java.text.DecimalFormat;
21: import java.text.ParseException;
22:
23: /**
24: * User: Martin
25: * Date: 21.10.2005
26: * Time: 13:15:53
27: */
28: public class CellEditorJTextFieldWithEllipsisPoint2D extends
29: CellEditorJTextFieldWithEllipsis<Point2D> {
30: @NotNull
31: private static final DecimalFormat decimalFormat = new DecimalFormat(
32: "0.##");
33:
34: public CellEditorJTextFieldWithEllipsisPoint2D() {
35: }
36:
37: @NotNull
38: public String convertToText(@Nullable
39: Point2D obj) {
40: if (obj != null) {
41: return decimalFormat.format(obj.getX()) + "; "
42: + decimalFormat.format(obj.getY());
43: }
44:
45: return "";
46: }
47:
48: @NotNull
49: public Point2D convertFromText(@NotNull
50: String text) throws IllegalArgumentException {
51: int index = text.indexOf(';');
52: if (index != -1) {
53: try {
54: Number n1 = decimalFormat.parse(text
55: .substring(0, index).trim());
56: Number n2 = decimalFormat.parse(text.substring(
57: index + 1, text.length()).trim());
58: return new Point2D.Double(n1.doubleValue(), n2
59: .doubleValue());
60: } catch (ParseException e) {
61: throw new IllegalArgumentException(e);
62: }
63: }
64:
65: throw new IllegalArgumentException();
66: }
67:
68: }
|