Direct to Web Context Keys

Introduction

This document describes the keys that can be accessed with the D2WContext valueForKey and takeValueForKey methods. When you access a Direct to Web context key in a Direct to Web template's bindings (.wod) file, for example,

size = d2wContext.size;

WebObjects indirectly invokes valueForKey("size") on the d2wContext Direct to Web context. When a bindings file has the entry:

value = d2wContext.entity.name;

WebObjects indirectly invokes valueForKeyPath("entity.name") on the d2wContext Direct to Web context.

Each key has a type, to which you need to cast the result of valueForKey. For example, to get the current entity in a Direct to Web context called myContext use:

currentEntity = (EOEntity)myContext.valueForKey("entity");

Likewise, for valueForKeyPath you use:

currentEntityName = (String)myContext.valueForKeyPath("entity.name");

In addition to specifying the type, the key descriptions below also indicate where the key appears in a rule. Keys labeled "Rule's key" are resolved using rules. There are two sets of rules: the rules managed by the Web Assistant (in the user.d2wmodel file in your project's Resources suitcase) and the default rules in the Direct to Web Framework (in $(NEXT_ROOT)/Library/Frameworks/DirectToWeb.framework/Resources/d2w.d2wmodel).

Keys labeled "Rule's condition" only appear in the conditions (left hand side) of rules. These keys and their values are stored in the Direct to Web context's state dictionary. Three of these keys can be modified using the takeValueForKey method: task, entity, and propertyKey. The other keys that appear in the rule's condition are computed when propertyKey is modified. Refer to the "Direct to Web Architecture" chapter of Developing WebObjects Applications With Direct to Web for more information about how the Direct to Web context resolves its keys.

The following keys are defined by the Direct to Web context:

allowCollapsing
alternateRowColor
attribute
backgroundColorForPage
backgroundColorForTable
bannerFileName
batchSize
bold
border
color
colorForLine
columnCount
componentAvailable
componentBorder
componentName
customComponentName
disabled
displayNameForProperty
displayPropertyKeys
editIcon
entity
formatter
framesActive
framework
inspectComponentName
inspectIcon
isDeep
italic
justification
keyWhenRelationship
length
numCols
pageAvailable
pageName
pageWrapperName
propertyIsKeyPath
propertyKey
propertyType
readOnly
readOnlyEntityNames
refreshRefetchedObjects
relationship
rows
selectButtonFileName
showBanner
size
startupEntityName
startupTask
subtask
tabContents
tableWidth
tabName
tabs
target
task
threshold
uiStyle
usesDistinct
visibleEntityNames
webAssistantPageName

allowCollapsing

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 if the current property level components can be collapsed and a value of 0 otherwise. This flag is primarily used by the display and edit components for relationships.


alternateRowColor

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 if the list page displays its entries with alternating row colors and a value of zero otherwise. This flag is used by some list page Direct to Web templates.


attribute

Type: EOAttribute

Appears: Rule's condition (left-hand side)

The receiver's current attribute. Resolves to null if the current property is not an attribute. The value for this key is derived from propertyKey.


backgroundColorForPage

Type: String

Appears: Rule's key (right-hand side)

The HTML background color for the page containing the receiver. Used by the D2WCompactInspectComponent.


backgroundColorForTable

Type: String

Appears: Rule's key (right-hand side)

The background color for the table on page containing the receiver.


bannerFileName

Type: String

Appears: Rule's key (right-hand side)

The name of the file depicting the banner displayed at the top of a Direct to Web page or a Direct to Web reusable component.


batchSize

Type: Integer

Appears: Rule's key (right-hand side)

The number of objects per batch displayed on a list page. This key is used by the list and plain-list page Direct to Web templates.


bold

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 if the text is displayed in bold face and a value of 0 otherwise. This key is used by the styled display property-level components: D2WDisplayStyledDate, D2WDisplayedStyledNumber, D2WDisplayStyledString, and D2WKeyPathContainer.


border

Type: Integer

Appears: Rule's key (right-hand side)

The width of the border around the main table displayed in the page. This key is used by the Basic look Direct to Web templates containing tables: BASInspectPage, BASListPage, BASPlainListPage, BASQueryAllEntitiesPage, and BASQueryPage.


color

Type: String

Appears: Rule's key (right-hand side)

The color used to display the attribute. This key is used by the styled display property-level components: D2WDisplayStyledDate, D2WDisplayStyledNumber, and D2WDisplayStyledString. It is also used by the D2WKeyPathContaininer property-level component.


colorForLine

Type: String

Appears: Rule's key (right-hand side)

This key is private. You should never need to get or set the value for it.


columnCount

Type: Integer

Appears: Rule's key (right-hand side)

The maximum number of columns in the table that displays the listed objects. This key is used by the plain-list page Direct to Web templates: BASPlainListPage, NEUPlainListPage, and WOLPlainListPage.


componentAvailable

Type: String

Appears: Rule's key (right-hand side)

The name of a property-level component that can be used to display a property. The Web Assistant asks the rule system for all rules that can fire for this key to determine which property-level components can be used to display a property.


componentBorder

Type: Integer

Appears: Rule's key (right-hand side)

The width of the border around the table displayed in the property-level component. This key is used by the D2WDisplayToManyTable and D2WKeyPathContainer property-level components.


componentName

Type: String

Appears: Rule's key (right-hand side)

The name of a property-level component that can be used to display a particular property for a particular task and entity. This key is used by the Direct to Web templates.


customComponentName

Type: String

Appears: Rule's key (right-hand side)

The name of a custom WOComponent defined in your project. This key is used by the D2WCustomComponent and D2WCustomQueryComponent property-level components.


disabled

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has value of 1 when the current property-level component's hyperlink is disabled and a value of 0 otherwise. This key is used by the D2WDisplayToManyTable, D2WDisplayToOne, D2WEditToOneFault, and D2WKeyPathContainer property-level components.


displayNameForProperty

Type: String

Appears: Rule's key (right-hand side)

A String containing a representation of the current property's name that is suitable for displaying in a user interface.


displayPropertyKeys

Type: NSArray

Appears: Rule's key (right-hand side)

An array of keys for the properties that are visible on the page for the receiver's current task and entity. A Direct to Web template that displays the properties of an entity usually iterates through this list. You can change the visible properties on a page using the Web Assistant.


editIcon

Type: String

Appears: Rule's key (right-hand side)

The name of the file depicting an icon the user clicks to edit a relationship. The file must be in your project's WebServerResources suitcase. This key is used by the D2WEditToManyFault and the D2WEditToOneFault property-level components.


entity

Type: EOEntity

Appears: Rule's condition (left-hand side)

The receiver's current entity, stored in the receiver's state dictionary. The value for this key is set by the Direct to Web factory when it creates a new Direct to Web page.


formatter

Type: String

Appears: Rule's key (right-hand side)

A string containing a format specification. This key is used by the number and date property-level components. It is also used by the D2WEditString and D2WQueryStringComponent property-level components.


framesActive

Type: Integer

Appears: Rule's key (right-hand side)

This key is private. You should never need to get or set the value for it.


framework

Type: String

Appears: Rule's key (right-hand side)

The name of the framework containing the image displayed by the D2WDisplayImageFromPath property level component. Defaults to "app" for images in your application.


inspectComponentName

Type: String

Appears: Rule's key (right-hand side)

This key is private. You should never need to get or set the value for it.


inspectIcon

Type: String

Appears: Rule's key (right-hand side)

The name of the file depicting an icon the user clicks to inspect a relationship. The file must be in your project's WebServerResources suitcase. This key is used by the D2WEditToManyFault and the D2WEditToOneFault property-level components.


isDeep

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 when fetches should include sub-entities of the fetch specification's entity. Defaults to 0. This key is used by the fetch specifications for query pages.


italic

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 when text is displayed in italics and a value of 0 otherwise. This key is used by the styled display property-level components: D2WDisplayStyledDate, D2WDisplayedStyledNumber, D2WDisplayStyledString, and D2WKeyPathContainer.


justification

Type: String

Appears: Rule's key (right-hand side)

A flag indicating whether or not the text is justified. This key is used by the list page Direct to Web templates: BASListPage, NEUListPage, and WOLListPage.


keyWhenRelationship

Type: String

Appears: Rule's key (right-hand side)

When the receiver's current property is a relationship, the value for this key is the key for a property of the destination entity that identifies the entity. For example, if the receiver's current entity is Movie and the current property is the toStudio relationship, the destination entity is Studio. An appropriate value for keyWhenRelationship is name since the name property identifies the studio.


length

Type: Integer

Appears: Rule's key (right-hand side)

The size of the field used to display a property.


numCols

Type: Integer

Appears: Rule's key (right-hand side)

The number of columns in the table of checkboxes or radio buttons used to display the destination objects of a relationship. This key is used by the D2WDisplayToManyTable, D2WEditToManyRelationship, D2WEditToOneRelationship, D2WKeyPathContainer, D2WQueryToManyRelationship, and D2WQueryToOneRelationship property-level components.


pageAvailable

Type: String

Appears: Rule's key (right-hand side)

The name of a Direct to Web template that can be used to display a page. The Web Assistant asks the rule system for all rules that can fire for this key to determine which Direct to Web templates can be used to display a page. See the "Customizing A Direct to Web Application" chapter of Developing WebObjects Applications With Direct to Web for an example of how to create a rule for this key.


pageName

Type: String

Appears: Rule's key (right-hand side)

The name of the Direct to Web template used to display a page. Used by the Direct to Web factory when creating new pages.


pageWrapperName

Type: String

Appears: Rule's key (right-hand side)

The name of the page wrapper WOComponent in which the Direct to Web page appears. Defaults to "PageWrapper". If you did not use the Direct to Web wizard to create your project, you should create a component called PageWrapper.wo and add it to your project.


propertyIsKeyPath

Type: Integer

Appears: Rule's condition (left-hand side)

A flag that has a value of 1 when the receiver's current property is a key path and a value of 0 otherwise. The value for this key is derived from propertyKey.


propertyKey

Type: String

Appears: Rule's condition (left-hand side)

A String containing the key for the receiver's current property. When the the value for this key is set, the values for the attribute, propertyIsKeyPath, propertyType, and relationship keys are derived from it. The value for this key is stored in the receiver's state dictionary.


propertyType

Type: String

Appears: Rule's condition (left-hand side)

A String representing the type of the receiver's current property. Resolves to "r" if the property is a relationship, "a" if the property is an attribute, "c" if the property is a custom property, and "k" if the property is a key path. The value for this key is derived from propertyKey.


readOnly

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 when the receiver's current entity cannot be modified and a value of 0 otherwise. You can change which entites are read-only using the Web Assistant.


readOnlyEntityNames

Type: NSArray

Appears: Rule's key (right-hand side)

An array of entity names that are read-only. You can change which entities are read-only using the Web Assistant.


refreshRefetchedObjects

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 when existing objects are overwritten with fetched values when they've been updated or changed. If the flag's value is 0 (the default), existing objects aren't touched when their data is refetched (the fetched data is simply discarded). This key is used by the fetch specifications for query pages.


relationship

Type: EORelationship

Appears: Rule's condition (left-hand side)

The receiver's current relationship. Resolves to null if the current property is not a relationship. The value for this key is derived from propertyKey.


rows

Type: Integer

Appears: Rule's key (right-hand side)

The number of rows in the D2WDisplayLargeString and D2WEditLargeString property-level components. The value for this key is passed to the ROWS attribute of the component's TEXTAREA tag.


selectButtonFileName

Type: String

Appears: Rule's key (right-hand side)

The name of the file depicting the an icon the user clicks to select a record in a select component. The file must be in your project's WebServerResources suitcase. This key is used by the BASListPage and WOLListPage Direct to Web templates.


showBanner

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 when the banner should be displayed by a Direct to Web template and a value of 0 otherwise. This key is useful if you embed a Direct to Web reusable component in one of your pages and find that the banner is too big or unattractive in the page.


size

Type: Integer

Appears: Rule's key (right-hand side)

The number of rows in the browsers displayed by some of the relationship property-level components. Defaults to 8.


startupEntityName

Type: String

Appears: Rule's key (right-hand side)

The name of entity used on startup page. Since the startup page is a query-all page by default, this key is not used in a Direct to Web application generated by the wizard. If you change the default startup task (see startupTask) to one that requires an entity, use this key.


startupTask

Type: String

Appears: Rule's key (right-hand side)

The startup page task. Defaults to "queryAll". If you override this default and specify a task that requires an entity, you need to specify the value for the startupEntityName key.


subtask

Type: String

Appears: Rule's condition (left-hand side)

This key is private. You should never need to get or set the value for it.


tabContents

Type: String

Appears: Rule's key (right-hand side)

This key is private. You should never need to get or set the value for it.


tableWidth

Type: Number

Appears: Rule's key (right-hand side)

The width of the tab panel. This key is used by the NEUTabInspectPage and the WOLTabInspectPage Direct to Web templates.


tabName

Type: String

Appears: Rule's key (right-hand side)

The name of the tab (in a tab-inspect page) the receiver's current property is in. To specify which properties appear in tab called myTab, you need to write rules that specify the properties for which tabName=myTab.


tabs

Type: NSArray

Appears: Rule's key (right-hand side)

An array containing the tab names.


target

Type: String

Appears: Rule's key (right-hand side)

This key is private. You should never need to get or set the value for it.


task

Type: String

Appears: Rule's condition (left-hand side)

The receiver's current task, stored in the receiver's state dictionary. The value for this key is set by the Direct to Web factory when it creates a new Direct to Web page.


threshold

Type: Integer

Appears: Rule's key (right-hand side)

This key is private. You should never need to get or set the value for it.


uiStyle

Type: String

Appears: Rule's key (right-hand side)

The user interface style used by the certain relationship property-level components. For the D2WEditToOneRelationship and D2WQueryToOneRelationship components, the value can be "browser", "popup", or "radio". For the D2WEditToManyRelationship and D2WQueryToManyRelationship components, the value can be "browser", or "checkbox"


usesDistinct

Type: Integer

Appears: Rule's key (right-hand side)

A flag that has a value of 1 when duplicate objects or records are removed after fetching. Defaults to 0. This key is used by the fetch specifications for query pages.


visibleEntityNames

Type: NSArray

Appears: Rule's key (right-hand side)

An array of entities that appear in the application. These entities can be read-only or not. You can set which entities appear in your application using the Web Assistant.


webAssistantPageName

Type: String

Appears: Rule's key (right-hand side)

This key is private. You should never need to get or set the value for it.