[ 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_experimental.js 9879 2005-03-18 12:04:00Z yuppie $ 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 // since we use the inspector we don't need much else ;) 150 var inspector = new KupuInspector('kupu-inspector-form'); 151 kupu.registerTool('inspector', inspector); 152 153 var linktool = new LinkTool(); 154 kupu.registerTool('linktool', linktool); 155 156 var imagetool = new ImageTool(); 157 kupu.registerTool('imagetool', imagetool); 158 159 var tabletool = new TableTool(); 160 kupu.registerTool('tabletool', tabletool); 161 162 var showpathtool = new ShowPathTool(); 163 kupu.registerTool('showpathtool', showpathtool); 164 165 var viewsourcetool = new ViewSourceTool(); 166 kupu.registerTool('viewsourcetool', viewsourcetool); 167 168 // Drawers... 169 170 // Function that returns function to open a drawer 171 var opendrawer = function(drawerid) { 172 return function(button, editor) { 173 drawertool.openDrawer(drawerid); 174 }; 175 }; 176 177 var imagelibdrawerbutton = new KupuButton('kupu-imagelibdrawer-button', 178 opendrawer('imagelibdrawer')); 179 kupu.registerTool('imagelibdrawerbutton', imagelibdrawerbutton); 180 181 var linklibdrawerbutton = new KupuButton('kupu-linklibdrawer-button', 182 opendrawer('linklibdrawer')); 183 kupu.registerTool('linklibdrawerbutton', linklibdrawerbutton); 184 185 var linkdrawerbutton = new KupuButton('kupu-linkdrawer-button', 186 opendrawer('linkdrawer')); 187 kupu.registerTool('linkdrawerbutton', linkdrawerbutton); 188 189 var tabledrawerbutton = new KupuButton('kupu-tabledrawer-button', 190 opendrawer('tabledrawer')); 191 kupu.registerTool('tabledrawerbutton', tabledrawerbutton); 192 193 // create some drawers, drawers are some sort of popups that appear when a 194 // toolbar button is clicked 195 var drawertool = new DrawerTool(); 196 kupu.registerTool('drawertool', drawertool); 197 198 var linklibdrawer = new LinkLibrarydrawer(linktool, conf['link_xsl_uri'], 199 conf['link_libraries_uri'], 200 conf['link_images_uri']); 201 drawertool.registerDrawer('linklibdrawer', linklibdrawer); 202 203 var imagelibdrawer = new ImageLibrarydrawer(imagetool, conf['image_xsl_uri'], 204 conf['image_libraries_uri'], 205 conf['search_images_uri']); 206 drawertool.registerDrawer('imagelibdrawer', imagelibdrawer); 207 208 var linkdrawer = new LinkDrawer('kupu-linkdrawer', linktool); 209 drawertool.registerDrawer('linkdrawer', linkdrawer); 210 211 var tabledrawer = new TableDrawer('kupu-tabledrawer', tabletool); 212 drawertool.registerDrawer('tabledrawer', tabledrawer); 213 214 // register some cleanup filter 215 // remove tags that aren't in the XHTML DTD 216 var nonxhtmltagfilter = new NonXHTMLTagFilter(); 217 kupu.registerFilter(nonxhtmltagfilter); 218 219 return kupu; 220 };
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 |