скрипти віджета

Скрипти віджета дозволяють виконувати операції користувача з компонентами віджета і даними сервера. Скрипти написані на мові Java. Кожен скрипт виконується в Java Virtual Machine (JVM), в якій виконується віджет (це може бути JVM, що запускає AggreGate Client або AggreGate Server JVM, якщо віджет запускається в веб-інтерфейсі). Таким чином, скрипт має доступ до всіх об'єктів внутрішньої пам'яті і струткура віджета. Скрипти дають вам можливість повністю контролювати віджет.

Права доступу скрипта ніяк не обмежені. Одна випадкова помилка в скрипті або ворожий програмний код можуть привести до неправильного функціонування% ag%> сервера або клієнта, до їх зависання, 100% завантаженні процесора, пошкодження даних або навіть пошкодження даних пристрою, який запустив скрипт!

Запуск виконання скрипта

Скрипт віджета виконується в двох випадках:

Скрипти створюються в потоці обробки прив'язки, тому їх виконання може займати багато часу з урахуванням обробки інших прив'язок віджета. Рекомендується створювати нові потоки для виконання завдань скриптів віджета, які потребують великої кількості часу.

Скрипти створюються і управляються редагуванням властивостей Скриптів кореневої панелі віджета.

Кожен скрипт є класом Java, який повинен виконувати інтерфейс WidgetScript:

public interface WidgetScript

public void execute (WidgetScriptExecutionEnvironment environment, Object parameter);

Даний інтерфейс визначає метод execute (). який викликається при виконанні скрипта.

Результат виконання вираження прив'язки передається скрипту віджета як об'єкт parameter.

Середовище виконання скрипта

Кожен скрипт має доступ до об'єкта, що виконує інтерфейс WidgetScriptExecutionEnvironment. який передається як аргумент для методу execute (). WidgetScriptExecutionEnvironment виглядає наступним чином:

public interface WidgetScript

public void execute (WidgetScriptExecutionEnvironment environment, Object parameter);

Примірник WidgetScriptExecutionEnvironment забезпечує доступ до об'єкта, що виконує інтерфейс GUIEngine (отримати інтерфейс можна шляхом виклику методу getEngine ()). GUIEngine забезпечує доступ до об'єктів, які відповідають за виконання віджету.

При створенні нового скрипта його текст непорожній. Він містить автоматично генерується клас з порожнім методом execute (). Нижче наведено текст скрипта за замовчуванням:

public class users_admin_widgets_scripts_refresh implements WidgetScript

public void execute (WidgetScriptExecutionEnvironment environment, Object parameter)

Див. Розділ Загальні вказівки з програмування для отримання інформації про розробку скриптів віджетів AggreGate.

По суті скрипти повинні виконувати наступне:

• Генерувати події компонентів віджета

• Викликати операції сервера і пристрої (функції)

У більшості випадків всі операції повинні проводитися через інтерфейс Context.

Для отримання Context. відповідного будь-якого об'єкта сервера, використовуйте наступний код:

WidgetEngine engine = environment.getEngine ();

ContextManager contextManager = engine.getServerContextManager ();

Context serverContext = contextManager.get ( "server.context.path");

Для отримання Context. відповідного певного компоненту віджета, використовуйте наступний код:

Context componentContext = environment.getComponentContext ( "widget_component_name");

Приклад 1: Обробка властивості компонента

Context dataTableEditorContext = environment.getComponentContext ( "dataTableEditor1");

DataTable dataTable = dataTableEditorContext.getVariable ( "dataTable");

// Process the data here

Приклад 2: Закриття іншого віджета

Цей приклад ілюструє, як один віджет закриває інший віджет за допомогою клацання миші.

Скрипт викликає статичний метод ClientUtils.removeFrame () і передає ключу фрейма дію до закриття. Ключ фрейма віджета створюється методом ClientUtils.createWidgetFrameKey (). який приймає шлях контексту віджета і шлях його контексту за замовчуванням (або кореневий шлях контексту, тобто порожній рядок в разі абсолютного віджета).

public class% ScriptClassNamePattern% implements WidgetScript

Схожі статті