【问题标题】:Integrating GWT widget with vaadin 7将 GWT 小部件与 vaadin 7 集成
【发布时间】:2023-12-27 04:10:01
【问题描述】:

我想将甘特图 GWT 小部件与 https://code.google.com/p/gwtgantt/ 提供的 vaadin7 应用程序集成

我浏览了一些链接,这些链接探讨了如何将 GWT 小部件与 vaadin7 集成,但我认为我不明白。

另外,我是否需要在 vaadin 中编写连接器和其他东西来集成 GWT 小部件?如果是,那我不太确定我会写什么。

以前有人用 vaadin7 尝试过相同的 GWT 小部件吗?

任何指针或示例代码将不胜感激。

问候,
阿扎尔

【问题讨论】:

    标签: gwt vaadin


    【解决方案1】:

    当您能够使用 Vaadin 7 时,这篇 wiki 文章应该可以帮助您入门: https://vaadin.com/wiki/-/wiki/Main/Integrating%20an%20existing%20GWT%20widget

    我相信它可以完全满足您的要求。

    【讨论】:

      【解决方案2】:

      基本上,您需要为 GWT 小部件编写服务器端代码,并使用通信能力扩展 GWT 小部件。这里有一个很好的项目让你开始使用https://github.com/360-Innovations/VaadinSmartGWT

      一个小例子(对于 Vaadin 6):

      1 使用安装了 Vaadin 插件的 eclipse 创建一个 Vaadin 项目,然后在该项目上创建 Vaadin 小部件,Vaadin 插件将生成所有细节。

      2 编写代码
      GanttChart的客户端类包装器它实现Paintable接口以与服务器端通信

          public class VGanttChart extends GanttChart implements Paintable {

           public void paint(PaintTarget target) throws PaintException {
      
           }
      
           public void requestRepaint() {
      
           }
      
           ... ...
      
      }
      

      每种方法的使用,请查看源cmetsPaintable.class
      一个服务器端对应的类:

      @ClientWidget(value = VGanttChart.class, loadStyle = LoadStyle.EAGER)
      public class GanttChart extends AbstractComponent {
      
          public void paintContent(PaintTarget target) throws PaintException {
      
          }
      
      
          public void changeVariables(Object source, Map<String, Object> variables) {
      
      
          }
      
          ... ...
      }
      

      3 导出为 Vaadin 插件包,这也是 Vaadin 插件提供的。

      4 将导出的 jar 添加到您的项目 /WEB-INF/lib,编辑您的 XXXWidgetset.gwt.xml 文件,添加您的附加组件的小部件集,如下所示:

      <inherits name="package path to your add-on's widgetset def file"/>
      
      如果你的 widgetset def 文件是myWidgetset.gwt.xml,那么属性名的值应该是"package path to widgetset"/myWidgetset

      5 编译你的Widgetset,这也是Vaadin eclipse插件提供的,编译后生成了一组新的javascript、css、图片资源,现在你可以通过服务端类来使用你的插件了。

      【讨论】: