`
tailorcai
  • 浏览: 92016 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

MyGWT + Fckeditor 的集成

阅读更多
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);
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics