Class Util
- java.lang.Object
-
- com.lightdev.app.shtm.Util
-
public class Util extends java.lang.Object
Utility methods for application SimplyHTML.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ANCHOR_SEPARATOR
static java.lang.String
CLASS_EXT
static java.lang.String
CLASS_SEPARATOR
static char
CLASS_SEPARATOR_CHAR
static java.lang.String
CSS_ATTRIBUTE_ALIGN_CENTER
static java.lang.String
CSS_ATTRIBUTE_ALIGN_LEFT
static java.lang.String
CSS_ATTRIBUTE_ALIGN_RIGHT
static java.lang.String
CSS_ATTRIBUTE_LINE_THROUGH
static java.lang.String
CSS_ATTRIBUTE_NONE
static java.lang.String
CSS_ATTRIBUTE_NORMAL
static java.lang.String
CSS_ATTRIBUTE_UNDERLINE
static java.lang.String
DIR_UP_INDICATOR
static java.lang.String
FILE_PREFIX
static java.lang.String
JAR_EXTENSION
static java.lang.String
JAR_PREFIX
static java.lang.String
JAR_SEPARATOR
static java.lang.String
pct
static java.lang.String
PROTOCOL_SEPARATOR
static java.lang.String
pt
static java.lang.String
px
static java.lang.String
RELATIVE_PREFIX
static java.lang.String
URL_SEPARATOR
static char
URL_SEPARATOR_CHAR
-
Constructor Summary
Constructors Constructor Description Util()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a)
convenience method for adding a component to a container layed out by a GridBagLayoutstatic void
addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a, int gw, int gh)
convenience method for adding a component to a container layed out by a GridBagLayoutstatic void
addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a, int gw, int gh, int f)
convenience method for adding a component to a container layed out by a GridBagLayoutstatic void
addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a, int gw, int gh, int f, double wx, double wy)
convenience method for adding a component to a container layed out by a GridBagLayoutstatic void
center(java.awt.Component parent, java.awt.Component comp)
center aComponent
relative to anotherComponent
.static void
copyFile(java.io.File srcFile, java.io.File destFile)
copies a single file.static void
deleteDir(java.io.File dir)
delete a directory with all its contentsstatic void
errMsg(java.awt.Component owner, java.lang.String msg, java.lang.Throwable e)
show an error message and print a stack trace to the console if in development mode (DEV_MODE = true)static javax.swing.text.Element
findElementDown(java.lang.String name, javax.swing.text.Element parent)
find the first occurrence of anElement
in the element tree below a givenElement
static javax.swing.text.Element
findElementUp(java.lang.String name1, java.lang.String name2, javax.swing.text.Element start)
find the first occurrence of anElement
in the element tree above a givenElement
static javax.swing.text.Element
findElementUp(java.lang.String name, javax.swing.text.Element start)
find the first occurrence of anElement
in the element tree above a givenElement
static java.lang.Object
findLinkUp(javax.swing.text.Element elem)
find the next link attribute from a given element upwards through the element hierarchystatic float
getAbsoluteAttrVal(java.lang.Object attr)
get the absolute value of an attributestatic float
getAttrValue(java.lang.Object attr)
get the numerical value for an attribute objectstatic java.lang.String
getClassFilePath(java.lang.Class cls)
Get the path of the class file for a given class.static int
getElementIndex(javax.swing.text.Element elem)
get the index of a given element in the list of its parents elements.static java.lang.String
getLastAttrUnit()
get the unit string from the last attribute object which was converted to a numerical valuestatic java.lang.String
getPreference(java.lang.String key, java.lang.String defaultValue)
static float
getPtValue(java.lang.String valStr)
quick hack for getting the point value from an attribute value string (needs to be refined and consolidated with length value)static java.lang.String
getRelativePath(java.io.File fromDir, java.io.File toFile)
get the path to a given file relative to a given directorystatic java.lang.String
getResourceString(UIResources resources, java.lang.String nm)
get a string from the resources filestatic java.lang.String
getResourceString(java.lang.String nm)
static int
getRowIndex(javax.swing.text.Element cell)
get the row index for a given table cellstatic java.util.Vector
getStyleNames(javax.swing.text.html.StyleSheet styles)
get the names of all styles found in a given StyleSheetstatic java.util.Vector
getStyleNamesForTag(javax.swing.text.AttributeSet styles, java.lang.String tag)
get names of all styles for a given tagstatic java.util.Vector
getStyleNamesForTag(javax.swing.text.html.StyleSheet styles, java.lang.String tag)
get names of all styles for a given tagstatic boolean
msg(int options, java.lang.String title, java.lang.String msg, java.lang.String item, java.lang.String sep)
Show a message with options to choose fromstatic int
msgChoice(int options, java.lang.String title, java.lang.String msg, java.lang.String item, java.lang.String sep)
Show a message with options to choose fromstatic void
msgStart(java.lang.String startMsg)
write a message with a time stamp to System.out and remember the time stamp in a LIFO Vectorstatic java.lang.String
nameInput(java.awt.Frame parent, java.lang.String initialName, java.lang.String regex, java.lang.String title, java.lang.String text)
get a name by asking from the userstatic java.lang.String
removeChar(java.lang.String src, char c)
remove all occurrences of a given char from a given stringstatic java.lang.String
removeExtension(java.lang.String fileName)
remove the extension from a file namestatic java.io.File
renameFile(java.io.File from, java.lang.String newExt)
rename a file to have a given extensionstatic javax.swing.text.AttributeSet
resolveAttributes(javax.swing.text.AttributeSet style)
resolve sets of attributes that are recursively stored in each otherstatic java.lang.String
resolveRelativePath(java.lang.String relPath, java.lang.String absPath)
resolve a relative URL string against an absolute URL string.static javax.swing.text.html.StyleSheet
styleSheet()
get a StyleSheet object for using its utility methodsstatic java.lang.String[]
tokenize(java.lang.String input, java.lang.String delim)
Get an arry of strings from a given string having several entries delimited by blanks.
-
-
-
Field Detail
-
JAR_PREFIX
public static final java.lang.String JAR_PREFIX
- See Also:
- Constant Field Values
-
JAR_EXTENSION
public static final java.lang.String JAR_EXTENSION
- See Also:
- Constant Field Values
-
FILE_PREFIX
public static final java.lang.String FILE_PREFIX
- See Also:
- Constant Field Values
-
CLASS_EXT
public static final java.lang.String CLASS_EXT
- See Also:
- Constant Field Values
-
JAR_SEPARATOR
public static final java.lang.String JAR_SEPARATOR
- See Also:
- Constant Field Values
-
URL_SEPARATOR
public static final java.lang.String URL_SEPARATOR
- See Also:
- Constant Field Values
-
URL_SEPARATOR_CHAR
public static final char URL_SEPARATOR_CHAR
- See Also:
- Constant Field Values
-
CLASS_SEPARATOR
public static final java.lang.String CLASS_SEPARATOR
- See Also:
- Constant Field Values
-
CLASS_SEPARATOR_CHAR
public static final char CLASS_SEPARATOR_CHAR
- See Also:
- Constant Field Values
-
DIR_UP_INDICATOR
public static final java.lang.String DIR_UP_INDICATOR
- See Also:
- Constant Field Values
-
RELATIVE_PREFIX
public static final java.lang.String RELATIVE_PREFIX
- See Also:
- Constant Field Values
-
PROTOCOL_SEPARATOR
public static final java.lang.String PROTOCOL_SEPARATOR
- See Also:
- Constant Field Values
-
ANCHOR_SEPARATOR
public static final java.lang.String ANCHOR_SEPARATOR
- See Also:
- Constant Field Values
-
pct
public static final java.lang.String pct
- See Also:
- Constant Field Values
-
pt
public static final java.lang.String pt
- See Also:
- Constant Field Values
-
px
public static final java.lang.String px
- See Also:
- Constant Field Values
-
CSS_ATTRIBUTE_NORMAL
public static final java.lang.String CSS_ATTRIBUTE_NORMAL
- See Also:
- Constant Field Values
-
CSS_ATTRIBUTE_UNDERLINE
public static final java.lang.String CSS_ATTRIBUTE_UNDERLINE
- See Also:
- Constant Field Values
-
CSS_ATTRIBUTE_LINE_THROUGH
public static final java.lang.String CSS_ATTRIBUTE_LINE_THROUGH
- See Also:
- Constant Field Values
-
CSS_ATTRIBUTE_NONE
public static final java.lang.String CSS_ATTRIBUTE_NONE
- See Also:
- Constant Field Values
-
CSS_ATTRIBUTE_ALIGN_LEFT
public static final java.lang.String CSS_ATTRIBUTE_ALIGN_LEFT
- See Also:
- Constant Field Values
-
CSS_ATTRIBUTE_ALIGN_CENTER
public static final java.lang.String CSS_ATTRIBUTE_ALIGN_CENTER
- See Also:
- Constant Field Values
-
CSS_ATTRIBUTE_ALIGN_RIGHT
public static final java.lang.String CSS_ATTRIBUTE_ALIGN_RIGHT
- See Also:
- Constant Field Values
-
-
Method Detail
-
renameFile
public static java.io.File renameFile(java.io.File from, java.lang.String newExt)
rename a file to have a given extension- Parameters:
from
- the file to renamenewExt
- the new extension the file shall have- Returns:
- the renamed file
-
findLinkUp
public static java.lang.Object findLinkUp(javax.swing.text.Element elem)
find the next link attribute from a given element upwards through the element hierarchy- Parameters:
elem
- the element to start looking at- Returns:
- the link attribute found, or null, if none was found
-
removeExtension
public static java.lang.String removeExtension(java.lang.String fileName)
remove the extension from a file name- Parameters:
fileName
- the file name to remove the extension from- Returns:
- the file name without extension
-
resolveAttributes
public static javax.swing.text.AttributeSet resolveAttributes(javax.swing.text.AttributeSet style)
resolve sets of attributes that are recursively stored in each other- Parameters:
style
- the set of attributes containing other sets of attributes
-
nameInput
public static java.lang.String nameInput(java.awt.Frame parent, java.lang.String initialName, java.lang.String regex, java.lang.String title, java.lang.String text)
get a name by asking from the userWrapper for JOptionPane with I18N support
- Parameters:
initialName
- the name initially shown in option panetitle
- the title to be shown in the option panetext
- the text to be shown in the option pane- Returns:
- the entered name or null if action was cancelled
-
msgChoice
public static int msgChoice(int options, java.lang.String title, java.lang.String msg, java.lang.String item, java.lang.String sep)
Show a message with options to choose fromWrapper for JOptionPane with I18N support
- Parameters:
options
- the options to be shown in the dialogtitle
- the title to be shown in the dialogmsg
- the message to be shown in the dialogitem
- a variable part to be shown before msgsep
- a separator for msg and item (return or blank etc.)- Returns:
- the choice
-
msg
public static boolean msg(int options, java.lang.String title, java.lang.String msg, java.lang.String item, java.lang.String sep)
Show a message with options to choose fromWrapper for JOptionPane with I18N support
- Parameters:
options
- the options to be shown in the dialogtitle
- the title to be shown in the dialogmsg
- the message to be shown in the dialogitem
- a variable part to be shown before msgsep
- a separator for msg and item (return or blank etc.)- Returns:
- true, if YES was chosen, false if not
-
getStyleNamesForTag
public static java.util.Vector getStyleNamesForTag(javax.swing.text.html.StyleSheet styles, java.lang.String tag)
get names of all styles for a given tag- Parameters:
styles
- the style sheet to look for style namestag
- the tag to find style names for- Returns:
- a Vector with all style names found
-
getStyleNamesForTag
public static java.util.Vector getStyleNamesForTag(javax.swing.text.AttributeSet styles, java.lang.String tag)
get names of all styles for a given tag- Parameters:
styles
- the style sheet to look for style namestag
- the tag to find style names for- Returns:
- a Vector with all style names found
-
getStyleNames
public static java.util.Vector getStyleNames(javax.swing.text.html.StyleSheet styles)
get the names of all styles found in a given StyleSheet- Parameters:
styles
- the StyleSheet to look for style names- Returns:
- a Vector with all names found
-
deleteDir
public static void deleteDir(java.io.File dir)
delete a directory with all its contentsCAUTION: This method deletes all content of the given directory including all subdirectories and their conent
- Parameters:
dir
- the directory to delete
-
copyFile
public static void copyFile(java.io.File srcFile, java.io.File destFile) throws java.io.FileNotFoundException, java.io.IOException
copies a single file.If destFile already exists or if both files are the same the method does nothing. The complete destination path will be created before copying, if necessary.
- Parameters:
srcFile
- the file to copy fromdestFile
- the file to copy to- Throws:
java.io.FileNotFoundException
java.io.IOException
-
getElementIndex
public static int getElementIndex(javax.swing.text.Element elem)
get the index of a given element in the list of its parents elements.- Parameters:
elem
- the element to get the index number for- Returns:
- the index of the given element
-
getClassFilePath
public static java.lang.String getClassFilePath(java.lang.Class cls)
Get the path of the class file for a given class.This is either a directory of a class file or a directory of a JAR file. Thus, this class must reside in the same place as the application in question, not in a separate library for instance.
- Parameters:
cls
- the class to get the path for- Returns:
- the path of this class file or the path of the JAR file this class file resides in, whatever applies
-
getPtValue
public static float getPtValue(java.lang.String valStr)
quick hack for getting the point value from an attribute value string (needs to be refined and consolidated with length value)- Parameters:
valStr
- the attribute value string to get the point size for- Returns:
- the point size from the given attribute value
-
getLastAttrUnit
public static java.lang.String getLastAttrUnit()
get the unit string from the last attribute object which was converted to a numerical value- Returns:
- the unit string from the last attribute object
-
getAttrValue
public static float getAttrValue(java.lang.Object attr)
get the numerical value for an attribute object- Parameters:
attr
- the attribute to get the value from- Returns:
- the numerical value
-
getAbsoluteAttrVal
public static float getAbsoluteAttrVal(java.lang.Object attr)
get the absolute value of an attribute- Parameters:
attr
- the attribute to get the value from- Returns:
- the absolute numerical value
-
getRowIndex
public static int getRowIndex(javax.swing.text.Element cell)
get the row index for a given table cell- Parameters:
cell
- the cell element to get the row index for- Returns:
- the row index of the given cell element
-
tokenize
public static java.lang.String[] tokenize(java.lang.String input, java.lang.String delim)
Get an arry of strings from a given string having several entries delimited by blanks.In the resource file of SimplyHTML for instance menu bar and menu definitions are contained as strings having a key for each item. The keys are delimited with blanks.
A string "file edit help" from the resource file for instance would be broken into an array of strings looking as follows
String[0]="file"
String[1]="edit"
String[2]="help"- Parameters:
input
- the string to transform into a string array- Returns:
- the resulting string array
-
msgStart
public static void msgStart(java.lang.String startMsg)
write a message with a time stamp to System.out and remember the time stamp in a LIFO Vector
-
findElementUp
public static javax.swing.text.Element findElementUp(java.lang.String name, javax.swing.text.Element start)
find the first occurrence of anElement
in the element tree above a givenElement
- Parameters:
name
- the name of theElement
to search forstart
- theElement
to start looking- Returns:
- the found
Element
or null if none is found
-
findElementUp
public static javax.swing.text.Element findElementUp(java.lang.String name1, java.lang.String name2, javax.swing.text.Element start)
find the first occurrence of anElement
in the element tree above a givenElement
- Parameters:
name1
- the primary name of theElement
to search forname2
- an alternative name for theElement
to search forstart
- theElement
to start looking- Returns:
- the found
Element
or null if none is found
-
findElementDown
public static javax.swing.text.Element findElementDown(java.lang.String name, javax.swing.text.Element parent)
find the first occurrence of anElement
in the element tree below a givenElement
- Parameters:
name
- the name of theElement
to search forparent
- theElement
to start looking- Returns:
- the found
Element
or null if none is found
-
addGridBagComponent
public static void addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a)
convenience method for adding a component to a container layed out by a GridBagLayout- Parameters:
container
- the container to add a component tocomp
- the component to add to containerg
- the GridBagLayout associated with containerc
- the GridBagConstraints to usegx
- the value to use for GridBagConstraints.gridxgy
- the value to use for GridBagConstraints.gridya
- the value to use for GridBagConstraints.anchor
-
addGridBagComponent
public static void addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a, int gw, int gh)
convenience method for adding a component to a container layed out by a GridBagLayout- Parameters:
container
- the container to add a component tocomp
- the component to add to containerg
- the GridBagLayout associated with containerc
- the GridBagConstraints to usegx
- the value to use for GridBagConstraints.gridxgy
- the value to use for GridBagConstraints.gridya
- the value to use for GridBagConstraints.anchorgw
- the value to use for GridBagConstraints.gridwidthgh
- teh value to use for GridBagConstraints.gridheight
-
addGridBagComponent
public static void addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a, int gw, int gh, int f)
convenience method for adding a component to a container layed out by a GridBagLayout- Parameters:
container
- the container to add a component tocomp
- the component to add to containerg
- the GridBagLayout associated with containerc
- the GridBagConstraints to usegx
- the value to use for GridBagConstraints.gridxgy
- the value to use for GridBagConstraints.gridya
- the value to use for GridBagConstraints.anchorgw
- the value to use for GridBagConstraints.gridwidthgh
- teh value to use for GridBagConstraints.gridheightf
- the value to use for GridBagConstraints.fill
-
addGridBagComponent
public static void addGridBagComponent(javax.swing.JComponent container, javax.swing.JComponent comp, java.awt.GridBagLayout g, java.awt.GridBagConstraints c, int gx, int gy, int a, int gw, int gh, int f, double wx, double wy)
convenience method for adding a component to a container layed out by a GridBagLayout- Parameters:
container
- the container to add a component tocomp
- the component to add to containerg
- the GridBagLayout associated with containerc
- the GridBagConstraints to usegx
- the value to use for GridBagConstraints.gridxgy
- the value to use for GridBagConstraints.gridya
- the value to use for GridBagConstraints.anchorgw
- the value to use for GridBagConstraints.gridwidthgh
- teh value to use for GridBagConstraints.gridheightf
- the value to use for GridBagConstraints.fillwx
- the value to use for GridBagConstraints.weightxwy
- the value to use for GridBagConstraints.weighty
-
resolveRelativePath
public static java.lang.String resolveRelativePath(java.lang.String relPath, java.lang.String absPath)
resolve a relative URL string against an absolute URL string.the absolute URL string is the start point for the relative path.
Example:
absolute path: file:/d:/eigene dateien/eigene bilder/ relative path: ../images/test.jpg result: file:/d:/eigene dateien/images/test.jpg
- Parameters:
relPath
- the relative URL string to resolveabsPath
- the absolute URL string to start at- Returns:
- the absolute URL string resulting from resolving relPath against absPath
-
getRelativePath
public static java.lang.String getRelativePath(java.io.File fromDir, java.io.File toFile)
get the path to a given file relative to a given directory- Parameters:
fromDir
- the directory having the file from which the link referstoFile
- the file to which a link refers- Returns:
- the relative path
-
errMsg
public static void errMsg(java.awt.Component owner, java.lang.String msg, java.lang.Throwable e)
show an error message and print a stack trace to the console if in development mode (DEV_MODE = true)- Parameters:
owner
- the owner of the message, or nullmsg
- the message to display, or nulle
- the exception object describing the error, or null
-
center
public static void center(java.awt.Component parent, java.awt.Component comp)
center aComponent
relative to anotherComponent
.- Parameters:
parent
- theComponent
to be used as the basis for centeringcomp
- theComponent
to be centered within parent
-
styleSheet
public static javax.swing.text.html.StyleSheet styleSheet()
get a StyleSheet object for using its utility methods
-
removeChar
public static java.lang.String removeChar(java.lang.String src, char c)
remove all occurrences of a given char from a given string- Parameters:
src
- the string to remove fromc
- the char to remove- Returns:
- a string copy of src with all occurrences of c removed
-
getResourceString
public static java.lang.String getResourceString(UIResources resources, java.lang.String nm)
get a string from the resources file- Parameters:
resources
- the TextResources to get the string fromnm
- the key of the string- Returns:
- the string for the given key or null if not found
-
getResourceString
public static java.lang.String getResourceString(java.lang.String nm)
-
getPreference
public static java.lang.String getPreference(java.lang.String key, java.lang.String defaultValue)
-
-