Spec-Zone .ru
спецификации, руководства, описания, API
|
001/* 002 * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. 003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 004 * 005 * This code is free software; you can redistribute it and/or modify it 006 * under the terms of the GNU General Public License version 2 only, as 007 * published by the Free Software Foundation. Oracle designates this 008 * particular file as subject to the "Classpath" exception as provided 009 * by Oracle in the LICENSE file that accompanied this code. 010 * 011 * This code is distributed in the hope that it will be useful, but WITHOUT 012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 014 * version 2 for more details (a copy is included in the LICENSE file that 015 * accompanied this code). 016 * 017 * You should have received a copy of the GNU General Public License version 018 * 2 along with this work; if not, write to the Free Software Foundation, 019 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 020 * 021 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 022 * or visit www.oracle.com if you need additional information or have any 023 * questions. 024 */ 025 026package javafx.util.converter; 027 028import java.text.DecimalFormat; 029import java.text.DecimalFormatSymbols; 030import java.text.NumberFormat; 031import java.util.Locale; 032import javafx.util.StringConverter; 033 034/** 035 * <p>{@link StringConverter} implementation for {@link Number} values 036 * that represent currency.</p> 037 * 038 * @see PercentageStringConverter 039 * @see NumberStringConverter 040 * @see StringConverter 041 */ 042public class CurrencyStringConverter extends NumberStringConverter { 043 044 // ------------------------------------------------------------ Constructors 045 public CurrencyStringConverter() { 046 this(Locale.getDefault()); 047 } 048 049 public CurrencyStringConverter(Locale locale) { 050 this(locale, null); 051 } 052 053 public CurrencyStringConverter(String pattern) { 054 this(Locale.getDefault(), pattern); 055 } 056 057 public CurrencyStringConverter(Locale locale, String pattern) { 058 super(locale, pattern, null); 059 } 060 061 public CurrencyStringConverter(NumberFormat numberFormat) { 062 super(null, null, numberFormat); 063 } 064 065 066 // ---------------------------------------------------------------0- Methods 067 068 /** {@inheritDoc} */ 069 @Override protected NumberFormat getNumberFormat() { 070 Locale _locale = locale == null ? Locale.getDefault() : locale; 071 072 if (numberFormat != null) { 073 return numberFormat; 074 } else if (pattern != null) { 075 DecimalFormatSymbols symbols = new DecimalFormatSymbols(_locale); 076 return new DecimalFormat(pattern, symbols); 077 } else { 078 return NumberFormat.getCurrencyInstance(_locale); 079 } 080 } 081}