Changeset 179


Ignore:
Timestamp:
12/30/07 21:31:25 (5 years ago)
Author:
Lantash
Message:

Turned App.History.Node and its descendant App.History.RootNode? into modules (mixins). [Closes #48]

Location:
trunk/javascript
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/javascript/klassenbuch.comments.js

    r177 r179  
    386386}(); 
    387387 
    388 Comments.Comment = Class.create(App.History.Node, { 
     388Comments.Comment = Class.create({ 
    389389        initialize: function(comment) { 
    390390                this.id = comment.id; 
     
    430430                return new Comments.Comment.Control(this); 
    431431        } 
    432 }).addMethods(Observable); 
     432}).addMethods(Observable).addMethods(App.History.Node); 
    433433 
    434434Comments.Comment.Control = function() { 
  • trunk/javascript/klassenbuch.controls.js

    r177 r179  
    693693}); 
    694694 
    695 Controls.Menu = Class.create(Controls.TabControl, App.History.RootNode.prototype, { 
     695Controls.Menu = Class.create(Controls.TabControl, { 
    696696        initialize: function($super, initialState) { 
    697697                $super("content", false); 
     
    721721                return tab; 
    722722        } 
    723 }); 
    724  
    725 Controls.TabControl.TabPage = Class.create(Control, App.History.Node.prototype, { 
     723}).addMethods(App.History.RootNode); 
     724 
     725Controls.TabControl.TabPage = Class.create(Control, { 
    726726        initialize: function($super, caption) { 
    727727                $super(new Element("div")); 
     
    752752                }, this); 
    753753        } 
    754 }); 
     754}).addMethods(App.History.Node); 
    755755 
    756756Controls.TabControl.TabPageWithButtonControl = Class.create(Controls.TabControl.TabPage, { 
     
    11881188}); 
    11891189 
    1190 Controls.Window = Class.create(Controls.RoundedPane, App.History.Node.prototype, { 
     1190Controls.Window = Class.create(Controls.RoundedPane, { 
    11911191        initialize: function($super, type, options) { 
    11921192                this.type = type; 
     
    12751275                this._leaveActiveSubNode(); 
    12761276        } 
    1277 }); 
     1277}).addMethods(App.History.Node); 
    12781278 
    12791279Controls.Window.prototype.close = Controls.Window.prototype.remove; 
  • trunk/javascript/klassenbuch.gallery.js

    r177 r179  
    587587}).addMethods(Observable); 
    588588 
    589 Gallery.PictureViewer = Class.create(Controls.AutoResizingControl, App.History.Node.prototype, { 
     589Gallery.PictureViewer = Class.create(Controls.AutoResizingControl, { 
    590590        initialize: function($super, pictures, indexToDisplay, autoStartSlideShow) { 
    591591                this.pictures = pictures.toArray(); 
     
    809809                } 
    810810        } 
    811 }); 
     811}).addMethods(App.History.Node); 
    812812 
    813813Gallery.PictureViewer.prototype.leave = Gallery.PictureViewer.prototype.remove; 
  • trunk/javascript/klassenbuch.history.js

    r177 r179  
    428428}(); 
    429429 
    430 App.History.Node = Class.create({ 
     430App.History.Node = { 
    431431        initializeHistoryNode: function() { 
    432432                this._subNodes = {}; 
     
    622622                } 
    623623        } 
    624 }); 
     624}; 
    625625 
    626 App.History.RootNode = Class.create(App.History.Node, { 
     626App.History.RootNode = Object.extend(Object.clone(App.History.Node), { 
    627627        initializeHistoryNode: function(initialState) { 
    628628                var self = this; 
     
    646646                } 
    647647                 
    648                 App.History.Node.prototype.initializeHistoryNode.call(this); 
     648                App.History.Node.initializeHistoryNode.call(this); 
    649649        }, 
    650650         
    651651        _handleStateChange: function(state) { 
    652                 App.History.Node.prototype._handleStateChange.call(this, (Object.isArray(state) && state.length) ? state : [this._initialState]); 
     652                App.History.Node._handleStateChange.call(this, (Object.isArray(state) && state.length) ? state : [this._initialState]); 
    653653        } 
    654654}); 
  • trunk/javascript/klassenbuch.js

    r177 r179  
    3333*/ 
    3434var App = Object.extend(/** @scope App */ { 
    35     /** 
    36     * Initialisiert das Klassenbuch. Dabei wird überprüft, ob das Klassenbuch mit der verwendeten Browser-Version 
    37     * kompatibel ist und das Hauptmenü des Klassenbuchs eingerichtet. Zusätzlich werden die beiden Ereignisse 
    38     * <em>beforeInitialize</em> und <em>initialize</em> ausgelöst. 
    39     */ 
     35        /** 
     36        * Initialisiert das Klassenbuch. Dabei wird überprüft, ob das Klassenbuch mit der verwendeten Browser-Version 
     37        * kompatibel ist und das Hauptmenü des Klassenbuchs eingerichtet. Zusätzlich werden die beiden Ereignisse 
     38        * <em>beforeInitialize</em> und <em>initialize</em> ausgelöst. 
     39        */ 
    4040        initialize: function() { 
    41         // Verhindert, dass das Klassenbuch mehrmals initialisiert werden kann und prüft die Kompatibilität 
    42         if (!this.initialized && this.checkBrowserCompatibility()) { 
    43             this.fireEvent("beforeInitialize"); 
    44                          
    45             // Richtet das Hauptmenü ein. 
    46             this.Menu = $("menu").insertControl(new Controls.Menu("aufgaben"), "top"); 
    47              
    48             this.fireEvent("initialize"); 
     41                // Verhindert, dass das Klassenbuch mehrmals initialisiert werden kann und prüft die Kompatibilität 
     42                if (!this.initialized && this.checkBrowserCompatibility()) { 
     43                        this.fireEvent("beforeInitialize"); 
     44                         
     45                        // Richtet das Hauptmenü ein. 
     46                        this.Menu = $("menu").insertControl(new Controls.Menu("aufgaben"), "top"); 
     47                         
     48                        this.fireEvent("initialize"); 
    4949                         
    5050                        var state = ["aufgaben"]; 
     
    5252                        if (this.History.browserSupported) { 
    5353                                this.History.start("aufgaben"); 
    54                                  
     54 
    5555                                var bookmarked = this.History.getBookmarkedState(); 
    56                                  
     56 
    5757                                if (bookmarked) { 
    5858                                        state = bookmarked.split("/"); 
    5959                                } 
    60             } 
    61                          
     60                        } 
     61 
    6262                        this.Menu._handleStateChange(state); 
    63              
    64             // Versteckt den Laden-Hinweis 
    65             $("activeRequest").hide(); 
    66                          
    67             this.initialized = true; 
     63                 
     64                        // Versteckt den Laden-Hinweis 
     65                        $("activeRequest").hide(); 
     66         
     67                        this.initialized = true; 
    6868                } 
    6969        }, 
     
    9494        }, 
    9595     
    96     /** 
    97     * Eine Auflistung aller existierenden Fenster, unabhängig davon, ob sie sichtbar sind oder nicht. 
    98     * @type WindowCollection 
    99      */ 
     96        /** 
     97        * Eine Auflistung aller existierenden Fenster, unabhängig davon, ob sie sichtbar sind oder nicht. 
     98        * @type WindowCollection 
     99        */ 
    100100        Windows: new WindowCollection(), 
    101          
    102     /** 
    103     * Das Hauptmenü des Klassenbuchs, das den Zugriff auf die verschiedenen Bereiche des Klassenbuchs ermöglicht. 
    104     * Jeder Menüpunkt ist in einer bestimmten Quelldatei definiert. Die Menüpunkte werden zudem aus ebendiesen Dateien 
    105     * dem Menü hinzugefügt. 
    106     * @type Controls.TabControl 
    107     */ 
     101 
     102        /** 
     103        * Das Hauptmenü des Klassenbuchs, das den Zugriff auf die verschiedenen Bereiche des Klassenbuchs ermöglicht. 
     104        * Jeder Menüpunkt ist in einer bestimmten Quelldatei definiert. Die Menüpunkte werden zudem aus ebendiesen Dateien 
     105        * dem Menü hinzugefügt. 
     106        * @type Controls.TabControl 
     107        */ 
    108108        Menu: null, 
    109109         
     
    115115         
    116116        /** 
    117     * Gibt an, ob das Klassenbuch bereits initialisiert worden ist. Standartwert ist <em>false</em>. 
    118     * @type Boolean 
    119      */ 
     117        * Gibt an, ob das Klassenbuch bereits initialisiert worden ist. Standartwert ist <em>false</em>. 
     118        * @type Boolean 
     119        */ 
    120120        initialized: false 
    121121}, Observable); 
     
    198198*/ 
    199199var Comparators = { 
    200     /** 
    201     * @method Vergleicht zwei Fliesskommazahlen. Es erfolgt eine automatische Umwandlung der zwei Eingabewerte zum Typ¨ 
    202     * <em>Float</em>. 
    203     * @param {Object} a Die erste Fliesskommazahl 
    204     * @param {Object} b Die zweite Fliesskommazahl 
    205     * @returns {Integer} 
    206     */ 
     200        /** 
     201        * @method Vergleicht zwei Fliesskommazahlen. Es erfolgt eine automatische Umwandlung der zwei Eingabewerte zum Typ¨ 
     202        * <em>Float</em>. 
     203        * @param {Object} a Die erste Fliesskommazahl 
     204        * @param {Object} b Die zweite Fliesskommazahl 
     205        * @returns {Integer} 
     206        */ 
    207207        numeric: function(a, b) { 
    208208                return parseFloat(a) - parseFloat(b); 
    209209        }, 
    210210         
    211     /** 
    212     * @method Vergleicht zwei Zeichenfolgen. 
    213     * @param {String} a Die erste Zeichenfolge 
    214     * @param {String} b Die zweite Zeichenfolge 
    215     * @returns {Integer} 
    216     */ 
     211        /** 
     212        * @method Vergleicht zwei Zeichenfolgen. 
     213        * @param {String} a Die erste Zeichenfolge 
     214        * @param {String} b Die zweite Zeichenfolge 
     215        * @returns {Integer} 
     216        */ 
    217217        string: function(a, b) { 
    218218                a = a.toLowerCase().replace(/ä/g, "a").replace(/ö/g, "o").replace(/ü/g, "u"); 
  • trunk/javascript/klassenbuch.tasks.js

    r176 r179  
    966966 * @class 
    967967*/ 
    968 TaskManagement.Task = Class.create(App.History.Node, /** @scope TaskManagement.Task.prototype */ { 
     968TaskManagement.Task = Class.create(/** @scope TaskManagement.Task.prototype */ { 
    969969    initialize: function(task) { 
    970970                this.initializeHistoryNode(); 
     
    11161116                }); 
    11171117        } 
    1118 }).addMethods(Observable); 
     1118}).addMethods(Observable).addMethods(App.History.Node); 
    11191119 
    11201120// Bewirkt, dass beim Initialisieren des Klassenbuchs die Aufgabenansicht als Menüpunkt dem Klassenbuch hinzugefügt wird 
Note: See TracChangeset for help on using the changeset viewer.