![]() |
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 EntryFieldRenderers, 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 References 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 EntryFields defined in terms of References between entries, loops over the Reference objects like a references tag might.entry.field.labels - For EntryFields defined in terms of one or more Labels currently appearing on an Entry, loops over the selected Labels.entry.field.date - Effectively a synonym for the entry.field.displayvalue tag that works with values that are single dates.entry.field.standarddatename - For EntryFields 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 Values 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 Values were Users, 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 EntrySetEntrySet 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