com.lightdev.app.shtm
Class Util

java.lang.Object
  extended by com.lightdev.app.shtm.Util

public class Util
extends java.lang.Object

Utility methods for application SimplyHTML.


Field Summary
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
Util()
           
 
Method Summary
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
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
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
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
static void center(java.awt.Component parent, java.awt.Component comp)
          center a Component relative to another Component.
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 contents
static void errMsg(java.awt.Component owner, java.lang.String msg, java.lang.Exception 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 an Element in the element tree below a given Element
static javax.swing.text.Element findElementUp(java.lang.String name, javax.swing.text.Element start)
          find the first occurrence of an Element in the element tree above a given Element
static javax.swing.text.Element findLinkElementUp(javax.swing.text.Element elem)
          find the next link attribute from a given element upwards through the element hierarchy
static java.lang.Object findLinkUp(javax.swing.text.Element elem)
          find the next link attribute from a given element upwards through the element hierarchy
static float getAbsoluteAttrVal(java.lang.Object attr)
          get the absolute value of an attribute
static float getAttrValue(java.lang.Object attr)
          get the numerical value for an attribute object
static 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 value
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 directory
static int getRelativeSize(java.lang.String valStr)
          get the relative size matching a given point size
static int getRowIndex(javax.swing.text.Element cell)
          get the row index for a given table cell
static java.util.Vector getStyleNames(javax.swing.text.html.StyleSheet styles)
          get the names of all styles found in a given StyleSheet
static java.util.Vector getStyleNamesForTag(javax.swing.text.AttributeSet styles, java.lang.String tag)
          get names of all styles for a given tag
static java.util.Vector getStyleNamesForTag(javax.swing.text.html.StyleSheet styles, java.lang.String tag)
          get names of all styles for a given tag
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 from
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 from
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
static java.lang.String nameInput(java.awt.Frame parent, java.lang.String initialName, java.lang.String title, java.lang.String text)
          get a name by asking from the user
static java.lang.String removeChar(java.lang.String src, char c)
          remove all occurrences of a given char from a given string
static java.lang.String removeExtension(java.lang.String fileName)
          remove the extension from a file name
static java.io.File renameFile(java.io.File from, java.lang.String newExt)
          rename a file to have a given extension
static javax.swing.text.AttributeSet resolveAttributes(javax.swing.text.AttributeSet style)
          resolve sets of attributes that are recursively stored in each other
static 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 methods
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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
Constructor Detail

Util

public Util()
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 rename
newExt - 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

findLinkElementUp

public static javax.swing.text.Element findLinkElementUp(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

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 title,
                                         java.lang.String text)
get a name by asking from the user

Wrapper for JOptionPane with I18N support

Parameters:
initialName - the name initially shown in option pane
title - the title to be shown in the option pane
text - 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 from

Wrapper for JOptionPane with I18N support

Parameters:
options - the options to be shown in the dialog
title - the title to be shown in the dialog
msg - the message to be shown in the dialog
item - a variable part to be shown before msg
sep - 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 from

Wrapper for JOptionPane with I18N support

Parameters:
options - the options to be shown in the dialog
title - the title to be shown in the dialog
msg - the message to be shown in the dialog
item - a variable part to be shown before msg
sep - 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 names
tag - 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 names
tag - 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 contents

CAUTION: 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 from
destFile - 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

getRelativeSize

public static int getRelativeSize(java.lang.String valStr)
get the relative size matching a given point size

Parameters:
valStr - the string with the value attribute to get the relative size for
Returns:
the relative size

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 an Element in the element tree above a given Element

Parameters:
name - the name of the Element to search for
parent - the Element 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 an Element in the element tree below a given Element

Parameters:
name - the name of the Element to search for
parent - the Element 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 to
comp - the component to add to container
g - the GridBagLayout associated with container
c - the GridBagConstraints to use
gx - the value to use for GridBagConstraints.gridx
gy - the value to use for GridBagConstraints.gridy
a - 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 to
comp - the component to add to container
g - the GridBagLayout associated with container
c - the GridBagConstraints to use
gx - the value to use for GridBagConstraints.gridx
gy - the value to use for GridBagConstraints.gridy
a - the value to use for GridBagConstraints.anchor
gw - the value to use for GridBagConstraints.gridwidth
gh - 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 to
comp - the component to add to container
g - the GridBagLayout associated with container
c - the GridBagConstraints to use
gx - the value to use for GridBagConstraints.gridx
gy - the value to use for GridBagConstraints.gridy
a - the value to use for GridBagConstraints.anchor
gw - the value to use for GridBagConstraints.gridwidth
gh - teh value to use for GridBagConstraints.gridheight
f - 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 to
comp - the component to add to container
g - the GridBagLayout associated with container
c - the GridBagConstraints to use
gx - the value to use for GridBagConstraints.gridx
gy - the value to use for GridBagConstraints.gridy
a - the value to use for GridBagConstraints.anchor
gw - the value to use for GridBagConstraints.gridwidth
gh - teh value to use for GridBagConstraints.gridheight
f - the value to use for GridBagConstraints.fill
wx - the value to use for GridBagConstraints.weightx
wy - 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 resolve
absPath - 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 refers
toDir - the directory to which a link refers
Returns:
the relative path

errMsg

public static void errMsg(java.awt.Component owner,
                          java.lang.String msg,
                          java.lang.Exception 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 null
msg - the message to display, or null
e - the exception object describing the error, or null

center

public static void center(java.awt.Component parent,
                          java.awt.Component comp)
center a Component relative to another Component.

Parameters:
parent - the Component to be used as the basis for centering
comp - the Component 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 from
c - the char to remove
Returns:
a string copy of src with all occurrences of c removed