Как изменить вид элементов дерева в зависимости от условий

В версии 550 появилась возможность изменить вид элементов дерева в зависимости от условий.

Как изменить вид элементов дерева.

  1. В файле trackstudio.default.properties активировать опцию
    trackstudio.tree.node.mask=mask

    mask в данном случае - имя дополнительного поля, в котором содержится маска.

  2. Создать в системе поле типа строка с именем, указанным в trackstudio.node.mask .
  3. В качестве значения в этом поле указать маску.
    Маска описывается обычным html кодом
    <b>%s</b>
    

    где %s - имя элемента.

Как изменить вид элементов дерева в зависимости от условий.

Для случаев, когда необходимо изменять вид элементов дерева в зависимости от условий, поле с маской нужно сделать вычисляемым. Само поле в настройках доступа можно скрыть от всех пользователей, чтобы не мешало.
Все условия обрабатываются в скрипте, используемом для этого поля.
Пример.

package scripts.task_custom_field_value.example;

import com.trackstudio.exception.GranException;
import com.trackstudio.external.TaskUDFValueScript;
import com.trackstudio.secured.SecuredTaskBean;

public class TaskCustomFieldValue implements TaskUDFValueScript {
    @Override
    public Object calculate(SecuredTaskBean task) throws GranException {
        return task.getStatus().isStart() ? "<font face=\"verdana\" color=\"green\">%s</font>" : "<font color=\"red\">%s</font>";
    }
}

Данный скрипт изменит цвет шрифта на зеленый и установит шрифт verdana для задач, которые находятся в начальном состоянии. Для всех остальных состояний задачи будет использован красный цвет шрифта.