JeeWiz Home  
The Model-Driven System Builder

JeeWiz Architect's Guide
 
Contents  >   15.  'Screen' Reference
 


15.13 Panel Object

Used on
panel
Subclassed By
page
DescriptionThis is the base object from which all the objects which can contain displayable items will be derived. Such objects are 'Block' 'Form' and of course 'Page' Panel is abstract, i.e. it is not a logical component in its own right, merely a base class from which the real logical components extend

It has optional data-view objects, events and state objects.
Contained
Lists
1
Name  panel
Type  panel
Indexed property  name
 
2
Name  forward
Type  forward
Indexed property  name
 
3
Name  constraint
Type  constraint
GenerateAllList  false
 
4
Name  field
Type  field
Indexed property  name
 
5
Name  tabMenu
Type  tabMenu
Indexed property  name
 
6
Name  style
Type  String
Description  You can specify one or more styles to give information to the code generation scripts. The meaning of the styles is up to the script writer.

The styles can be used as flags by the script calling $styleList.contains( "styleOfInterest" )

[ Currently, there is no built-in support for style="styleType=value" type semantics. This would have to be defined by each script writer. ]

Examples of the use of styles:
  • characteristics of a web page (e.g. should it be included in one of the menus)
  • whether an entity should be automatically mapped to a data-view (the 'maintain' style).
Note that styles and the 'group' property are different concepts, and therefore complimentary. Many modelling objects - such as data-views and their fields, or business methods - can be put into groups as a hint as to where to render the UI pages. Typically groups are used to define 'where' to place the meta class, whereas styles indicate how to render the object.
Unique  false
 
7
Name  rolesAllowed
Type  String
Description   If no roles are specified all roles are allowed that are not explicitly prohibited, otherwise only the specified roles are allowed.
Unique  false
 
8
Name  rolesBlocked
Type  String
Description   Members of these roles are blocked, whether they are granted permission elsewhere or not.
Unique  false
Inherited
properties
jwpattern (base property)

 15.13.1  Property 'name'
 15.13.2  Property 'title'
 15.13.3  Property 'displayTitle'
 15.13.4  Property 'layout'
 15.13.5  Property 'view'
 15.13.6  Property 'masterView'
 15.13.7  Property 'instanceId'
 15.13.8  Property 'menuEntryEvent'
 15.13.9  Property 'entryEvent'
 15.13.10  Property 'processName'
 15.13.11  Property 'loopName'
 15.13.12  Property 'autoPersist'
 15.13.13  Property 'format'
 15.13.14  Property 'form'
 15.13.15  Property 'viewDetail'
 15.13.16  Property 'editDetail'
 15.13.17  Property 'role'
 15.13.18  Property 'banding'
 15.13.19  Property 'bandingInterval'
 15.13.20  Property 'eventRequestParameter'
 15.13.21  Property 'group'
 15.13.22  Property 'screenPosition'
 15.13.23  Property 'package'
 15.13.24  Property 'template'
 15.13.25  Property 'description'
 15.13.26  Property 'uid'
 15.13.27  Property 'failureForwardPage'
 15.13.28  Property 'failureForwardRequestString'
 15.13.29  Property 'linkCaption'
 15.13.30  Property 'text'
 15.13.31  Property 'hideWhenBlocked'
 15.13.32  Property 'presentationStyle'
 15.13.33  Property 'border'
 15.13.34  Property 'childBorder'
 15.13.35  Property 'margin'
 15.13.36  Property 'childMargin'
 15.13.37  Property 'padding'
 15.13.38  Property 'childPadding'
 15.13.39  Property 'color'
 15.13.40  Property 'childColor'
 15.13.41  Property 'backgroundColor'
 15.13.42  Property 'childBackgroundColor'
 15.13.43  Property 'extraStyle'
 15.13.44  Property 'height'

15.13.1  Property 'name'
DescriptionThe name of the page is the logical name of the panel. It should be descriptive of the action taken by the object rather than the data displayed - e.g. 'OrderMaintenance' rather than 'Order'. For example, if you use UML, the name could be the use-case name.

The name must be a valid variable name in .NET and J2EE because it will be used to create classes in the C# and Java languages.

Don't add a prefix or suffix (e.g. 'Page') to the name you specify here. This will be done by the name mapping in JeeWiz, and ensures that the naming scheme can be easily adapted to local requirements.

The most important part of the structure of a panel is that it can have
  • a data-view, whose fields and related views will be displayed and all data to be input
  • a number of actions to trigger logic at the server.
TypeString
Requiredtrue

15.13.2  Property 'title'
DescriptionThis is the title for the panel. If this value is not specified it is derived from the name of the object
TypeString

15.13.3  Property 'displayTitle'
Description This is a hint for the renderer to display the panel title within the panel.
Typeboolean
Defaulttrue

15.13.4  Property 'layout'
DescriptionThis is a hint for the render to indicate the layout of this object. The layout property can be a comma separated For example the layout may be 'vertical'
TypeString
Defaultvertical

15.13.5  Property 'view'
DescriptionThis is the underlying data object holding state for the page. In J2EE-only architectures (without specially-modeled services), this is the 'data-view'. For service-oriented architectures, this is the 'ui-view'. For 2-tier architectures this will be the 'entity'

Therefore, the synonym of 'view' is allowed for this property, to emphasise it can be either a ui-view, a data-view or an entity; any object that contains a list of display fields

The view object name is mapped to an object appropriate to the current UI in its component.propeties for the view. For example, in Struts, the convention is that this will map to an ActionForm.

If this property is not set, then view is used: there is no data shown on the page.

In the current implementation, view names must be unique, so there is no need to specify which jar or ui-jar this view is in. However, data-views and ui-views do have distinct namespaces, so a data-view and ui-view can share the same name. The *ui-view* namespace is searched first.

Pattern implementers note: Be aware that the standard patterns require that the view be created (i.e. specified, at build time) before the page is created.
TypeString

15.13.6  Property 'masterView'
DescriptionThis is the detail dataview to be shown in the page. Neither the primary dataview, nor any of its other subsidiary dataviews need be shown if this is set. It is only used in an assoc page or a list-add page. The page expects to be prepopulated as far as the master dataview is concerned, and this field sets which of the detail dataviews is to be worked on.
TypeString
Default

15.13.7  Property 'instanceId'
DescriptionThis property is used to uniquely identify an instance associated with this panel. It's possible to use the same panel twice on a page (or within a conversation) and sometimes the panel instances need to show the same data, and at other times different data should be shown. If two identically described panels, including the same name, are modelled. Or one panel is modelled and attached to two pages, it will be deemed to be the same panel. The instance-id can be used to differentiate instances of a panel. It will also differentiate the instances backing the views on the panel or the same view on two separate panels, and is therefore used in conjunction with the view property.

For example, two panels could reference the same view. If the managed view bean name is the same for both panels, the panels will use the same instance of the view; they will share the same data. By default the same view uses the same managed bean on all panels, so the data will repeat in the same conversation. This behaviour can be overridden using the instance-id.

Also, two identically named panels will normally use the same panel controller bean, as the bean name will be derived from the panel name. The instance-id can be used to differentiate the controller bean instances, as the controller bean name is preferentially derived from the instance-id when present.

An example of this convention can be found in \jeewiz\resources\jsf\control\readMe.txt
TypeString

15.13.8  Property 'menuEntryEvent'
DescriptionAn event that is always run on coming to a panel or its derivates from a menu option.
TypeString

15.13.9  Property 'entryEvent'
DescriptionAn event that is always run on coming to a panel or its derivates from an event.
TypeString

15.13.10  Property 'processName'
DescriptionIndicates the page is the first in an automatable process section. Causes the database to be interrogated for a new process number, which is stored in the session.
TypeString

15.13.11  Property 'loopName'
DescriptionIndicates the page is the first in an automatable loop section.
TypeString

15.13.12  Property 'autoPersist'
DescriptionTurns exit events into business method create. Only used on process flows.
Typeboolean
Defaultfalse

15.13.13  Property 'format'
DescriptionAllows variations of the style. To tweak form widths, etc
TypeString

15.13.14  Property 'form'
DescriptionCreate a form boundary for the simultaneous submission of contained elements.
Typeboolean
Defaultfalse

15.13.15  Property 'viewDetail'
DescriptionSet the 'viewDetail' flag to false if do not wish to be able to view in detail the individual rows of the grid. This is set to true by default. See also the 'editDetail' property.
Typeboolean
Defaulttrue

15.13.16  Property 'editDetail'
DescriptionSet the 'editDetail' flag to true if you wish to be able to edit the individual rows within the grid. Essentially this allows the user to amend the underlying record for the grid row. This is set to false by default See also the 'viewDetail' property.
Typeboolean
Defaultfalse

15.13.17  Property 'role'
Description Desc goes here ....
TypeString

15.13.18  Property 'banding'
Description Defines the type of banding to use on this grid - none, row or column.
TypeString

15.13.19  Property 'bandingInterval'
DescriptionDefines the banding interval that controls the number of consecutive rows (or columns) that are colored the same.
TypeString

15.13.20  Property 'eventRequestParameter'
DescriptionDefines the name of the request parameter that determines which event needs to be handled. This is delegated from the page to the application and then the external configuration, so it can be set in any of these places.
TypeString
Defaultaction
Delegatestrue

15.13.21  Property 'group'
DescriptionA group is a hint to generation scripts as to where to place this object.

It provides an alternative, more flexbile way of grouping business-methods, objects, data-views and pages.

For example, pages for data-maintenance might be in the "DataMaintenance" group, while specially-designed sessions might be in the "BusinessFunctions" group. (Expressing this grouping cannot be derived from the hierarchy: all pages are children of a single application.)

Another usage could be to group fields for presentation based on their group name.

The 'group' property should be used to guide presentation to the user, whereas 'style' should be used to guide further pattern generation.

The 'default' group is the null value (script writers must use '#if( !$group )' to identify the default group.
TypeString

15.13.22  Property 'screenPosition'
DescriptionA numeric value indicating the position of this page or field within a group. This affects the position of the item's display on the screen, relative to other members of the group. The value is a string of 1-6 digits; the order is calculated numerically rather than alphabetically - so 25 is higher than 5. Lower-valued positions appear first.

If this is not specified, then the order of controls within a group is determined by the order in the XML specification file. The order within the specification can be set if the XML is being specified directly and this field need not be specified. However, for specifications from UML design tools this may not be possible and it will be necessary to set this field to control screen order.
TypeString
Delegatestrue

15.13.23  Property 'package'
Aliasnamespace
DescriptionThis is the package attribute: it declares the name of the package that this interface (or class, or entity, etc.) belongs to.

It can be used on

  • reference types (interfaces and classes) and all their derivatives
  • associations
  • assemblies of model-objects
  • containers of same, like jars.
It uses delegation of responsibility to search its parent chain. For example, in the J2EE realm, this means that the package can be specified on (working up the containment chain):

  • an entity,
  • or its ejb-jar,
  • or the application,
  • or in the assembly
  • or in the build properties '.jwp' file.
If none of these is specified the package will be null. Null packages are not recommended but legal for simple Java builds. For larger systems, null packages are not allowed.

The combination of the package and class name (i.e. the fully-qualified Java classname) must be unique across all reference types and their derivatives in a build.
TypeString
Delegatestrue

15.13.24  Property 'template'
DescriptionThe template property is a hint to the code-generation scripts.

If the object has a number of variants in a particular rendering, this value can be used to select the variant.

There is currently no special support in the generator for template scripts and this feature is not used in any JeeWiz-provided scripts. However, if you are writing local variants of the scripts, you can use it to give minor variations of functionality.

If you are used to 'stereotypes' in UML modelling, this interacts with JeeWiz as follows:

  • some well-known stereotypes (entity or EJBEntityBean / boundary) translate directly to JeeWiz objects, producing / in the XML specification
  • in addition, any steretype from UML is added to the JeeWiz object as the template property.
TypeString

15.13.25  Property 'description'
DescriptionOptional description.

Use this to
  1. document the meaning of a particular item
  2. specify functionality at the design stage for implementation later.
TypeString
Support Element Inputstrue

15.13.26  Property 'uid'
DescriptionThe 'uid' is a Unique IDentifier for a methods in the business object model (and derivatives like J2EE).

The 'uid' uniquely identifies the method, even if the name or signature of the method changes.

This will normally be generated by the modelling tool; if not, it can be entered manually (but make sure it is unique!).
TypeString

15.13.27  Property 'failureForwardPage'
DescriptionDefines the default page to go to in a failure situation (e.g. constraint failure). This must be the name of a page in the current application.
TypeString
Delegatestrue

15.13.28  Property 'failureForwardRequestString'
DescriptionDefines the additional request action to execute in a failure situation. Default is just to display the page. If this value is specified, it results in the default event for the forwarded page being set to this value.
TypeString
Delegatestrue

15.13.29  Property 'linkCaption'
DescriptionThis is the caption that goes on links, buttons or other controls.

It should be a short, one- or two-word name that will fit on a small button.
TypeString

15.13.30  Property 'text'
DescriptionThe 'text' is the code insert for the body of the method - the text between the '{' and '}' brackets.

If the method has a return value, you should write the return statement too.
TypeString

15.13.31  Property 'hideWhenBlocked'
Description Whether a blocked principal should be prohibited from seeing links they can not use.
Typeboolean
Defaulttrue

15.13.32  Property 'presentationStyle'
DescriptionThis is hint to the renderer to set a 'class' type style for the children components of this component - The rendering will probably (but not necessarily) be done using cascading style sheets, where this will translate into the css class attribute.
TypeString

15.13.33  Property 'border'
DescriptionThis is a hint for the renderer to indicate the style of the border for this component.
TypeString

15.13.34  Property 'childBorder'
DescriptionThis is a hint for the renderer to indicate the style of the border for the child components of this component.
TypeString

15.13.35  Property 'margin'
DescriptionThis is a hint for the render to indicate the margin required for this object (and, optionally, the spacing inbetween child components). The margin value can be a comma separated value using the convention of the first value = Top, second = Right, third = Bottom, fourth = Left, fifth = Spacing between child components. Specifiying the fifth element is a convenience to allow spacing between

for example

2,3,4,5,2 would mean a margin of 2 on the Top, 3 on the Right, 4 on the Bottom, 5 on the left and 2 inbetween child components. 2,3,4,5 would mean a margin of 2 on the Top, 3 on the Right, 4 on the Bottom and 5 on the left.
    1. would mean a margin of 4 on all borders. 4,0,0,0 would mean a margin of 4 on the Top, 0 on all other edges.
TypeString

15.13.36  Property 'childMargin'
DescriptionThis is a hint for the render to indicate the margin required for the child components of this object. The child margin value can be a comma separated value using the convention of the first value = Top, second = Right, third = Bottom, fourth = Left.

for example

2,3,4,5 would mean a margin of 2 on the Top, 3 on the Right, 4 on the Bottom and 5 on the left.
    1. would mean a margin of 4 on all borders. 4,0,0,0 would mean a margin of 4 on the Top, 0 on all other edges.
TypeString

15.13.37  Property 'padding'
DescriptionThis is a hint for the render to indicate the padding required for this object. The margin value can be a comma separated value using the convention of the first value = Top, second = Right, third = Bottom, fourth = Left.

for example

2,3,4,5 would mean a padding of 2 on the Top, 3 on the Right, 4 on the Bottom and 5 on the left.
  1. would mean a pagging of 4 on all borders. 4,0,0,0 would mean a padding of 4 on the Top, 0 on all the other edges
TypeString

15.13.38  Property 'childPadding'
DescriptionThis is a hint for the render to indicate the padding required for the child components of this object. The child padding value can be a comma separated value using the convention of the first value = Top, second = Right, third = Bottom, fourth = Left.

for example

2,3,4,5 would mean padding of 2 on the Top, 3 on the Right, 4 on the Bottom and 5 on the left.
    1. would mean padding of 4 on all borders. 4,0,0,0 would mean padding of 4 on the Top, 0 on all other edges.
TypeString

15.13.39  Property 'color'
DescriptionThis is hint to the renderer to inidicate the color to use on this component.
TypeString

15.13.40  Property 'childColor'
DescriptionThis is hint to the renderer to inidicate the color to use on this component's child components.
TypeString

15.13.41  Property 'backgroundColor'
DescriptionThis is a hint for the renderer to indicate the background color.
TypeString

15.13.42  Property 'childBackgroundColor'
DescriptionThis is a hint for the renderer to indicate the background color for the child components of this panel.
TypeString

15.13.43  Property 'extraStyle'
DescriptionThis is mechanism for the modeller to add any additional rendering (look) details into the component. How this is added will depend on the rendering itself, but for example in the JSF rendering this will be appended to the 'inlineStyle' attribute (which itself uses css style notation) of the JSF components.
TypeString

15.13.44  Property 'height'
DescriptionThis is a hint for the render to indicate the height required for this object.
TypeString
 


Copyright (c) 2001-2008 New Technology/enterprise Ltd.