MobilityDesigner2MIDP
Designer 2 - MIDP
Please, do not modify this document. If you really need to modify it send me notification (karol.harezlakATsun.com)
Abstract
This document describes the MIDP module architecture including:
- component descriptors
- presenters
- hierarchy of component descriptors
- document components layout
- unusual patterns in MIDP specification
This is the only true information document. What is not here in the document, does not exists at all!
Notes
All description is for MIDP-2.0 by default. All differences between MIDP-1.0 and MIDP-2.0 will be marked in place.
All properties, setters, actions and presenters are inherited from super component descriptor if not mentioned otherwise.
Deleting of a second component by a first component described in a "Actions|Delete" section means: to run the full deletion task using DeleteSupport.deleteComponent(component,setOfComponentsToDelete). This method at the any automatically removes the component from its parent.
Delete of component takes cares of the component deletion and unregistering the component from the structure around e.g.: DisplayableCD does not modify the commands property directly but CommandEventSourceCD does modify the commands property.
Reset-to-default functionality is available only if a property has non-null property value or its property descriptor allows null values.
TBD
Primitive Types
- boolean - MidpTypes.TYPEID_BOOLEAN - MidpTypes.getBoolean (PV):boolean, MidpTypes.createBooleanValue(boolean):PV
- int - MidpTypes.TYPEID_INT - MidpTypes.getInteger (PV):int, MidpTypes.createIntegerValue(int):PV
- long - MidpTypes.TYPEID_LONG - MidpTypes.getLong (PV):long, MidpTypes.createLongValue(long):PV
- String - MidpTypes.TYPEID_JAVA_LANG_STRING - MidpTypes.getString(PV):String, MidpTypes.createStringValue(String):PV
- javaCode: user-code - MidpTypes.TYPEID_JAVA_CODE - MidpTypes.getJavaCode(PV):String, MidpTypes.createJavaCodeValue(String):PV
MidpTypes class handles all the work with TypeIDs, including creation of PropertyValues of primitive types.
Enum Types
- AlertType - MidpTypes.TYPEID_ALERT_TYPE - MidpTypes.getAlertType (PV):AlertType, MidpTypes.createAlertTypeValue (AlertType):PV
General Component Descriptors
These components are general and are the base of whole MIDP-layer model.
RootCD
- class: api.midp.general.RootCD
- type: C#Root <- none
- palette: none
- version: forever
Created by a file template only.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| version | String | MIDP-2.0 | no | no | MIDP-2.0, MIDP-1.0 | no, yes if there are other basic properties | yes | forever |
Setters
| Method Name | Parameters | Description | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed
- Move Up/Down - disallowed
- Go-to-source - disallowed
- Edit -
Presenters
- Accept -
- Code - Initialize method generator, CodeNames for all Java keywords and "initialize", "exitMIDlet" methods
- General -
- Info - design_16.png, MIDP Visual Design
- Inspector - TBD
- Flow - FlowScenePresenter for RootAcceptBehaviour (accepts thinks for DisplayablesCategoryCD and PointsCategoryCD)
- Screen - TBD
- Validator - InstanceNameValidator for all names in the document
ClassCD
- class: api.midp.general.ClassCD
- type: abstract Cjava.lang.Object <- none
- palette: none
- version: forever
Base descriptor of all class-based objects in a target language
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| instanceName | String | null | no | no | Instance name has to be always resolved by InstanceNameResolver | no | yes | FOREVER |
| lazy-init | boolean | true | no | no | no | yes | FOREVER |
Post-init: instanceName is an unique-instance-name in document based on ClassCode.getSuggestedMainName (component)
Settres
| Method Name | Parameters | Description | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source - if lazyInit ? getter-method : initialize-method
- Edit -
Presenters
- Accept -
- Code - class level generator of field and getter method, reference (direct, indirect, type), reserved-names for field and getter
- General -
- Info - TODO - icon-resolver, class_16.png, instance-name, classname-from-typeid, renames instance-name
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
Categories Component Descriptors
Directly underneath the RootCD.
CategoryCD
- class: api.midp.components.categories.CategoryCD
- type: abstract #Category <- none
- palette: none
- version: forever
Actions
- New -
- Add -
- Delete - disallowed
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
CommandsCategoryCD
- class: api.midp.components.categories.CommandsCategoryCD
- type: final #CommandsCategory <- #Category
- palette: none
- version: forever
Created in a file template only. Contains all CommandCDs in a file.
Actions
- New - CommandCD
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
Presenters
- Accept - CommandCD
- Code -
- General -
- Info - category_commands_16.png, Commands
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
ControllersCategoryCD
- class: api.midp.components.categories.ControllersCategoryCD
- type: final #ControllersCategory <- #Category
- palette: none
- version: forever
Created in a file template only. Contains all available EventListenerCD and dispathers components. Initially there are just EventListenerCD related to the class itself. Later there will be EventListenerCD related to other file e.g. commandAction would be generated to another file.
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - EventListenerCD
- Code -
- General -
- Info - category_controllers_16.png, Controllers
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
DisplayablesCategoryCD
- class: api.midp.components.categories.DisplayablesCategoryCD
- type: final #DisplayablesCategory <- #Category
- palette: none
- version: forever
Created in a file template only. Contains all DisplayableCDs in a file.
Actions
- New - DisplayableCD
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - DisplayableCD
- Code -
- General -
- Info - category_displayables_16.png, Displayables
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
PointsCategoryCD
- class: api.midp.components.categories.PointsCategoryCD
- type: final #PointsCategory <- #Category
- palette: none
- version: forever
Created in a file template only. Contains all available PointsCDs in a file.
Actions
- New - PointCD
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - PointCD
- Code -
- General -
- Info - category_points_16.png, Points
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
ResourcesCategoryCD
- class: api.midp.components.categories.ResourcesCategoryCD
- type: final #ResourcesCategory <- #Category
- palette: none
- version: forever
Created in a file template only. Contains all available ResourceCDs in a file.
Actions
- New - ResourceCD
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - ResourceCD
- Code -
- General -
- Info - category_resources_16.png, Resources
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
Displayable Component Descriptors
These components are location under DisplayablesCategoryCD only and represents a Displayable-based classes in MIDP.
DisplayableCD
- class: api.midp.displayables.DisplayableCD
- type: abstract Cjavax.microedition.lcdui.Displayable <- Cjava.lang.Object
- palette: none
- version: MIDP
Has CommandEventSources under itself - their order is defined by commands property.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| commands | CommandEventSourceCD... | empty-array | no | yes; no for array itself | - | no | yes | MIDP |
| ticker | TickerCD | null | yes | yes | - | no | yes | MIDP |
| title | String | null | yes | yes | - | yes | yes | MIDP |
| commandListener | CommandListenerCD | null | yes | yes | - | no | yes | MIDP |
Post-init: title is derived from instanceName, commandListener is the default command listener in the file represented by a "this" reference.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| addCommand | &commands:CommandCD | uses commands(index).command property | MIDP |
| setCommandListener | commandListener:CommandListenerCD | - | MIDP |
| setTicker | ticker:TickerCD | MIDP | |
| setTitle | title:String | MIDP |
Paremeter: title, ticker, commandParam, commandListenerParam
Actions
- New - CommandCD from producers - creates a CommandEventSource with the command assigned
- Add - ordinary CommandCD available in document and not used at Displayable.commands(index)</tt>.command - creates a CommandEventSource with the command assigned
- Delete - Dependency: ticker, commandListener
- Move Up/Down - disallowed
- Go-to-source -
- Edit - open displayable in Screen
Presenters
- Accept - CommandCD - creates a CommandEventSource with the command assigned; new and existing (not used in the displayable) TickerCD
- Code - component-dependency on all requiredComponents of all commandEventSources (not DisplayableCD.commands(index)</tt>.command only)
- General - creator of SwitchDisplayableEventHandler
- Info - displayable_16.png
- Inspector - TBD
- Flow - FlowInfoNodePresenter, FlowDisplayableCommandsPinOrder
- Screen - TBD - ticker, title
- Validator - TBD - TODO - commands property vs. CommandEventSourceCD components underneath, commands(index)</tt>.displayable == this
CanvasCD
- class: api.midp.displayables.CanvasCD
- type: abstract Cjavax.microedition.lcdui.Canvas <- Cjavax.microedition.lcdui.Displayable
- palette: none
- version: MIDP
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| fullScreenMode | boolean | false | no | yes | - | no | yes | MIDP-2.0 |
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| setFullScreenMode | fullScreenMode:boolean | MIDP-2.0 |
Paremeter: fullScreenMode
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - canvas_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - fullscreen ability + custom canvas message
- Validator - TBD
ScreenCD
- class: api.midp.displayables.ScreenCD
- type: abstract Cjavax.microedition.lcdui.Screen <- Cjavax.microedition.lcdui.Displayable
- palette: none
- version: MIDP
Properties
Settres
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - screen_16.png
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
AlertCD
- class: api.midp.displayables.AlertCD
- type: Cjavax.microedition.lcdui.Alert <- Cjavax.microedition.lcdui.Screen
- palette: none
- version: MIDP
Created by a MidpProducer.Alert in Displayable/Alert.
Alert.DISMISS_COMMAND instance could not be modeled / used.
A special GaugeCD used as a alert indicator is placed under the Alert component.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| timeout | int | vary across implementation -> null | no | yes | FOREVER (-2) or any positive value (time in millis) | no | yes | MIDP |
| image | ImageCD | null | yes | yes | no | yes | MIDP | |
| indicator | GaugeCD | null (the gauge component is under the alert) | yes | yes | the special "under" Gauge or null | no | yes | MIDP-2.0 |
| string | String | null | yes | yes | yes | yes | MIDP | |
| type | AlertCD.TYPEID_ALERT_TYPE | null | yes | yes | null (no specific type), ALARM, CONFIRMATION, ERROR, INFO, WARNING | yes | yes | MIDP |
Post-init: timeout has some value -2 forever.
The indicator property will be shown as a check-box property (false = null, true = special "under" Gauge).
The GaugeCD as indicator will be created when the check-box is set to true. The indicator GaugeCD cannot be used anywhere else then just in the Alert under which it is placed. The GaugeCD.usedByAlert property of the indicator will be set to true. When the check-box is set to false, the indicator GuageCD is deleted.
The GaugeCD indicator component must be initialized that as: it must be non-interactive; it must not be owned by another container (Alert or Form); it must not have any Commands; it must not have an ItemCommandListener; it must not have a label (that is, its label must be null; its preferred width and height must both be unlocked; and its layout value must be LAYOUT_DEFAULT.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| Alert | title:String | MIDP | |
| Alert | title:String title, string:String, image:ImageCD, type:AlertCD.TYPEID_ALERT_TYPE | MIDP | |
| addCommand | alertCommand@commands:CommandCD | Similar to Displayable.addCommand(Command), however when the application first adds a command to an Alert, Alert.DISMISS_COMMAND is implicitly removed. | MIDP |
| setImage | image:ImageCD | MIDP | |
| setIndicator | indicator:GaugeCD | MIDP-2.0 | |
| setString | string:String | MIDP | |
| setTimeout | time:int | MIDP | |
| setType | type:AlertCD.TYPEID_ALERT_TYPE | MIDP |
Paremeter: timeout, image, indicator, string, type
Parameter: TODO - alertCommand (does the first command replacement)
Actions
- New -
- Add -
- Delete - nullable: image, indicator
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - alert_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - string, image, gauge
- Validator - TBD - TODO - Timeout property check, gauge property vs. Gauge component underneath
FormCD
- class: api.midp.displayables.FormCD
- type: Cjavax.microedition.lcdui.Form <- Cjavax.microedition.lcdui.Screen
- palette: none
- version: MIDP
Created by a Displayables/Form producer. Has related Items under itself - their order is held by items property.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| items | ItemCD... | empty array | yes | yes, no for array itself | - | no | yes | MIDP |
| itemStateListener | ItemStateListenerCD | null | yes | yes | - | no | yes | MIDP |
Post-init: itemStateListener = midp-document-default listener in the file represented by a "this" reference.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| Form | title:String | MIDP | |
| Form | title:String, &items:ItemCD... | MIDP | |
| setItemStateListener | itemStateListener:ItemStateListenerCD ? | Sets the ItemStateListener for the Form, replacing any previous ItemStateListener. If iListener is null, simply removes the previous ItemStateListener. | MIDP |
| append | item@items:ItemCD | MIDP | |
| append | image:ImageCD | not used | MIDP |
| append | string:String | not used | MIDP |
| insert | itemNum:int, Item:ItemCD | Inserts an item into the Form just prior to the item specified. not used | MIDP |
| set | itemNum:int, Item:ItemCD | Sets the item referenced by itemNum to the specified item, replacing the previous item. The previous item is removed from this Form. not used | MIDP |
Parameter: item, itemStateListener
Actions
- New - ItemCD
- Add - existing ImageCD (then it creates a new ImageItemCD with an image reference)
- Delete - nullable: itemStateListener
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - existing ImageCD (then it creates a new ImageItemCD with an image reference)
- Code -
- General -
- Info - form.png
- Inspector - TBD
- Flow - TBD - FlowItemCommandPinOrderPresenter for organizing the command from items
- Screen - TBD - items
- Validator - TBD - TODO - items property vs. ItemCD components underneath
TextBoxCD
- class: api.midp.displayables.TextBoxCD
- type: Cjavax.microedition.lcdui.TextBox <- Cjavax.microedition.lcdui.Screen
- palette: Displayables/TextBox
- version: MIDP
Created by a Displayables/TextBox producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| text | String | null | yes | yes | - | yes | yes | MIDP |
| constraints | int | null | no | yes | see TextFieldCD constraints values | no | yes | MIDP + some values are MIDP-2.0 only |
| initialInputMode | String | null | yes | yes | see TextFieldCD initialInputMode values | no | yes | MIDP-2.0 |
| maxSize | int | depends of implementation -> null | no | yes | positive int | yes | yes | MIDP |
Post-init: maxSize = 100, constraints = TextFieldCD.CONSTRAINT_ANY
When changing the text, then asure the maxSize is bigger than the size of the text.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new TextBox | title:String, text:String, maxSize:int, constraints:int | MIDP | |
| setString | string:String | sets the text from string, replacing the previous value | MIDP |
| setConstraints | constraints:int | MIDP | |
| setInitialInputMode | initialInputMode:String | MIDP-2.0 | |
| setMaxSize | maxSize:int | MIDP | |
| delete | offset:int, length:int | deletes characters from the text. not used | MIDP |
| insert | data:char..., offset:int, length:int, position:int | inserts a subrange of an array of characters into the text. not used | MIDP |
| insert | string:String, position:int | inserts a string into the text. not used | MIDP |
| setChars | data:char..., offset:int, length:int | sets the text from a character array, replacing the previous value. not used | MIDP |
Parameter: text, maxSize, constraints, initialInputMode
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - textbox_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - text
- Validator - TBD
ListCD
- class: api.midp.displayables.ListCD
- type: Cjavax.microedition.lcdui.List <- Cjavax.microedition.lcdui.Screen
- palette: none
- version: MIDP
Created by a Displayables/List producer. It has a ListSelectCommandEventSource with default ListSelectCommandCD reference and with initial ListEventHandler underneath.
The ListEventHandler forwards code generation to all ListElementESs.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| listType | int | ChoiceCD.TYPE_IMPLICIT | no | yes | ChoiceCD.TYPE_IMPLICIT, ChoiceCD.TYPE_EXCLUSIVE, ChoiceCD.TYPE_MULTIPLE (and it does not allows ChoiceCD.POPUP) | yes | yes | MIDP |
| elements | ListElementCD... | empty-array | no | yes, no for the array itself | - | yes | yes | MIDP |
| fitPolicy | int | ChoiceCD.FIT_POLICY_TEXT_WRAP_DEFAULT | no | yes | ChoiceCD.FIT_POLICY_TEXT_WRAP_DEFAULT, ChoiceCD.FIT_POLICY_TEXT_WRAP_ON, ChoiceCD.FIT_POLICY_TEXT_WRAP_OFF | no | yes | MIDP-2.0 |
| selectCommand | CommandCD | ListCD.SELECT_COMMAND | yes | yes | - | no | yes | MIDP-2.0 |
| indexBasedSwitch | boolean | true | false | false | - | no | yes | MIDP |
If a selectCommand is set, then it has to be in commands array too (if it is not there, then add it).
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new List | title:String, listType:int | MIDP | |
| new List | title:String, listType:int, &ListElementCD.string:String, &ListElementCD.image:ImageCD | MIDP | |
| setFitPolicy | fitPolicy:int | MIDP-2.0 | |
| setSelectCommand | selectCommand:CommandCD | MIDP-2.0 | |
| setFont | listElementFont@ListElementCD.font:FontCD | if font is null, then not required | MIDP-2.0 |
| setSelectedFlags | &ListElementCD.selected:boolean | MIDP | |
| set, insert, append, delete, deleteAll | not used | MIDP | |
| setSelectedIndex | not used | MIDP |
Parameter: listType, fitPolicy, listElementString, listElementStringArray, listElementImage, listElementImageArray, listElementSelect, listElementSelectArray, special selectCommand
Parameter: command parameter is overriden to remove ListSelectCommandEventSource from the list of commands
Actions
- New - ListElementCD (if the ListElementCD.string is default, then it creates a new pre-initialized string)
- Add -
- Delete - nullable: selectCommand
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - ListElementCD (if the ListElementCD.string is default, then it creates a new pre-initialized string)
- Code - ListActionCodeNamePresenter reserves the action method name, ListActionCodeClassLevelPresenter generates the action method
- General -
- Info - list_16.png
- Inspector - TBD
- Flow - FlowListElementPinOrderPresenter
- Screen - TBD - list elements
- Validator - TBD - TODO - elements property vs. ListElementCD components underneath
Element Component Descriptors
These components are used in ChoiceCD and ListCD. ListElementCD is no longer used - it is fully merged into ListElementEventSourceCD.
ChoiceElementCD
- class: api.midp.elements.ChoiceElementCD
- type #ChoiceElement <- none
- palette: none
- version: MIDP
Created by Elements/Choice Element producer. Used by ChoiceGroupCD only. Always under ChoiceGroupCD.
TBD - what about commands, event sources, ...
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| string | String | null | no | yes | - | no, yes if there is another important property | yes | MIDP |
| image | ImageCD | null | yes | yes | - | no, yes if there is another important property | yes | MIDP |
| selected | boolean | false | no | yes | - | no, yes if there is another important property | yes | MIDP |
| font | FontCD | null | yes | yes | - | no | yes | MIDP-2.0 |
Post-init: resolved by the ChoiceGroupCD.accept/new/add itself: string = "Choice Element" + index in ChoiceGroupCD.element
Settres
| Method Name | Parameters | Description | Version |
|---|
Actions
- New -
- Add -
- Delete - dependency: parent; nullable: image, font; unregister itself from ChoiceGroupCD.elements
- Move Up/Down - moves the element within the associated ChoiceGroupCD.elements array property
- Go-to-source -
- Edit - go to screen designer and select the element in particular choice in particular form
Presenters
- Accept - TODO - new or existing ImageCD, FontCD not used in the ChoiceElement; image file from explorer (auto-creates ImageCD + optional copy to the project)
- Code -
- General -
- Info - TODO - choice_element_16.png, string, "Choice Element", renames string
- Inspector - TBD
- Flow - TBD - depends on the anomalies described in the header of the description of this component
- Screen - TBD - string, image, selected, font within ChoiceGroupCD
- Validator - TBD
Command Component Decriptors
Commands are used by DisplayableCD, ItemCD, ... There is a repository of commands available in the document. All usages within the document are just referencing particular command component.
Some commands are "different" and cannot be used as a regular commands e.g List.SELECT_COMMAND. The CommandCD.ordinary == false then the command is "different" and is excluded from a set of regular commands, therefore it should not be visible as a option for setting/using.
CommandCD
- class: api.midp.commands.CommandCD
- type: Cjavax.microedition.lcdui.Command <- Cjava.lang.Object
- palette: none
- version: MIDP
Created by a particular Commands/Back Command, Exit Command, Item Command, Screen Command, Cancel Command, Help Command, OK Command, Stop Command producer.
CommandCD is placed under the CommandsCategoryCD only.
DisplayableCD has CommandEventSourceCDs underneath and these event sources are referencing the CommandCD.
ItemCD has ItemCommandEventSourceCDs underneath and these event sources are referencing the CommandCD.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| label | String | null | no | yes | - | yes | yes | MIDP |
| longLabel | String | null | yes | yes | - | no | yes | MIDP |
| type | int | null | no | yes | BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN, STOP | yes | yes | MIDP |
| priority | int | 0 | no | yes | int | no | yes | MIDP |
| ordinary | boolean | true | no | no | true, false | no | no | FOREVER |
Post-init: is done by CommandProducer only: instance-name = typeCommandIndex, label = instance-name, type = type
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| Command | label:String, type:int, priority:int | ||
| Command | label:String, longLabel:String, type:int, priority:int | ||
Parameter: label, longLabel, type, priority
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - command_16.png
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
ListSelectCommandCD
- class: api.midp.commands.ListSelectCommandCD
- type: #ListSelectCommand <- Cjavax.microedition.lcdui.Command
- palette: none
- version: MIDP
This component is created by the file template only and there is only one component in whole document.
It is not ordinary command.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Post-init: label = "", type = screen, priority = 0
Post-init: ordinary = false - this prevent the list-select-command to be used as an ordinary command within the designer.
Settres
| Method Name | Parameters | Description | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed
- Move Up/Down -
- Go-to-source - disallowed
- Edit -
Presenters
Does not inherit any presenter from CommandCD.
- Accept -
- Code - CodeReference
- General -
- Info - command_16.png, List.SELECT_COMMAND
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
Item Component Descriptors
Items are used in the FormCD only.
ItemCD
- class: api.midp.items.ItemCD
- type: abstract Cjavax.microedition.lcdui.Item <-- Cjava.lang.Object
- palette: none
- version: MIDP
For MIDP-1.0, layout property does not exist except for StringItem, ImageItem.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| label | String | null | yes | yes | - | yes | yes | MIDP |
| layout | int | LAYOUT_DEFAULT | no | yes | LAYOUT_BOTTOM, LAYOUT_CENTER, LAYOUT_DEFAULT, LAYOUT_EXPAND, LAYOUT_LEFT, LAYOUT_NEWLINE_AFTER, LAYOUT_NEWLINE_BEFORE, LAYOUT_RIGHT, LAYOUT_SHRINK, LAYOUT_TOP, LAYOUT_VCENTER, LAYOUT_VEXPAND, LAYOUT_VSHRINK | no | yes | MIDP |
| itemCommands | ItemCommandEventSourceCD... | empty-array | no | yes; no for array itself | - | no | yes | MIDP-2.0 |
| defaultCommand | ItemCommandEventSourceCD | null | yes | yes | - | no | yes | MIDP-2.0 |
| preferredHeight | int | -1 | no | yes | greater or equal than -1 | no | yes | MIDP-2.0 |
| preferredWidth | int | -1 | no | yes | greater or equal than -1 | no | yes | MIDP-2.0 |
| itemCommandListener | ItemCommandListenerCD | null | yes | yes | - | no | yes | MIDP-2.0 |
Post-init: label = instance-name, itemCommandListener = the midp document default of a item-command-listener representing "this"
When a defaultCommand is set then it has to exist in itemCommands property. If not then it has to be added there.
The layout property depends on a component and a version. Use default value to prevent setLayout method generation for invalid cases.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| addCommand | &itemCommands.command:CommandCD | MIDP-2.0 | |
| setItemCommandListener | commandListener:ItemCommandListenerCD | MIDP-2.0 | |
| setDefaultCommand | defaultCommand.command:CommandCD | MIDP-2.0 | |
| setLabel | label:String | MIDP | |
| setLayout | layout:int | MIDP | |
| setPreferredSize | width:int, height:int | MIDP-2.0 |
Parameter: label, layout, itemCommand, defaultCommand, itemCommandListener, preferredWidth, preferredHeight
Actions
- New - CommandCD - creates a ItemCommandEventSourceCD with the command assigned
- Add - ordinary commands available in document and not used in the item - creates a ItemCommandEventSourceCD with the command assigned
- Delete - dependency: parent; nullable: itemCommandListener, defaultCommand
- Move Up/Down - modifies the order in FormCD.items array property
- Go-to-source -
- Edit - go to screen and select the item in an appropriate form
Presenters
- Accept - CommandCD - creates a ItemCommandEventSourceCD with the command assigned
- Code - CodeComponentDependency on commands in ItemCD.itemCommands (not ItemCD.itemCommands(index).command only)
- General -
- Info - item-16.png
- Inspector - TBD
- Flow - TBD - TODO - FlowItemCommandPinOrderPresenter?
- Screen - TBD - label
- Validator - TBD
ChoiceGroupCD
- class: api.midp.items.ChoiceGroupCD
- type: Cjavax.microedition.lcdui.ChoiceGroup <-- Cjavax.microedition.lcdui.Item
- palette: none
- version: MIDP
Created by Items/Choice Group producer. Contains ChoiceElementCD underneath.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| choiceType | int | ChoiceCD.MULTIPLE | no | yes | ChoiceCD.EXCLUSIVE, ChoiceCD.MULTIPLE, ChoiceCD.POPUP | yes | yes | MIDP |
| elements | ChoiceElementCD... | empty-array | no | no | - | no | yes | MIDP |
| fitPolicy | int | ChoiceCD.FIT_POLICY_TEXT_WRAP_DEFAULT | no | yes | ChoiceCD.FIT_POLICY_TEXT_WRAP_DEFAULT, ChoiceCD.FIT_POLICY_TEXT_WRAP_ON, ChoiceCD.FIT_POLICY_TEXT_WRAP_OFF | no | yes | MIDP-2.0 |
Settres
| Method Name | Parameters | Description | Version | |
|---|---|---|---|---|
| new ChoiceGroup | label:String, choiceType:int | MIDP | ||
| new ChoiceGroup | label:String, choiceType:int, &ChoiceElementCD.string:String, &ChoiceElementCD.image:ImageCD | MIDP | ||
| setSelectedFlags | &ChoiceElementCD.selected:boolean | MIDP | ||
| setFont | index, &ChoiceElementCD.font:FontCD | if font is null, then not required | MIDP-2.0 | |
| setFitPolicy | fitPolicy:int | MIDP-2.0 | ||
| set, insert, append, delete, deleteAll | not used | MIDP | ||
| setSelectedIndex | not used | MIDP | ||
Parameter: choiceType, fitPolicy, string, image, font, selectedArray, stringArray, imageArray
Actions
- New - ChoiceElementCD
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - ChoiceElementCD
- Code -
- General -
- Info - TODO - choice_group_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - elements
- Validator - TBD
GaugeCD
- class: api.midp.items.GaugeCD
- type: Cjavax.microedition.lcdui.Gauge <-- Cjavax.microedition.lcdui.Item
- palette: none
- version: MIDP
Created by Items/Gauge producer. The Gauge is placed under the related Form.
If the GaugeCD.usedByAlert == true, then there are various restrictions for the property values. Also this special gauge will be placed under AlertCD.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| usedByAlert | boolean | false | no | no | - | no | no | FOREVER |
| interactive | boolean | false | no | yes | - | yes | yes | MIDP |
| value | int | null | no | yes | for non-interactive: GaugeCD.CONTINUOUS_IDLE, GaugeCD.INCREMENTAL_IDLE, GaugeCD.CONTINUOUS_RUNNING, GaugeCD.INCREMENTAL_UPDATING, for interactive: int | yes | yes | MIDP |
| maxValue | int | null | no | yes | for non-interactive: GaugeCD.VALUE_INDEFINITE, for interactive: int | yes | yes | MIDP |
Post-init: value = 50, maxValue = 100
When maxValue == INDEFINITE then value must be one of GaugeCD.CONTINUOUS_IDLE, GaugeCD.INCREMENTAL_IDLE, GaugeCD.CONTINUOUS_RUNNING, GaugeCD.INCREMENTAL_UPDATING.
If usedByAlert is set then: it must be non-interactive; it must not be owned by another container (Alert or Form); it must not have any Commands; it must not have an ItemCommandListener; it must not have a label (means its label must be null); its preferred width and height must both be unlocked; and its layout value must be LAYOUT_DEFAULT.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new Gauge | label:String, interactive:boolean, maxValue:int, value:int | MIDP | |
| setValue | value:int | only for interactive | MIDP |
| setMaxValue | maxValue:int | only for interactive | MIDP |
Parameter: interactive, value, maxValue
Actions
- New -
- Add -
- Delete - if usedByAlert == true, then set gauge.getParentComponent().indicator = null
- Move Up/Down -
- Go-to-source -
- Edit - if usedByAlert, then go to screen and set the gauge indicator
Presenters
- Accept -
- Code -
- General -
- Info - TODO - gauge_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - value
- Validator - TBD - TODO - check for value,maxValue pairs
SpacerCD
- class: api.midp.items.SpacerCD
- type: Cjavax.microedition.lcdui.Spacer <-- Cjavax.microedition.lcdui.Item
- palette: none
- version: MIDP-2.0 only
Created by Items/Spacer producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| minWidth | int | 16 | no | yes | zero int or greater | no, yes if there is another important property | yes | MIDP-2.0 |
| minHeight | int | 1 | no | yes | zero int or greater | no, yes if there is another important property | yes | MIDP-2.0 |
Post-init: label = null
The minWidth and minHeight must be greater or equal to zero.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new Spacer | minWidth:int, minHeight:int | MIDP-2.0 | |
| setMinimumSize | minWidth:int, minHeight:int | MIDP-2.0 |
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - spacer_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - spacer - hide label
- Validator - TBD - TODO - check minWidth, minHeight values
TextFieldCD
- class: api.midp.items.TextFieldCD
- type: Cjavax.microedition.lcdui.TextField <-- Cjavax.microedition.lcdui.Item
- palette: none
- version: MIDP
Created by Items/TextField producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| text | String | null | yes | yes | - | yes | yes | MIDP |
| constraints | int | null | no | yes | CONSTRAINT_EMAILADDR, CONSTRAINT_NUMERIC, CONSTRAINT_PHONENUMBER, CONSTRAINT_URL, CONSTRAINT_DECIMAL | yes | yes | MIDP |
| initialInputMode | String | null | yes | yes | - | no | yes | MIDP-2.0 |
| maxSize | int | default is null | no | yes | positive int | no? | yes | MIDP |
Post-init: initial = 32, constraint = CONSTRAINT_ANY
When modifying text, then asure maxSize to fit it, when modifying maxSize allow even shorter size that the text length
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new TextField | label:String, text:String, maxSize:int, constraints:int | MIDP | |
| setConstraints | constraints:int | MIDP | |
| setMaxSize | maxSize:int | MIDP | |
| setInitialInputMode | initialInputMode:String | MIDP-2.0 | |
| delete | offset:int, length:int | deletes characters from the text. not used | MIDP |
| insert | data:char..., offset:int, length:int, position:int | inserts a subrange of an array of characters into the text. not used | MIDP |
| insert | string:String, position:int | inserts a string into the text. not used | MIDP |
| setChars | data:char..., offset:int, length:int | sets the text from a character array, replacing the previous value. not used | MIDP |
| setString | string:String | sets the text from string, replacing the previous value. not used | MIDP |
Parameter: text, maxSize, initialInputMode, constraints
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - textfield_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - text
- Validator - TBD
DateFieldCD
- class: api.midp.items.DateFieldCD
- type: Cjavax.microedition.lcdui.DateField <-- Cjavax.microedition.lcdui.Item
- palette: none
- version: MIDP
Created by Items/DateField producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| date | long | null | yes | yes | - | yes | yes | MIDP |
| mode | int | null, initial: DATE | no | yes | MODE_DATE, MODE_DATE, MODE_DATE_TIME | yes | yes | MIDP |
| timeZone | String | null | yes | yes | null | no | yes | MIDP |
Post-init: date = USERCODE: new Date (System.currentTimeMillis()) , mode = DATE_TIME
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new DateField | label:String, mode:int | MIDP | |
| new DateField | label:String, mode:int, timeZone:TimeZone | MIDP | |
| setDate | date:long | MIDP | |
| setInputMode | mode:int | MIDP |
Parameter: mode, date, timeZone
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - datefield_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - date
- Validator - TBD
ImageItemCD
- class: api.midp.items.ImageItemCD
- type: Cjavax.microedition.lcdui.ImageItem <-- Cjavax.microedition.lcdui.Item
- palette: none
- version: MIDP
Created by Items/ImageItem producer. Producer should ask for the ImageCD.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| image | ImageCD | null | yes | yes | - | yes + image resource path editor | yes | MIDP |
| altText | String | null | yes | yes | - | no | yes | MIDP |
| appearanceMode | int | ItemCD.APPEARANCE_PLAIN | no | yes | ItemCD.APPEARANCE_PLAIN, ItemCD.APPEARANCE_BUTTON, ItemCD.APPEARANCE_HYPERLINK | no | yes | |
Post-init: TBD - altText = "<Missing image>"
Forward property editor for image.imageResource property editor.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new ImageItem | label:String, image:ImageCD, layout:int, altText:String | MIDP | |
| new ImageItem | label:String, image:ImageCD, layout:int, altText:String, appearanceMode:int | MIDP-2.0 | |
| setAltText | altText:String | MIDP | |
| setImage | img:ImageCD | MIDP |
Parameter: image, altText, appearanceMode
Actions
- New - TODO - ImageCD
- Add - TODO - ImageCD not used in the ImageItem
- Delete - nullable: image
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - TODO - new and existing ImageCD component that is not used in the ImageItem; image file from explorer (creates a ImageCD wrapper around image file, optionally copies the file to the project)
- Code -
- General -
- Info - TODO - imageitem_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - image
- Validator - TBD
StringItemCD
- class: api.midp.items.StringItemCD
- type: Cjavax.microedition.lcdui.StringItem <-- Cjavax.microedition.lcdui.Item
- palette: none
- version: MIDP
Created by Items/StringItem producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| text | String | null | yes | yes | - | yes | yes | MIDP |
| appearanceMode | int | ItemCD.APPEARANCE_PLAIN | no | yes | ItemCD.APPEARANCE_PLAIN, ItemCD.APPEARANCE_BUTTON, ItemCD.APPEARANCE_HYPERLINK | no | yes | MIDP-2.0 |
| font | FontCD | null | yes | yes | - | no | yes | MIDP |
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new StringItem | label:String, text:String | MIDP | |
| new StringItem | label:String, text:String, appearanceMode:int | MIDP-2.0 | |
| setText | text:String | MIDP | |
| setFont | font:FontCD | MIDP-2.0 |
Parameter: text, appearanceMode, font
Actions
- New - TODO - FontCD
- Add - TODO - existing FontCD not used in the StringItem
- Delete - nullable: font
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - TODO - new or existing FontCD not used in the StringItem
- Code -
- General -
- Info - TODO - stringitem_16.png
- Inspector - TBD
- Flow -
- Screen - TBD - text
- Validator - TBD
Resource Component Decriptors
Resource component are used at various placed and there are used as references. All resources are ClassCD based.
ResourceCD
- class: api.midp.resources.ResourceCD
- type: abstract #Resource <- Cjava.lang.Object
- palette: none
- version: MIDP
A marker component. All resources are based on ClassCD.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Settres
| Method Name | Parameters | Description | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - resource_16.png
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
ImageCD
- class: api.midp.general.ImageCD
- type: Cjavax.microedition.lcdui.Image <-- #Resource
- palette: none
- version: MIDP
Created by Resources/Image producer. TODO - the producer should ask for the image resource otherwise it should cancel creation.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| resourcePath | String | null | yes | yes | - | yes | yes | MIDP |
If no image is set, then resourcePath should be null.
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| Image.createImage | resourcePath:String | MIDP | |
| Image.createImage | nullResourcePath:int,int | if resourcePath is null then use "0,0" as parameters | MIDP |
Parameter: resourcePath, nullResourcePath (CODE: ("0, 0"))
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept - image file from the project (optionally coppies the image file to the project)
- Code -
- General -
- Info - TODO - image_16.png
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
FontCD
- class: api.midp.general.FontCD
- type: Cjavax.microedition.lcdui.Font <-- #Resource
- palette: none
- version: MIDP
Created by Resources/Font producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| face | int | FACE_SYSTEM | no | yes | FACE_SYSTEM, FACE_MONOSPACE, FACE_PROPORTIONAL | no, yes if there are other basic properties | yes | MIDP |
| style | int | STYLE_PLAIN | no | yes | STYLE_PLAIN, STYLE_BOLD, STYLE_ITALIC, STYLE_UNDERLINED | no, yes if there are other basic properties | yes | MIDP |
| size | int | SIZE_MEDIUM | no | yes | SIZE_MEDIUM, SIZE_SMALL, SIZE_LARGE | no, yes if there are other basic properties | yes | MIDP |
| kind | int | KIND_DEFAULT | no | no | KIND_DEFAULT, KIND_CUSTOM, KIND_STATIC, KIND_INPUT | no, yes if there are other basic properties | yes | MIDP |
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| Font.getFont | face:int, style:int, size:int | MIDP | |
| Font.getFont | kind:int | MIDP | |
| Font.getDefaultFont | MIDP | ||
Just single setter descriptor for all cases - the values depends on
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - font_16.png
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
TickerCD
- class: api.midp.general.TickerCD
- type: Cjavax.microedition.lcdui.Ticker <-- #Resource
- palette: none
- version: MIDP
Created by Resources/Ticker producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| text | String | empty string | no | yes | - | yes | yes | MIDP |
Settres
| Method Name | Parameters | Description | Version |
|---|---|---|---|
| new Ticker | text:String | MIDP | |
| setString | text:String | MIDP |
Parameter: text
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - ticker_16.png
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
Event Sources
The Event Sources are places in a target application where events may be fired. On those places there are an action is invoked. The actions are specified by related Event Handlers.
EventSourceCD
- class: api.midp.components.sources.EventSourceCD
- type: abstract #EventSource <- none
- palette: none
- version: FOREVER
Has an event handler directly underneath. Even through right now there is a single event handler related/underneath the event source, there may be more event handlers registered in the future.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| eventHandler | EventHandlerCD | null | yes | no | - | yes | yes | FOREVER |
The eventHandler has a complex property editor. The editor will be extensible (using global lookup) and allows to edit/create a event handler which will be assigned to the event source.
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source - editable zone of pre-action - search through the all multi-guarded-sections
- Edit -
Presenters
- Accept - EventHandler - creates and assigns and updates the event handler
- Code - MultiGuardedLevel with pre-action and post-action codes and forward MultiGuardedLevel to the EventHandler, the MultiGuardedLevel is invoked by particular EventListeners
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD - event handler
- Validator - TBD
CommandEventSourceCD
- class: api.midp.components.sources.CommandEventSourceCD
- type: #CommandEventSource
- palette: none
- version: MIDP
Created by accept presenter of the DisplayableCD when accepting a command.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| displayable | DisplayableCD | null | no | no | - | no | yes - readonly | MIDP |
| command | CommandCD | null | no | no | - | no | yes - readonly | MIDP |
The displayable and command property has to be final and set by the DisplayableCD.accept presenter only.
Its should also show all properties of related Command.
Actions
- New -
- Add -
- Delete - dependency: displayable, command; Removes the CommandEventSource from displayable.commands array property
- Move Up/Down - order by displayable.commands array property
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - command_16.png, command.instanceName, , , command.instanceName@displayable.instanceName
- Inspector - TBD
- Flow - FlowEventSourcePin (uses its InfoPresenter)
- Screen - TBD - command, displayable
- Validator - TBD
ItemCommandEventSourceCD
- class: api.midp.components.sources.ItemCommandEventSourceCD
- type: #ItemCommandEventSource
- palette: none
- version: MIDP
Creates by accept presenter of ItemCD when accepting a command.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| item | ItemCD | null | no | no | - | no | no | |
| command | CommandCD | null | no | no | - | no | no | |
The item and command property has to be final and set by the ItemCD.accept presenter only.
Its should also show all properties of related Command.
Actions
- New -
- Add -
- Delete - dependency: item, command; Removes the ItemCommandEventSource from item.commands array property
- Move Up/Down - order by item.commands array property
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - command_16.png, command.instanceName, , , command.instanceName@item.instanceName
- Inspector - TBD
- Flow - FlowEventSourcePin (uses its InfoPresenter)
- Screen - TBD
- Validator - TBD
ListSelectCommandEventSourceCD
- class: api.midp.components.sources.ListSelectCommandEventSourceCD
- type: #ListSelectCommandEventSource <- #CommandEventSource
- palette: none
- version: MIDP
Created by the ListCD producer together with an initial ListActionEventHandler.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| showSelectCommand | boolean | false | no | no | - | no | yes | MIDP |
It should not show any properties of related Command.
Actions
- New -
- Add -
- Delete - disallowed for user
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - command_16.png, command.instanceName, , , command.instanceName@displayable.instanceName
- Inspector - TBD
- Flow - special FlowEventSourcePin based on the showSelectCommand
- Screen - TBD
- Validator - TBD
ListElementEventSourceCD
- class: api.midp.components.sources.ListElementEventSourceCD
- type: #ListElementEventSource <- #EventSource
- palette: none
- version: MIDP
Created by Elements/List Element producer. ListElementEventSource is directly underneath a ListCD.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| string | String | null | no | yes | - | no, yes if there is another important property | yes | MIDP |
| image | ImageCD | null | yes | yes | - | no, yes if there is another important property | yes | MIDP |
| selected | boolean | false | no | yes | - | no, yes if there is another important property | yes | MIDP |
| font | FontCD | null | yes | yes | - | no | yes | MIDP-2.0 |
Post-init: resolved by the ListCD.accept/new/add itself: string = "List Element " + index in ListCD.element
Its should also show all properties of related List Element (parent component).
Actions
- New -
- Add -
- Delete - dependency: parent, all ListElementEventSourceCD underneath; nullable: image, font; unregister itself from ListCD.elements
- Move Up/Down - moves a list element within ListCD.elements array property
- Go-to-source -
- Edit - go to screen and select particular element in list
Presenters
- Accept - TODO - new or existing ImageCD or FontCD not used in the ListElement; image file from explorer (auto-creates ImageCD + optional copy to the project)
- Code -
- General -
- Info - TODO - list_element_16.png, string, "List Element", renames string
- Inspector - TBD
- Flow - FlowEventSourcePin
- Screen - TBD - string, image, selected, font within List
- Validator - TBD
MobileDeviceStartEventSourceCD
- class: api.midp.components.sources.MobileDeviceStartEventSourceCD
- type: #MobileDeviceStartEventSource <- #EventSource
- palette: none
- version: MIDP
Created in the VisualMidlet template file. The MobileDevice is always the parent component.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed; dependency: parent
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - "startMIDlet" method with multi-guaded-section-generator for this component, CodeNamePresenter reserves "startMIDlet"
- General -
- Info - TODO - mobile_device_16.png, "Started"
- Inspector - TBD
- Flow - FlowEventSourcePin
- Screen - TBD
- Validator - TBD
MobileDeviceResumeEventSourceCD
- class: api.midp.components.sources.MobileDeviceResumeEventSourceCD
- type: #MobileDeviceResumeEventSource <- #EventSource
- palette: none
- version: MIDP
Created in the VisualMidlet template file. The MobileDevice is always the parent component.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed, dependency: parent
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - "resumeMIDlet" method with multi-guaded-section-generator for this component, CodeNamePresenter reserves "resumeMIDlet"
- General -
- Info - TODO - mobile_device_16.png, "Resumed"
- Inspector - TBD
- Flow - FlowEventSourcePin
- Screen - TBD
- Validator - TBD
IfFalseCaseEventSourceCD
- api.midp.components.sources.IfFalseCaseEventSourceCD
- type: #IfFalseCaseEventSource <- #EventSource
- palette: none
- version: FOREVER
Created by Flow/If producers. It is always the one instance under the IfPointCD and assigned to it too.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed for user; dependency: parent
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - if_case_16.png, "False"
- Inspector - TBD
- Flow - FlowEventSourcePin
- Screen - TBD
- Validator - TBD
IfTrueCaseEventSourceCD
- class: api.midp.components.sources.IfTrueCaseEventSourceCD
- type: #IfCallPointTrueCaseEventSource <- #EventSource
- palette: none
- version: FOREVER
Created by Flow/If producers. It is always the one instance under the IfPointCD and assigned to it too.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed for user; dependency: parent
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - if_case_16.png, "True"
- Inspector - TBD
- Flow - FlowEventSourcePin
- Screen - TBD
- Validator - TBD
SwitchCaseEventSourceCD
- api.midp.components.sources.SwitchCaseEventSourceCD
- #SwitchCaseEventSource <- #EventSource
- palette: none
- version: FOREVER
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| option | javaCode | null | yes | yes | - | no | yes | FOREVER |
The option property is resolved by the SwitchPointCD.accept presenter.
Actions
- New -
- Add -
- Delete - dependency: parent; remove itself from SwitchPointCD.cases
- Move Up/Down - handles order of SwitchCaseEventSources in SwitchPointCD.cases
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - switch_case_16.png, option, , Case
- Inspector - TBD
- Flow - FlowEventSourcePin (TODO - should use InfoPresenter)
- Screen - TBD
- Validator - TBD
EntryStartEventSourceCD
- class api.midp.components.sources.EntryPointStartEventSourceCD
- type: #EntryPointStartEventSource <- #EventSource
- palette: none
- version: MIDP
Created by Flow/EntryPoint producer. The only component under EntryPointCD and is assigned to it.
Actions
- New -
- Add -
- Delete - disallowed for user, dependency: parent
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - point_16.png, "Called"
- Inspector - TBD
- Flow - FlowEventSourcePin
- Screen - TBD
- Validator - TBD
Event Handlers
Holds the action that is performed on a particular placed specified by EventSource where a handler is assigned.
EventHandlerCD
- class: api.midp.components.handlers.EventHandlerCD
- type: abstract #EventHandler <- none
- palette: none
- version: FOREVER
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| eventSource | EventSourceCD | null | no | no | - | no | no | FOREVER |
The eventSource is set automatically by MidpDocumentSupport.assignUpdateEventHandler(EventSource,newEventHandler)
Actions
- New -
- Add -
- Delete - dependency: parent; deletes and unsets itself from the EventSource
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
ExitMidletEventHandlerCD
- class: api.midp.components.handlers.ExitMidletEventHandlerCD
- type: #ExitMidletEventHandler <- #EventHandler
- palette: none
- version: MIDP
Created by MobileDevice-EventHandlerCreator.
Available only when a document has MobileDeviceCD.
TODO - Maybe created by a producer and put into the palette.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| mobileDevice | MobileDeviceCD | null | no | no | - | no | no | MIDP |
The mobileDevice property is resolved by the MobileDevice-EventHandlerCreator
Actions
- New -
- Add -
- Delete - dependency: mobileDevice
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - MultiGuardedLevel generates "exitMIDlet ();"
- General -
- Info - TODO - exit_midlet_16.png, "Exit MIDlet"
- Inspector - TBD
- Flow - FlowEventHandlerEdge to MobileDevice
- Screen - TBD
- Validator - TBD
CallPointEventHandlerCD
- class: api.midp.components.handlers.CallPointEventHandlerCD
- type: #CallPointEventHandler <- #EventHandler
- palette: none
- version: FOREVER
Created by CallPointEventHandlerCreator on CallPoint.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| callPoint | CallPointCD | null | no | no | - | no | no | MIDP |
The callPoint is set by the creator.
Actions
- New -
- Add -
- Delete - dependency: callPoint
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - MultiGuardedLevel generates call-point-access-code
- General -
- Info - TODO - call_point_16.png, "Call: " + call-point
- Inspector - TBD
- Flow - FlowEventHandlerEdge to callPoint
- Screen - TBD
- Validator - TBD
MethodEventHandlerCD
- class: api.midp.components.handlers.MethodPointEventHandlerCD
- type: #MethodPointEventHandler <- #EventHandler
- palette: none
- version: FOREVER
Created by MethodPointEventHandlerCreator on MethodPoint.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| methodPoint | MethodPointCD | null | no | no | - | no | no | FOREVER |
The methodPoint is set by the creator.
Actions
- New -
- Add -
- Delete - dependency: methodPoint
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - MultiGuardedLevel generates method-point-access-code
- General -
- Info - TODO - call_point_16.png, "Call: " + method-point
- Inspector - TBD
- Flow - FlowEventHandlerEdge to methodPoint
- Screen - TBD
- Validator - TBD
SwitchDisplayableEventHandlerCD
- class: api.midp.components.handlers.SwitchDisplayableEventHandlerCD
- type: #SwitchDisplayableEventHandler <- #EventHandler
- palette: none
- version: MIDP
Created by SwitchDisplayableEventHandlerCreator on DisplayableCD.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| displayable | DisplayableCD | null | no | no | - | yes | yes | |
| alert | AlertCD | null | yes | no | - | yes | yes | |
The displayable property is set by the EventHandlerCreator.
Actions
- New -
- Add -
- Delete - dependency: displayable, alert
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - MultiGuadedSection with "switchDisplayable (alert, displayable);"
- General -
- Info - TODO - displaable_16.png, "Go to: " + displayable
- Inspector - TBD
- Flow - FlowEventHandlerEdge to displayable; FlowPinBadge for if alert is not null
- Screen - TBD
- Validator - TBD
ListEventHandlerCD
- class: api.midp.components.handlers.SwitchDisplayableEventHandlerCD
- type: #SwitchDisplayableEventHandler <- #EventHandler
- palette: Flow|List Action
- version: MIDP
Created by the producer.
The related list is the one that is the parent of the parent component of this component. This is ListEventHandlerCD under CommandEventSourceCD under DisplayableCD.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - MultiGuardedSection with "listActionMethodActionCode ();"
- General -
- Info - list_16.png, "Process List"
- Inspector - TBD
- Flow - EventHandlerPinBadge
- Screen - TBD
- Validator - TBD
MenuScreenEventHandlerCD
- class api.midp.components.handlers.MenuScreenEventHandlerCD
- type: #MenuScreenEventHandler <- #EventHandler
- palette: none
- version: MIDP
TODO - not implemented yet - requires a MenuScreenController or smth.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - TODO -
- General -
- Info - TODO -
- Inspector - TBD
- Flow - TODO - EventHandlerPinBadge
- Screen - TBD
- Validator - TBD
PreviousScreenEventHandlerCD
- api.midp.components.handlers.PreviousScreenEventHandlerCD
- #PreviousScreenEventHandler <- #EventHandler
- palette: Flow/PreviousScreenAction
- version: MIDP
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - TODO - displayable_16.png, "Go to Previous Displayable"
- Inspector - TBD
- Flow - EventHandlerPinBadge
- Screen - TBD
- Validator - TBD
Point Component Descriptors
Points are places in the target application which may be invoked and usually they are specifying the interface between the target application and its environment.
PointCD
- class: abstract api.midp.components.points.PointCD
- type: #Point
- palette: none
- version: FOREVER
A marker component only.
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
CallPointCD
- class: api.midp.components.points.CallPointCD
- type: #CallPoint <- PointCD
- palette: Flow | Call Point
- version: FOREVER
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| accessCode | JavaCode | - | false | false | no | yes | FOREVER |
Post-Init: accessCode = ""
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - code-reference (javacode, javacode, -)
- General - creator of CallPointEventHandler
- Info - call_point_16.png, "Call: " + accessCode
- Inspector - TBD
- Flow - FlowInfoNode
- Screen - TBD
- Validator - TBD
MethodPointCD
- class: api.midp.components.points.CallPointCD
- type: abstact #MethodPoint <- PointCD
- palette: none
- version: MIDP
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| method | String | - | no | no | valid method name | yes | yes | MIDP |
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - code-reference ("methodName ();", methodName, -); code-names: methodName
- General - creator of MethodPointEventHandler
- Info -
- Inspector - TBD
- Flow - FlowInfoNode
- Screen - TBD
- Validator - TBD
EntryPointCD
- class: api.midp.components.points.EntryPointCD
- type: #EntryPoint <- #Point
- palette: none
- version: forever
Created by Flow|EntryPoint producer. The producer creates a EntryStartEventSource underneath too and assigns it.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| start | EntryStartEventSourceCD | null | no | no | - | no | no | |
The start property is initialized by producer.
Actions
- New -
- Add -
- Delete - nullable: start
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info - entry_point_16.png, methodName, "Entry"
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
IfCallPointCD
- class: api.midp.components.points.IfCallPointCD
- type: #IfCallPoint <- #Point
- palette: Flow | If
- version: FOREVER
One IfTrueEventSourceCD and one IfFalseEventSourceCD is always created together with IfPointCD by producer.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| condition | javaCode | null | no | no | - | yes | yes | FOREVER |
| true | IfTrueEventSourceCD | null | no | no | - | no | no | FOREVER |
| false | IfFalseEventSourceCD | null | no | no | - | no | no | FOREVER |
Post-init: condition = "true"
Actions
- New -
- Add -
- Delete - nullable: true, false
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - ClassLevel - method with "if" statement with forward to multi-guaded-section of if-true and if-false
- General -
- Info - if_16.png, methodName, "If"
- Inspector - TBD
- Flow - IfPointPinOrder
- Screen - TBD
- Validator - TBD
SwitchPointCD
- class: api.midp.components.points.SwitchPointCD
- type: #SwitchPoint <- #Point
- palette: Flow | Switch
- version: FOREVER
SwitchCaseEventSourceCD are added directly underneath.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| operand | javaCode | null | no | no | - | yes | yes | FOREVER |
| cases | SwitchCaseEventSourceCD... | empty-array | no | yes, no for array itself | - | no | yes | FOREVER |
Post-init: Operand = 0
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - ClassLevel - method with "switch" statement with forward to multi-guaded-section of cases
- General -
- Info - switch_16.png, methodName, "Switch"
- Inspector - TBD
- Flow - SwitchPointPinOrder
- Screen - TBD
- Validator - TBD
MobileDeviceCD
- class: api.midp.components.points.MobileDeviceCD
- type: #MobileDevice <- #Point
- palette: none
- version: MIDP
One MobileDeviceStartEventSourceCD and one MobileDeviceResumeEventSourceCD is always created together with MobileDeviceCD and it is created in the file template only.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|---|---|---|---|---|---|---|---|
| start | MobileDeviceStartEventSourceCD | null | no | no | - | no | no | FOREVER |
| resume | MobileDeviceResumeEventSourceCD | null | no | no | - | no | no | FOREVER |
The start and resume property are resolved by the file template.
Actions
- New -
- Add -
- Delete - disallowed, nullable: start, resume
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - code-name: all MIDlet class methods, "midletPaused"
- General - creator of ExitMidletEventHandler
- Info - mobile_device_16.png, "Mobile Device"
- Inspector - TBD
- Flow - InfoNode, MobileDevicePinOrder
- Screen - TBD
- Validator - TBD
DisplayCD
- class: api.midp.components.points.DisplayCD
- type: #Display <- #Point
- palette: none
- version: MIDP
Created in the Visual* template files. Single instance per whole document.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - code-class-level generates "switchDisplayable" method with "previousDisplayable" field updating; "previousDisplayable" field declaration, code-name: "switchDisplay", "getDisplay", "previousDisplayable"
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
Listener Descriptors
This listeners represents the listener methods implementation and dispatches the action to each event source.
EventListenerCD
- class: api.midp.components.listeners.EventListenerCD
- type: #EventListener <- none
- palette: none
- version: FOREVER
This is a marker interface for all event listeners.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete - disallowed
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
CommandListenerCD
- class: api.midp.components.listeners.CommandListenerCD
- type: #CommandListener <-- #EventListener
- palette: none
- version: MIDP
Representes a CommandListener interface implementation. Created by a file template with "this" reference.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - CodeClassLevel generates a commadAction method with forwarding to all related CommandEventSources that are using it; code-reference (this, this, -); code-implements-section(CommandListener); code-name: commandAction
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
ItemCommandListenerCD
- class: api.midp.components.listeners.ItemCommandListenerCD
- type: #ItemCommandListener <-- #EventListener
- palette: none
- version: MIDP
Representes a ItemCommandListener interface implementation. Created by a file template with "this" reference.
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - CodeClassLevel generates a commadAction method with forwarding to all related ItemCommandEventSources that are using it; code-reference (this, this, -); code-implements-section(ItemCommandListener); code-name: commandAction
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
ItemStateListenerCD
- class: api.midp.components.listeners.ItemCommandListenerCD
- type: #ItemCommandListener <-- #EventListener
- palette: none
- version: MIDP
Representes a ItemStateListener interface implementation. Created by a file template with "this" reference.
TODO - not implemented yet
Properties
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code - TODO - CodeClassLevel generates a itemStateChanged method with forwarding to all related ItemStateEventSources that are using it; code-reference (this, this, -); code-implements-section(ItemStateListener); code-name: itemStateChanged
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
Component Descriptors Hierarchy
- RootCD
- ClassCD
- DisplayableCD
- CanvasCD
- ScreenCD
- AlertCD
- FormCD
- ListCD
- TextBoxCD
- ItemCD
- ChoiceGroupCD
- DateFieldCD
- GaugeCD
- ImageItemCD
- StringItemCD
- TextFieldCD
- SpacerCD
- CommandCD
- ListSelectCommandCD
- ResourceCD
- FontCD
- ImageCD
- TickerCD
- ListElementCD
- ChoiceElementCD
- EventSourceCD
- CommandEventSourceCD
- ListSelectCommandEventSourceCD
- ItemCommandEventSourceCD
- ListElementEventSourceCD
- MobileDeviceStartEventSourceCD
- MobileDeviceResumeEventSourceCD
- EntryPointStartEventSourceCD
- IfTrueEventSourceCD
- IfFalseEventSourceCD
- SwitchCaseEventSourceCD
- CommandEventSourceCD
- EventHandlerCD
- SwitchDisplayableEventHandlerCD
- ExitMidletEventHandlerCD
- CallPointEventHandlerCD
- MethodPointEventHandlerCD
- PreviousScreenEventHandlerCD
- MenuScreenEventHandlerCD - not implemented yet
- ListEventHandlerCD
- EventListenerCD
- CommandListenerCD
- ItemCommandListenerCD
- ItemStateListenerCD - not used yet
- CategoryCD
- CommandsCategoryCD
- ControllersCategoryCD
- DisplayablesCategoryCD
- PointsCategoryCD
- ResourcesCategoryCD
- PointCD
- CallPointCD
- MethodPointCD
- EntryPointCD
- IfPointCD
- SwitchPointCD
- DisplayCD
- MobileDeviceCD
Document Structure
Here is a template (dtd like) for a document structure:
- RootCD
- CategoryCD - contains only one category per instance
- ControllersCategoryCD
- EventListenerCD - e.g. CommandListenerCD, ItemCommandListenerCD, ItemStateListenerCD
- DisplayablesCategoryCD
- DisplayableCD based
- CommandEventSourceCD - single component per each attached CommandCD
- AlertCD
- All components accepted by DisplayableCD
- Gauge - at maximum single component for a special alert indicator
- FormCD
- All component accepted by DisplayableCD
- ItemCD based items
- ItemCommandEventSourceCD - single component per each attached CommandCD
- ItemStateEventSourceCD - not implemented yet
- ChoiceGroupCD
- All components accepted by ItemCD
- ChoiceElementCD
- ChoiceElementListEventSourceCD - always a single component
- ListCD
- All component accepted by DisplayableCD
- ListSelectCommandEventSourceCD - single component per ListCD
- ListEventHandlerCD - initial value
- ListElementCD
- ListElementEventSourceCD - always a single component
- DisplayableCD based
- CommandsCategoryCD
- CommandCD
- ListSelectCommandCD
- PointsCategoryCD
- PointCD based components
- CallPointCD
- IfPointCD
- IfTrueEventSourceCD
- IfFalseEventSourceCD
- SwitchPointCD
- SwitchCaseEventSourceCD
- DisplayCD
- EntryPointCD
- EntryPointEventSourceCD
- MobileDeviceCD
- MobileDeviceStartEventSourceCD
- MobileDeviceResumeEventSourceCD
- ResourcesCategoryCD
- ResourceCD based components e.g. FontCD, ImageCD, TickerCD
- PointCD based components
Each EventSourceCD based component can have EventHandlerCD based component underneath.
Component Descriptor Template
- class: FQN (e.g. midp.displayables.displayable.DisplayableCD)
- type: TypeDescriptor
- palette: PaletteDescriptor - just displayname, category, or related component producer id + description
- VersionDescriptor - descriptor of diversity across MIDP versions
TBD - How the component is created (file template, producers, ...). Relationship with others. Description of related producers.
Properties
Guide: look at MIDP-2.0 spec, MIDP-1.0 spec, Designer 1, VMD
| Name | TypeID | Default Value | IsNull | IsUserCode | Values | Is basic | Is advanced | Version |
|---|
TBD - post-initialization, additional basic and advanced properties
Settres
Guide: gather all constructors, factory methods and setters of all MIDP classes; look at MIDP-2.0 spec, MIDP-1.0 spec, Designer 1, VMD
| Method Name | Parameters | Description | Version |
|---|
Actions
- New -
- Add -
- Delete -
- Move Up/Down -
- Go-to-source -
- Edit -
Presenters
- Accept -
- Code -
- General -
- Info -
- Inspector - TBD
- Flow -
- Screen - TBD
- Validator - TBD
TODO
- How about mixing Commands and other sub-nodes in the Inspector. For example: a TextBox does have commands only so the commands should be shown directly underneath. But later there should by a MySpecialTextBox with a special elements underneath. Then the commands should be shown under a category. But dynamic categories is a hell to implement and understand.
- How to resolve the Alert.DISMISS_COMMAND replacement? For now it is not modelled/used at all. Maybe it could be done the same way as the List.SELECT_COMMAND, which is in a document but is not available as a command for regular usage.
- How to resolve SwitchDisplayableThroughtAlert event handler?
- AlertType has to be changed from Enum to another value because it is a class and there could be other valid values/constructions available in the future.
Notes
- Alert: An application may set a Ticker with Displayable.setTicker on an Alert, however it may not be displayed due to implementation restrictions.
- Alert: If content is too long to be displayed on the screen then it automatically becomes modal (getTimeout() returns FOREVER) independently of setted value for timeout.
- Alert: We had workaround in VMD1 about indicator (Gauge) - now property could be only "indicator" but not "use indicator".
- Alert: Gauge which may be used as an indicator has a lot of restrictions (see http://java.sun.com/javame/reference/apis/jsr118/javax/microedition/lcdui/Alert.html )
- Form: If the application attempts to place an item into a Form, and the item is already owned by this or another Form, an IllegalStateException is thrown. The application must remove the item from its currently containing Form before inserting it into the new Form.
- List: there is another constructor List(String title, int listType, String... stringElements, Image... imageElements), but we are using ListElementCD instead stringElements/imageElements.
- Spacer: Since the presence of a label on an Item may affect layout in device-specific ways, the label of a Spacer is restricted to always be null, and the application is not allowed to change it.
Proposals
- java.util.Timer, java.util.TimerTask - maybe we should use it in WaitScreen
contact: Karol Harazlak

