将CKEditor与SmartGWT集成
我尝试使用gwt CKEditor模块将CKEditor集成到SmartGWT应用程序中。但是,当我尝试在开发模式下显示应用程序时,出现了一个错误:将CKEditor与SmartGWT集成,ckeditor,smartgwt,Ckeditor,Smartgwt,我尝试使用gwt CKEditor模块将CKEditor集成到SmartGWT应用程序中。但是,当我尝试在开发模式下显示应用程序时,出现了一个错误: [ERROR] [Eureka] - 18:21:15.139:TMR5[E]:WARN:drawing:campaignMessageDesignPage_id:draw() called on widget with current drawn state: handleDrawn, ignoring. Class.getStackTr
[ERROR] [Eureka] - 18:21:15.139:TMR5[E]:WARN:drawing:campaignMessageDesignPage_id:draw() called on widget with current drawn state: handleDrawn, ignoring.
Class.getStackTrace(_1=>undef, _2=>undef, _3=>undef, _4=>undef)
Canvas.readyToDraw()
Canvas.draw(_1=>undef)
Layout.layoutChildren(_1=>"resized", _2=>0, _3=>19)
Canvas.$t1()
Canvas.resizeBy(_1=>0, _2=>19, _3=>undef, _4=>undef)
Canvas.resizeTo(_1=>1365, _2=>586, _3=>undef, _4=>undef)
Layout.resizeMembers(_1=>Array[12], _2=>Array[12], _3=>true)
** recursed on Layout.layoutChildren
com.smartgwt.client.core.JsObject$SGWT_WARN: 10:35:18.045:TMR7[E]:WARN:drawing:campaignMessageDesignPage_id:draw() called on widget with current drawn state: handleDrawn, ignoring.
Class.getStackTrace(_1=>undef, _2=>undef, _3=>undef, _4=>undef) Canvas.readyToDraw() Canvas.draw(_1=>undef) Layout.layoutChildren(_1=>"resized", _2=>0, _3=>19) Canvas.$t1() Canvas.resizeBy(_1=>0, _2=>19, _3=>undef, _4=>undef) Canvas.resizeTo(_1=>1365, _2=>586, _3=>undef, _4=>undef) Layout.resizeMembers(_1=>Array[12], _2=>Array[12], _3=>true) ** recursed on Layout.layoutChildren
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Thread.java:722)
下面是我的一段代码:
public class CampaignMessageDesignPage extends Page {
protected VLayout mainLayout;
protected CKEditor ckEditor;
@Override
protected void prepareMainLayoutCanvasCandidate() {
mainLayout = createOrGetVLayoutById(campaignMessageDesignPage_id);
mainLayout.setWidth100();
mainLayout.setHeight100();
mainLayout.setDefaultLayoutAlign(Alignment.CENTER);
Canvas cnvEditor = new Canvas("cnvEditor");
CKConfig conf = new CKConfig(PRESET_TOOLBAR.FULL);
ckEditor = new CKEditor(conf);
conf.setBaseFloatZIndex(1000000);
conf.setUseFormPanel(false);
ckEditor.setHTML("");
ckEditor.setSize("100%", "100%");
cnvEditor.addChild(ckEditor);
cnvEditor.setSize("50%", "50%");
mainLayout.setMembers(cnvEditor);
}
@Override
protected final Canvas getMainLayoutCanvasCandidate() {
return this.mainLayout;
}
@Override
protected void process(final SimpleBO param) {
// TODO Auto-generated method stub
}
}
draw()方法在别处调用
你知道吗
编辑:
我尝试了一些不同的东西。我尝试将标准GWT小部件添加到SmartGWT布局中,但效果很好,因此这确实是一个与CKEditor相关的问题
我还尝试在页面显示上创建内容,并获得另一条错误消息,希望更有用:
18:45:06.698 [ERROR] [Eureka] 18:45:06.697:RDQ0[E]:WARN:Log:TypeError: Cannot call method 'replace' of undefined
unnamed() @
unnamed() @ unknown source
unnamed() @ Eureka/hosted.html?Eureka:76:35
unnamed() @ Eureka/hosted.html?Eureka:54:12
onDraw() @ unknown source
Canvas.draw() @ Eureka/sc/modules/ISC_Core.js:2123:6
Canvas.drawChildren() @ Eureka/sc/modules/ISC_Core.js:2177:197
Canvas.draw() @ Eureka/sc/modules/ISC_Core.js:2114:247
Layout._drawNonMemberChildren() @ Eureka/sc/modules/ISC_Foundation.js:374:21
Layout.drawChildren() @ Eureka/sc/modules/ISC_Foundation.js:365:130
Canvas.draw() @ Eureka/sc/modules/ISC_Core.js:2114:247
com.smartgwt.client.core.JsObject$SGWT_WARN: 18:45:06.697:RDQ0[E]:WARN:Log:TypeError: Cannot call method 'replace' of undefined
unnamed() @
unnamed() @ unknown source
unnamed() @ Eureka/hosted.html?Eureka:76:35
unnamed() @ Eureka/hosted.html?Eureka:54:12
onDraw() @ unknown source
Canvas.draw() @ Eureka/sc/modules/ISC_Core.js:2123:6
Canvas.drawChildren() @ Eureka/sc/modules/ISC_Core.js:2177:197
Canvas.draw() @ Eureka/sc/modules/ISC_Core.js:2114:247
Layout._drawNonMemberChildren() @ Eureka/sc/modules/ISC_Foundation.js:374:21
Layout.drawChildren() @ Eureka/sc/modules/ISC_Foundation.js:365:130
Canvas.draw() @ Eureka/sc/modules/ISC_Core.js:2114:247
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Thread.java:722)
SmartGWT Extensions Google Code项目中有一个组件可以为您实现这一点:
实际上,这使用了旧版本的FCKEditor,不再维护了……您仍然应该看看这些代码,因为它是嵌入第三方JS小部件的一个工作示例。请注意,您报告的警告只是一个警告—它表示对draw()进行了不必要的调用,但并不能解释您的问题。相反,您应该将代码与SmartGWT扩展示例进行比较,和/或使用Firebug之类的工具查看DOM,并尝试找出CKEditor不绘制的原因。我将对此进行研究。记录在案,我当前的(非工作代码)来自于可能是版本问题?您认为此代码是否仍应与当前版本的SmarGWT一起使用?我查看了SmartGWT扩展,显然,它不再维护,实际上无法与当前版本的SmartGWT一起使用。出于某种原因,缺少一段错误跟踪。我刚刚添加了它。事实上,我切换到了TinyMCE,它在SmartGWT中工作得更好。因为我没有得到任何答案,我理解这意味着GWTCKEditor库已经损坏,至少在最后的SmartGWT版本中是这样的?真遗憾。。。