[ 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 4015 2004-04-13 13:31:49Z guido $ 12 13 14 function initKupu(iframe) { 15 /* This is a copy of initKupu for the form support 16 17 We only want to disable the save button, but unfortunately 18 that currently still means this method should be overridden 19 completely 20 */ 21 22 // first we create a logger 23 var l = new PlainLogger('kupu-toolbox-debuglog', 5); 24 25 // now some config values 26 var conf = loadDictFromXML(document, 'kupuconfig'); 27 28 // the we create the document, hand it over the id of the iframe 29 var doc = new KupuDocument(iframe); 30 31 // now we can create the controller 32 var kupu = new KupuEditor(doc, conf, l); 33 34 var contextmenu = new ContextMenu(); 35 kupu.setContextMenu(contextmenu); 36 37 // now we can create a UI object which we can use from the UI 38 var ui = new KupuUI('kupu-tb-styles'); 39 40 // the ui must be registered to the editor like a tool so it can be notified 41 // of state changes 42 kupu.registerTool('ui', ui); // XXX Should this be a different method? 43 44 // function that returns a function to execute a button command 45 var execCommand = function(cmd) { 46 return function(button, editor) { 47 editor.execCommand(cmd); 48 }; 49 }; 50 51 var boldchecker = ParentWithStyleChecker(new Array('b', 'strong'), 52 'fontWeight', 'bold'); 53 var boldbutton = new KupuStateButton('kupu-bold-button', 54 execCommand('bold'), 55 boldchecker, 56 'kupu-bold', 57 'kupu-bold-pressed'); 58 kupu.registerTool('boldbutton', boldbutton); 59 60 var italicschecker = ParentWithStyleChecker(new Array('i', 'em'), 61 'fontStyle', 'italic'); 62 var italicsbutton = new KupuStateButton('kupu-italic-button', 63 execCommand('italic'), 64 italicschecker, 65 'kupu-italic', 66 'kupu-italic-pressed'); 67 kupu.registerTool('italicsbutton', italicsbutton); 68 69 var underlinechecker = ParentWithStyleChecker(new Array('u'), 70 'textDecoration', 'underline'); 71 var underlinebutton = new KupuStateButton('kupu-underline-button', 72 execCommand('underline'), 73 underlinechecker, 74 'kupu-underline', 75 'kupu-underline-pressed'); 76 kupu.registerTool('underlinebutton', underlinebutton); 77 78 var subscriptchecker = ParentWithStyleChecker(new Array('sub')); 79 var subscriptbutton = new KupuStateButton('kupu-subscript-button', 80 execCommand('subscript'), 81 subscriptchecker, 82 'kupu-subscript', 83 'kupu-subscript-pressed'); 84 kupu.registerTool('subscriptbutton', subscriptbutton); 85 86 var superscriptchecker = ParentWithStyleChecker(new Array('super', 'sup')); 87 var superscriptbutton = new KupuStateButton('kupu-superscript-button', 88 execCommand('superscript'), 89 superscriptchecker, 90 'kupu-superscript', 91 'kupu-superscript-pressed'); 92 kupu.registerTool('superscriptbutton', superscriptbutton); 93 94 var justifyleftbutton = new KupuButton('kupu-justifyleft-button', 95 execCommand('justifyleft')); 96 kupu.registerTool('justifyleftbutton', justifyleftbutton); 97 98 var justifycenterbutton = new KupuButton('kupu-justifycenter-button', 99 execCommand('justifycenter')); 100 kupu.registerTool('justifycenterbutton', justifycenterbutton); 101 102 var justifyrightbutton = new KupuButton('kupu-justifyright-button', 103 execCommand('justifyright')); 104 kupu.registerTool('justifyrightbutton', justifyrightbutton); 105 106 var outdentbutton = new KupuButton('kupu-outdent-button', execCommand('outdent')); 107 kupu.registerTool('outdentbutton', outdentbutton); 108 109 var indentbutton = new KupuButton('kupu-indent-button', execCommand('indent')); 110 kupu.registerTool('indentbutton', indentbutton); 111 112 var undobutton = new KupuButton('kupu-undo-button', execCommand('undo')); 113 kupu.registerTool('undobutton', undobutton); 114 115 var redobutton = new KupuButton('kupu-redo-button', execCommand('redo')); 116 kupu.registerTool('redobutton', redobutton); 117 118 var removeimagebutton = new KupuRemoveElementButton('kupu-removeimage-button', 119 'img', 120 'kupu-removeimage'); 121 kupu.registerTool('removeimagebutton', removeimagebutton); 122 var removelinkbutton = new KupuRemoveElementButton('kupu-removelink-button', 123 'a', 124 'kupu-removelink'); 125 kupu.registerTool('removelinkbutton', removelinkbutton); 126 127 // add some tools 128 // XXX would it be better to pass along elements instead of ids? 129 var colorchoosertool = new ColorchooserTool('kupu-forecolor-button', 130 'kupu-hilitecolor-button', 131 'kupu-colorchooser'); 132 kupu.registerTool('colorchooser', colorchoosertool); 133 134 var listtool = new ListTool('kupu-list-ul-addbutton', 135 'kupu-list-ol-addbutton', 136 'kupu-ulstyles', 'kupu-olstyles'); 137 kupu.registerTool('listtool', listtool); 138 139 var definitionlisttool = new DefinitionListTool('kupu-list-dl-addbutton'); 140 kupu.registerTool('definitionlisttool', definitionlisttool); 141 142 var proptool = new PropertyTool('kupu-properties-title', 'kupu-properties-description'); 143 kupu.registerTool('proptool', proptool); 144 145 var linktool = new LinkTool(); 146 kupu.registerTool('linktool', linktool); 147 var linktoolbox = new LinkToolBox("kupu-link-input", "kupu-link-button", 'kupu-toolbox-links', 'kupu-toolbox', 'kupu-toolbox-active'); 148 linktool.registerToolBox('linktoolbox', linktoolbox); 149 150 var imagetool = new ImageTool(); 151 kupu.registerTool('imagetool', imagetool); 152 var imagetoolbox = new ImageToolBox('kupu-image-input', 'kupu-image-addbutton', 153 'kupu-image-float-select', 'kupu-toolbox-images', 154 'kupu-toolbox', 'kupu-toolbox-active'); 155 imagetool.registerToolBox('imagetoolbox', imagetoolbox); 156 157 var tabletool = new TableTool(); 158 kupu.registerTool('tabletool', tabletool); 159 var tabletoolbox = new TableToolBox('kupu-toolbox-addtable', 160 'kupu-toolbox-edittable', 'kupu-table-newrows', 'kupu-table-newcols', 161 'kupu-table-makeheader', 'kupu-table-classchooser', 'kupu-table-alignchooser', 162 'kupu-table-addtable-button', 'kupu-table-addrow-button', 'kupu-table-delrow-button', 163 'kupu-table-addcolumn-button', 'kupu-table-delcolumn-button', 164 'kupu-table-fix-button', 'kupu-table-fixall-button', 'kupu-toolbox-tables', 165 'kupu-toolbox', 'kupu-toolbox-active' 166 ); 167 tabletool.registerToolBox('tabletoolbox', tabletoolbox); 168 169 var showpathtool = new ShowPathTool(); 170 kupu.registerTool('showpathtool', showpathtool); 171 172 var sourceedittool = new SourceEditTool('kupu-source-button', 173 'kupu-editor-textarea'); 174 kupu.registerTool('sourceedittool', sourceedittool); 175 176 // Drawers... 177 178 // Function that returns function to open a drawer 179 var opendrawer = function(drawerid) { 180 return function(button, editor) { 181 drawertool.openDrawer(drawerid); 182 }; 183 }; 184 185 var imagelibdrawerbutton = new KupuButton('kupu-imagelibdrawer-button', 186 opendrawer('imagelibdrawer')); 187 kupu.registerTool('imagelibdrawerbutton', imagelibdrawerbutton); 188 189 var linklibdrawerbutton = new KupuButton('kupu-linklibdrawer-button', 190 opendrawer('linklibdrawer')); 191 kupu.registerTool('linklibdrawerbutton', linklibdrawerbutton); 192 193 var linkdrawerbutton = new KupuButton('kupu-linkdrawer-button', 194 opendrawer('linkdrawer')); 195 kupu.registerTool('linkdrawerbutton', linkdrawerbutton); 196 197 var tabledrawerbutton = new KupuButton('kupu-tabledrawer-button', 198 opendrawer('tabledrawer')); 199 kupu.registerTool('tabledrawerbutton', tabledrawerbutton); 200 201 // create some drawers, drawers are some sort of popups that appear when a 202 // toolbar button is clicked 203 var drawertool = new DrawerTool(); 204 kupu.registerTool('drawertool', drawertool); 205 206 var linklibdrawer = new LinkLibraryDrawer(linktool, conf['link_xsl_uri'], 207 conf['link_libraries_uri'], 208 conf['link_images_uri']); 209 drawertool.registerDrawer('linklibdrawer', linklibdrawer); 210 211 var imagelibdrawer = new ImageLibraryDrawer(imagetool, conf['image_xsl_uri'], 212 conf['image_libraries_uri'], 213 conf['search_images_uri']); 214 drawertool.registerDrawer('imagelibdrawer', imagelibdrawer); 215 216 var linkdrawer = new LinkDrawer('kupu-linkdrawer', linktool); 217 drawertool.registerDrawer('linkdrawer', linkdrawer); 218 219 var tabledrawer = new TableDrawer('kupu-tabledrawer', tabletool); 220 drawertool.registerDrawer('tabledrawer', tabledrawer); 221 222 // make the prepareForm method get called on form submit 223 // some bug in IE makes it crash on saving the form when a lib drawer 224 // was added to the page at some point, remove it on form submit 225 var savebutton = getFromSelector('kupu-save-button'); 226 function prepareForm() { 227 var drawer = window.document.getElementById('kupu-librarydrawer'); 228 if (drawer) { 229 drawer.parentNode.removeChild(drawer); 230 } 231 kupu.prepareForm(savebutton.form, 'kupu'); 232 savebutton.form.submit(); 233 }; 234 addEventHandler(savebutton, 'click', prepareForm, kupu); 235 236 // register some cleanup filter 237 // remove tags that aren't in the XHTML DTD 238 var nonxhtmltagfilter = new NonXHTMLTagFilter(); 239 kupu.registerFilter(nonxhtmltagfilter); 240 241 return kupu; 242 };
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 |