Package com.smartgwt.client.util

# Class SC

java.lang.Object
com.smartgwt.client.util.SC

public class SC extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `AUTOID`
  `static final String`
  `AUTOIDCLASS`
  `static final String`
  `MODULE`
  `static final String`
  `REF`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SC()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `ask(String message, BooleanCallback callback)`
  Show a modal dialog with a message, icon, and "Yes" and "No" buttons.
  `static void`
  `ask(String title, String message, BooleanCallback callback)`
  Show a modal dialog with a message, icon, and "Yes" and "No" buttons.
  `static void`
  `ask(String title, String message, BooleanCallback callback, Dialog dialogProperties)`
  Show a modal dialog with a message, icon, and "Yes" and "No" buttons.
  `static void`
  `askforValue(String message, ValueCallback callback)`
  Show a modal dialog with a text entry box, asking the user to enter a value.
  `static void`
  `askforValue(String title, String message, ValueCallback callback)`
  Show a modal dialog with a text entry box, asking the user to enter a value.
  `static void`
  `askforValue(String title, String message, String defaultValue, ValueCallback callback, Dialog dialogProperties)`
  Show a modal dialog with a text entry box, asking the user to enter a value.
  `static void`
  `clearLogPriority(String category)`
  Clear the priority for a log category.
  `static void`
  `clearPrompt()`
  Clear the modal prompt being shown to the user.
  `static void`
  `confirm(String message, BooleanCallback callback)`
  Show a modal dialog with a message, icon, and "OK" and "Cancel" buttons.
  `static void`
  `confirm(String title, String message, BooleanCallback callback)`
  Show a modal dialog with a message, icon, and "OK" and "Cancel" buttons.
  `static void`
  `confirm(String title, String message, BooleanCallback callback, Dialog dialogProperties)`
  Show a modal dialog with a message, icon, and "OK" and "Cancel" buttons.
  `static void`
  `debugger()`
  Launch the browser's JavaScript debugger.
  `static void`
  `disableFirebug()`
  Disable firebug.
  `static void`
  `dismissCurrentDialog()`
  If a dialog triggered via `say(String)`, `ask(String, BooleanCallback)`, `warn(String)`, `confirm(String, BooleanCallback)` or `askforValue(String, ValueCallback)` is currently visible, it will be dismissed.
  `static String`
  `echo(JavaScriptObject object)`
  Returns the passed in JavaScript object as a string
  `static String`
  `echoAll(JavaScriptObject object)`
  Returns the passed in JavaScript object as a string (including serializing members one level deep for javascript arrays and nested objects)
  `static String`
  `echoLeaf(Object value)`
  Return a very short (generally less than 40 characters) string representation of any object, suitable for viewing by a developer for debugging purposes.
  `static String`
  `generateID()`
  Internal method - do not call from Application code.
  `static String`
  `generateID(String className)`
  Internal method - do not call from Application code.
  `static String`
  `getAUTOIDClass(String className)`
  Internal method - do not call from Application code.
  `static String`
  `getHome()`
  Get the root directory for Isomorphic-supplied SmartClient files - the directory containing the modules/ and system/ subdirectories extracted when the SmartGWT project is built.
  `static String`
  `getJSStackTrace()`
  Returns the current stack trace, from a JavaScript perspective.
  `static String`
  `getLicenseType()`
  Internal method - do not call from Application code.
  `static String`
  `getSCClassName(JavaScriptObject jsObj)`
  Gets the name of this underlying SmartClient class as a string.
  `static String`
  `getScParityStableVersionNumber()`
  Internal method - do not call from Application code.
  `static String`
  `getScVersion()`
  Internal method - do not call from Application code.
  `static String`
  `getScVersionNumber()`
  Internal method - do not call from Application code.
  `static String`
  `getSgwtParityStableVersionNumber()`
  Internal method - do not call from Application code.
  `static String`
  `getSgwtVersion()`
  Internal method - do not call from Application code.
  `static String`
  `getSgwtVersionNumber()`
  Internal method - do not call from Application code.
  `static boolean`
  `hasAI()`
  Returns true if the optional AI module is available in this build
  `static boolean`
  `hasAnalytics()`
  Returns true if the optional Analytics module is available in this build
  `static boolean`
  `hasCharts()`
  Returns true if the optional Charts module has been loaded.
  `static boolean`
  `hasDashboardAndTools()`
  Returns true if the optional Dashboard & Tools module is available.
  `static boolean`
  `hasDrawing()`
  Returns true if the optional Drawing module has been loaded.
  `static boolean`
  `hasFirebug()`
  Returns `true` if Firebug is enabled.
  `static boolean`
  `hasPluginBridges()`
  Returns true if the optional PluginBridges module has been loaded.
  `static boolean`
  `hasRealtimeMessaging()`
  Returns true if the optional RealtimeMessaging module is available in this build
  `static boolean`
  `hasTour()`
  Returns true if the optional Tour module has been loaded.
  `static boolean`
  `hasWorkflow()`
  Returns true if the optional Workflow module has been loaded.
  `static boolean`
  `isIE()`
  Internal method - do not call from Application code.
  `static boolean`
  `isMethodSupported(String className, String methodName)`
  Returns true if the method is supported by the class, meaning that it is not null and was not replaced by `markUnsupportedMethods(String, String, String[])`.
  `static boolean`
  `isStable()`
  Internal method - do not call from Application code.
  `static boolean`
  `keepGlobals()`
  Internal method - do not call from Application code.
  `static void`
  `logDebug(String message)`
  Log a debugging.
  `static void`
  `logDebug(String message, String category)`
  Log a debugging
  `static void`
  `logEcho(JavaScriptObject value)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logEcho(JavaScriptObject value, String message)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logEcho(Canvas canvas)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logEcho(Canvas canvas, String message)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logEchoAll(JavaScriptObject value)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logEchoAll(JavaScriptObject value, String message)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logEchoAll(Canvas canvas)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logEchoAll(Canvas canvas, String message)`
  Logs the echoed object as a warning, prefixed with an optional message.
  `static void`
  `logInfo(String message)`
  Log an informative message.
  `static void`
  `logInfo(String message, String category)`
  Log an informative message.
  `static boolean`
  `logIsDebugEnabled(String category)`
  Check whether a message logged at "debug" priority would be visible in the log.
  `static boolean`
  `logIsInfoEnabled(String category)`
  Check whether a message logged at "info" priority would be visible in the log.
  `static void`
  `logWarn(String message)`
  Log a warning.
  `static void`
  `logWarn(String message, String category)`
  Log a warning.
  `static void`
  `markUnsupportedMethods(String className, String messageTemplate, String[] methodNames)`
  Replaces each of the methods named in methodNames with a new implementation that simply logs a warning the first time the method is called, and nothing else.
  `static MessageID`
  `notify(String contents)`
  `static MessageID`
  `notify(String contents, NotifyAction... actions)`
  `static MessageID`
  `notify(String contents, NotifyAction[] actions, String notifyType)`
  Displays a new message that's automatically dismissed after a configurable amount of time, as an alternative to {@link #confirm,modal notification} dialogs that can lower end user productivity.
  `static void`
  `openDataSourceConsole()`
  Opens the DataSource admin console in a separate window.
  `static void`
  `openDataSourceGenerator()`
  Opens the DataSource Generator Wizard in a separate window.
  `static void`
  `openVisualBuilder()`
  Deprecated.
  The Visual Builder tool has been superceded by Reify
  `static void`
  `releaseID(String className, String id)`
  Internal method - do not call from Application code.
  `static void`
  `say(String message)`
  Show a modal dialog with a message, icon, and "OK" button.
  `static void`
  `say(String message, BooleanCallback callback)`
  Show a modal dialog with a message, icon, and "OK" button.
  `static void`
  `say(String title, String message)`
  Show a modal dialog with a message, icon, and "OK" button.
  `static void`
  `say(String title, String message, BooleanCallback callback)`
  Show a modal dialog with a message, icon, and "OK" button.
  `static void`
  `setEnableJSDebugger(boolean useDebugger)`
  Setting this to true will result in the IE / Firebug / Safari debugger being invoked when a JavaScript error is encountered.
  `static void`
  `setLogPriority(String category, LogPriority priority)`
  Set the priority for a log category.
  `static void`
  `setScreenReaderMode(boolean newState)`
  Enables full screen reader mode.
  `static void`
  `showConsole()`
  Open the SmartClient Developer Console.
  `static void`
  `showPrompt(String message)`
  Show a modal prompt to the user.
  `static void`
  `showPrompt(String title, String message)`
  Show a modal prompt to the user.
  `static void`
  `showPrompt(String title, String message, Dialog dialogProperties)`
  Show a modal prompt to the user.
  `static void`
  `traceLogMessage(String messagePattern)`
  Causes a stack trace to be logged any time a message containing the provided pattern is logged.
  `static void`
  `traceLogMessage(String messagePattern, String prefix)`
  Causes a stack trace to be logged any time a message containing the provided pattern is logged.
  `static void`
  `warn(String message)`
  Show a modal dialog with a message, icon, and "OK" button.
  `static void`
  `warn(String message, BooleanCallback callback)`
  Show a modal dialog with a message, icon, and "OK" button.
  `static void`
  `warn(String title, String message)`
  Show a modal dialog with a message, icon, and "OK" button.
  `static void`
  `warn(String title, String message, BooleanCallback callback, Dialog dialogProperties)`
  Show a modal dialog with a message, icon, and "OK" button.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### REF

    public static final String REF
    See Also:
      - Constant Field Values

  - ### MODULE

    public static final String MODULE
    See Also:
      - Constant Field Values

  - ### AUTOID

    public static final String AUTOID
    See Also:
      - Constant Field Values

  - ### AUTOIDCLASS

    public static final String AUTOIDCLASS
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### SC

    public SC()

- ## Method Details

  - ### getLicenseType

    public static String getLicenseType()
    Internal method - do not call from Application code.

  - ### getAUTOIDClass

    public static String getAUTOIDClass(String className)
    Internal method - do not call from Application code.

  - ### generateID

    public static String generateID()
    Internal method - do not call from Application code.

  - ### generateID

    public static String generateID(String className)
    Internal method - do not call from Application code.

  - ### releaseID

    public static void releaseID(String className, String id)
    Internal method - do not call from Application code.

  - ### keepGlobals

    public static boolean keepGlobals()
    Internal method - do not call from Application code.

  - ### getHome

    public static String getHome()
    Get the root directory for Isomorphic-supplied SmartClient files - the directory containing the modules/ and system/ subdirectories extracted when the SmartGWT project is built. This property is commonly specified directly in the bootstrap HTML file by setting `window.isomorphicDir` before loading the SmartClient library files.
    Returns:
      `isomorphicDir` `URL`

  - ### debugger

    public static void debugger()
    Launch the browser's JavaScript debugger. See `Debugging` for how to approach debugging a SmartGWT Application.

  - ### showConsole

    public static void showConsole()
    Open the SmartClient Developer Console. See `Debugging` for how to approach debugging a SmartGWT Application.

  - ### openDataSourceConsole

    public static void openDataSourceConsole()
    Opens the DataSource admin console in a separate window.

    Requires Smart GWT Pro or better.

  - ### openVisualBuilder

    public static void openVisualBuilder()
    Deprecated.
    The Visual Builder tool has been superceded by Reify
    Opens the SmartClient Visual Builder in a separate window. Note that the Visual Builder is capable of generating DataSources as well, however unlike the DataSource Generator Wizard, it cannot generate DataSources in batches.

    Requires Smart GWT Pro or better.

  - ### openDataSourceGenerator

    public static void openDataSourceGenerator()
    Opens the DataSource Generator Wizard in a separate window.

    Requires Smart GWT Enterprise or Eval.

  - ### getSCClassName

    public static String getSCClassName(JavaScriptObject jsObj)
    Gets the name of this underlying SmartClient class as a string.
    Parameters:
      `jsObj` - the smartclient object
    Returns:
      the class name or null if not a smartclient class

  - ### hasFirebug

    public static boolean hasFirebug()
    Returns `true` if Firebug is enabled.
    Returns:
      `true` if Firebug is enabled; `false` otherwise.

  - ### isIE

    public static boolean isIE()
    Internal method - do not call from Application code.

  - ### disableFirebug

    public static void disableFirebug()
    Disable firebug.

  - ### say

    public static void say(String message)
    Show a modal dialog with a message, icon, and "OK" button. Intended for notifications which are not really warnings (default icon is less severe). See `sayIcon`.
    Parameters:
      `message` - the message

  - ### setLogPriority

    public static void setLogPriority(String category, LogPriority priority)
    Set the priority for a log category.
    Parameters:
      `category` - the name of the category to set the priority for
      `priority` - the LogPriority to set for the passed category

  - ### clearLogPriority

    public static void clearLogPriority(String category)
    Clear the priority for a log category.
    Parameters:
      `category` - the name of the category to clear the log priority of

  - ### say

    public static void say(String title, String message)
    Show a modal dialog with a message, icon, and "OK" button. Intended for notifications which are not really warnings (default icon is less severe). See `sayIcon`.
    Parameters:
      `title` - the title of the message box
      `message` - the message

  - ### say

    public static void say(String message, BooleanCallback callback)
    Show a modal dialog with a message, icon, and "OK" button. Intended for notifications which are not really warnings (default icon is less severe). See `sayIcon`.

    The callback will receive boolean true for an OK button click, or null if the Dialog is dismissed via the close button.

    Parameters:
      `message` - the message
      `callback` - the callback to fire when the user dismisses the dialog.

  - ### say

    public static void say(String title, String message, BooleanCallback callback)
    Show a modal dialog with a message, icon, and "OK" button. Intended for notifications which are not really warnings (default icon is less severe). See `sayIcon`.

    The callback will receive boolean true for an OK button click, or null if the Dialog is dismissed via the close button.

    Parameters:
      `title` - the title of the message box
      `message` - the message
      `callback` - the callback to fire when the user dismisses the dialog.

  - ### ask

    public static void ask(String message, BooleanCallback callback)
    Show a modal dialog with a message, icon, and "Yes" and "No" buttons. See `askIcon`.

    The callback will receive boolean true for a Yes button click, boolean false for a No button click, or null if the Dialog is dismissed via the close button.

    Parameters:
      `message` - the message
      `callback` - the callback to fire when the user dismisses the dialog.

  - ### ask

    public static void ask(String title, String message, BooleanCallback callback)
    Show a modal dialog with a message, icon, and "Yes" and "No" buttons. See `askIcon`.

    The callback will receive boolean true for a Yes button click, boolean false for a No button click, or null if the Dialog is dismissed via the close button.

    Parameters:
      `title` - the title of the message box
      `message` - the message
      `callback` - the callback to fire when the user dismisses the dialog.

  - ### ask

    public static void ask(String title, String message, BooleanCallback callback, Dialog dialogProperties)
    Show a modal dialog with a message, icon, and "Yes" and "No" buttons. See `askIcon`.

    The callback will receive boolean true for a Yes button click, boolean false for a No button click, or null if the Dialog is dismissed via the close button.

    Parameters:
      `title` - the title of the message box
      `message` - the message
      `callback` - the callback to fire when the user dismisses the dialog.

  - ### askforValue

    public static void askforValue(String message, ValueCallback callback)
    Show a modal dialog with a text entry box, asking the user to enter a value.

    As with other convenience methods that show Dialogs, such as `#warn(String, String, BooleanCallback)` , the dialog is shown and the function immediately returns. When the user responds, the provided callback is called.

    If the user clicks OK, the value typed in is passed to the callback (including the empty string ("") if nothing was entered. If the user clicks cancel, the value passed to the callback is null.

    A default value for the text field can be passed via `properties.defaultValue`

    Keyboard focus is automatically placed in the text entry field, and hitting the enter key is the equivalent of pressing OK.

    Parameters:
      `message` - message to display
      `callback` - Callback to fire when the user clicks a button to dismiss the dialog. This has the single parameter 'value', indicating the user entry, or null if cancel was pressed or the window closed

  - ### askforValue

    public static void askforValue(String title, String message, ValueCallback callback)
    Show a modal dialog with a text entry box, asking the user to enter a value.

    As with other convenience methods that show Dialogs, such as `#warn(String, String, BooleanCallback)` , the dialog is shown and the function immediately returns. When the user responds, the provided callback is called.

    If the user clicks OK, the value typed in is passed to the callback (including the empty string ("") if nothing was entered. If the user clicks cancel, the value passed to the callback is null.

    Keyboard focus is automatically placed in the text entry field, and hitting the enter key is the equivalent of pressing OK.

    Parameters:
      `title` - the title of the dialog
      `message` - message to display
      `callback` - Callback to fire when the user clicks a button to dismiss the dialog. This has the single parameter 'value', indicating the user entry, or null if cancel was pressed or the window closed

  - ### askforValue

    public static void askforValue(String title, String message, String defaultValue, ValueCallback callback, Dialog dialogProperties)
    Show a modal dialog with a text entry box, asking the user to enter a value.

    As with other convenience methods that show Dialogs, such as `#warn(String, String, BooleanCallback)` , the dialog is shown and the function immediately returns. When the user responds, the provided callback is called.

    If the user clicks OK, the value typed in is passed to the callback (including the empty string ("") if nothing was entered. If the user clicks cancel, the value passed to the callback is null.

    Keyboard focus is automatically placed in the text entry field, and hitting the enter key is the equivalent of pressing OK.

    Parameters:
      `title` - the title of the dialog
      `message` - message to display
      `defaultValue` - the default value of the text field
      `callback` - Callback to fire when the user clicks a button to dismiss the dialog. This has the single parameter 'value', indicating the user entry, or null if cancel was pressed or the window closed
      `dialogProperties` - additional properties of the Dialog

  - ### dismissCurrentDialog

    public static void dismissCurrentDialog()
    If a dialog triggered via `say(String)`, `ask(String, BooleanCallback)`, `warn(String)`, `confirm(String, BooleanCallback)` or `askforValue(String, ValueCallback)` is currently visible, it will be dismissed. The callback passed to the relevant method will never fire.

    Note this is a rarely used API with very few valid use cases. As an example, perhaps some kind of periodic (non-user triggered) event would cause an entire area of the UI to be removed (such as a tab) and the system wants to ensure that no modal dialogs are currently showing from that part of the UI. In this case, while `dismissCurrentDialog` could be used to ensure the part of the UI being removed didn't leave behind a modal dialog.

    To clear a modal prompt shown by `showPrompt(String)`, use `clearPrompt()` instead.

  - ### showPrompt

    public static void showPrompt(String message)
    Show a modal prompt to the user. This method will display the message using the Dialog.Prompt singleton object.

    Note: if this prompt is to be shown to the user during some slow logic, we advise calling this method, then using `DeferredCommand` to kick off the slow logic in a separate thread. This ensures that the prompt is showing before the lengthy execution begins.

    Parameters:
      `message` - message to display
    See Also:
      - `clearPrompt()`

  - ### showPrompt

    public static void showPrompt(String title, String message, Dialog dialogProperties)
    Show a modal prompt to the user. This method will display the message using the Dialog.Prompt singleton object.

    Note: if this prompt is to be shown to the user during some slow logic, we advise calling this method, then using `DeferredCommand` to kick off the slow logic in a separate thread. This ensures that the prompt is showing before the lengthy execution begins.

    Parameters:
      `title` - the title of the dialog
      `message` - message to display
      `dialogProperties` - additional properties for the Dialog
    See Also:
      - `clearPrompt()`

  - ### showPrompt

    public static void showPrompt(String title, String message)
    Show a modal prompt to the user. This method will display the message using the Dialog.Prompt singleton object.

    Note: if this prompt is to be shown to the user during some slow logic, we advise calling this method, then using `DeferredCommand` to kick off the slow logic in a separate thread. This ensures that the prompt is showing before the lengthy execution begins.

    Parameters:
      `title` - the title of the dialog
      `message` - message to display
    See Also:
      - `clearPrompt()`

  - ### clearPrompt

    public static void clearPrompt()
    Clear the modal prompt being shown to the user.

  - ### confirm

    public static void confirm(String message, BooleanCallback callback)
    Show a modal dialog with a message, icon, and "OK" and "Cancel" buttons. See `confirmIcon`.

    The callback will receive boolean true for an OK button click, or null for a Cancel click or if the Dialog is dismissed via the close button.

    Parameters:
      `message` - message to display
      `callback` - Callback to fire when the user clicks a button to dismiss the dialog.

  - ### confirm

    public static void confirm(String title, String message, BooleanCallback callback)
    Show a modal dialog with a message, icon, and "OK" and "Cancel" buttons. See `confirmIcon`.

    The callback will receive boolean true for an OK button click, or null for a Cancel click or if the Dialog is dismissed via the close button.

    Parameters:
      `title` - the title of the dialog
      `message` - message to display
      `callback` - Callback to fire when the user clicks a button to dismiss the dialog.

  - ### confirm

    public static void confirm(String title, String message, BooleanCallback callback, Dialog dialogProperties)
    Show a modal dialog with a message, icon, and "OK" and "Cancel" buttons. See `confirmIcon`.

    The callback will receive boolean true for an OK button click, or null for a Cancel click or if the Dialog is dismissed via the close button.

    Parameters:
      `title` - the title of the dialog
      `message` - message to display
      `callback` - Callback to fire when the user clicks a button to dismiss the dialog.
      `dialogProperties` - additional properties for the Dialog

  - ### warn

    public static void warn(String message)
    Show a modal dialog with a message, icon, and "OK" button. See `warnIcon`.
    Parameters:
      `message` - the message

  - ### warn

    public static void warn(String title, String message)
    Show a modal dialog with a message, icon, and "OK" button. See `warnIcon`.

    Parameters:
      `title` - the title of the dialog
      `message` - the message

  - ### warn

    public static void warn(String message, BooleanCallback callback)
    Show a modal dialog with a message, icon, and "OK" button. See `warnIcon`.

    The callback will receive boolean true for an OK button click, or null if the Dialog is dismissed via the close button.

    Parameters:
      `message` - the message
      `callback` - Optional Callback to fire when the user dismisses the dialog.

  - ### warn

    public static void warn(String title, String message, BooleanCallback callback, Dialog dialogProperties)
    Show a modal dialog with a message, icon, and "OK" button. See `warnIcon`.

    The callback will receive boolean true for an OK button click, or null if the Dialog is dismissed via the close button.

    Parameters:
      `title` - the title of the dialog
      `message` - the message
      `callback` - Optional Callback to fire when the user dismisses the dialog.
      `dialogProperties` - additional properties for the Dialog

  - ### logWarn

    public static void logWarn(String message)
    Log a warning.
    Parameters:
      `message` - the message to log

  - ### logWarn

    public static void logWarn(String message, String category)
    Log a warning.
    Parameters:
      `message` - the message to log
      `category` - category to log in, defaults to "Log"

  - ### logInfo

    public static void logInfo(String message)
    Log an informative message.
    Parameters:
      `message` - the message to log

  - ### logInfo

    public static void logInfo(String message, String category)
    Log an informative message.
    Parameters:
      `message` - the message to log
      `category` - category to log in, defaults to "Log"

  - ### logDebug

    public static void logDebug(String message)
    Log a debugging.
    Parameters:
      `message` - the message to log

  - ### logDebug

    public static void logDebug(String message, String category)
    Log a debugging
    Parameters:
      `message` - the message to log
      `category` - category to log in, defaults to "Log"

  - ### logEcho

    public static void logEcho(JavaScriptObject value)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `value` - object to echo

  - ### logEcho

    public static void logEcho(JavaScriptObject value, String message)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `value` - object to echo
      `message` - the message to log

  - ### logEcho

    public static void logEcho(Canvas canvas)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `canvas` - canvas to echo

  - ### logEcho

    public static void logEcho(Canvas canvas, String message)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `canvas` - canvas to echo
      `message` - the message to log

  - ### logEchoAll

    public static void logEchoAll(JavaScriptObject value)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `value` - object to echo

  - ### logEchoAll

    public static void logEchoAll(JavaScriptObject value, String message)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `value` - object to echo
      `message` - the message to log

  - ### logEchoAll

    public static void logEchoAll(Canvas canvas)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `canvas` - canvas to echo

  - ### logIsInfoEnabled

    public static boolean logIsInfoEnabled(String category)
    Check whether a message logged at "info" priority would be visible in the log. Use this method to avoid putting together expensive log messages if they will never appear in the log.
    Parameters:
      `category` - category to check; defaults to "Log"

  - ### echoLeaf

    public static String echoLeaf(Object value)
    Return a very short (generally less than 40 characters) string representation of any object, suitable for viewing by a developer for debugging purposes.
    Parameters:
      `value` - object to echo
    Returns:
      a short string representation of the object.

  - ### logIsDebugEnabled

    public static boolean logIsDebugEnabled(String category)
    Check whether a message logged at "debug" priority would be visible in the log. Use this method to avoid putting together expensive log messages if they will never appear in the log.
    Parameters:
      `category` - category to check; defaults to "Log"

  - ### notify

    public static MessageID notify(String contents)
    See Also:
      - `notify(java.lang.String)`

  - ### notify

    public static MessageID notify(String contents, NotifyAction... actions)
    See Also:
      - `notify(java.lang.String)`

  - ### notify

    public static MessageID notify(String contents, NotifyAction[] actions, String notifyType)
    Displays a new message that's automatically dismissed after a configurable amount of time, as an alternative to {@link #confirm,modal notification} dialogs that can lower end user productivity.

    This method is simply a shorthand way to call `Notify.addMessage()`. For further study, see the `Notify` class overview, and the class methods `Notify.dismissMessage()`. `Notify.configureMessages()`.

    Parameters:
      `contents` - message to be displayed. See `HTMLString`
      `actions` - actions (if any) for this message
      `notifyType` - category of message; default "message". See `NotifyType`
    Returns:
      opaque identifier for message

  - ### getJSStackTrace

    public static String getJSStackTrace()
    Returns the current stack trace, from a JavaScript perspective. This should provide meaningful JS stack frames for Java code in Super Development Mode, and in Production Mode, if GWT compilation has been configured with options such as "‑optimize 0" and/or "‑style PRETTY" to disable obfuscation. Frames corresponding to the native SmartClient Framework will be obfuscated unless the GWT project is `configured for debugging`.

    In Classic DevMode, this API will provide very limited information - stack frames corresponding to Java code will likely be displayed as anonymous functions, and many or most such frames will be missing. For DevMode, it's preferable to use GWT-supported Java APIs to capture the stack, such as for example:

             Throwable t = new Throwable();

             String stack = "";
             for (StackTraceElement element : t.getStackTrace()) {
                 stack += element + "\n";
             }

             SC.logDebug("Current location: " + stack);

    Grabbing Java StackTraceElements in Super Development Mode or Production Mode will work, but won't provide any added benefit as in DevMode.
    See Also:
      - `Debugging`

  - ### setEnableJSDebugger

    public static void setEnableJSDebugger(boolean useDebugger)
    Setting this to true will result in the IE / Firebug / Safari debugger being invoked when a JavaScript error is encountered. This is done by the execution of the commend "debugger;" when the error occurs. Setting this to true is useful for debugging any javascript errors.
    Parameters:
      `useDebugger` - default is false

  - ### logEchoAll

    public static void logEchoAll(Canvas canvas, String message)
    Logs the echoed object as a warning, prefixed with an optional message.
    Parameters:
      `canvas` - canvas to echo
      `message` - the message to log

  - ### echo

    public static String echo(JavaScriptObject object)
    Returns the passed in JavaScript object as a string
    Parameters:
      `object` -
    Returns:

  - ### echoAll

    public static String echoAll(JavaScriptObject object)
    Returns the passed in JavaScript object as a string (including serializing members one level deep for javascript arrays and nested objects)
    Parameters:
      `object` -
    Returns:

  - ### hasAnalytics

    public static boolean hasAnalytics()
    Returns true if the optional Analytics module is available in this build
    Returns:
      true if Analytics module is available in this build

  - ### hasAI

    public static boolean hasAI()
    Returns true if the optional AI module is available in this build
    Returns:
      true if AI module is available in this build

  - ### hasCharts

    public static boolean hasCharts()
    Returns true if the optional Charts module has been loaded.
    Returns:
      true if Charts module is loaded

  - ### hasTour

    public static boolean hasTour()
    Returns true if the optional Tour module has been loaded.
    Returns:
      true if Tour module is loaded

  - ### hasWorkflow

    public static boolean hasWorkflow()
    Returns true if the optional Workflow module has been loaded.
    Returns:
      true if Drawing module is loaded

  - ### hasDrawing

    public static boolean hasDrawing()
    Returns true if the optional Drawing module has been loaded.
    Returns:
      true if Drawing module is loaded

  - ### hasPluginBridges

    public static boolean hasPluginBridges()
    Returns true if the optional PluginBridges module has been loaded.
    Returns:
      true if PluginBridges module is loaded

  - ### hasRealtimeMessaging

    public static boolean hasRealtimeMessaging()
    Returns true if the optional RealtimeMessaging module is available in this build
    Returns:
      true if RealtimeMessaging module is available in this build

  - ### hasDashboardAndTools

    public static boolean hasDashboardAndTools()
    Returns true if the optional Dashboard & Tools module is available.
    Returns:
      true if Dashboard & Tools module is available.

  - ### setScreenReaderMode

    public static void setScreenReaderMode(boolean newState)
    Enables full screen reader mode. Must be called before any components are created. See `Accessibility`.
    Parameters:
      `new` - state for screen reader mode (true for enabled, false for disabled)

  - ### isMethodSupported

    public static boolean isMethodSupported(String className, String methodName)
    Returns true if the method is supported by the class, meaning that it is not null and was not replaced by `markUnsupportedMethods(String, String, String[])`.
    Parameters:
      `className` - className to check
      `methodName` - methodName to check
    Returns:
      boolean true if the method is not null and is not an unsupported method; false otherwise.

  - ### markUnsupportedMethods

    public static void markUnsupportedMethods(String className, String messageTemplate, String[] methodNames)
    Replaces each of the methods named in methodNames with a new implementation that simply logs a warning the first time the method is called, and nothing else. This can be used to mark methods of derived classes which do not support certain parent class methods as unsupported.

    The messageTemplate parameter is a template for the warning message logged when the unsupported method is first called. The following variables in the template are substituted as follows:

    Variable | Substitution
    --- | ---
    `$class` | The +link{getClassName(),class name}.
    `$method` | The name of the method.

    If you want the literal string of a substitution variable to appear in the warning message, you can escape it by prefixing with a dollar sign. For example, to include "$class" in the warning message, use "$$class" in the template.

    Parameters:
      `className` - className containing methods to mark
      `messageTemplate` - template for the warning message logged when first called. If null, the default template string "$class does not support the $method() method." is used.
      `methodNames` - the method names to mark as unsupported.

  - ### traceLogMessage

    public static void traceLogMessage(String messagePattern)
    Causes a stack trace to be logged any time a message containing the provided pattern is logged. This can help figure out the origin of warnings or other mysterious logs in a large complex application.

    The passed `messagePattern` is interpreted as a JavaScript regular expression.

    Parameters:
      `messagePattern` -

  - ### traceLogMessage

    public static void traceLogMessage(String messagePattern, String prefix)
    Causes a stack trace to be logged any time a message containing the provided pattern is logged. This can help figure out the origin of warnings or other mysterious logs in a large complex application.

    The passed `messagePattern` is interpreted as a JavaScript regular expression.

    Parameters:
      `messagePattern` -
      `prefix` - value to prefix the message

  - ### getScVersion

    public static String getScVersion()
    Internal method - do not call from Application code.

  - ### getScVersionNumber

    public static String getScVersionNumber()
    Internal method - do not call from Application code.

  - ### getSgwtVersion

    public static String getSgwtVersion()
    Internal method - do not call from Application code.

  - ### getSgwtVersionNumber

    public static String getSgwtVersionNumber()
    Internal method - do not call from Application code.

  - ### getScParityStableVersionNumber

    public static String getScParityStableVersionNumber()
    Internal method - do not call from Application code.

  - ### getSgwtParityStableVersionNumber

    public static String getSgwtParityStableVersionNumber()
    Internal method - do not call from Application code.

  - ### isStable

    public static boolean isStable()
    Internal method - do not call from Application code.