chrriis.dj.nativeswing.swtimpl.components
Class JWebBrowser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by chrriis.dj.nativeswing.swtimpl.NSPanelComponent
                      extended by chrriis.dj.nativeswing.swtimpl.components.JWebBrowser
All Implemented Interfaces:
NSComponent, ImageObserver, MenuContainer, Serializable, Accessible

public class JWebBrowser
extends NSPanelComponent

A native web browser, using Internet Explorer or Mozilla on Windows, and Mozilla on other platforms.
Methods execute when this component is initialized. If the component is not initialized, methods will be executed as soon as it gets initialized. If the initialization fails, the methods will not have any effect. The results from methods have relevant values only when the component is valid.

Author:
Christopher Deckers
See Also:
Serialized Form

Nested Class Summary
static interface JWebBrowser.WebBrowserDecoratorFactory
          A factory that creates the decorators for web browsers.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String COMMAND_FUNCTION
          The function to use when sending a command from some web content using Javascript.
static String COMMAND_LOCATION_PREFIX
          The prefix to use when sending a command from some web content, using a static link or by setting window.location from Javascript.
static String COMMAND_STATUS_PREFIX
          The prefix to use when sending a command from some web content, by setting window.status from Javascript.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JWebBrowser(NSOption... options)
          Construct a new web browser.
 
Method Summary
 void addWebBrowserListener(WebBrowserListener listener)
          Add a web browser listener.
static void clearSessionCookies()
          Clear all session cookies from all web browser instances.
static String convertJavaObjectToJavascript(Object o)
          Convert a Java object to Javascript, to simplify the task of executing scripts.
static void copyAppearance(JWebBrowser fromWebBrowser, JWebBrowser toWebBrowser)
          Copy the appearance, the visibility of the various bars, from one web browser to another.
static void copyContent(JWebBrowser fromWebBrowser, JWebBrowser toWebBrowser)
          Copy the content, whether a URL or its HTML content, from one web browser to another.
static String createJavascriptFunctionCall(String functionName, Object... args)
          Create the Javascript function call using the function name and Java objects as arguments.
protected  WebBrowserDecorator createWebBrowserDecorator(Component renderingComponent)
          Create a decorator for this web browser.
 boolean disposeNativePeer(boolean isConfirmationDialogAllowed)
          Dispose the native peer but potentially allows confirmation dialog to the user.
 void executeJavascript(String javascript)
          Execute some javascript.
 Object executeJavascriptWithResult(String javascript)
          Execute some javascript, and wait for the result coming from the return statements.
 WebBrowserAuthenticationHandler getAuthenticationHandler()
          Get the authentication handler or null if none is set.
 String getBrowserType()
          Get the type of browser (ie, mozilla, etc.).
 String getBrowserVersion()
          Get the version of the browser.
static String getCookie(String url, String name)
          Get a cookie for a given URL and a given name.
 String getHTMLContent()
          Get the HTML content.
 int getLoadingProgress()
          Get the loading progress, a value between 0 and 100, where 100 means it is fully loaded.
 String getPageTitle()
          Get the title of the web page.
 String getResourceLocation()
          Get the location of the resource currently displayed.
 String getStatusText()
          Get the status text.
 WebBrowserListener[] getWebBrowserListeners()
          Get the web browser listeners.
 JWebBrowserWindow getWebBrowserWindow()
          Get the web browser window if the web browser is contained in one.
 boolean isBackNavigationEnabled()
          Indicate if the web browser Back functionality is enabled.
 boolean isButtonBarVisible()
          Indicate whether the button bar is visible.
 boolean isForwardNavigationEnabled()
          Indicate if the web browser Forward functionality is enabled.
 boolean isJavascriptEnabled()
          Indicate if Javascript will be allowed to run in pages subsequently viewed.
 boolean isLocationBarVisible()
          Indicate whether the location bar is visible.
 boolean isMenuBarVisible()
          Indicate whether the menu bar is visible.
 boolean isStatusBarVisible()
          Indicate whether the status bar is visible.
 boolean navigate(String resourceLocation)
          Navigate to a resource, with its location specified as a URL or path.
 boolean navigate(String resourceLocation, WebBrowserNavigationParameters parameters)
          Navigate to a resource, with its location specified as a URL or path.
 void navigateBack()
          Invoke the web browser Back functionality.
 void navigateForward()
          Invoke the web browser Forward functionality.
 boolean print(boolean isShowingDialog)
          Attempt to print the content of the currently loaded page specifying whether to show the print dialog.
 void registerFunction(WebBrowserFunction function)
          Register a function to the web browser which can be called from Javascript.
 void reloadPage()
          Invoke the web browser Reload functionality.
 void removeWebBrowserListener(WebBrowserListener listener)
          Remove a web browser listener.
 void setAuthenticationHandler(WebBrowserAuthenticationHandler authenticationHandler)
          Set the authentication handler.
 void setBarsVisible(boolean areBarsVisible)
          Show or hide all the bars at once.
 void setButtonBarVisible(boolean isButtonBarVisible)
          Set whether the button bar is visible.
static void setCookie(String url, String value)
          Set a cookie for all web browser instances.
 void setDefaultPopupMenuRegistered(boolean isDefaultPopupMenuRegistered)
          Set whether this component is able to detect a popup menu gesture to show its default popup menu.
 boolean setHTMLContent(String html)
          Set the HTML content.
 void setJavascriptEnabled(boolean isJavascriptEnabled)
          Set whether javascript will be allowed to run in pages subsequently.
 void setLocationBarVisible(boolean isLocationBarVisible)
          Set whether the location bar is visible.
 void setMenuBarVisible(boolean isMenuBarVisible)
          Set whether the menu bar is visible.
 void setStatusBarVisible(boolean isStatusBarVisible)
          Set whether the status bar is visible.
static void setWebBrowserDecoratorFactory(JWebBrowser.WebBrowserDecoratorFactory webBrowserDecoratorFactory)
          Set the decorator that will be used for future web browser instances.
 void stopLoading()
          Invoke the web browser Stop functionality, to stop all current loading operations.
 void unregisterFunction(WebBrowserFunction function)
          Unregister a function from the web browser, which cannot be called from Javascript anymore.
static NSOption useWebkitRuntime()
          Create an option to make the web browser use the Webkit runtime.
static NSOption useXULRunnerRuntime()
          Create an option to make the web browser use the Mozilla XULRunner runtime.
 
Methods inherited from class chrriis.dj.nativeswing.swtimpl.NSPanelComponent
constrainVisibility, destroyOnFinalization, disposeNativePeer, getNativeComponent, initialize, initializeNativePeer, isNativePeerDisposed, isNativePeerInitialized, isNativePeerValid, proxyComponentHierarchy, runInSequence
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

COMMAND_FUNCTION

public static final String COMMAND_FUNCTION
The function to use when sending a command from some web content using Javascript.

See Also:
Constant Field Values

COMMAND_LOCATION_PREFIX

public static final String COMMAND_LOCATION_PREFIX
The prefix to use when sending a command from some web content, using a static link or by setting window.location from Javascript.

See Also:
Constant Field Values

COMMAND_STATUS_PREFIX

public static final String COMMAND_STATUS_PREFIX
The prefix to use when sending a command from some web content, by setting window.status from Javascript.

See Also:
Constant Field Values
Constructor Detail

JWebBrowser

public JWebBrowser(NSOption... options)
Construct a new web browser.

Parameters:
options - the options to configure the behavior of this component.
Method Detail

useXULRunnerRuntime

public static NSOption useXULRunnerRuntime()
Create an option to make the web browser use the Mozilla XULRunner runtime.

Returns:
the option to use the XULRunner runtime.

useWebkitRuntime

public static NSOption useWebkitRuntime()
Create an option to make the web browser use the Webkit runtime.

Returns:
the option to use the Webkit runtime.

setWebBrowserDecoratorFactory

public static void setWebBrowserDecoratorFactory(JWebBrowser.WebBrowserDecoratorFactory webBrowserDecoratorFactory)
Set the decorator that will be used for future web browser instances.

Parameters:
webBrowserDecoratorFactory - the factory that creates the decorators, or null for default decorators.

createWebBrowserDecorator

protected WebBrowserDecorator createWebBrowserDecorator(Component renderingComponent)
Create a decorator for this web browser. This method can be overriden so that the web browser uses a different decorator.

Parameters:
renderingComponent - the component to add to the decorator's component hierarchy.
Returns:
the decorator that was created.

clearSessionCookies

public static void clearSessionCookies()
Clear all session cookies from all web browser instances.


getCookie

public static String getCookie(String url,
                               String name)
Get a cookie for a given URL and a given name.

Returns:
the cookie or null if it does not exist.

setCookie

public static void setCookie(String url,
                             String value)
Set a cookie for all web browser instances.

Parameters:
url - the url.
value - the value, in a cookie form like: foo=bar (basic session cookie) foo=bar; path=/; domain=.eclipse.org (session cookie) foo=bar; expires=Thu, 01-Jan-2030 00:00:01 GMT (persistent cookie) foo=; expires=Thu, 01-Jan-1970 00:00:01 GMT (deletes cookie foo)

copyAppearance

public static void copyAppearance(JWebBrowser fromWebBrowser,
                                  JWebBrowser toWebBrowser)
Copy the appearance, the visibility of the various bars, from one web browser to another.

Parameters:
fromWebBrowser - the web browser to copy the appearance from.
toWebBrowser - the web browser to copy the appearance to.

copyContent

public static void copyContent(JWebBrowser fromWebBrowser,
                               JWebBrowser toWebBrowser)
Copy the content, whether a URL or its HTML content, from one web browser to another.

Parameters:
fromWebBrowser - the web browser to copy the content from.
toWebBrowser - the web browser to copy the content to.

setStatusBarVisible

public void setStatusBarVisible(boolean isStatusBarVisible)
Set whether the status bar is visible.

Parameters:
isStatusBarVisible - true if the status bar should be visible, false otherwise.

isStatusBarVisible

public boolean isStatusBarVisible()
Indicate whether the status bar is visible.

Returns:
true if the status bar is visible.

setMenuBarVisible

public void setMenuBarVisible(boolean isMenuBarVisible)
Set whether the menu bar is visible.

Parameters:
isMenuBarVisible - true if the menu bar should be visible, false otherwise.

isMenuBarVisible

public boolean isMenuBarVisible()
Indicate whether the menu bar is visible.

Returns:
true if the menu bar is visible.

setButtonBarVisible

public void setButtonBarVisible(boolean isButtonBarVisible)
Set whether the button bar is visible.

Parameters:
isButtonBarVisible - true if the button bar should be visible, false otherwise.

isButtonBarVisible

public boolean isButtonBarVisible()
Indicate whether the button bar is visible.

Returns:
true if the button bar is visible.

setLocationBarVisible

public void setLocationBarVisible(boolean isLocationBarVisible)
Set whether the location bar is visible.

Parameters:
isLocationBarVisible - true if the location bar should be visible, false otherwise.

isLocationBarVisible

public boolean isLocationBarVisible()
Indicate whether the location bar is visible.

Returns:
true if the location bar is visible.

getPageTitle

public String getPageTitle()
Get the title of the web page.

Returns:
the title of the page.

getStatusText

public String getStatusText()
Get the status text.

Returns:
the status text.

getHTMLContent

public String getHTMLContent()
Get the HTML content.

Returns:
the HTML content.

setHTMLContent

public boolean setHTMLContent(String html)
Set the HTML content.

Parameters:
html - the HTML content.

getResourceLocation

public String getResourceLocation()
Get the location of the resource currently displayed.

Returns:
the location.

navigate

public boolean navigate(String resourceLocation)
Navigate to a resource, with its location specified as a URL or path.

Parameters:
resourceLocation - the URL or path.
Returns:
true if the navigation was successful.

navigate

public boolean navigate(String resourceLocation,
                        WebBrowserNavigationParameters parameters)
Navigate to a resource, with its location specified as a URL or path.

Parameters:
resourceLocation - the URL or path.
parameters - the parameters (headers and POST data) to send with the navigation request.
Returns:
true if the navigation was successful.

isBackNavigationEnabled

public boolean isBackNavigationEnabled()
Indicate if the web browser Back functionality is enabled.

Returns:
true if the web browser Back functionality is enabled.

navigateBack

public void navigateBack()
Invoke the web browser Back functionality.


isForwardNavigationEnabled

public boolean isForwardNavigationEnabled()
Indicate if the web browser Forward functionality is enabled.

Returns:
true if the web browser Forward functionality is enabled.

navigateForward

public void navigateForward()
Invoke the web browser Forward functionality.


reloadPage

public void reloadPage()
Invoke the web browser Reload functionality.


stopLoading

public void stopLoading()
Invoke the web browser Stop functionality, to stop all current loading operations.


isJavascriptEnabled

public boolean isJavascriptEnabled()
Indicate if Javascript will be allowed to run in pages subsequently viewed.

Returns:
true if Javascript is enabled.

setJavascriptEnabled

public void setJavascriptEnabled(boolean isJavascriptEnabled)
Set whether javascript will be allowed to run in pages subsequently. Note that setting this value does not affect the running of javascript in the current page.

Parameters:
isJavascriptEnabled - true to enable Javascript, false otherwise.

executeJavascript

public void executeJavascript(String javascript)
Execute some javascript.

Parameters:
javascript - the javascript to execute.

executeJavascriptWithResult

public Object executeJavascriptWithResult(String javascript)
Execute some javascript, and wait for the result coming from the return statements.

Parameters:
javascript - the javascript to execute which must contain explicit return statements.
Returns:
the value, potentially a String, Number, Boolean.

createJavascriptFunctionCall

public static String createJavascriptFunctionCall(String functionName,
                                                  Object... args)
Create the Javascript function call using the function name and Java objects as arguments. Note that it does not contain a semi-colon at the end of the statement, to allow call chaining.

Parameters:
functionName - the name of the Javascript funtion.
args - the Java objects (String, number, boolean, or array) which will get converted to Javascript arguments.
Returns:
the function call, in the form "functionName(convArg1, convArg2, ...)".

convertJavaObjectToJavascript

public static String convertJavaObjectToJavascript(Object o)
Convert a Java object to Javascript, to simplify the task of executing scripts. Conversion adds quotes around Strings (with Java escaping and Javascript unescaping around), add brackets to arrays, treats arrays of arrays, and can handle null values.

Parameters:
o - the object to convert, which can be a String, number, boolean, or array.

getLoadingProgress

public int getLoadingProgress()
Get the loading progress, a value between 0 and 100, where 100 means it is fully loaded.

Returns:
a value between 0 and 100 indicating the current loading progress.

setAuthenticationHandler

public void setAuthenticationHandler(WebBrowserAuthenticationHandler authenticationHandler)
Set the authentication handler.

Parameters:
authenticationHandler - The authentication handler, or null to remove the current one.

getAuthenticationHandler

public WebBrowserAuthenticationHandler getAuthenticationHandler()
Get the authentication handler or null if none is set.

Returns:
the authentication handler.

addWebBrowserListener

public void addWebBrowserListener(WebBrowserListener listener)
Add a web browser listener.

Parameters:
listener - The web browser listener to add.

removeWebBrowserListener

public void removeWebBrowserListener(WebBrowserListener listener)
Remove a web browser listener.

Parameters:
listener - the web browser listener to remove.

getWebBrowserListeners

public WebBrowserListener[] getWebBrowserListeners()
Get the web browser listeners.

Returns:
the web browser listeners.

setBarsVisible

public void setBarsVisible(boolean areBarsVisible)
Show or hide all the bars at once.

Parameters:
areBarsVisible - true to show all bars, false to hide them all.

getWebBrowserWindow

public JWebBrowserWindow getWebBrowserWindow()
Get the web browser window if the web browser is contained in one.

Returns:
the web browser Window, or null.

setDefaultPopupMenuRegistered

public void setDefaultPopupMenuRegistered(boolean isDefaultPopupMenuRegistered)
Set whether this component is able to detect a popup menu gesture to show its default popup menu.

Parameters:
isDefaultPopupMenuRegistered - true if the default popup menu is registered.

registerFunction

public void registerFunction(WebBrowserFunction function)
Register a function to the web browser which can be called from Javascript.

Parameters:
function - the function to add.

unregisterFunction

public void unregisterFunction(WebBrowserFunction function)
Unregister a function from the web browser, which cannot be called from Javascript anymore.

Parameters:
function - the function to remove.

getBrowserType

public String getBrowserType()
Get the type of browser (ie, mozilla, etc.).

Returns:
the browser type.

getBrowserVersion

public String getBrowserVersion()
Get the version of the browser. This is mainly for troubleshooting and may even return null if it fails to detect it.

Returns:
the version or null if it could not be obtained.

disposeNativePeer

public boolean disposeNativePeer(boolean isConfirmationDialogAllowed)
Dispose the native peer but potentially allows confirmation dialog to the user.

Parameters:
isConfirmationDialogAllowed - true if the component is allowed to ask confirmation to the user, false otherwise.
Returns:
true if the component was disposed, false otherwise.

print

public boolean print(boolean isShowingDialog)
Attempt to print the content of the currently loaded page specifying whether to show the print dialog. This method invokes the Javascript print facility, or potentially direct native calls if the platforms allows it. Not all runtimes support printing without showing the dialog (only IE supports it at the moment) in which case the method would return false.

Returns:
true if the method call worked, false otherwise.