Class GUnit
- All Implemented Interfaces:
- Cloneable
Dialog units use font metrics as: 1/4 maximum character width, 1/8 maximum character height (+ external & internal leadings). This is a heritage from the Windows.
Two different unit types exist: integer values and decimal values. The type "px" only supports integer values. Integer values can range from -536870911 (-0x1FFFFFFF) to 536870911 (0x1FFFFFFF). Decimal values can be from -536870911.ddddddd (-0x1FFFFFFF.ddddddd) to 536870911.ddddddd (0x1FFFFFFF.ddddddd) where "ddddddd" is the decimal part with a maximum of 7 digits. A unit can be a combination of several other units, e.g. "90%-10px+1pt". This type is called FORMULA.
- Author:
- Christopher Mindus
- Field SummaryFieldsModifier and TypeFieldDescription- static final GUnitAn empty "NONE" unit, i.e.- static final intThe unit type "dialog" or "dlg" for short.- static final intThe unit type size of the current font or "em" for short.- static final intThe unit type size of the "x" character of current font or "ex" for short.- static final intThe unit type for complex values with a formula.- static final intThe unit type size of the notch BOTTOM side safe size in pixels or "nb" for short.- static final intThe unit type size of the notch LEFT side safe size in pixels or "nl" for short.- static final intThe unit type size of the notch RIGHT side safe size in pixels or "nr" for short.- static final intThe unit type size of the notch TOP side safe size in pixels or "nt" for short.- static final intThe unit type size of the maximum notch LEFT/RIGHT side or WIDTH safe size in pixels or "nw" for short.- static final intThe unit type size for percentage of parent or "%" for short.- static final intThe unit type size for percentage of parent height or "%h" for short.- static final intThe unit type size for maximum size of percentage of parent width and height or "%max" for short.- static final intThe unit type size for minimum size of percentage of parent width and height or "%min" for short.- static final intThe unit type size for percentage of parent width or "%w" for short.- static final intThe unit type in points, i.e.- static final intThe unit type "pixels" or "px" for short.- static final intThe unit type size special value string, set as the formula.- static final intThe unit type size for percentage of viewport height or "vh" for short.- static final intThe unit type size for maximum size of percentage of viewport width and height or "vmax" for short.- static final intThe unit type size for minimum size of percentage of viewport width and height or "vmin" for short.- static final intThe unit type size for percentage of viewport width or "vw" for short.
- Constructor SummaryConstructorsConstructorDescription- GUnit()Creates a unit object to 0 (zero) in pixels.- GUnit- (double value, int unit) Creates a unit object with the specified value in pixels.- GUnit- (int value) Creates a unit object with the specified value in pixels.- GUnit- (ReadTransaction trans) Creates a unit object from a transaction.
- Method SummaryModifier and TypeMethodDescription- void- append- (SendTransaction trans) Appends the unit object to a transaction.- clone()Clones this instance.- static GUnit- createCSSGUnit- (String value, String... specialValues) Creates a GUnit object from a String.- static GUnit- createGUnit- (String expr0, String... specialValues) Creates a GUnit object from a String.- booleanChecks if two unit objects are equal.- booleanChecks if two unit objects are equal.Gets the unit as a CSS value.- double- getPixelValue- (UIComp comp, boolean isHorz) Calculates the unit into a pixel value using the font information.- static ScriptEngineReturns the script engine manager.Gets the String representation of the bounds as "value type".- int- getType()Gets the type of the unit (0-19), one of the values: UT_PX (pixel), UT_DLG (dialog), UT_EM ("em"), UT_EX ("ex"), UT_PT (point), UT_PC (percent), UT_PCW (percentage of parent width), UT_PCH (percentage of parent height), UT_PCMIN (minimum size of percentage of parent width and height), UT_PCMAX (maximum size of percentage of parent width and height), UT_VW (percentage of viewport width), UT_VH (percentage of viewport height), UT_VMIN (size for minimum size of percentage of viewport width and height), UT_VMAX (size for maximum size of percentage of viewport width and height), UT_NL (size of the notch LEFT side safe size in pixels), UT_NR (size of the notch RIGHT side safe size in pixels), UT_NW (size of the maximum notch LEFT/RIGHT side or WIDTH safe size in pixels), UT_NT (size of the notch TOP side safe size in pixels), UT_NB (size of the notch BOTTOM side safe size in pixels), UT_FORMULA (formula) or UT_VALUE (special value).- double- getValue()Returns the double value for the unit.- booleanReturns if this value is dependent on the container size, i.e.- boolean- isLocked()Checks if the unit is "locked" from user change in the GUI design editor.- booleanChecks if this is a valid CSS pure unit, e.g.- boolean- isZero()Checks if the unit is zero.- protected StringReturns the parameter string representing the state of this event.- void- setLocked- (boolean on) Sets the lock state of the unit.- toString()Returns a string representation of this class instance.- validate()Validates an expression formula.- static void- validateCSSGUnit- (GUnit unit, String... specialValues) Validates a GUnit object.
- Field Details- NONEAn empty "NONE" unit, i.e. "0px".
- UT_PXpublic static final int UT_PXThe unit type "pixels" or "px" for short. Only integer values are allowed.- See Also:
 
- UT_PTpublic static final int UT_PTThe unit type in points, i.e. 1/72 inch or "pt" for short. Decimals are allowed.- See Also:
 
- UT_EMpublic static final int UT_EMThe unit type size of the current font or "em" for short. Decimals are allowed.- See Also:
 
- UT_EXpublic static final int UT_EXThe unit type size of the "x" character of current font or "ex" for short. Decimals are allowed.- See Also:
 
- UT_DLGpublic static final int UT_DLGThe unit type "dialog" or "dlg" for short. Decimals are allowed.- See Also:
 
- UT_PCpublic static final int UT_PCThe unit type size for percentage of parent or "%" for short. Decimals are allowed.- See Also:
 
- UT_PCWpublic static final int UT_PCWThe unit type size for percentage of parent width or "%w" for short. Decimals are allowed.- See Also:
 
- UT_PCHpublic static final int UT_PCHThe unit type size for percentage of parent height or "%h" for short. Decimals are allowed.- See Also:
 
- UT_PCMINpublic static final int UT_PCMINThe unit type size for minimum size of percentage of parent width and height or "%min" for short. Decimals are allowed.- See Also:
 
- UT_PCMAXpublic static final int UT_PCMAXThe unit type size for maximum size of percentage of parent width and height or "%max" for short. Decimals are allowed.- See Also:
 
- UT_VWpublic static final int UT_VWThe unit type size for percentage of viewport width or "vw" for short. Decimals are allowed.- See Also:
 
- UT_VHpublic static final int UT_VHThe unit type size for percentage of viewport height or "vh" for short. Decimals are allowed.- See Also:
 
- UT_VMINpublic static final int UT_VMINThe unit type size for minimum size of percentage of viewport width and height or "vmin" for short. Decimals are allowed.- See Also:
 
- UT_VMAXpublic static final int UT_VMAXThe unit type size for maximum size of percentage of viewport width and height or "vmax" for short. Decimals are allowed.- See Also:
 
- UT_NLpublic static final int UT_NLThe unit type size of the notch LEFT side safe size in pixels or "nl" for short. Decimals are allowed.- See Also:
 
- UT_NRpublic static final int UT_NRThe unit type size of the notch RIGHT side safe size in pixels or "nr" for short. Decimals are allowed.- See Also:
 
- UT_NWpublic static final int UT_NWThe unit type size of the maximum notch LEFT/RIGHT side or WIDTH safe size in pixels or "nw" for short. Decimals are allowed.- See Also:
 
- UT_NTpublic static final int UT_NTThe unit type size of the notch TOP side safe size in pixels or "nt" for short. Decimals are allowed.- See Also:
 
- UT_NBpublic static final int UT_NBThe unit type size of the notch BOTTOM side safe size in pixels or "nb" for short. Decimals are allowed.- See Also:
 
- UT_FORMULApublic static final int UT_FORMULAThe unit type for complex values with a formula.- See Also:
 
- UT_VALUEpublic static final int UT_VALUEThe unit type size special value string, set as the formula.- See Also:
 
 
- Constructor Details- GUnitpublic GUnit()Creates a unit object to 0 (zero) in pixels.
- GUnitpublic GUnit- (int value) Creates a unit object with the specified value in pixels.- Parameters:
- value- The value.
- Throws:
- IllegalArgumentException- if the value is not in range of -0x1FFFFFFF to 0x1FFFFFFF.
 
- GUnitpublic GUnit- (double value, int unit) Creates a unit object with the specified value in pixels.- Parameters:
- value- The value.
- unit- The unit UT_* (excluding UT_FORMULA and UT_VALUE).
- Throws:
- IllegalArgumentException- For invalid value range.
 
- GUnitCreates a unit object from a transaction.- Parameters:
- trans- The transaction.
 
 
- Method Details- getScriptEngineReturns the script engine manager.- Throws:
- GUnitException- If engine cannot be instantiated.
 
- createGUnitCreates a GUnit object from a String. The String must be in the formats:- - [+|-] nnn [unit] - [+|-] nnn[.ddd] [unit] - formula consisting of characters "()+-/* 0123456789." and the unit characters - Parameters:
- expr0- The expression string.
- specialValues- Accepted special values.
- Returns:
- GUnit the created unit.
- Throws:
- GUnitException- The error message.
 
- createCSSGUnitCreates a GUnit object from a String. The String must be in the formats:- - [+|-] nnn [unit] - [+|-] nnn[.ddd] [unit] - All formats except "pixel" supports decimals ([.ddd] above). - Formulas are not supported. The following units are supported: - px: pixel,
- pt: point,
- em: width of "M",
- ex: width of "x",
- %: percentage width of parent,
- vw: viewport width,
- vh: viewport height.
 - Parameters:
- value- The value string.
- specialValues- Accepted special values.
- Returns:
- GUnit the created unit.
- Throws:
- GUnitException- The error message.
 
- validateCSSGUnitValidates a GUnit object.- Formulas are not supported. The following units are supported: - px: pixel,
- pt: point,
- em: width of "M",
- ex: width of "x",
- %: percentage width of parent,
- vw: viewport width,
- vh: viewport height.
 - Parameters:
- unit- The unit as CSS value.
- specialValues- Accepted special values.
- Throws:
- GUnitException- The error message.
 
- getTypepublic int getType()Gets the type of the unit (0-19), one of the values:- UT_PX (pixel),
- UT_DLG (dialog),
- UT_EM ("em"),
- UT_EX ("ex"),
- UT_PT (point),
- UT_PC (percent),
- UT_PCW (percentage of parent width),
- UT_PCH (percentage of parent height),
- UT_PCMIN (minimum size of percentage of parent width and height),
- UT_PCMAX (maximum size of percentage of parent width and height),
- UT_VW (percentage of viewport width),
- UT_VH (percentage of viewport height),
- UT_VMIN (size for minimum size of percentage of viewport width and height),
- UT_VMAX (size for maximum size of percentage of viewport width and height),
- UT_NL (size of the notch LEFT side safe size in pixels),
- UT_NR (size of the notch RIGHT side safe size in pixels),
- UT_NW (size of the maximum notch LEFT/RIGHT side or WIDTH safe size in pixels),
- UT_NT (size of the notch TOP side safe size in pixels),
- UT_NB (size of the notch BOTTOM side safe size in pixels),
- UT_FORMULA (formula) or
- UT_VALUE (special value).
 
- isLockedpublic boolean isLocked()Checks if the unit is "locked" from user change in the GUI design editor.- Returns:
- The lock flag.
 
- setLockedpublic void setLocked- (boolean on) Sets the lock state of the unit.- Parameters:
- on- The lock flag.
 
- getStringGets the String representation of the bounds as "value type".- Returns:
- A string in the form of value type.
 
- isZeropublic boolean isZero()Checks if the unit is zero.- Returns:
- trueif the value is zero when not a UT_FORMULA or UT_VALUE string such as "fixed",- falseotherwise.
 
- equalsChecks if two unit objects are equal.
- equalsChecks if two unit objects are equal.- Parameters:
- unit- another size object. If null, the sizes are not equal.
- Returns:
- true if the object has the same type and value.
 
- cloneClones this instance.
- paramStringReturns the parameter string representing the state of this event. This string is useful for debugging. Super-classes adds extra information to the string by preceding it with a comma followed by the extra information.- Returns:
- the parameter string of this unit object.
 
- getValuepublic double getValue()Returns the double value for the unit.- Returns:
- The value for PT, PX, %, DLG, EX and EM, or Double.NaN otherwise.
 
- toStringReturns a string representation of this class instance.
- getCSSValueGets the unit as a CSS value. Formula and percent is NOT accepted and returns null along with a warning logging.- Returns:
- The CSS value, or nullif it's a UT_FORMULA.
 
- appendAppends the unit object to a transaction.- Parameters:
- trans- The transaction.
 
- validateValidates an expression formula.- Throws:
- GUnitException- For validation errors.
 
- getPixelValueCalculates the unit into a pixel value using the font information.- Parameters:
- comp- The component.
- isHorz- Flag indicating this is a horizontal value (significant only for % or DLG).
- Returns:
- The pixel value, or Double.NaN if the expression is invalid. Note: the Notch values always returns zero.
- Throws:
- IllegalStateException- If this is called outside of the Designer.
 
- isPureCSSpublic boolean isPureCSS()Checks if this is a valid CSS pure unit, e.g. not DLG, Formula.- Returns:
- trueif it's a pure CSS unit,- falseif it is a calculated value and cannot be used in CSS declarations.
 
- isContainerDependentpublic boolean isContainerDependent()Returns if this value is dependent on the container size, i.e. value is a percent value or a formula containing percent.- Returns:
- trueif the value is container dependent, i.e. a Percent value, or if it is a formula contains a percent value.- falseis returned if the value is not dependent of the container.