Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 模型驱动的动态对象图-数据源还是自定义方法?_Gwt_Smartgwt - Fatal编程技术网

Gwt 模型驱动的动态对象图-数据源还是自定义方法?

Gwt 模型驱动的动态对象图-数据源还是自定义方法?,gwt,smartgwt,Gwt,Smartgwt,关于使用smartGWT选择哪条路径,我有一些基本问题。 我已经玩了一段时间了,到目前为止已经习惯了小部件。有问题(特别是浏览器),但谁没有得到任何 我有一个自定义的对象检索机制,带有本地描述符/对象缓存和解析器,可以触发标准gwt rpc异步方案。 我用ID和属性交换对象,而不是数据集。它们表示为客户端中已经存在的树/网络。因此,每当我探索图形/树时,都会加载新对象。或者,如果缓存中已经存在,则重用(这避免了实体递归) 为了显示树和列表,我没有使用datasource。我已经设法手动创建我自己

关于使用smartGWT选择哪条路径,我有一些基本问题。 我已经玩了一段时间了,到目前为止已经习惯了小部件。有问题(特别是浏览器),但谁没有得到任何

我有一个自定义的对象检索机制,带有本地描述符/对象缓存和解析器,可以触发标准gwt rpc异步方案。 我用ID和属性交换对象,而不是数据集。它们表示为客户端中已经存在的树/网络。因此,每当我探索图形/树时,都会加载新对象。或者,如果缓存中已经存在,则重用(这避免了实体递归)

为了显示树和列表,我没有使用datasource。我已经设法手动创建我自己的对象,在加载某些内容时更新节点/子节点,设置属性等。到目前为止,这是动态的。我使用setData()树设置为TreeGrid,树中的大多数更改(添加、添加列表、删除等)会立即反映在视图中

但问题开始了。我喜欢模型驱动的方法,在这种方法中,模型(树)处理数据/对象(更改属性、添加/删除节点)并通知视图(TreeGrid)。只有模型知道如何处理数据以及何时处理数据。但是没有/很少包含方法,它们都是隐藏的(JavaScript)。我可以编写自己的EventHandler并连接到TreeGrid(TreeGrid又有类似refreshRow()等方法)。但是,由于未知的含义、内存泄漏等原因,我对使用smartGWT进行此操作感到不安

在我看来,smartGWT中的视图和模型似乎过于耦合。我正在为我的对象图使用一个模型,该模型可用于不同类型的视图(TreeGrid、ListGrid,甚至自定义画布),我不知道哪个将显示我的数据。对于列表,我只使用根节点的子节点,对于树,我使用整个模型

smartGWT的大部分似乎都是为数据源而构建的。为什么不使用它? 对象图是异构的。不可预知的可能有同质材料的集合,但我也不是。它无法与不同的数据库结果集进行比较。对象字段已经通过其描述符(类)在客户端上进行了分析。此外,我使用接口:可以直接访问对象属性,也可以通过解析接口来访问对象属性。这意味着“ITimeObject.time”将解析为“TelephoneCall.starTime”中的实现属性。我不知道如何创建这样的数据源

更糟糕的是:我有基于角色和权限的对象访问权限。这意味着某个用户可以看到所有字段,而另一个用户只能看到部分字段

一旦我创建了解析器和应该为视图(动态)构建的模型,我希望在代码中的任何地方都使用它,而不是为每个调用/视图创建“映射”。一切都是动态构建的,在用户界面中,我对具体类型、对象等一无所知。所有描述都来自后端

正常。现在的问题:)只是需要澄清这里的很多东西。 我需要一个提示从这里选择哪条路径

  • 继续。使用自己的模型/视图

    1a。我是否能够实现数据源提供的所有功能,如过滤、搜索、编辑/验证

    1b。如何手动实现模型->视图通知?类似于nodeUpdated(TreeNode、boolean childrenToo)的东西,没有副作用,例如关闭视图、设置新模型、破坏画布时

    1c。到处都有数据源、表单、编辑器等。有没有办法将我自己的模型插入其中

  • 等一下。所有这些都可以通过DataSource实现

    2a。然后如何在客户机中动态地(使用现有模型)创建数据源,这些数据源对检索到的内容和要显示的内容具有自适应性和敏感性。有了视图描述(字段)和“可接受的源”,我可以浏览对象图

    2b。是否可以避免“父ID”方案?这意味着它从一个已知的对象开始自上而下。它还可以在列表中多次包含相同的对象,或者是不同父对象的子对象


  • 抱歉,描述太长了。我没有具体的代码问题要发布在a.t.m.上,因为我还不擅长编辑&比如说,只是显示。我想分析一下我是否应该从这里继续下去,因为我遇到了树/树状体通信的限制


    谢谢你的想法:)

    也许这里不适合提问。这可能会在Thank@SSR获得更好的牵引力,也许你是对的。我不熟悉stackexchange(虽然不是作为一个读者),不知道“区域”的存在。我可以转移话题吗,或者如果我发两篇帖子,会有人生气吗我不认为任何人会生气,如果它是双重张贴。