【发布时间】:2011-02-16 19:56:04
【问题描述】:
我们的应用程序(基于 Eclipse RCP,使用基于 JFace/SWT 的界面)需要支持数学矩阵的编辑。矩阵总是正方形的,可以是从 2x2 到 11x11 的任何大小。此外,将在界面上放置按钮以允许用户扩大或缩小矩阵。
我们在整个代码中使用 JFace TableViewers 和 TreeViewers 来编辑非矩阵数据。如果可能的话,我想使用相同的通用结构来编辑矩阵。
我将数据保存在 MySQL 数据库中,每个矩阵元素使用一行,如下所示:
+----------------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+------------+------+-----+---------+-------+
| id | bigint(20) | NO | PRI | NULL | |
| rowNum | bigint(20) | NO | | NULL | |
| columnNum | bigint(20) | NO | | NULL | |
| value | double | NO | | NULL | |
| matrix_id | bigint(20) | NO | MUL | NULL | |
+----------------------+------------+------+-----+---------+-------+
我遇到的问题是 JFace“输入”似乎对应于渲染表中的单个表行。在我的例子中,单个数据库行对应于表格中的一个单元格,而不是整行。
我唯一能想到的是以某种方式在幕后存储一个对象,该对象保持矩阵化状态并有效地将数据库行转换为适当的 JFace 模型。 (例如,如果我有一个 3x3 矩阵,则将九行传递到代理对象并让它调用 viewer.setInput(Object) 并使用 3×3 数组。不过,这似乎是一场噩梦,因为我需要使该对象与内部模型和数据库保持同步。
这里有没有人有这方面的经验,可以给我一些建议吗?
【问题讨论】:
标签: java eclipse swt rcp jface