[ Index ]
 

Code source de Kupu-1.3.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/common/ -> kupuinit.js (source)

   1  /*****************************************************************************
   2   *
   3   * Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
   4   *
   5   * This software is distributed under the terms of the Kupu
   6   * License. See LICENSE.txt for license text. For a list of Kupu
   7   * Contributors see CREDITS.txt.
   8   *
   9   *****************************************************************************/
  10  
  11  // $Id: kupuinit.js 16467 2005-08-25 11:08:10Z guido $
  12  
  13  
  14  //----------------------------------------------------------------------------
  15  // Sample initialization function
  16  //----------------------------------------------------------------------------
  17  
  18  function initKupu(iframe) {
  19      /* Although this is meant to be a sample implementation, it can
  20          be used out-of-the box to run the sample pagetemplate or for simple
  21          implementations that just don't use some elements. When you want
  22          to do some customization, this should probably be overridden. For 
  23          larger customization actions you will have to subclass or roll your 
  24          own UI object.
  25      */
  26  
  27      // first we create a logger
  28      var l = new PlainLogger('kupu-toolbox-debuglog', 5);
  29      
  30      // now some config values
  31      var conf = loadDictFromXML(document, 'kupuconfig');
  32      
  33      // the we create the document, hand it over the id of the iframe
  34      var doc = new KupuDocument(iframe);
  35      
  36      // now we can create the controller
  37      var kupu = new KupuEditor(doc, conf, l);
  38  
  39      var contextmenu = new ContextMenu();
  40      kupu.setContextMenu(contextmenu);
  41  
  42      // now we can create a UI object which we can use from the UI
  43      var ui = new KupuUI('kupu-tb-styles');
  44  
  45      // the ui must be registered to the editor like a tool so it can be notified
  46      // of state changes
  47      kupu.registerTool('ui', ui); // XXX Should this be a different method?
  48  
  49      // add the buttons to the toolbar
  50      var savebuttonfunc = function(button, editor) {editor.saveDocument()};
  51      var savebutton = new KupuButton('kupu-save-button', savebuttonfunc);
  52      kupu.registerTool('savebutton', savebutton);
  53  
  54      // function that returns a function to execute a button command
  55      var execCommand = function(cmd) {
  56          return function(button, editor) {
  57              editor.execCommand(cmd);
  58          };
  59      };
  60  
  61      var boldchecker = ParentWithStyleChecker(new Array('b', 'strong'),
  62                                               'fontWeight', 'bold', 'bold');
  63      var boldbutton = new KupuStateButton('kupu-bold-button', 
  64                                           execCommand('bold'),
  65                                           boldchecker,
  66                                           'kupu-bold',
  67                                           'kupu-bold-pressed');
  68      kupu.registerTool('boldbutton', boldbutton);
  69  
  70      var italicschecker = ParentWithStyleChecker(new Array('i', 'em'),
  71                                                'fontStyle', 'italic', 'italic');
  72      var italicsbutton = new KupuStateButton('kupu-italic-button', 
  73                                             execCommand('italic'),
  74                                             italicschecker, 
  75                                             'kupu-italic', 
  76                                             'kupu-italic-pressed');
  77      kupu.registerTool('italicsbutton', italicsbutton);
  78  
  79      var underlinechecker = ParentWithStyleChecker(new Array('u'),
  80                                     'textDecoration', 'underline', 'underline');
  81      var underlinebutton = new KupuStateButton('kupu-underline-button', 
  82                                                execCommand('underline'),
  83                                                underlinechecker,
  84                                                'kupu-underline', 
  85                                                'kupu-underline-pressed');
  86      kupu.registerTool('underlinebutton', underlinebutton);
  87  
  88      var subscriptchecker = ParentWithStyleChecker(new Array('sub'),
  89                                                    null, null, 'subscript');
  90      var subscriptbutton = new KupuStateButton('kupu-subscript-button',
  91                                                execCommand('subscript'),
  92                                                subscriptchecker,
  93                                                'kupu-subscript',
  94                                                'kupu-subscript-pressed');
  95      kupu.registerTool('subscriptbutton', subscriptbutton);
  96  
  97      var superscriptchecker = ParentWithStyleChecker(new Array('super', 'sup'),
  98                                                      null, null, 'superscript');
  99      var superscriptbutton = new KupuStateButton('kupu-superscript-button', 
 100                                                  execCommand('superscript'),
 101                                                  superscriptchecker,
 102                                                  'kupu-superscript', 
 103                                                  'kupu-superscript-pressed');
 104      kupu.registerTool('superscriptbutton', superscriptbutton);
 105  
 106      var justifyleftbutton = new KupuButton('kupu-justifyleft-button',
 107                                             execCommand('justifyleft'));
 108      kupu.registerTool('justifyleftbutton', justifyleftbutton);
 109  
 110      var justifycenterbutton = new KupuButton('kupu-justifycenter-button',
 111                                               execCommand('justifycenter'));
 112      kupu.registerTool('justifycenterbutton', justifycenterbutton);
 113  
 114      var justifyrightbutton = new KupuButton('kupu-justifyright-button',
 115                                              execCommand('justifyright'));
 116      kupu.registerTool('justifyrightbutton', justifyrightbutton);
 117  
 118      var outdentbutton = new KupuButton('kupu-outdent-button', execCommand('outdent'));
 119      kupu.registerTool('outdentbutton', outdentbutton);
 120  
 121      var indentbutton = new KupuButton('kupu-indent-button', execCommand('indent'));
 122      kupu.registerTool('indentbutton', indentbutton);
 123  
 124      var undobutton = new KupuButton('kupu-undo-button', execCommand('undo'));
 125      kupu.registerTool('undobutton', undobutton);
 126  
 127      var redobutton = new KupuButton('kupu-redo-button', execCommand('redo'));
 128      kupu.registerTool('redobutton', redobutton);
 129  
 130      var removeimagebutton = new KupuRemoveElementButton('kupu-removeimage-button',
 131                              'img',
 132                              'kupu-removeimage');
 133      kupu.registerTool('removeimagebutton', removeimagebutton);
 134      var removelinkbutton = new KupuRemoveElementButton('kupu-removelink-button',
 135                                 'a',
 136                                 'kupu-removelink');
 137      kupu.registerTool('removelinkbutton', removelinkbutton);
 138  
 139      // add some tools
 140      // XXX would it be better to pass along elements instead of ids?
 141      var colorchoosertool = new ColorchooserTool('kupu-forecolor-button',
 142                                                  'kupu-hilitecolor-button',
 143                                                  'kupu-colorchooser');
 144      kupu.registerTool('colorchooser', colorchoosertool);
 145  
 146      var listtool = new ListTool('kupu-list-ul-addbutton',
 147                                  'kupu-list-ol-addbutton',
 148                                  'kupu-ulstyles', 'kupu-olstyles');
 149      kupu.registerTool('listtool', listtool);
 150      
 151      var definitionlisttool = new DefinitionListTool('kupu-list-dl-addbutton');
 152      kupu.registerTool('definitionlisttool', definitionlisttool);
 153      
 154      var proptool = new PropertyTool('kupu-properties-title', 'kupu-properties-description');
 155      kupu.registerTool('proptool', proptool);
 156  
 157      var linktool = new LinkTool();
 158      kupu.registerTool('linktool', linktool);
 159      var linktoolbox = new LinkToolBox("kupu-link-input", "kupu-link-button", 'kupu-toolbox-links', 'kupu-toolbox', 'kupu-toolbox-active');
 160      linktool.registerToolBox('linktoolbox', linktoolbox);
 161  
 162      var imagetool = new ImageTool();
 163      kupu.registerTool('imagetool', imagetool);
 164      var imagetoolbox = new ImageToolBox('kupu-image-input', 'kupu-image-addbutton', 
 165                                          'kupu-image-float-select', 'kupu-toolbox-images', 
 166                                          'kupu-toolbox', 'kupu-toolbox-active');
 167      imagetool.registerToolBox('imagetoolbox', imagetoolbox);
 168  
 169      var tabletool = new TableTool();
 170      kupu.registerTool('tabletool', tabletool);
 171      var tabletoolbox = new TableToolBox('kupu-toolbox-addtable', 
 172          'kupu-toolbox-edittable', 'kupu-table-newrows', 'kupu-table-newcols',
 173          'kupu-table-makeheader', 'kupu-table-classchooser', 'kupu-table-alignchooser',
 174          'kupu-table-addtable-button', 'kupu-table-addrow-button', 'kupu-table-delrow-button', 
 175          'kupu-table-addcolumn-button', 'kupu-table-delcolumn-button', 
 176          'kupu-table-fix-button', 'kupu-table-fixall-button', 'kupu-toolbox-tables',
 177          'kupu-toolbox', 'kupu-toolbox-active'
 178          );
 179      tabletool.registerToolBox('tabletoolbox', tabletoolbox);
 180  
 181      var showpathtool = new ShowPathTool();
 182      kupu.registerTool('showpathtool', showpathtool);
 183  
 184      var sourceedittool = new SourceEditTool('kupu-source-button',
 185                                              'kupu-editor-textarea');
 186      kupu.registerTool('sourceedittool', sourceedittool);
 187  
 188      var spellchecker = new KupuSpellChecker('kupu-spellchecker-button',
 189                                              'spellcheck.cgi');
 190      kupu.registerTool('spellchecker', spellchecker);
 191  
 192      var zoom = new KupuZoomTool('kupu-zoom-button');
 193      kupu.registerTool('zoomtool', zoom);
 194  
 195      var cleanupexpressions = new CleanupExpressionsTool(
 196              'kupucleanupexpressionselect', 'kupucleanupexpressionbutton');
 197      kupu.registerTool('cleanupexpressions', cleanupexpressions);
 198  
 199      // Drawers...
 200  
 201      // Function that returns function to open a drawer
 202      var opendrawer = function(drawerid) {
 203          return function(button, editor) {
 204              drawertool.openDrawer(drawerid);
 205          };
 206      };
 207  
 208      var imagelibdrawerbutton = new KupuButton('kupu-imagelibdrawer-button',
 209                                                opendrawer('imagelibdrawer'));
 210      kupu.registerTool('imagelibdrawerbutton', imagelibdrawerbutton);
 211  
 212      var linklibdrawerbutton = new KupuButton('kupu-linklibdrawer-button',
 213                                               opendrawer('linklibdrawer'));
 214      kupu.registerTool('linklibdrawerbutton', linklibdrawerbutton);
 215  
 216      var linkdrawerbutton = new KupuButton('kupu-linkdrawer-button',
 217                                            opendrawer('linkdrawer'));
 218      kupu.registerTool('linkdrawerbutton', linkdrawerbutton);
 219  
 220      var tabledrawerbutton = new KupuButton('kupu-tabledrawer-button',
 221                                             opendrawer('tabledrawer'));
 222      kupu.registerTool('tabledrawerbutton', tabledrawerbutton);
 223  
 224      // create some drawers, drawers are some sort of popups that appear when a 
 225      // toolbar button is clicked
 226      var drawertool = new DrawerTool();
 227      kupu.registerTool('drawertool', drawertool);
 228  
 229      try {
 230          var linklibdrawer = new LinkLibraryDrawer(linktool, 
 231                                                    conf['link_xsl_uri'],
 232                                                    conf['link_libraries_uri'],
 233                                                    conf['link_images_uri']);
 234          drawertool.registerDrawer('linklibdrawer', linklibdrawer);
 235  
 236          var imagelibdrawer = new ImageLibraryDrawer(imagetool, 
 237                                                      conf['image_xsl_uri'],
 238                                                      conf['image_libraries_uri'],
 239                                                      conf['search_images_uri']);
 240          drawertool.registerDrawer('imagelibdrawer', imagelibdrawer);
 241      } catch(e) {
 242          var msg = _('There was a problem initializing the drawers. Most ' +
 243                  'likely the XSLT or XML files aren\'t available. If this ' +
 244                  'is not the Kupu demo version, check your files or the ' +
 245                  'service that provide them (error: $error}).',
 246                  {'error': (e.message || e.toString())});
 247          alert(msg);
 248      };
 249  
 250      var linkdrawer = new LinkDrawer('kupu-linkdrawer', linktool);
 251      drawertool.registerDrawer('linkdrawer', linkdrawer);
 252  
 253      var tabledrawer = new TableDrawer('kupu-tabledrawer', tabletool);
 254      drawertool.registerDrawer('tabledrawer', tabledrawer);
 255  
 256      // register some cleanup filter
 257      // remove tags that aren't in the XHTML DTD
 258      var nonxhtmltagfilter = new NonXHTMLTagFilter();
 259      kupu.registerFilter(nonxhtmltagfilter);
 260  
 261      if (window.kuputoolcollapser) {
 262          var collapser = new window.kuputoolcollapser.Collapser(
 263                                                          'kupu-toolboxes');
 264          collapser.initialize();
 265      };
 266      
 267      return kupu;
 268  };


Généré le : Sun Feb 25 15:30:41 2007 par Balluche grâce à PHPXref 0.7