org.sandev.tools.UIEditor
Class UIEditorFormOwner

java.lang.Object
  extended by org.sandev.tools.UIEditor.UIEditorFormOwner
All Implemented Interfaces:
org.sandev.basics.util.AuthUserLookup, org.sandev.basics.util.IDLookup, org.sandev.basics.util.NameLookup, org.sandev.basics.util.UIFileLocator, org.sandev.basics.util.UIFormAdaptorCallback, org.sandev.basics.util.UIFormOwner

public class UIEditorFormOwner
extends java.lang.Object
implements org.sandev.basics.util.UIFormOwner

Handles SandUI form ownership in support of editing interfaces. This is an implementation of UIFormOwner that writes the SandUI message to file on save.


Field Summary
protected  org.sandev.basics.util.AuthFilter authFilter
           
protected  org.sandev.basics.nodecommon.CharSerializer charSerializer
          The CharSerializer we should use when writing data.
protected  org.sandev.ui.sandmessages.SandUI currUI
          Our local reference to the top level SandUI object so that we can resolve name references.
protected  java.lang.String filename
          The name of the file we are storing the SandUI information in.
protected  java.lang.String inboundFilesLink
          The base link specification for inbound files.
protected  java.lang.String outboundFilesLink
          The base link specification for outbound files.
 
Fields inherited from interface org.sandev.basics.util.UIFormOwner
ACTION_REFRESH_GLOBAL_DATA
 
Constructor Summary
UIEditorFormOwner()
           
 
Method Summary
 org.sandev.basics.util.UIFormContext doAction(java.lang.String actionName, org.sandev.basics.util.UIFormContext uifc, org.sandev.basics.util.UserWorkLog uwl)
          Does nothing.
 void doActionAddHook(org.sandev.basics.util.UIFormContext uifc)
          Given the UIFormContext which will be used to present a new form for the user to fill out, preprocess ad needed before returning control to the UIFormManager.
 void doActionCancelHook(org.sandev.basics.util.UIFormContext uifc)
          Given the UIFormContext that is being used for adding a new instance or editing an existing instance, preprocess as needed before returning control to the UIFormManager.
 void doActionDeleteHook(org.sandev.basics.util.UIFormContext uifc)
          Given the UIFormContext that is being used for deleting the current instance, preprocess as needed before returning control to the UIFormManager.
 void doActionDisplayHook(org.sandev.basics.util.UIFormContext uifc)
          Given the UIFormContext that will be used to present a form for displaying an existing instance, preprocess as needed before returning control to the UIFormManager.
 void doActionEditHook(org.sandev.basics.util.UIFormContext uifc)
          Given the UIFormContext containing the instance we are editing, preprocess as needed before returning control to the UIFormManager.
 void doActionFindHook(org.sandev.basics.util.UIFormContext uifc)
          Given the UIFormContext reconstructed on an ACTION_FIND, preprocess as needed before returning control to the UIFormManager.
 java.lang.String filterDisplayText(java.lang.String value)
          No filtering of display text is done.
 java.util.Map filterInputParameters(java.lang.String prefix, java.util.Map params, org.sandev.basics.util.FormOutput fo)
          No remapping of parameters is done.
 java.lang.String forgotPassword(java.lang.String username, java.lang.String secondary)
          Does nothing
 org.sandev.basics.structs.SandCollectionMessage formFind(org.sandev.basics.structs.SandQueryMessage sqm, org.sandev.basics.util.UIFormContext uifc)
          Look up a Screen by name.
 void formHelp(org.sandev.basics.util.UIFormContext uifc)
          Pop up the docs for this message.
 void formSave(org.sandev.basics.util.UIFormContext uifc)
          Write the SandUI to file.
 org.sandev.basics.util.AuthFilter getAuthFilter()
          Authorization is file based, so if they are able to edit the file then further authorization is unrestricted.
 org.sandev.basics.nodecommon.CharSerializer getCharSerializer()
          accessor for charSerializer
 org.sandev.ui.sandmessages.SandUI getCurrUI()
          accessor for currUI
 java.lang.String getDeploymentPrefix()
          Just returns the empty string.
 java.lang.String getFieldPrintname(java.lang.String field, org.sandev.basics.structs.SandInstanceMessage msg, java.util.Locale locale)
          Given a fieldname, return the print name for it.
 java.lang.String getFilename()
          accessor for filename
 java.lang.String getInboundFilesDir()
          The directory where uploaded files should be written to.
 java.lang.String getInboundFilesLink()
          Accessor for inboundFilesLink
 org.sandev.basics.structs.SandPersistMessage getInstance(java.lang.String classname, long id, org.sandev.basics.util.AuthUser user)
          Returns null.
 org.sandev.basics.structs.SandInstanceMessage getInstance(java.lang.String classname, java.lang.String fieldname, java.lang.String value, org.sandev.basics.util.AuthUser user)
          Look up the specified instance.
 java.lang.String getOutboundFilesDir()
          The directory where uploaded files should be written to.
 java.lang.String getOutboundFilesLink()
          Accessor for outboundFilesLink
 org.sandev.basics.util.ArrayAssociation getSelectionValues(org.sandev.basics.structs.SandInstanceMessage msg, java.lang.String fieldname, org.sandev.basics.util.AuthUser user)
          Return an appropriate selection list for this field.
 java.lang.String getTechSupportEmailAddress()
          Just returns the empty string.
 org.sandev.basics.util.AuthUser getUserForID(long authID)
          Returns null.
 org.sandev.basics.util.AuthUser getUserFromLogin(java.lang.String username, java.lang.String password)
          Returns null.
 org.sandev.basics.util.UserWorkLog getUserWorkLog()
          No user work log.
 boolean isActive(java.lang.String actionName, org.sandev.basics.util.UIFormContext uifc, boolean defaultValue)
          Returns false.
 void log(int severity, java.lang.String text)
          Log the given text.
 void setCharSerializer(org.sandev.basics.nodecommon.CharSerializer val)
          mutator for charSerializer
 void setCurrUI(org.sandev.ui.sandmessages.SandUI ui)
          mutator for currUI
 void setFilename(java.lang.String val)
          mutator for filename
 void setInboundFilesLink(java.lang.String defaultInboundFilesLink)
          Mutator for inboundFilesLink.
 void setOutboundFilesLink(java.lang.String defaultOutboundFilesLink)
          Mutator for outboundFilesLink.
 int stdActionFromText(java.lang.String actionText)
          Given action text from stdActionToText, translate it back to a standard action value.
 java.lang.String stdActionToText(int action, org.sandev.basics.util.UIFormContext uifc)
          Given a standard action value, return the text used when displaying it.
 void trackFormProcessCall(org.sandev.basics.util.UIFormContext uifc)
          Reset our cache with the updated information.
 java.lang.String verifyDefaultAction(java.lang.String currAction, org.sandev.basics.util.UIFormContext uifc, java.lang.String formName)
          Change the default action if needed.
 java.lang.String verifyDefaultScreen(java.lang.String defaultScreen, org.sandev.basics.util.AuthUser authUser, java.lang.String[] screens, java.util.Map params)
          No screen definitions, so not applicable.
 org.sandev.basics.structs.SandAttrVal[] verifyGeneralInfo(org.sandev.basics.structs.SandAttrVal[] generalInfo, org.sandev.basics.util.AuthUser authUser)
          Return an array of general information to be made globally available in display processing.
protected  void writeOutline(org.sandev.ui.sandmessages.SandUI sandui)
          Write an outline of the current SandUI for reference.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

currUI

protected org.sandev.ui.sandmessages.SandUI currUI
Our local reference to the top level SandUI object so that we can resolve name references.


filename

protected java.lang.String filename
The name of the file we are storing the SandUI information in.


charSerializer

protected org.sandev.basics.nodecommon.CharSerializer charSerializer
The CharSerializer we should use when writing data. Set by the servlet that uses us as a UIFormOwner.


inboundFilesLink

protected java.lang.String inboundFilesLink
The base link specification for inbound files.


outboundFilesLink

protected java.lang.String outboundFilesLink
The base link specification for outbound files.


authFilter

protected org.sandev.basics.util.AuthFilter authFilter
Constructor Detail

UIEditorFormOwner

public UIEditorFormOwner()
Method Detail

getCurrUI

public org.sandev.ui.sandmessages.SandUI getCurrUI()
accessor for currUI


setCurrUI

public void setCurrUI(org.sandev.ui.sandmessages.SandUI ui)
mutator for currUI


getFilename

public java.lang.String getFilename()
accessor for filename


setFilename

public void setFilename(java.lang.String val)
mutator for filename


getCharSerializer

public org.sandev.basics.nodecommon.CharSerializer getCharSerializer()
accessor for charSerializer


setCharSerializer

public void setCharSerializer(org.sandev.basics.nodecommon.CharSerializer val)
mutator for charSerializer


getInstance

public org.sandev.basics.structs.SandPersistMessage getInstance(java.lang.String classname,
                                                                long id,
                                                                org.sandev.basics.util.AuthUser user)
                                                         throws org.sandev.basics.structs.SandException
Returns null. There are no references to persistent data in a SAND UI definition.

Specified by:
getInstance in interface org.sandev.basics.util.IDLookup
Throws:
org.sandev.basics.structs.SandException

getUserForID

public org.sandev.basics.util.AuthUser getUserForID(long authID)
                                             throws org.sandev.basics.structs.SandException
Returns null. The SAND UI editor uses file based authorization.

Specified by:
getUserForID in interface org.sandev.basics.util.AuthUserLookup
Throws:
org.sandev.basics.structs.SandException

getUserFromLogin

public org.sandev.basics.util.AuthUser getUserFromLogin(java.lang.String username,
                                                        java.lang.String password)
                                                 throws org.sandev.basics.structs.SandException
Returns null. The SAND UI editor uses file based authorization.

Specified by:
getUserFromLogin in interface org.sandev.basics.util.AuthUserLookup
Throws:
org.sandev.basics.structs.SandException

getInstance

public org.sandev.basics.structs.SandInstanceMessage getInstance(java.lang.String classname,
                                                                 java.lang.String fieldname,
                                                                 java.lang.String value,
                                                                 org.sandev.basics.util.AuthUser user)
                                                          throws org.sandev.basics.structs.SandException
Look up the specified instance. The only string references in a SandUI are to Screens, which are all at the top level of declarations by name. So that's all we handle here.

Specified by:
getInstance in interface org.sandev.basics.util.NameLookup
Throws:
org.sandev.basics.structs.SandException

setInboundFilesLink

public void setInboundFilesLink(java.lang.String defaultInboundFilesLink)
Mutator for inboundFilesLink.

Specified by:
setInboundFilesLink in interface org.sandev.basics.util.UIFileLocator

getInboundFilesLink

public java.lang.String getInboundFilesLink()
Accessor for inboundFilesLink

Specified by:
getInboundFilesLink in interface org.sandev.basics.util.UIFileLocator

getInboundFilesDir

public java.lang.String getInboundFilesDir()
The directory where uploaded files should be written to.

Specified by:
getInboundFilesDir in interface org.sandev.basics.util.UIFileLocator

setOutboundFilesLink

public void setOutboundFilesLink(java.lang.String defaultOutboundFilesLink)
Mutator for outboundFilesLink.

Specified by:
setOutboundFilesLink in interface org.sandev.basics.util.UIFileLocator

getOutboundFilesLink

public java.lang.String getOutboundFilesLink()
Accessor for outboundFilesLink

Specified by:
getOutboundFilesLink in interface org.sandev.basics.util.UIFileLocator

getOutboundFilesDir

public java.lang.String getOutboundFilesDir()
The directory where uploaded files should be written to.

Specified by:
getOutboundFilesDir in interface org.sandev.basics.util.UIFileLocator

getSelectionValues

public org.sandev.basics.util.ArrayAssociation getSelectionValues(org.sandev.basics.structs.SandInstanceMessage msg,
                                                                  java.lang.String fieldname,
                                                                  org.sandev.basics.util.AuthUser user)
Return an appropriate selection list for this field.

Specified by:
getSelectionValues in interface org.sandev.basics.util.UIFormAdaptorCallback

getFieldPrintname

public java.lang.String getFieldPrintname(java.lang.String field,
                                          org.sandev.basics.structs.SandInstanceMessage msg,
                                          java.util.Locale locale)
Given a fieldname, return the print name for it. This just returns the given fieldname.

Specified by:
getFieldPrintname in interface org.sandev.basics.util.UIFormAdaptorCallback

stdActionToText

public java.lang.String stdActionToText(int action,
                                        org.sandev.basics.util.UIFormContext uifc)
Given a standard action value, return the text used when displaying it.

Specified by:
stdActionToText in interface org.sandev.basics.util.UIFormAdaptorCallback

stdActionFromText

public int stdActionFromText(java.lang.String actionText)
Given action text from stdActionToText, translate it back to a standard action value.

Specified by:
stdActionFromText in interface org.sandev.basics.util.UIFormAdaptorCallback

doActionFindHook

public void doActionFindHook(org.sandev.basics.util.UIFormContext uifc)
Given the UIFormContext reconstructed on an ACTION_FIND, preprocess as needed before returning control to the UIFormManager.

Specified by:
doActionFindHook in interface org.sandev.basics.util.UIFormAdaptorCallback

doActionAddHook

public void doActionAddHook(org.sandev.basics.util.UIFormContext uifc)
Given the UIFormContext which will be used to present a new form for the user to fill out, preprocess ad needed before returning control to the UIFormManager.

Specified by:
doActionAddHook in interface org.sandev.basics.util.UIFormAdaptorCallback

doActionEditHook

public void doActionEditHook(org.sandev.basics.util.UIFormContext uifc)
Given the UIFormContext containing the instance we are editing, preprocess as needed before returning control to the UIFormManager.

Specified by:
doActionEditHook in interface org.sandev.basics.util.UIFormAdaptorCallback

doActionDisplayHook

public void doActionDisplayHook(org.sandev.basics.util.UIFormContext uifc)
Given the UIFormContext that will be used to present a form for displaying an existing instance, preprocess as needed before returning control to the UIFormManager.

Specified by:
doActionDisplayHook in interface org.sandev.basics.util.UIFormAdaptorCallback

doActionCancelHook

public void doActionCancelHook(org.sandev.basics.util.UIFormContext uifc)
Given the UIFormContext that is being used for adding a new instance or editing an existing instance, preprocess as needed before returning control to the UIFormManager.

Specified by:
doActionCancelHook in interface org.sandev.basics.util.UIFormAdaptorCallback

doActionDeleteHook

public void doActionDeleteHook(org.sandev.basics.util.UIFormContext uifc)
Given the UIFormContext that is being used for deleting the current instance, preprocess as needed before returning control to the UIFormManager.

Specified by:
doActionDeleteHook in interface org.sandev.basics.util.UIFormAdaptorCallback

filterDisplayText

public java.lang.String filterDisplayText(java.lang.String value)
No filtering of display text is done.

Specified by:
filterDisplayText in interface org.sandev.basics.util.UIFormAdaptorCallback

filterInputParameters

public java.util.Map filterInputParameters(java.lang.String prefix,
                                           java.util.Map params,
                                           org.sandev.basics.util.FormOutput fo)
                                    throws org.sandev.basics.util.UIFormAdaptorException
No remapping of parameters is done.

Specified by:
filterInputParameters in interface org.sandev.basics.util.UIFormAdaptorCallback
Throws:
org.sandev.basics.util.UIFormAdaptorException

verifyDefaultAction

public java.lang.String verifyDefaultAction(java.lang.String currAction,
                                            org.sandev.basics.util.UIFormContext uifc,
                                            java.lang.String formName)
                                     throws org.sandev.basics.util.UIFormAdaptorException
Change the default action if needed.

Specified by:
verifyDefaultAction in interface org.sandev.basics.util.UIFormAdaptorCallback
Throws:
org.sandev.basics.util.UIFormAdaptorException

verifyDefaultScreen

public java.lang.String verifyDefaultScreen(java.lang.String defaultScreen,
                                            org.sandev.basics.util.AuthUser authUser,
                                            java.lang.String[] screens,
                                            java.util.Map params)
                                     throws org.sandev.basics.util.UIFormAdaptorException
No screen definitions, so not applicable.

Specified by:
verifyDefaultScreen in interface org.sandev.basics.util.UIFormAdaptorCallback
Throws:
org.sandev.basics.util.UIFormAdaptorException

verifyGeneralInfo

public org.sandev.basics.structs.SandAttrVal[] verifyGeneralInfo(org.sandev.basics.structs.SandAttrVal[] generalInfo,
                                                                 org.sandev.basics.util.AuthUser authUser)
Return an array of general information to be made globally available in display processing. The given information can be returned directly if no other information is needed.

Specified by:
verifyGeneralInfo in interface org.sandev.basics.util.UIFormAdaptorCallback

log

public void log(int severity,
                java.lang.String text)
Log the given text. The severity level is ignored since this is just a simple editing tool and we are dumping to stdout.

Specified by:
log in interface org.sandev.basics.util.UIFormAdaptorCallback

formFind

public org.sandev.basics.structs.SandCollectionMessage formFind(org.sandev.basics.structs.SandQueryMessage sqm,
                                                                org.sandev.basics.util.UIFormContext uifc)
                                                         throws org.sandev.basics.util.UIFormManagerException
Look up a Screen by name.

Specified by:
formFind in interface org.sandev.basics.util.UIFormOwner
Throws:
org.sandev.basics.util.UIFormManagerException

formSave

public void formSave(org.sandev.basics.util.UIFormContext uifc)
              throws org.sandev.basics.util.UIFormManagerException
Write the SandUI to file.

Specified by:
formSave in interface org.sandev.basics.util.UIFormOwner
Throws:
org.sandev.basics.util.UIFormManagerException

formHelp

public void formHelp(org.sandev.basics.util.UIFormContext uifc)
Pop up the docs for this message. We leave a marker here in the output text, which is then picked up during form display to trigger a popup with the docs for this message class.

Specified by:
formHelp in interface org.sandev.basics.util.UIFormOwner

trackFormProcessCall

public void trackFormProcessCall(org.sandev.basics.util.UIFormContext uifc)
Reset our cache with the updated information.

Specified by:
trackFormProcessCall in interface org.sandev.basics.util.UIFormOwner

isActive

public boolean isActive(java.lang.String actionName,
                        org.sandev.basics.util.UIFormContext uifc,
                        boolean defaultValue)
Returns false. No actions supported

Specified by:
isActive in interface org.sandev.basics.util.UIFormOwner

doAction

public org.sandev.basics.util.UIFormContext doAction(java.lang.String actionName,
                                                     org.sandev.basics.util.UIFormContext uifc,
                                                     org.sandev.basics.util.UserWorkLog uwl)
                                              throws org.sandev.basics.util.UIFormManagerException
Does nothing. No actions supported.

Specified by:
doAction in interface org.sandev.basics.util.UIFormOwner
Throws:
org.sandev.basics.util.UIFormManagerException

forgotPassword

public java.lang.String forgotPassword(java.lang.String username,
                                       java.lang.String secondary)
                                throws org.sandev.basics.util.UIFormManagerException
Does nothing

Specified by:
forgotPassword in interface org.sandev.basics.util.UIFormOwner
Throws:
org.sandev.basics.util.UIFormManagerException

getAuthFilter

public org.sandev.basics.util.AuthFilter getAuthFilter()
                                                throws org.sandev.basics.util.UIFormManagerException
Authorization is file based, so if they are able to edit the file then further authorization is unrestricted.

Specified by:
getAuthFilter in interface org.sandev.basics.util.UIFormOwner
Throws:
org.sandev.basics.util.UIFormManagerException

getUserWorkLog

public org.sandev.basics.util.UserWorkLog getUserWorkLog()
No user work log.

Specified by:
getUserWorkLog in interface org.sandev.basics.util.UIFormOwner

getDeploymentPrefix

public java.lang.String getDeploymentPrefix()
Just returns the empty string.

Specified by:
getDeploymentPrefix in interface org.sandev.basics.util.UIFormOwner

getTechSupportEmailAddress

public java.lang.String getTechSupportEmailAddress()
Just returns the empty string.

Specified by:
getTechSupportEmailAddress in interface org.sandev.basics.util.UIFormOwner

writeOutline

protected void writeOutline(org.sandev.ui.sandmessages.SandUI sandui)
Write an outline of the current SandUI for reference.