📄 displaytype.java
字号:
/******************************************************************************
* The contents of this file are subject to the Compiere License Version 1.1
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the License at http://www.compiere.org/license.html
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Original Code is Compiere ERP & CRM Business Solution
* The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
* Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
* created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
* Contributor(s): ______________________________________.
*****************************************************************************/
package org.compiere.util;
import java.text.*;
import java.util.*;
/**
* System Display Types
* <pre>
* SELECT AD_Reference_ID, Name FROM AD_Reference WHERE ValidationType = 'D'
* </pre>
* @author Jorg Janke
* @version $Id: DisplayType.java,v 1.2 2003/04/29 09:28:15 jpedersen Exp $
*/
public final class DisplayType
{
/** Display Type */
public static final int String = 10;
/** Display Type */
public static final int Integer = 11;
/** Display Type */
public static final int Amount = 12;
/** Display Type */
public static final int ID = 13;
/** Display Type */
public static final int Text = 14;
/** Display Type */
public static final int Date = 15;
/** Display Type */
public static final int DateTime = 16;
/** Display Type */
public static final int List = 17;
/** Display Type */
public static final int Table = 18;
/** Display Type */
public static final int TableDir = 19;
/** Display Type */
public static final int YesNo = 20;
/** Display Type */
public static final int Location = 21;
/** Display Type */
public static final int Number = 22;
/** Display Type */
public static final int Binary = 23;
/** Display Type */
public static final int Time = 24;
/** Display Type */
public static final int Account = 25;
/** Display Type */
public static final int RowID = 26;
/** Display Type */
public static final int Color = 27;
/** Display Type */
public static final int Button = 28;
/** Display Type */
public static final int Quantity = 29;
/** Display Type */
public static final int Search = 30;
/** Display Type */
public static final int Locator = 31;
/** Display Type */
public static final int Image = 32;
/** DisplayType */
public static final int Assignment = 33;
/** DisplayType */
public static final int Memo = 34;
// See DBA_DisplayType.sql ----------------------------------------------
/** Maximum number of digits */
private static final int MAX_DIGITS = 28; // Oracle Standard Limitation 38 digits
/** Digits of an Integer */
private static final int INTEGER_DIGITS = 10;
/** Maximum number of fractions */
private static final int MAX_FRACTION = 12;
/** Default Amount Precision */
private static final int AMOUNT_FRACTION = 2;
/**
* Returns true if (numeric) ID.
* (stored as Integer)
* @param displayType Display Type
* @return true if ID
*/
public static boolean isID (int displayType)
{
if (displayType == ID || displayType == Table || displayType == TableDir
|| displayType == Search || displayType == Location || displayType == Locator
|| displayType == Account || displayType == Assignment)
return true;
return false;
} // isID
/**
* Returns true, if DisplayType is numeric (Amount, Number, Quantity, Integer).
* (stored as BigDecimal)
* @param displayType Display Type
* @return true if numeric
*/
public static boolean isNumeric(int displayType)
{
if (displayType == Amount || displayType == Number
|| displayType == Integer || displayType == Quantity)
return true;
return false;
} // isNumeric
/**
* Returns truem if DisplayType is a Date.
* (stored as Timestamp)
* @param displayType Display Type
* @return true if date
*/
public static boolean isDate (int displayType)
{
if (displayType == Date || displayType == DateTime || displayType == Time)
return true;
return false;
} // isDate
/**
* Returns true if DisplayType is a VLookup.
* (stored as Integer)
* @param displayType Display Type
* @return true if Lookup
*/
public static boolean isLookup(int displayType)
{
if (displayType == List || displayType == Table
|| displayType == TableDir || displayType == Search)
return true;
return false;
} // isLookup
/*************************************************************************/
/**
* Return Format for numeric DisplayType
* @param displayType Display Type (default Number)
* @param language Language
* @return number format
*/
public static DecimalFormat getNumberFormat(int displayType, Language language)
{
Language myLanguage = language;
if (myLanguage == null)
myLanguage = Language.getLanguage();
Locale locale = myLanguage.getLocale();
DecimalFormat format = null;
if (locale != null)
format = (DecimalFormat)NumberFormat.getNumberInstance(locale);
else
format = (DecimalFormat)NumberFormat.getNumberInstance(Locale.US);
//
if (displayType == Integer)
{
format.setParseIntegerOnly(true);
format.setMaximumIntegerDigits(INTEGER_DIGITS);
format.setMaximumFractionDigits(0);
}
else if (displayType == Quantity)
{
format.setMaximumIntegerDigits(MAX_DIGITS);
format.setMaximumFractionDigits(MAX_FRACTION);
}
else if (displayType == Amount)
{
format.setMaximumIntegerDigits(MAX_DIGITS);
format.setMaximumFractionDigits(AMOUNT_FRACTION);
format.setMinimumFractionDigits(AMOUNT_FRACTION);
}
else // if (displayType == Number)
{
format.setMaximumIntegerDigits(MAX_DIGITS);
format.setMaximumFractionDigits(MAX_FRACTION);
format.setMinimumFractionDigits(1);
}
return format;
} // getDecimalFormat
/**
* Return Format for numeric DisplayType
* @param displayType Display Type
* @return number format
*/
public static DecimalFormat getNumberFormat(int displayType)
{
return getNumberFormat (displayType, null);
} // getNumberFormat
/*************************************************************************/
/**
* Return Date Format
* @return date format
*/
public static SimpleDateFormat getDateFormat()
{
return getDateFormat (DisplayType.Date, null);
} // getDateFormat
/**
* Return Date Format
* @param language Language
* @return date format
*/
public static SimpleDateFormat getDateFormat (Language language)
{
return getDateFormat (DisplayType.Date, language);
} // getDateFormat
/**
* Return format for date displayType
* @param displayType Display Type
* @return date format
*/
public static SimpleDateFormat getDateFormat (int displayType)
{
return getDateFormat (displayType, null);
} // getDateFormat
/**
* Return format for date displayType
* @param displayType Display Type (default Date)
* @param language Language
* @return date format
*/
public static SimpleDateFormat getDateFormat (int displayType, Language language)
{
Language myLanguage = language;
if (myLanguage == null)
myLanguage = Language.getLanguage();
//
if (displayType == DateTime)
return myLanguage.getDateTimeFormat();
else if (displayType == Time)
return myLanguage.getTimeFormat();
// else if (displayType == Date)
return myLanguage.getDateFormat(); // default
} // getDateFormat
/**
* JDBC Date Format YYYY-MM-DD
* @return date format
*/
static public SimpleDateFormat getDateFormat_JDBC()
{
return new SimpleDateFormat ("yyyy-MM-dd");
} // getDateFormat_JDBC
/**
* Return Storage Class.
* (used for MiniTable)
* @param displayType Display Type
* @param yesNoAsBoolean - yes or no as boolean
* @return class Integer - BigDecimal - Timestamp - String - Boolean
*/
public static Class getClass (int displayType, boolean yesNoAsBoolean)
{
if (displayType == String || displayType == Text || displayType == List || displayType == Memo)
return String.class;
else if (isID(displayType) || displayType == Integer) // note that Integer is stored as BD
return Integer.class;
else if (isNumeric(displayType))
return java.math.BigDecimal.class;
else if (isDate(displayType))
return java.sql.Timestamp.class;
else if (displayType == YesNo && yesNoAsBoolean)
return Boolean.class;
else if (displayType == Button)
return String.class;
//
return Object.class;
} // getClass
} // DisplayType
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -