Auf dieser Seite befinden sich einige Beispiele für den Einsatz von [Activate JS] und [JSF Activate JS]. Wie ein Framework angewendet werden kann, zeigt sich oft durch Code aus der Praxis. Hier finden Sie solche Ausschnitte. !!!Select2 Autocomplete Dropdown Folgendes Beispiel zeigt die Integration des auf [JQuery] basierenden Select2-Dropdowns (Dritthersteller) in das [Activate JS] Framework. Zunächst das Control selbst: {{{ $.controls.extend({ autocomplete: function(next) { var value = this.control.get(); this.element.select2({ multiple: value.type == "multiple", dropdownCssClass: "ui-widget", createSearchChoice: function(term, data) { return {id: term, text: term}; }, initSelection: function(element, callback) { if (value.value == null || value.value == "") return; if (value.type == "multiple") { callback($.map((value.value || "").split(","), function(value) { return {id: value, text: value}; })); } else { callback({id: value.value, text: value.value}); } }, query: function(query) { var data = {element: value, search: query.term, page: query.page}; query.element.trigger("autocomplete", {data: data, callback: function(response) { query.callback({results: response}); }}); } }); this.element.select2("val", []); next(); } }); }}} Folgender Code ist die Anwendung des Controls im JSF/XHTML mittels [JSF Activate JS] Basis-Tag <j:activate>: {{{ <j:activate events="change autocomplete" value="#{autocompleteController.node}" variable="node" handler="#{autocompleteController}"> <div control="{autocomplete: this.node, bind: this.node.value}"/> </j:activate> }}} Schließlich der Java-Code: {{{ public class AutocompleteController implements Serializable { [...] public Node getValue() { if (value == null) value = new Node(); return value; } public void change(Node node) { this.value = node; } public List<Select2Item> autocomplete(Query query) { return getComplete().stream() .filter(s -> s.contains(query.getSearch())) .map(Select2Item::new) .collect(Collectors.toList()); } } }}}