Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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
Java 将对象存储在ResourceSelectionHistory of FilteredItemSelectionDialog of string中_Java_Eclipse_Eclipse Plugin_Swt_Jface - Fatal编程技术网

Java 将对象存储在ResourceSelectionHistory of FilteredItemSelectionDialog of string中

Java 将对象存储在ResourceSelectionHistory of FilteredItemSelectionDialog of string中,java,eclipse,eclipse-plugin,swt,jface,Java,Eclipse,Eclipse Plugin,Swt,Jface,我一直在学习教程。在高级教程ResourceSelectionHistory中,存储选定的项目,并在重新启动对话框时检索该项目。我想让ResourceSelectionHistory存储对象,而不仅仅是字符串,我有没有办法做到这一点。 我还希望当用户单击这些项目时,它们会在编辑器中打开。当我单击实际填充列表中的项目时,它会打开,但当我单击显示历史记录的零件时,它不会打开 提前谢谢 是啊 ResourceSelectionHistory非常特定于此对话框,只能存储资源。它使用IMemento机制存

我一直在学习教程。在高级教程ResourceSelectionHistory中,存储选定的项目,并在重新启动对话框时检索该项目。我想让ResourceSelectionHistory存储对象,而不仅仅是字符串,我有没有办法做到这一点。 我还希望当用户单击这些项目时,它们会在编辑器中打开。当我单击实际填充列表中的项目时,它会打开,但当我单击显示历史记录的零件时,它不会打开

提前谢谢


是啊

ResourceSelectionHistory
非常特定于此对话框,只能存储资源。它使用
IMemento
机制存储它们。可能您能做您想做的事情的唯一方法是复制类(
FilteredResourcesSelectDialog
)并按自己的方式进行操作。如果您只遵循API,这些对话框往往会非常受限。

您可以将字符串、整数和布尔值存储到
IMemento
。您可以巧妙地利用它们来显示对象的类型。例如,您可以使用
element.putInteger(“objType”,1)如果您的对象是类型A和
元素.putInteger(“objType”,2)如果其类型为B。

糟糕!对不起,我忘了添加超链接。现在补充说。好吧,我正在学习这个教程。还有别的办法吗。我已经扩展了
filtereditmsselection对话框。
您可能需要创建
SelectionHistory
的子类,然后找出如何在
IMemento
中存储所需内容。您必须研究
IMemento
如何存储对象(您可能需要以某种方式将对象字符串化)。我不知道你问题的第二部分是什么意思,关于从工作台历史打开对象。也许你可以编辑你的问题来澄清这一点?编辑了问题的第二部分。我在寻找的答案是如何解决这个问题。您能否提供指向
IMemento
任何示例的链接。我们可以将对象存储在
IMemento
中,还是只能存储字符串?