SandMark version 2.0


sandmark
Class Console

java.lang.Object
  |
  +--sandmark.CLI
        |
        +--sandmark.Console
All Implemented Interfaces:
GUIListener

public class Console
extends CLI
implements GUIListener

The sandmark.Console class presents a graphical interface to the SandMark system. Run with : java -classpath sandmark.jar:jpda.jar sandmark.Console

Author:
Christian Collberg

Field Summary
static java.util.Properties props
           
static java.lang.String TraceFileExtension
           
static double version
           
 
Constructor Summary
Console()
           
 
Method Summary
(package private) static void abort(java.lang.String s)
          Aborts a batch-mode program with an error message.
(package private) static void abort(java.lang.Throwable t)
          Aborts a batch-mode program in response to a caught exception.
 boolean changeTabPane(SandMarkFrame f)
          This is a very inelegant routine which is used to ensure that users don't skip from one tab to another in the GUI, while an operation is in progress.
static boolean check(boolean val, java.lang.String msg)
          Error message method.
static boolean checkProp(java.lang.String key, java.lang.String msg)
          If key's property value is missing, issue an error message and return true.
static java.util.Properties constructClassPath(java.lang.String jarInputKey)
          Construct and return a new property list.
static java.lang.String constructNewFileName(java.lang.String resultingPropName, java.lang.String userFileName, java.lang.String extension, java.lang.String propName)
          Construct a new filename by replacing the extensions of an other filename.
static java.lang.String constructOutputFileName(java.lang.String output, java.lang.String suffix, java.lang.String input)
          Construct a new filename based on the 'input' filename.
static void dumpProp()
          Prints props.list to System.out
 void dynamicWatermarkDeselected(SandMarkFrame f)
           
 void dynamicWatermarkEmbedButtonPressed(SandMarkFrame f)
           
 void dynamicWatermarkEmbedPaneDeselected(SandMarkFrame f)
           
 void dynamicWatermarkEmbedPaneSelected(SandMarkFrame f)
           
 java.lang.String dynamicWatermarkEmbedRandomButtonPressed(SandMarkFrame f)
           
 void dynamicWatermarkRecognizeDoneButtonPressed(SandMarkFrame f)
           
 void dynamicWatermarkRecognizeNextButtonPressed(SandMarkFrame f)
           
 void dynamicWatermarkRecognizePaneDeselected(SandMarkFrame f)
           
 void dynamicWatermarkRecognizePaneSelected(SandMarkFrame f)
           
 void dynamicWatermarkRecognizeStartButtonPressed(SandMarkFrame f)
           
 void dynamicWatermarkSelected(SandMarkFrame f)
           
 void dynamicWatermarkTraceDoneButtonPressed(SandMarkFrame f)
           
 void dynamicWatermarkTracePaneDeselected(SandMarkFrame f)
           
 void dynamicWatermarkTracePaneSelected(SandMarkFrame f)
           
 void dynamicWatermarkTraceStartButtonPressed(SandMarkFrame f)
           
 void dynamicWatermarkUpdateEmbedPaneData(SandMarkFrame f)
           
 void dynamicWatermarkUpdateRecognizePaneData(SandMarkFrame f)
           
 void dynamicWatermarkUpdateTracePaneData(SandMarkFrame f)
           
static java.lang.String getAboutHTML()
          Get the HTML codes of the about page for SandMark
static ConfigProperties getConfigProperties()
           
static java.lang.String getHelpURL()
          Get the URL for the Help page for Sandmark
static java.lang.String getProp(java.lang.String key)
          Get a property.
static java.lang.String getProp(java.lang.String key, java.lang.String defaultKey)
          Get a property.
static java.lang.String getProp(java.lang.String key, java.lang.String defaultKey1, java.lang.String defaultKey2)
          Get a property.
static java.util.Properties getProperties()
          Return the current list of properties.
static void initProps()
          Set default properties.
static void main(java.lang.String[] args)
          Execution begins here for interactive runs of SandMark.
 void obfuscateButtonPressed(SandMarkFrame f)
           
 void obfuscatePaneDeselected(SandMarkFrame f)
           
 void obfuscatePaneSelected(SandMarkFrame f)
           
 void optimiseButtonPressed(SandMarkFrame f)
           
 void optimisePaneDeselected(SandMarkFrame f)
           
 void optimisePaneSelected(SandMarkFrame f)
           
(package private) static void printUsage(java.lang.Class mainclass, java.lang.String[] speclist, java.lang.String[] arglist)
           
 void runScript(SandMarkFrame f, java.lang.String file)
           
static void setConfigProperties(ConfigProperties props)
          Set the GENERAL properties of SandMark
static void setProp(java.lang.String key, java.lang.String value)
          Set a property.
static void setProperties(java.util.Properties newProps)
          Merge in a set of properties.
(package private) static java.util.Properties setup(java.lang.Class mainclass, java.lang.String[] speclist, java.lang.String[] arglist)
          Called from the main class to initialize things and process arguments.
 void staticWatermarkDeselected(SandMarkFrame f)
           
 void staticWatermarkEmbedButtonPressed(SandMarkFrame f)
           
 void staticWatermarkEmbedPaneDeselected(SandMarkFrame f)
           
 void staticWatermarkEmbedPaneSelected(SandMarkFrame f)
           
 java.lang.String staticWatermarkEmbedRandomButtonPressed(SandMarkFrame f)
           
 void staticWatermarkRecognizeNextButtonPressed(SandMarkFrame f)
           
 void staticWatermarkRecognizePaneDeselected(SandMarkFrame f)
           
 void staticWatermarkRecognizePaneSelected(SandMarkFrame f)
           
 void staticWatermarkRecognizeRecognizeButtonPressed(SandMarkFrame f)
           
 void staticWatermarkSelected(SandMarkFrame f)
           
 void staticWatermarkUpdateEmbedPaneData(SandMarkFrame f)
           
 void staticWatermarkUpdateRecognizePaneData(SandMarkFrame f)
           
 void statisticsButtonPressed(SandMarkFrame f)
           
 void statisticsPaneDeselected(SandMarkFrame f)
           
 void statisticsPaneSelected(SandMarkFrame f)
           
 void updateObfuscatePaneData(SandMarkFrame f)
           
 void updateOptimisePaneData(SandMarkFrame f)
           
 void viewPaneButtonPressed(SandMarkFrame f)
           
 void viewPaneDeselected(SandMarkFrame f)
           
 void viewPaneSelected(SandMarkFrame f)
           
 void windowClosed(SandMarkFrame f)
           
 void windowOpening(SandMarkFrame frame)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

version

public static final double version
See Also:
Constant Field Values

props

public static java.util.Properties props

TraceFileExtension

public static final java.lang.String TraceFileExtension
See Also:
Constant Field Values
Constructor Detail

Console

public Console()
Method Detail

getConfigProperties

public static ConfigProperties getConfigProperties()

setConfigProperties

public static void setConfigProperties(ConfigProperties props)
Set the GENERAL properties of SandMark

Parameters:
props -

getAboutHTML

public static java.lang.String getAboutHTML()
Get the HTML codes of the about page for SandMark

Returns:
HTML code for the about page

getHelpURL

public static java.lang.String getHelpURL()
Get the URL for the Help page for Sandmark

Returns:
url for help page

main

public static void main(java.lang.String[] args)
Execution begins here for interactive runs of SandMark. Command-line arguments:

Parameters:
args -

changeTabPane

public boolean changeTabPane(SandMarkFrame f)
This is a very inelegant routine which is used to ensure that users don't skip from one tab to another in the GUI, while an operation is in progress. Call it whenever a new tab comes into focus.

Parameters:
f - a reference to the main frame
Returns:
true if we were not able to switch to the new tab

windowOpening

public void windowOpening(SandMarkFrame frame)
Specified by:
windowOpening in interface GUIListener
Parameters:
frame -

dynamicWatermarkSelected

public void dynamicWatermarkSelected(SandMarkFrame f)
Specified by:
dynamicWatermarkSelected in interface GUIListener

dynamicWatermarkDeselected

public void dynamicWatermarkDeselected(SandMarkFrame f)
Specified by:
dynamicWatermarkDeselected in interface GUIListener
Parameters:
f -

dynamicWatermarkTracePaneSelected

public void dynamicWatermarkTracePaneSelected(SandMarkFrame f)
Specified by:
dynamicWatermarkTracePaneSelected in interface GUIListener
Parameters:
f -

dynamicWatermarkTracePaneDeselected

public void dynamicWatermarkTracePaneDeselected(SandMarkFrame f)
Specified by:
dynamicWatermarkTracePaneDeselected in interface GUIListener
Parameters:
f -

dynamicWatermarkUpdateTracePaneData

public void dynamicWatermarkUpdateTracePaneData(SandMarkFrame f)
Parameters:
f -

dynamicWatermarkTraceStartButtonPressed

public void dynamicWatermarkTraceStartButtonPressed(SandMarkFrame f)
Specified by:
dynamicWatermarkTraceStartButtonPressed in interface GUIListener
Parameters:
f -

dynamicWatermarkTraceDoneButtonPressed

public void dynamicWatermarkTraceDoneButtonPressed(SandMarkFrame f)
Specified by:
dynamicWatermarkTraceDoneButtonPressed in interface GUIListener
Parameters:
f -

dynamicWatermarkEmbedPaneSelected

public void dynamicWatermarkEmbedPaneSelected(SandMarkFrame f)
Specified by:
dynamicWatermarkEmbedPaneSelected in interface GUIListener
Parameters:
f -

dynamicWatermarkEmbedPaneDeselected

public void dynamicWatermarkEmbedPaneDeselected(SandMarkFrame f)
Specified by:
dynamicWatermarkEmbedPaneDeselected in interface GUIListener
Parameters:
f -

dynamicWatermarkUpdateEmbedPaneData

public void dynamicWatermarkUpdateEmbedPaneData(SandMarkFrame f)
Parameters:
f -

dynamicWatermarkEmbedButtonPressed

public void dynamicWatermarkEmbedButtonPressed(SandMarkFrame f)
Specified by:
dynamicWatermarkEmbedButtonPressed in interface GUIListener
Parameters:
f -

dynamicWatermarkEmbedRandomButtonPressed

public java.lang.String dynamicWatermarkEmbedRandomButtonPressed(SandMarkFrame f)
Specified by:
dynamicWatermarkEmbedRandomButtonPressed in interface GUIListener
Parameters:
f -

dynamicWatermarkRecognizePaneSelected

public void dynamicWatermarkRecognizePaneSelected(SandMarkFrame f)
Specified by:
dynamicWatermarkRecognizePaneSelected in interface GUIListener
Parameters:
f -

dynamicWatermarkRecognizePaneDeselected

public void dynamicWatermarkRecognizePaneDeselected(SandMarkFrame f)
Specified by:
dynamicWatermarkRecognizePaneDeselected in interface GUIListener
Parameters:
f -

dynamicWatermarkUpdateRecognizePaneData

public void dynamicWatermarkUpdateRecognizePaneData(SandMarkFrame f)
Parameters:
f -

dynamicWatermarkRecognizeStartButtonPressed

public void dynamicWatermarkRecognizeStartButtonPressed(SandMarkFrame f)
Specified by:
dynamicWatermarkRecognizeStartButtonPressed in interface GUIListener
Parameters:
f -

dynamicWatermarkRecognizeDoneButtonPressed

public void dynamicWatermarkRecognizeDoneButtonPressed(SandMarkFrame f)
Specified by:
dynamicWatermarkRecognizeDoneButtonPressed in interface GUIListener
Parameters:
f -

dynamicWatermarkRecognizeNextButtonPressed

public void dynamicWatermarkRecognizeNextButtonPressed(SandMarkFrame f)
Specified by:
dynamicWatermarkRecognizeNextButtonPressed in interface GUIListener
Parameters:
f -

staticWatermarkSelected

public void staticWatermarkSelected(SandMarkFrame f)
Specified by:
staticWatermarkSelected in interface GUIListener
Parameters:
f -

staticWatermarkDeselected

public void staticWatermarkDeselected(SandMarkFrame f)
Specified by:
staticWatermarkDeselected in interface GUIListener
Parameters:
f -

staticWatermarkEmbedPaneSelected

public void staticWatermarkEmbedPaneSelected(SandMarkFrame f)
Specified by:
staticWatermarkEmbedPaneSelected in interface GUIListener
Parameters:
f -

staticWatermarkEmbedPaneDeselected

public void staticWatermarkEmbedPaneDeselected(SandMarkFrame f)
Specified by:
staticWatermarkEmbedPaneDeselected in interface GUIListener
Parameters:
f -

staticWatermarkUpdateEmbedPaneData

public void staticWatermarkUpdateEmbedPaneData(SandMarkFrame f)
Parameters:
f -

staticWatermarkEmbedButtonPressed

public void staticWatermarkEmbedButtonPressed(SandMarkFrame f)
Specified by:
staticWatermarkEmbedButtonPressed in interface GUIListener
Parameters:
f -

staticWatermarkEmbedRandomButtonPressed

public java.lang.String staticWatermarkEmbedRandomButtonPressed(SandMarkFrame f)
Specified by:
staticWatermarkEmbedRandomButtonPressed in interface GUIListener
Parameters:
f -

staticWatermarkRecognizePaneSelected

public void staticWatermarkRecognizePaneSelected(SandMarkFrame f)
Specified by:
staticWatermarkRecognizePaneSelected in interface GUIListener
Parameters:
f -

staticWatermarkRecognizePaneDeselected

public void staticWatermarkRecognizePaneDeselected(SandMarkFrame f)
Specified by:
staticWatermarkRecognizePaneDeselected in interface GUIListener
Parameters:
f -

staticWatermarkUpdateRecognizePaneData

public void staticWatermarkUpdateRecognizePaneData(SandMarkFrame f)
Parameters:
f -

staticWatermarkRecognizeRecognizeButtonPressed

public void staticWatermarkRecognizeRecognizeButtonPressed(SandMarkFrame f)
Specified by:
staticWatermarkRecognizeRecognizeButtonPressed in interface GUIListener
Parameters:
f -

staticWatermarkRecognizeNextButtonPressed

public void staticWatermarkRecognizeNextButtonPressed(SandMarkFrame f)
Specified by:
staticWatermarkRecognizeNextButtonPressed in interface GUIListener
Parameters:
f -

obfuscatePaneSelected

public void obfuscatePaneSelected(SandMarkFrame f)
Specified by:
obfuscatePaneSelected in interface GUIListener
Parameters:
f -

obfuscatePaneDeselected

public void obfuscatePaneDeselected(SandMarkFrame f)
Specified by:
obfuscatePaneDeselected in interface GUIListener
Parameters:
f -

updateObfuscatePaneData

public void updateObfuscatePaneData(SandMarkFrame f)
Parameters:
f -

obfuscateButtonPressed

public void obfuscateButtonPressed(SandMarkFrame f)
Specified by:
obfuscateButtonPressed in interface GUIListener
Parameters:
f -

optimisePaneSelected

public void optimisePaneSelected(SandMarkFrame f)
Specified by:
optimisePaneSelected in interface GUIListener
Parameters:
f -

optimisePaneDeselected

public void optimisePaneDeselected(SandMarkFrame f)
Specified by:
optimisePaneDeselected in interface GUIListener
Parameters:
f -

updateOptimisePaneData

public void updateOptimisePaneData(SandMarkFrame f)
Parameters:
f -

optimiseButtonPressed

public void optimiseButtonPressed(SandMarkFrame f)
Specified by:
optimiseButtonPressed in interface GUIListener
Parameters:
f -

runScript

public void runScript(SandMarkFrame f,
                      java.lang.String file)
Specified by:
runScript in interface GUIListener
Parameters:
f -
file -

statisticsPaneSelected

public void statisticsPaneSelected(SandMarkFrame f)
Specified by:
statisticsPaneSelected in interface GUIListener
Parameters:
f -

statisticsPaneDeselected

public void statisticsPaneDeselected(SandMarkFrame f)
Specified by:
statisticsPaneDeselected in interface GUIListener
Parameters:
f -

statisticsButtonPressed

public void statisticsButtonPressed(SandMarkFrame f)
Specified by:
statisticsButtonPressed in interface GUIListener
Parameters:
f -

viewPaneSelected

public void viewPaneSelected(SandMarkFrame f)
Specified by:
viewPaneSelected in interface GUIListener
Parameters:
f -

viewPaneButtonPressed

public void viewPaneButtonPressed(SandMarkFrame f)
Specified by:
viewPaneButtonPressed in interface GUIListener
Parameters:
f -

viewPaneDeselected

public void viewPaneDeselected(SandMarkFrame f)
Specified by:
viewPaneDeselected in interface GUIListener
Parameters:
f -

windowClosed

public void windowClosed(SandMarkFrame f)
Specified by:
windowClosed in interface GUIListener
Parameters:
f -

initProps

public static void initProps()
Set default properties.


getProperties

public static java.util.Properties getProperties()
Return the current list of properties.


setProperties

public static void setProperties(java.util.Properties newProps)
Merge in a set of properties.

Parameters:
newProps -

setProp

public static void setProp(java.lang.String key,
                           java.lang.String value)
Set a property.

Parameters:
key -
value -

getProp

public static java.lang.String getProp(java.lang.String key)
Get a property. Return "" if property is not found.

Parameters:
key -
Returns:
the property or empty string if the property is not found

getProp

public static java.lang.String getProp(java.lang.String key,
                                       java.lang.String defaultKey)
Get a property. If key's property value is missing, give key the value of defaultKey, and return this value.

Parameters:
key -
defaultKey -

getProp

public static java.lang.String getProp(java.lang.String key,
                                       java.lang.String defaultKey1,
                                       java.lang.String defaultKey2)
Get a property. If key's property value is missing, give key the value of defaultKey1, and return this value. If defaultKey1's value is also missing, then use defaultKey2's value.

Parameters:
key -
defaultKey1 -
defaultKey2 -

constructClassPath

public static java.util.Properties constructClassPath(java.lang.String jarInputKey)
Construct and return a new property list. This list is the same as the current 'props' list, except we've constructed a new DWM_ClassPath variable. It's a concatenation of the current DWM_ClassPath value, the system's classpath, and the jar-file that we intend to (or have already) watermarked.

Parameters:
jarInputKey -
Returns:
the new property list

checkProp

public static boolean checkProp(java.lang.String key,
                                java.lang.String msg)
If key's property value is missing, issue an error message and return true. Otherwise, return false.

Parameters:
key -
msg -

check

public static boolean check(boolean val,
                            java.lang.String msg)
Error message method.

Parameters:
val - the error flag
msg - the error message to issue
Returns:
false if val is false and true (and issue msg) if val is true

dumpProp

public static void dumpProp()
Prints props.list to System.out


constructNewFileName

public static java.lang.String constructNewFileName(java.lang.String resultingPropName,
                                                    java.lang.String userFileName,
                                                    java.lang.String extension,
                                                    java.lang.String propName)
Construct a new filename by replacing the extensions of an other filename.

Parameters:
resultingPropName - The name of the property that holds the resulting filename.
userFileName - The filename entered by the user, if any. If it's !="", this is what we return.
extension - The extension of the new file.
propName - The name of the property that holds the original filename.

constructOutputFileName

public static java.lang.String constructOutputFileName(java.lang.String output,
                                                       java.lang.String suffix,
                                                       java.lang.String input)
Construct a new filename based on the 'input' filename. If the input filename is xxxx.jar, then the output filename becomes xxxx_suffix.jar. If the output filename already exists, no change is made. Return the new filename. Also sets prop(output) to the new filename.

Parameters:
output - The property name that holds the output filename.
input - The property name that holds the input filename.
suffix - The string added to the filename. Should not contain the "_".

setup

static java.util.Properties setup(java.lang.Class mainclass,
                                  java.lang.String[] speclist,
                                  java.lang.String[] arglist)
Called from the main class to initialize things and process arguments. Arguments are processed under control of a specification list, which is an array of strings interpreted in groups of three. Each group specifies one argument, and contains:
  • a property name to be assigned the argument value
  • an argument string, as per Options
  • a brief description, as per Options

Parameters:
mainclass -
speclist -
arglist -
Returns:
a list of properties

printUsage

static void printUsage(java.lang.Class mainclass,
                       java.lang.String[] speclist,
                       java.lang.String[] arglist)
Parameters:
mainclass -
speclist -
arglist -

abort

static void abort(java.lang.String s)
Aborts a batch-mode program with an error message.

Parameters:
s -

abort

static void abort(java.lang.Throwable t)
Aborts a batch-mode program in response to a caught exception. If the exception is a simple unsubclassed java.lang.Error, it is assumed to be a deliberate abort; otherwise, a stack trace is dumped to stderr.

Parameters:
t -

SandMark version 2.0

Mon Jun 17 12:30:47 MST 2002