Download TeamPage 6.2.37 |
com.traction.sdk.token.EntryField
class and related APIs have been substantially revised.EntryField
now produces instances of the new EntryField.ValueSet<T>
interface to provide access to the values that a given Entry
has for a particular EntryField
. ValueSet
provides access to an Iterable
that covers EntryField.Value<T>
objects representing the individual values. Both ValueSet
and Value
offer the following set of methods to access either a given property or value for the aggregate set of Values
, or a given property or value for an individual Value
:T getValue()
(Value
only): the object representing the individual value.String getRawValue()
(getFullRawValue
for ValueSet
) a String representing the "raw" value, or encoding, of the full set of values or an individual value, and which is generally the same value used to create a filter.getDisplayValue(Context, GetProperty)
(getFullDisplayValue
for ValueSet
): the display text that should be used when referring to the value in the interfacegetFilter()
: the f()
search expression, or equivalent, that could be used to filter results for entries having the same value for an EntryField
.getNormalUrl(TractionUrlGenerator)
: a URL that could be used to target a view focused on the object referred to by one or more values, if applicable (e.User
or a Project
).getFilterUrl(TractionUrlGenerator)
: a URL that incorporates a search expression (probably the one from getFilter()
) which should generally target the current view but with that filter applied as a search so as to filter the results to show only those matching the value or values.getUrl(TractionUrlGenerator, boolean)
: this is a way of requesting either a normal URL or a filter URL -- the boolean
represents whether a filter URL is being requested -- but which, at the discretion of the Value
or ValueSet
implementation, may always return one or the other.EntryField
values and properties, such as URLs or filter expressions, and decorated values via EntryFieldRenderer
s, all still work exactly the same as they did, and some new tags have been added. Here are all the existing and new tags in this category:entry.field
- makes the EntryField
named by the name=
attribute the current one in Scope
.entry.field.name
- the logical name of the current EntryField
.entry.field.displayname
- the display name of the current EntryField
.entry.field.value
and entry.field.displayvalue
- For legacy reasons, this can have multiple meanings depending upon the context, but is generally intended to retrieve either the full raw value or full display value for a whole ValueSet
. The entry.field.displayvalue
tag will pass all tag attributes as properties to the getFullDisplayValue
method so that attributes such as dateformat=
or timeformat=
for a Date
/UTCDisplayDate
value can be applied in the usual way.entry.field.url
- The filter URL or normal URL for a ValueSet
, depending upon whether the context calls for one or the other to be used.entry.field.filterurl
- The filter URL for a ValueSet
.entry.field.normalurl
- The "normal" URL for a ValueSet
.entry.field.filter
- The filter search expression for a ValueSet
.entry.field.associatedentries
, entry.field.associatedentry
- For EntryFields
defined in terms of Reference
s between entries, loops over the Entry
objects like an entries
tag, or puts the single associated Entry
into scope like various other single entry variations on the entries
tag.entry.field.references
- Also for EntryField
s defined in terms of Reference
s between entries, loops over the Reference
objects like a references tag might.entry.field.labels
- For EntryField
s defined in terms of one or more Label
s currently appearing on an Entry
, loops over the selected Label
s.entry.field.date
- Effectively a synonym for the entry.field.displayvalue
tag that works with values that are single dates.entry.field.standarddatename
- For EntryField
s defined in terms of a "standard" named date, this still refers to the name of that standard date.entry.field.values
tag, which iterates over the individual Value
s from the ValueSet
representing the values an EntryField
's has for the currently scoped Entry
. The following tags can then be used to refer to the properties of each Value
: entry.field.value.rawvalue
, entry.field.value.displayvalue
, entry.field.value.url
, entry.field.value.normalurl
, entry.field.value.filterurl
, entry.field.value.filter
, entry.field.value.date
. In the case of entry.field.value.displayvalue
, as with entry.field.displayvalue
, the tag attributes are supplied as properties so that attributes such as dateformat=
or timeformat=
for a Date
/UTCDisplayDate
value can be applied in the usual way.entry.field.values
tag, the underlying objects themselves will also be put into Scope
, or otherwise used to modify the Scope
, in exactly the same way as if an SDL tag were being used to iterate over those objects directly. This means, for example, that if the objects for the Value
s were User
s, the user.*
tags will all work as they would. But the tags such as entry.field.value.displayvalue
and entry.field.value.normalurl
will all work the same way that the corresponding type-specific tags such as user.displayname
and user.url
would work. This means that those objects and their usual set of type-specific tags will be available in case, e.EntryField
rendering, they should not be necessary in the most common cases.EntryField
for a particular Entry
using Entry
's getValues(EntryField)
method. The implementation caches the ValueSet
produced by the requested EntryField
's ValueSet<?> getValues(Entry)
method so that it shouldn't generally be necessary to use any external caching mechanism.com.traction.sdk.LabelSet
and EntrySet
EntrySet
interface has been modified so that it offers read-only operations. The EntrySet.Builder
class can be used to assemble and create instances of the the new implementing class, com.traction.sdk.SimpleEntrySet
.LabelSet
interface has been created, parallel to others like EntrySet
, UserSet
, etc.Label
instances, usually from a particular LabelIterator
that comes from a particular Entry
.com.traction.sdk.DateType
interface offers a stereotyped concept of a particular type of date value. The two subtypes are the existing de-facto types represent the two previously implicit categories of standard dates: Entry.StandardIntrinsicDateType
represents various immutable properties of an Entry
; and Entry.EntryClassStandardDateType
represents a custom definition, usually in terms of entry property values, defined by the associated EntryClass
's getCustomStandardDate
method.com.traction.sdk.Label
now has a built-in getDisplayName()
method, avoiding the need to manually compose a display name using a LabelNameBucket
that appears to be related (e.Label
instances created via com.traction.sdk.Item
's new getLabels(LabelNameBucket)
method will automatically be bound to that bucket, and their getDisplayName()
method will return the result of that LabelNameBucket
's getLabelNameDisplayText(LabelName, CJournalRequest)
method.com.traction.sdk.admin.Permission
is now an enum
instead of an ordinary object. Permission
still supports some customizable configuration read from the named configurations from config/com.traction.sdk.props.SimpleProperties
related to creating "empty" stores have been improved. Also, some useless methods, which were not applicable to any valid uses, have been removed. The remaining methods make better use of singletons rather than requiring the creation of new instances for objects that do not need to be duplicated. (Server91846)LabelNameBucket
. (Proteus15532)teampage_logo.jpg
cancel-confirmation-fromdraft-clean.png
cancel-confirmation-fromdraft-dirty.png