比较示例 - 键/值对的结构比较
简介
此示例演示如何支持对包含键/值对的文件进行结构比较。它演示了如何实现和注册一个定制结构创建程序,该创建程序将键/值对解析为树结构,该树结构被用作 Compare 插件提供的结构比较框架的输入。另外,它为各个键/值对注册标准文本查看器。
此示例仅供演示之用。对 Java 属性文件(另一种键/值格式)的结构比较支持是由 Eclipse Java 工具提供的。
运行示例
- 创建一个项目(不必是 Java 项目)
- 创建键/值对文件 f1.kv
- 打开窗口 > 首选项 > 工作台 > 文件关联,然后使缺省文本编辑器与文件扩展名“kv”相关联
- 使用编辑器打开 f1.kv,然后输入以下内容
lastname=Doe
firstname=John
city=Chicago
state=IL
- 备份此文件并将其重命名为 f2.kv
- 打开 f2.kv 并将名字“John”更改为“Mary”
- 在 f2.kv 中添加另一个键/值对“country=US”
- 同时选中文件 f1.kv 和 f2.kv
- 从上下文菜单中选择比较 > 互相
- 这将打开一个新的比较编辑器,该编辑器的顶部窗格显示了这两个文件的结构差别。选择属性“firstname”或“country”中的一个属性将把相应键/值对的文本填充到底部窗格中的标准文本比较查看器中。
示例的代码组织
示例代码组织在单个包 org.eclipse.compare.examples.structurecreator 中:
- KeyValuePairStructureCreator
是结构创建程序,它将流内容解析为 IStructureComparator 的树。
- TextMergeViewerCreator
是 TextMergeViewer 的工厂。它是为类型“kvtxt”注册的,该类型是单个键/值对的类型。
- Util
提供用于 NLS 支持以及用于以 String 形式读取 InputStream 的实用程序方法。