The ScriptColumnData object is passed to the script-defined entry points for any custom columns added by a script add-in. The method name for these events is defined by the script itself, but generically it's referred to as OnScriptColumn. Note that the fields group, sort, type and value are settable and are the way your method returns values for your column.
Property Name |
Return Type |
Description |
---|---|---|
col |
string |
Provides the name of the column that Opus wants the script to return the value for. If you use the same OnScriptColumn method to provide multiple columns you can use this to tell the columns apart. |
columns |
object:Map |
If the ScriptColumn.multicol
value is set to True when the column is added,
then this property provides a Map that lets you
return the values of one or more columns at once. You should check if a column exists in the map before populating data for it. In some situations, Opus will only request a some of the columns your add-in supports, not all of them. If you do not fill in data for a column which Opus still needs, Opus will call your method again to request it, with its name in the col property (but still in multi-column mode). You can take advantage of this if calculating one piece of data yields values for some of your columns but not all of them. You do not need to populate every column if the data is not available, but you should at least populate the col column. As a consequence of the above, when using multi-column mode you should always set some kind of value for any column you have spent time calculating, even if the result of the calculation is that nothing should be shown in the column. If nothing should be shown, set the value to an empty string (this is fine even if the column normally displays numbers or another type of data). If you don't set any value at all, Opus will assume you haven't calculated that column yet and may call your script again to ask for it, which could cause you to waste time re-calculating it when you already know it is blank. |
group |
string |
If the ScriptColumn.autogroup
value is set to False when the column is added,
you should set this value to indicate the group that this file should be
placed in when the list is grouped by your column. If you don't provide a
group then this file will go into the Unspecified group. If
autogroup is set to True this value is
ignored. |
group_type |
string |
If the group is set via the group property,
group_type lets you control the formatting of the group
title using the same keywords as the type field (e.g. you
can supply a number and have the group title formatted as a file size by
setting group_type="size"). |
item |
object:Item |
Returns an Item object representing the file or folder that Opus wants the script to return the column value for. |
sort |
variant |
Lets you control the sort order of your column by providing a sort
key that can be different to the value. If provided,
and the list is sorted by your column, Opus will use the value of this
field to position this item rather than the value
value. |
tab |
object:Tab |
Returns a Tab object representing the tab that contains the item. |
type |
string |
Lets you override the default type of the column (set via ScriptColumn.type when the column was added) on a per-file/folder basis. If not specified, and no default was specified either, then columns default to plain text. Note that if the ScriptColumn.multicol value is set to True when the column is added then this property will be found inside the columns Map. Acceptable values are:
For date, time and datetime columns, you can also specify utc to have the values automatically converted from UTC to local time (e.g. datetime,utc). For number and double columns, you can also specify signed to have the values treated as signed rather than unsigned (e.g. number,signed). The options above are a subset of those you can specify via ScriptColumn.type, since not all options make sense on a per-file/folder basis. Note that if you mix different types within the one column then the results you get when sorting by this column, or searching on your column using the Advanced Find function, may be hard to predict. |
value |
variant |
This field is how your method returns the actual value for your column
- that is, the information that is displayed to the user in this column
for each file and folder. |
userdata |
variant |
This returns the value associated with this column via ScriptColumn.userdata (if any)
when the column was added. |