[ 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 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 };
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 |