MobilityDesigner2MIDP

Designer 2 - MIDP

Please, do not modify this document. If you really need to modify it send me notification (karol.harezlakATsun.com)

Contents



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
  • 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
  • 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

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

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo