MyGWT + Fckeditor 的集成

本文介绍使用MyGWT框架时遇到的布局问题及解决方案,特别是针对RowLayout尺寸问题的修复,并分享了如何自定义FCKEditor以适应不同容器尺寸的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值