当前位置: 首页 > 工具软件 > MyGWT > 使用案例 >

MyGWT + Fckeditor 的集成

姚凯歌
2023-12-01
MyGWT是我一直在用的框架。虽然功能相对少些,但是整个开发习惯等等都很好,很适合我这个做过多年客户端开发的人。

不过MyGWT的界面Layout有个特点,就是layout严格依赖于基于mygwt的派生类。如果中间其它的实现,比如gwt标准的。相应的onResize等事件就进不去了。而我这个项目最早不是基于mygwt,因此,只好先进行改造。

mygwt0.4版本中有一个bug,就是RowLayout的尺寸有问题,会导致中间的Row显示不全,不过最新的0.5已经解决了。这样原来用VerticalPanel实现的东东,都可以移植到RowLayout了。

fckeditor用的是JWC的实现。不过这个版本的fckeditor的尺寸是在创建的时候设置的,外面包了一个标准的GWT FlowPanel。这就造成了layout的问题。我是这样解决的

container = new WidgetContainer();
container.setLayout( new FillLayout());
contentEdit = new MyRichTextArea("","","800px","500px");
container.addListener(Events.Resize, new Listener() {
public void handleEvent(BaseEvent be) {
int w = container .getWidth();
int h = container .getHeight();
contentEdit.setSize(w + "px" , h + "px");
}
});
container.add( contentEdit );
container .layout(true);


另外实现一个自己的fckeditor

public class MyRichTextArea extends FCKEditor {

public MyRichTextArea(String html, String config, String cssWidth,
String cssHeight) {
super(html, config, cssWidth, cssHeight);
// TODO Auto-generated constructor stub
}

public void setHTML(String html) {
if( html == null )
html = "";
super.setHTML(html);
}

public void setSize(String cssWidth, String cssHeight) {
FlowPanel w = (FlowPanel) this.getWidget();
Widget iframe = (Widget) w.getWidget(2);
iframe.setSize(cssWidth, cssHeight);
}
}
 类似资料: