[ Index ] |
|
Code source de Kupu-1.3.5 |
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 };
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 15:30:41 2007 | par Balluche grâce à PHPXref 0.7 |