com.sapportals.wcm.rendering.uicommand

Class AbstractCommand

java.lang.Object
  extended bycom.sapportals.wcm.rendering.uicommand.AbstractCommand
All Implemented Interfaces:
ICommand, IExecCommand, IUIBaseCommand

public abstract class AbstractCommand
extends Object
implements ICommand

This class can be used by IUICommands to reduce coding overhead and to take advantage of some convinience methods for resource bundle handling. It also holds some implementations for the ISelector interface. Copyright: Copyright 2004 SAP AG

Since:
EP5 SP6 and EP6 SP1

Nested Class Summary
protected  class AbstractCommand.ResourceNotFoundException
           
 
Field Summary
protected  int applicable
           
protected  IResourceContext context
           
 String layoutSetID
          Layout Set ID
 AbstractProxyControl proxy
          Description of the Field
protected  IResource resource
          Description of the Field
 
Fields inherited from interface com.sapportals.wcm.rendering.uicommand.IExecCommand
APPLICABLE_FALSE, APPLICABLE_TRUE, APPLICABLE_UNKNOWN
 
Fields inherited from interface com.sapportals.wcm.rendering.base.IUIBaseCommand
ERR_MESSAGE_MISSING_CONFIG_ENTRY, ERR_MESSAGE_WRONG_METHOD_CALL, KEY_INPUT_CONTROL_TEXT, KEY_INPUT_CONTROL_TEXT_2, KEY_INPUT_CONTROL_TEXT_2_DEFAULT_TEXT, KEY_INPUT_CONTROL_TEXT_3, KEY_INPUT_CONTROL_TEXT_DEFAULT_TEXT, KEY_LABEL, KEY_MASS_EMBEDDED_COMMAND_TEXT, KEY_MASS_EMBEDDED_COMMANT_TOOLTIP, KEY_SINGLE_EMBEDDED_COMMAND_TEXT, KEY_SINGLE_EMBEDDED_COMMAND_TOOLTIP, KEY_TOOLTIP, LINE_BREAK, TEXT_KEYS, VALUE_EMPTY_STRING
 
Constructor Summary
AbstractCommand()
          public constructor used by the UICommandFactory, when command is created for the first time
AbstractCommand(String keyLabel, String keyTooltip)
          allows to set keys for the label and the tooltip of the command.
 
Method Summary
protected  void createResource(IResourceContext context, RID rid)
          creates an IResource from the given parameters and sets it as the member variable.
protected  IResource createResource(String uri)
          creates an IResource from the given parameters and returns it.
 RenderingEvent execute(ScreenflowData data)
           
 String getAlias()
          Gets the alias attribute of the AbstractUICommand object
protected  String getBundleString(String key)
          returns the translated text for the given key.
protected  String getBundleString(String key, Object obj)
          returns the translated text with the given variables included in the object.
protected  String getBundleString(String key, Object[] obj)
          returns the translated text with the given variables included in the object array.
protected  String getBundleString(String key, Object obj1, Object obj2)
          returns the translated text with the given variables included in the two objects.
 String getButtonLabel()
           
 Component getComponent()
          Returns a component for this command.
 Properties getConfigurationProperties()
          returns the configproperties for this command.
protected  String getLabel()
          returns the label text for the command.
 String getLayoutSetID()
          Gets the layoutSetID attribute of the AbstractUICommand object
 LinkAttributes getLinkAttributes()
          Gets the linkAttributes attribute of the AbstractUICommand object
 String getLinkLabel()
          Gets the linkLabel attribute of the AbstractUICommand object
protected  String getOTHDefinedURL(IResource res, IActionType actiontype)
           
 Hashtable getParameters()
          Gets the command parameters
 AbstractProxyControl getProxy()
          Gets the proxy attribute of the AbstractUICommand object
 List getReplaceCommands()
          gets the list of commands which will be ignored when the command is executable
 IResource getResource()
          returns the resource the command operates on
protected  RID getStartUri()
          returns the Start Uri value from proxy parameters
 String getText(TextKey key)
          Gets the text attribute of the AbstractUICommand object
 String getTextForSecondaryScreen(String key)
          Gets the textForSecondaryScreen attribute of the AbstractUICommand object
protected  Properties getTextProperties()
          returns the defined textproperties
protected  String getTooltip()
          returns the tooltip text for the command.
protected  void handleWrongConfiguration()
          throws an InvalidConfigurationException that will be displayed on the screen and give further information what was invalid for the given configuration
protected  ICommand initNewInstance(ICommand command)
          whenever a new instance of a command is needed, the newly created instance has to inherit all of the old instance's member variables, such as the alias, the resource bundle...
 boolean isApplicable()
          Gets the applicable attribute of the AbstractUICommand object
protected  boolean isMatchedPath(String[] paths, String resourcePath)
           
protected  boolean othAvailable(IResource res, IActionType actiontype)
           
 boolean raisesEvent()
          Description of the Method
protected  IResource resolveLink()
          returns either the current resource, or the target of the current resource, if the current resource is an internal link
 void setAlias(String alias)
          Sets the alias attribute of the AbstractUICommand object
 void setConfigurationProperties(Properties properties)
          allows to set a free list of key-value pairs to be used by this command.
 void setLabelBundleKey(String groupLabel)
          currently not implemented.
 void setLayoutSetID(String layoutSetID)
          Sets the layoutSetID attribute of the AbstractUICommand object
 void setParameters(Hashtable parameters)
          Sets parameters for the command.
 void setProxy(AbstractProxyControl proxy)
          Sets the proxy attribute of the AbstractUICommand object
 void setReplaceCommands(List replaceCommandsList)
          set the list of commands which will be ignored when the command is executable
 void setResource(IResource resource)
          sets the resource the command shall operate on
 void setResourceBundle(ResourceBundles bundleFile)
          sets the resourcebundle for this command
 void setResourceContext(IResourceContext context)
          Sets the resourceContext attribute of the AbstractUICommand object
 void setTextProperties(Properties properties)
          copies the values of known keys from the given properties-object into its own list.
 void setTooltipBundleKey(String groupTooltip)
          currently not implemented.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.sapportals.wcm.rendering.uicommand.ICommand
execute, getNewInstance
 
Methods inherited from interface com.sapportals.wcm.rendering.uicommand.IExecCommand
getTargetParameters, isExecutable, setTargetParameters
 

Field Detail

resource

protected IResource resource
Description of the Field


applicable

protected int applicable

context

protected IResourceContext context

layoutSetID

public String layoutSetID
Layout Set ID


proxy

public AbstractProxyControl proxy
Description of the Field

Constructor Detail

AbstractCommand

public AbstractCommand()
public constructor used by the UICommandFactory, when command is created for the first time


AbstractCommand

public AbstractCommand(String keyLabel,
                       String keyTooltip)
allows to set keys for the label and the tooltip of the command. It does not check, if the resource bundle holds entries for these keys.

Parameters:
keyLabel - the labelkey for the resourcebundle of the command, it is only set if it is not null
keyTooltip - the tooltipkey for the resourcebundle of the command, it is only set if it is not null
Method Detail

setResource

public void setResource(IResource resource)
sets the resource the command shall operate on

Specified by:
setResource in interface IUIBaseCommand
Parameters:
resource - resource the command shall operate on. Must not be null

getResource

public IResource getResource()
returns the resource the command operates on

Specified by:
getResource in interface ICommand
Returns:
the resource the command operates on, can be null.

getTooltip

protected String getTooltip()
returns the tooltip text for the command. If no entry in the specified resource bundle is found, the class searches in its own static default resource bundle. If none can be found there, the alias-attribute of the class is returned.

Returns:
a tooltip for this command

getLabel

protected String getLabel()
returns the label text for the command. If no entry in the specified resource bundle is found, the class searches in its own static default resource bundle. If none can be found there, the alias-attribute of the class is returned.

Returns:
a label for this command

getText

public String getText(TextKey key)
Gets the text attribute of the AbstractUICommand object

Specified by:
getText in interface IUIBaseCommand
Parameters:
key - Description of the param
Returns:
The text value

setTextProperties

public void setTextProperties(Properties properties)
copies the values of known keys from the given properties-object into its own list.

Specified by:
setTextProperties in interface ICommand
Parameters:
properties - should hold key-value pairs with keys defined in IUIBaseCommand.TEXT_KEYS . Other key-value pairs will not be used.

getTextProperties

protected Properties getTextProperties()
returns the defined textproperties

Returns:
the key-value pairs holding keys for the resourcebundle entries with texts for this command. Does not return null, but may return an empty Properties-object.

setResourceBundle

public void setResourceBundle(ResourceBundles bundleFile)
sets the resourcebundle for this command

Specified by:
setResourceBundle in interface IUIBaseCommand
Parameters:
bundleFile - the bundle the command uses to retrieve its texts.

setLabelBundleKey

public void setLabelBundleKey(String groupLabel)
currently not implemented.

Specified by:
setLabelBundleKey in interface IUIBaseCommand
Parameters:
groupLabel - The new labelBundleKey value

setTooltipBundleKey

public void setTooltipBundleKey(String groupTooltip)
currently not implemented.

Specified by:
setTooltipBundleKey in interface IUIBaseCommand
Parameters:
groupTooltip - The new tooltipBundleKey value

setConfigurationProperties

public void setConfigurationProperties(Properties properties)
allows to set a free list of key-value pairs to be used by this command. This

Specified by:
setConfigurationProperties in interface IUIBaseCommand
Parameters:
properties - free properties bag to be used by a command.

getConfigurationProperties

public Properties getConfigurationProperties()
returns the configproperties for this command.

Specified by:
getConfigurationProperties in interface IUIBaseCommand
Returns:
the properties set for this command, e.g. in the configuration. Does not return null, but may return an empty properties-object.

getComponent

public Component getComponent()
Returns a component for this command. This could be used to display this command on the screen.

Specified by:
getComponent in interface IUIBaseCommand
Returns:
a component to display. Currently returns null;

createResource

protected void createResource(IResourceContext context,
                              RID rid)
                       throws WcmException
creates an IResource from the given parameters and sets it as the member variable.

Parameters:
context - the current context of the session
rid - the identifier of the resource to create
Throws:
WcmException - if the resource could not be created.

createResource

protected IResource createResource(String uri)
                            throws ResourceException,
                                   WcmException
creates an IResource from the given parameters and returns it. Does not set it as a member variable.

Throws:
WcmException - if the resource could not be created.
ResourceException

raisesEvent

public boolean raisesEvent()
Description of the Method

Specified by:
raisesEvent in interface IExecCommand
Returns:
Description of the Return Value

initNewInstance

protected final ICommand initNewInstance(ICommand command)
whenever a new instance of a command is needed, the newly created instance has to inherit all of the old instance's member variables, such as the alias, the resource bundle... To aid with this, the implementing class can implement its getNewInstancemethod like this public getNewInstance() { return this.initNewInstance(new MyCommand()); } this abstract class' method will copy all of the member-attributes. Comparable to the deep-clone approach.

Parameters:
command - Description of the param
Returns:
Description of the Return Value

getLinkAttributes

public LinkAttributes getLinkAttributes()
Gets the linkAttributes attribute of the AbstractUICommand object

Specified by:
getLinkAttributes in interface IExecCommand
Returns:
The linkAttributes value

setProxy

public void setProxy(AbstractProxyControl proxy)
Sets the proxy attribute of the AbstractUICommand object

Specified by:
setProxy in interface IUIBaseCommand
Parameters:
proxy - The new proxy value

getProxy

public AbstractProxyControl getProxy()
Gets the proxy attribute of the AbstractUICommand object

Returns:
The proxy value

getTextForSecondaryScreen

public String getTextForSecondaryScreen(String key)
Gets the textForSecondaryScreen attribute of the AbstractUICommand object

Parameters:
key - Description of the param
Returns:
The textForSecondaryScreen value

getLayoutSetID

public String getLayoutSetID()
Gets the layoutSetID attribute of the AbstractUICommand object

Returns:
The layoutSetID value

setLayoutSetID

public void setLayoutSetID(String layoutSetID)
Sets the layoutSetID attribute of the AbstractUICommand object

Parameters:
layoutSetID - The new layoutSetID value

getAlias

public String getAlias()
Gets the alias attribute of the AbstractUICommand object

Specified by:
getAlias in interface IExecCommand
Returns:
The alias value

setAlias

public void setAlias(String alias)
Sets the alias attribute of the AbstractUICommand object

Specified by:
setAlias in interface IExecCommand
Parameters:
alias - The new alias value

execute

public RenderingEvent execute(ScreenflowData data)
                       throws WcmException
Throws:
WcmException

setResourceContext

public void setResourceContext(IResourceContext context)
Sets the resourceContext attribute of the AbstractUICommand object

Specified by:
setResourceContext in interface IUIBaseCommand
Parameters:
context - The new resourceContext value

getBundleString

protected String getBundleString(String key,
                                 Object[] obj)
returns the translated text with the given variables included in the object array. If the key cannot be found in the specified resource bundle, the class will check for it in its static default bundle. If it cannot be found here, an error message is logged and the alias of the implementing class is returned instead.

Parameters:
key - the key of the text to return - must not be null
obj - the variables to fill the place holders in the resource bundle, can be null
Returns:
The bundleString value
Throws:
MissingResourceException - if the IResourceContext is not set for the command

getBundleString

protected String getBundleString(String key)
returns the translated text for the given key. If the key cannot be found in the specified resource bundle, the class will check for it in its static default bundle. If it cannot be found here, an error message is logged and the alias of the implementing class is returned instead.

Parameters:
key - the key of the text to return - must not be null
Returns:
The bundleString value
Throws:
MissingResourceException - if the IResourceContext is not set for the command

getBundleString

protected String getBundleString(String key,
                                 Object obj)
returns the translated text with the given variables included in the object. If the key cannot be found in the specified resource bundle, the class will check for it in its static default bundle. If it cannot be found here, an error message is logged and the alias of the implementing class is returned instead.

Parameters:
key - the key of the text to return - must not be null
obj - the variable to fill the place holder in the resource bundle, can be null
Returns:
The bundleString value
Throws:
MissingResourceException - if the IResourceContext is not set for the command

getBundleString

protected String getBundleString(String key,
                                 Object obj1,
                                 Object obj2)
returns the translated text with the given variables included in the two objects. If the key cannot be found in the specified resource bundle, the class will check for it in its static default bundle. If it cannot be found here, an error message is logged and the alias of the implementing class is returned instead.

Parameters:
key - the key of the text to return - must not be null
obj1 - the variable to fill the first place holder in the resource bundle, can be null
obj2 - the variable to fill the second place holder in the resource bundle, can be null *
Returns:
The bundleString value
Throws:
MissingResourceException - if the IResourceContext is not set for the command

handleWrongConfiguration

protected void handleWrongConfiguration()
                                 throws com.sapportals.wcm.control.base.InvalidConfigurationException
throws an InvalidConfigurationException that will be displayed on the screen and give further information what was invalid for the given configuration

Throws:
com.sapportals.wcm.control.base.InvalidConfigurationException - Exception raised in failure situation

getReplaceCommands

public List getReplaceCommands()
gets the list of commands which will be ignored when the command is executable

Specified by:
getReplaceCommands in interface IUIBaseCommand
Returns:
The replaceCommands value

setReplaceCommands

public void setReplaceCommands(List replaceCommandsList)
set the list of commands which will be ignored when the command is executable

Specified by:
setReplaceCommands in interface IUIBaseCommand
Parameters:
replaceCommandsList - The new replaceCommands value

isApplicable

public boolean isApplicable()
Gets the applicable attribute of the AbstractUICommand object

Specified by:
isApplicable in interface IExecCommand
Returns:
The applicable value

getStartUri

protected RID getStartUri()
returns the Start Uri value from proxy parameters

Returns:
The start uri value

getLinkLabel

public String getLinkLabel()
Gets the linkLabel attribute of the AbstractUICommand object

Returns:
The linkLabel value

getButtonLabel

public String getButtonLabel()
Returns:
the label to put on the button that leads to this Command

isMatchedPath

protected boolean isMatchedPath(String[] paths,
                                String resourcePath)

othAvailable

protected boolean othAvailable(IResource res,
                               IActionType actiontype)

getOTHDefinedURL

protected String getOTHDefinedURL(IResource res,
                                  IActionType actiontype)

setParameters

public void setParameters(Hashtable parameters)
Sets parameters for the command. Each parameters should have an unique key and one or more values.

Specified by:
setParameters in interface IUIBaseCommand
Parameters:
parameters - The new parameters value

getParameters

public Hashtable getParameters()
Gets the command parameters

Specified by:
getParameters in interface IUIBaseCommand
Returns:
The parameters value

resolveLink

protected final IResource resolveLink()
                               throws ResourceException
returns either the current resource, or the target of the current resource, if the current resource is an internal link

Returns:
the current resource as defined in getResource(). If this resource is an internal link: this.getResource().getLinkType().equals(LinkType.INTERNAL), the target of this resource is returned.
Throws:
ResourceException - is thrown by the RepositoryFramework and not caught by this method


Copyright 2006 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.