[ Index ]
 

Code source de Kupu-1.3.5

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

title

Body

[fermer]

/common/ -> kupuinit_genericelements.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 5482 2004-07-08 10:55:08Z 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');
  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');
  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');
  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      var subscriptbutton = new KupuStateButton('kupu-subscript-button',
  90                                                execCommand('subscript'),
  91                                                subscriptchecker,
  92                                                'kupu-subscript',
  93                                                'kupu-subscript-pressed');
  94      kupu.registerTool('subscriptbutton', subscriptbutton);
  95  
  96      var superscriptchecker = ParentWithStyleChecker(new Array('super', 'sup'));
  97      var superscriptbutton = new KupuStateButton('kupu-superscript-button', 
  98                                                  execCommand('superscript'),
  99                                                  superscriptchecker,
 100                                                  'kupu-superscript', 
 101                                                  'kupu-superscript-pressed');
 102      kupu.registerTool('superscriptbutton', superscriptbutton);
 103  
 104      var justifyleftbutton = new KupuButton('kupu-justifyleft-button',
 105                                             execCommand('justifyleft'));
 106      kupu.registerTool('justifyleftbutton', justifyleftbutton);
 107  
 108      var justifycenterbutton = new KupuButton('kupu-justifycenter-button',
 109                                               execCommand('justifycenter'));
 110      kupu.registerTool('justifycenterbutton', justifycenterbutton);
 111  
 112      var justifyrightbutton = new KupuButton('kupu-justifyright-button',
 113                                              execCommand('justifyright'));
 114      kupu.registerTool('justifyrightbutton', justifyrightbutton);
 115  
 116      var outdentbutton = new KupuButton('kupu-outdent-button', execCommand('outdent'));
 117      kupu.registerTool('outdentbutton', outdentbutton);
 118  
 119      var indentbutton = new KupuButton('kupu-indent-button', execCommand('indent'));
 120      kupu.registerTool('indentbutton', indentbutton);
 121  
 122      var undobutton = new KupuButton('kupu-undo-button', execCommand('undo'));
 123      kupu.registerTool('undobutton', undobutton);
 124  
 125      var redobutton = new KupuButton('kupu-redo-button', execCommand('redo'));
 126      kupu.registerTool('redobutton', redobutton);
 127  
 128      var removeimagebutton = new KupuRemoveElementButton('kupu-removeimage-button',
 129                              'img',
 130                              'kupu-removeimage');
 131      kupu.registerTool('removeimagebutton', removeimagebutton);
 132      var removelinkbutton = new KupuRemoveElementButton('kupu-removelink-button',
 133                                 'a',
 134                                 'kupu-removelink');
 135      kupu.registerTool('removelinkbutton', removelinkbutton);
 136  
 137      // add some tools
 138      // XXX would it be better to pass along elements instead of ids?
 139      var colorchoosertool = new ColorchooserTool('kupu-forecolor-button',
 140                                                  'kupu-hilitecolor-button',
 141                                                  'kupu-colorchooser');
 142      kupu.registerTool('colorchooser', colorchoosertool);
 143  
 144      var listtool = new ListTool('kupu-list-ul-addbutton',
 145                                  'kupu-list-ol-addbutton',
 146                                  'kupu-ulstyles', 'kupu-olstyles');
 147      kupu.registerTool('listtool', listtool);
 148      
 149      var definitionlisttool = new DefinitionListTool('kupu-list-dl-addbutton');
 150      kupu.registerTool('definitionlisttool', definitionlisttool);
 151      
 152      var proptool = new PropertyTool('kupu-properties-title', 'kupu-properties-description');
 153      kupu.registerTool('proptool', proptool);
 154  
 155      var linktool = new LinkTool();
 156      kupu.registerTool('linktool', linktool);
 157      var linktoolbox = new LinkToolBox("kupu-link-input", "kupu-link-button", 'kupu-toolbox-links', 'kupu-toolbox', 'kupu-toolbox-active');
 158      linktool.registerToolBox('linktoolbox', linktoolbox);
 159  
 160      var imagetool = new ImageTool();
 161      kupu.registerTool('imagetool', imagetool);
 162      var imagetoolbox = new ImageToolBox('kupu-image-input', 'kupu-image-addbutton', 
 163                                          'kupu-image-float-select', 'kupu-toolbox-images', 
 164                                          'kupu-toolbox', 'kupu-toolbox-active');
 165      imagetool.registerToolBox('imagetoolbox', imagetoolbox);
 166  
 167      var tabletool = new TableTool();
 168      kupu.registerTool('tabletool', tabletool);
 169      // custom TableToolBox for CNF, Codename Future
 170      var tabletoolbox = new CNFTableToolBox('kupu-toolbox-addtable', 
 171          'kupu-toolbox-edittable', 'kupu-table-newrows', 'kupu-table-newcols',
 172          'kupu-table-makeheader', 'kupu-table-classchooser', 'kupu-table-alignchooser',
 173          'kupu-table-addtable-button', 'kupu-table-addrow-button', 'kupu-table-delrow-button', 
 174          'kupu-table-setrowrepeat-button', 'kupu-table-delrowrepeat-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      // Generic elements tool
 189      var geneltool = new GenericElementsTool('genericelementsxml');
 190      kupu.registerTool('genericelements', geneltool);
 191  
 192      var geneltoolbox = new GenericElementsToolBox('genericelements-elid', 'genericelements-form',
 193                              'genericelements-addbutton', 'genericelements-delbutton',
 194                              'genericelements-copybutton', 'genericelements-pastebutton',
 195                              'genericelements-cancelbutton', 'genericelements-toolbox',
 196                              'kupu-toolbox', 'kupu-toolbox-active');
 197      geneltool.registerToolBox('genericelementstoolbox', geneltoolbox);
 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      return kupu;
 262  };


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