// ---------------------------------------------- // Beispiel lit-8 // lit.js // ---------------------------------------------- // Verwendung von jquery, inheritance, Single-Page / Ajax, Event-Service // REST-Interface // ---------------------------------------------- // ---------------------------------------------- // Namensraum einrichten // ---------------------------------------------- var LITAPP = {}; // ---------------------------------------------- LITAPP.Application_cl = Class.create({ // ---------------------------------------------- initialize: function () { this.content_o = null; // das jeweils aktuelle Objekt im Contentbereich this.nav_o = new LITAPP.Nav_cl(); this.listView_o = new LITAPP.ListView_cl(); this.detailView_o = new LITAPP.DetailView_cl(); // Registrierungen LITAPP.es_o.subscribe_px(this, 'app'); }, notify_px: function (self_opl, message_spl, data_apl) { switch (message_spl) { case 'app': switch (data_apl[0]) { case 'init': LITAPP.tm_o = new TELIB.TemplateManager_cl(); break; case 'templates.loaded': // Liste im Content-Bereich anzeigen self_opl.setContent_p(self_opl.listView_o, data_apl[1]); break; case 'list': // Liste im Content-Bereich anzeigen self_opl.setContent_p(self_opl.listView_o, data_apl[1]); break; case 'add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailView_o, data_apl[1]); break; case 'edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailView_o, data_apl[1]); break; case 'back': // Detailformular wird verlassen, Liste im Content-Bereich anzeigen self_opl.setContent_p(self_opl.listView_o, data_apl[1]); break; default: console.warning('[Application_cl] unbekannte app-Notification: '+data_apl[0]); break; } break; default: console.warning('[Application_cl] unbekannte Notification: '+message_spl); break; } }, setContent_p: function (newContent_opl, data_opl) { if (this.content_o != null) { if (this.content_o === newContent_opl) { // wird bereits angezeigt, keine Änderung } else { if (this.content_o.canClose_px()) { this.content_o.close_px(); this.content_o = newContent_opl; this.content_o.render_px(data_opl); } } } else { this.content_o = newContent_opl; this.content_o.render_px(data_opl); } } }); // ---------------------------------------------- $(document).ready(function(){ // ---------------------------------------------- // wird ausgeführt, wenn das Dokument vollständig geladen wurde LITAPP.es_o = new EventService_cl(); LITAPP.app_o = new LITAPP.Application_cl(); LITAPP.es_o.publish_px('app', ['init', null]); }); // EOF