我有一个第三方类(假设它是一个类似树的容器)。
如何正确实现视图?我在ViewPart
类中看不到类似MVC的方法。例如,没有像Swing那样的setModel()
方法。
在Hello World视图示例中,他们只是将一些硬编码文本设置为标签。我应该在实际的例子中将数据保存在哪里?
更新
假设我有一个带setModel()
方法的好MVC小部件,名为MyGreatWidget()
。
这不会删除问题。
我会写这个案子:
public void createPartControl(Composite parent) {
widget = new MyGreatWidget(parent);
widget.setModel(... // where to get data?
}
更新2
换句话说:Eclipse平台中有没有方便的地方保存应用程序或会话范围的数据?
更新3
我的问题是在哪里保存已经在内存中的反序列化对象。
换句话说:RCP 查看违反模型 - 查看 - 控制器模式?
更新4
让我们重新解释一下这个问题:createPartControl()
方法可以访问哪些区域?
1)它是参数Composite parent
2)任何类的静态方法
3)别的东西?
可以访问应用程序实例吗?或工作台实例?可能是申请背景?或者我可以把它需要绘制的数据放到其他一些实例中?
答案 0 :(得分:3)
我对您的问题的理解如下:
createPartControl()
方法)。此时,您应该初始化所有精彩的小部件和必要的控件(在UI部分中使它们可用)。您可以将它们设置为View类的私有实例,也可以构建自己的框架来跟踪控件,例如在某些Map中。此外,在此步骤中为查看者设置内容提供程序。setText()
用于标签窗口小部件等)来填充窗口小部件。编辑:顺便说一句,我认为没有必要为胖客户端应用程序引入控制器层,因为不需要控制UI的创建,因为正确的视图的创建是由您的代码严格定义的,这已经是介绍了客户的机器。无需要求服务器返回视图(与Web应用程序不同),您只需要它返回一些数据(模型)。
希望这会有所帮助。
答案 1 :(得分:2)
如何正确实现视图?我在ViewPart类中看不到类似MVC的方法。例如,没有像Swing那样的setModel()方法。
你必须自己做。此外,您不要在视图本身上设置模型,而是在与您自己的框架连接的小部件上设置模型。
在Hello World视图示例中,他们只是将一些硬编码文本设置为标签。我应该在实际的例子中将数据保存在哪里?
Serializable包装器,进入数据库的POJO等。
你的问题有点模糊,如果你不理解我的答案,你必须更加具体。
<小时/> 编辑1:
没有。 Eclipse RCP不处理数据源。它具有处理preferences之类的轻量级机制。对于您自己的数据,您必须序列化您的内容。
答案 2 :(得分:0)
我想我理解你的实际问题。我在同样的问题上挣扎。
在启动新的Eclipse RCP项目时,您构建了许多操作单个模型的视图。您想知道如何存储实际模型。这是因为Eclipse使用'workspace'范例,它是启动框架时打开的单个目录。其他所有东西都从这个工作台中出现:项目,编辑的文件等等。
当您构建自己的应用程序时,您将很难找到一个好的替代方案。通常,应用程序是基于文件的,具有“打开”,“新文件”,“另存为”或“关闭”等范例。多个视图操纵这个单个“文件”。
我按照下面的路径/推理: