DataEditor Task - Param Design

April 13, 1998 - Jack Harich


Nutshell Vision

Specify a task with a minimum of parameters, and have those expanded into the full param the DataEditor needs to perform the task. The task must be a standard task recognized by the DataEditor.

Features


EditFields Meta Param

StartMessageName is: EditUserSysMetaParam
ParamType is: Config
TaskType is: EditFields (expects DataRequest param)
//
DataRequest has:
    Database is: atsdr
    Entities is: UserSys
    SortBy is: LastName, FirstName
    FilterLine is: LastName LIKE H*
    End: DataRequest
// "TaskType is: BrowseEditFields" would add this param:
// *** Modify to be BrowseEditFields if Browse present ***
Browse has:
    Height is: 250
    Columns hasLines:
        UserSys.LastName, Last Name, 15
        UserSys.FirstName, First Name, 12
        UserSys.UserID, UserID, 10
        UserSys.AdminCode, AdminCode, 11
        UserSys.LastLogon, Last Logon, 10
        End: Columns
    End: Browser


ParentChild Meta Param

TaskType is: ParentChild (if Browse present then browse)
DataRequest has:
    (same as DataRequest)
    Name is: Award
    End: ParentDataRequest
ChildDataRequests hasElements:
    Element has:
        (same as DataRequest)
        Name is: Detail1
        Parent is: Award
        LinkColumn is: AwardMID
        End: Element
    Element has:
        (same as DataRequest)
        Name is: Detail2
        Parent is: Award
        LinkColumn is: AwardMID
        End: Element
    End: ChildDataRequests
Browse has:
    Height is: 250
    Columns hasLines:
        Award.Name, Name, 15 (etc)
        End: Columns
    End: Browser


However this has no obvious default layout, so we expect layout will need to be expressed, fields positioned but schema defaults used. Try:

StartMessageName is: EditAwards
ParamType is: Specific (some config???)
TaskType is: ParentChild
//
ViewNames is: AwardView
DataSourceIDs is: AwardSource, AwardStage, AwardRecipient
ParentChild has: (Used to init ParentChildTask)
    ParentDataSourceID is: AwardSource
	Children hasElements:
        Element has:
            DataSourceID is: AwardStage
            LinkParentColumn is: AwardMID
            End: Element
        Element has:
            DataSourceID is: AwardRecipient
            LinkParentColumn is: AwardMID
            End: Element
        End: Children
    End: ParentChild
//----- DataSources - Same as usual
AwardSource has....
AwardStageSource has....
AwardRecipientSource has....
//----- View
AwardsView has:
   IsPrimeView is: true
   Title is: Edit Awards
   Workers has:
       TabPanel has:
           IsModule is: true
           Type is: TabPanel
           Style is: Default
           AddType is: EndRow
           Tabs hasLines: (module param name, tab text)
               AwardsRowFieldPanel, Awards
               RecipientsRowFieldPanel, Recipients
               StagesRowFieldPanel, Stages
               End: Tabs
           AwardsRowFieldPanel has: (same as usual but no layout)
               IsModule is: true
               Type is: RowFieldPanel
               DataSourceID is: AwardSource
               NestedContainer has:
                   IsConfig is: true (Generate from schema)
                   End: NestedContainer
               End: AwardsRowFieldPanel 
           RecipientsRowFieldPanel has....
           StagesRowFieldPanel has....
           End: TabPanel
       End: Workers
    End: AwardsView


Custom Overrides

Here we want to replace schema or default data with custom data. This requires predictable param names. To declare custom label Text for EditFields Meta Param:

Custom has:
    UserSysView has:
        Workers has:
            RowFieldPanel has:
                NestedContainer has:
                    UserIDLabel has:
                        Text is: ID
                        End: UserIDLabel
                    End: NestedContainer
                End: RowFieldPanel
             End: Workers
        End: UserSysView
    End: Custom

Or more intelligently, since it is a unique occurance:

Custom has:
    UserIDLabel has:
        Text is: ID
        End: UserIDLabel
    End: Custom

To declare custom label Text for ParentChild Meta Param:

Custom has:
    ElementDetail1 has:
        UserIDLabel has:
            Text is: ID
            End: UserIDLabel
        End: ElementDetail1
    End: Custom