home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2013 September / PCgo_CD_13_09.iso / interface / lib / Config.js next >
Encoding:
Text File  |  2013-04-11  |  4.0 KB  |  169 lines

  1. /**
  2.  * Konfigurations-Klasse die auf dem Module Pattern basiert. 
  3.  * Hier werden alle erforderlichen Bibliotheken und sonstigen Einstellungen der Anwendung geladen.
  4.  * 
  5.  * @namespace IM
  6.  * @class Config
  7.  * @constructor
  8.  */
  9. IM.Config = function ( window, undefined ) {
  10.     var APP_CONTENT_FRAME,
  11.         APP_BASE_PAGE_URL,
  12.         APP_BASE_CSS_URL,
  13.         APP_BASE_SITEMAP,
  14.         APP_BASE_SITEMAP_MENU,
  15.         _gui, 
  16.         _path, 
  17.         _fs;
  18.     
  19.     /**
  20.      * Liefert die ID des iFrames das den Inhalt l├ñdt
  21.      * @property APP_CONTENT_FRAME
  22.      * @type String
  23.      */
  24.     APP_CONTENT_FRAME = 'frameContent';
  25.     
  26.     /**
  27.      * Liefert die Datei der Startseite
  28.      * @property APP_BASE_PAGE_URL
  29.      * @type String
  30.      */
  31.     APP_BASE_PAGE_URL = 'start.html';
  32.     
  33.     /**
  34.      * Liefert den Pfad zur CSS-Datei f├╝r die Detailseiten
  35.      * @property APP_BASE_CSS_URL
  36.      * @type String
  37.      */
  38.     APP_BASE_CSS_URL = 'css/style.css';
  39.     
  40.     /**
  41.      * Liefert den Pfad zur XML-Datei f├╝r die Sitemap
  42.      * @property APP_BASE_SITEMAP
  43.      * @type String
  44.      */
  45.     APP_BASE_SITEMAP = 'interface/sitemap.xml';
  46.     
  47.     /**
  48.      * Gibt an welches Men├╝-Element die Sitemap beinhalten soll.
  49.      * @property APP_BASE_SITEMAP_MENU
  50.      * @type String
  51.      */
  52.     APP_BASE_SITEMAP_MENU = 'overview_item4';
  53.     
  54.     /**
  55.      * L├ñdt die native UI Bibliothek
  56.      * @property _gui
  57.      * @type Object
  58.      * @private
  59.      */
  60.     _gui = require( 'nw.gui' );
  61.     
  62.     /**
  63.      * L├ñdt die Bibliothek f├╝r Pfade
  64.      * @property _path
  65.      * @type Object
  66.      * @private
  67.      */
  68.     _path = require( 'path' );
  69.     
  70.     /**
  71.      * L├ñdt "FileSystem"-Funktion von NodeJS
  72.      * @property _fs
  73.      * @type Object
  74.      * @private
  75.      */
  76.     _fs = require( 'fs' );
  77.     
  78.     /**
  79.      * L├ñdt node-module xml2js zur Verarbeitung von XML-Dokumenten
  80.      * @property _xml
  81.      * @type Object
  82.      * @private
  83.      */
  84.     _xml = require( 'xml2js' );
  85.  
  86.     /**
  87.      * Legt die Eigenschaften f├╝r das Anwendungsfenster fest.
  88.      * @method _setWindowProperties
  89.      * @param {Object} gui Das geladene gui-lib-object ( Wird f├╝r Window-Eigenschaften ben├╢tigt )
  90.      * @param {Object} fs Das geladene fs-lib-object ( L├ñdt die erforderlichen Methoden um auf das Dateisystem( fs = Filesystem ) zugreifen zu k├╢nnen )
  91.      * @private
  92.      */
  93.     function _setWindowProperties( gui, fs ) {
  94.         /**
  95.          * Speichert das Window-Object
  96.          * @property win
  97.          * @private
  98.          * @type Object
  99.          */
  100.         var win = gui.Window.get();
  101.         win.setResizable( true );
  102.         win.maximize();
  103.     }
  104.     
  105.     /**
  106.      * Bestimmt ob die Eigenschaften des Anwendungsfensters aktiviert/deaktiviert werden.
  107.      * @method setWindowPropertiesStatus
  108.      * @param {Boolean} winStat Kann ├╝ber den Aufruf der Methode auf true gesetzt werden.
  109.      */
  110.     function setWindowPropertyStatus( winStat ) {
  111.         if( winStat ) {
  112.             _setWindowProperties( _gui, _fs );
  113.         }
  114.     }
  115.     
  116.     /**
  117.      * Holt das zuvor geladene Gui-Objekt.
  118.      * @method getGuiLib
  119.      * @return {Object} Gibt das geladene Objekt zur├╝ck.
  120.      */
  121.     function getGuiLib() {
  122.         return _gui;
  123.     }
  124.     
  125.     /**
  126.      * Holt das zuvor geladene Path-Objekt.
  127.      * @method getPathLib
  128.      * @return {Object} Gibt das geladene Objekt zur├╝ck.
  129.      */
  130.     function getPathLib() {
  131.         return _path;
  132.     }
  133.     
  134.     /**
  135.      * Holt das zuvor geladene Fs-Objekt.
  136.      * @method getFsLib
  137.      * @return {Object} Gibt das geladene Objekt zur├╝ck.
  138.      */
  139.     function getFsLib() {
  140.         return _fs;
  141.     }
  142.     
  143.     /**
  144.      * Holt das zuvor geladene XML2JS-Objekt.
  145.      * @method getXmlLib
  146.      * @return {Object} Gibt das geladene Objekt zur├╝ck.
  147.      */
  148.     function getXmlLib() {
  149.         return _xml;
  150.     }
  151.     
  152.     return {
  153.         APP_CONTENT_FRAME: APP_CONTENT_FRAME,
  154.         APP_BASE_PAGE_URL: APP_BASE_PAGE_URL,
  155.         APP_BASE_CSS_URL: APP_BASE_CSS_URL,
  156.         APP_BASE_SITEMAP: APP_BASE_SITEMAP,
  157.         APP_BASE_SITEMAP_MENU: APP_BASE_SITEMAP_MENU,
  158.         gui: getGuiLib(),
  159.         path: getPathLib(),
  160.         fs: getFsLib(),
  161.         xml: getXmlLib(),
  162.         loadWinProp: function ( winStat ) {
  163.            var winStat = winStat || false;
  164.            setWindowPropertyStatus( winStat );
  165.         }
  166.     };
  167.     
  168. }( window, undefined );
  169.