在 preference Store + eclipse 中添加 TableViewer Data
Add TableViewer Data in preference Store + eclipse
我有一个首选项页面,里面有一个 table 查看器,table 的每一行都是一个包含字符串、背景颜色和前景色的对象。
是否可以将此 table 查看器的数据存储在首选项存储中,因为首选项是 key/value 对 我如何在单击“应用”时存储此信息并填充table 稍后从偏好商店?
@Override
protected void performApply() {
for (TableItem item : this.viewer.getTable().getItems()) {
Content c = (Content) item.getData();
String name = c.getName();
RGB bc = c.getBackgroundColor();
RGB fc = c.getForegroundColor();
}
}
谢谢
没有执行此操作的标准方法。您可以使用一个包含逗号分隔值的条目或多个包含键名 'xxx1'、'xxx2'、....
的条目
对于 RGB
值,StringConverter
class 将转换 to/from 适合首选项的字符串:
RGB rgb = ...
String rgbString = StringConverter.asString(rgb);
RGB rgb = StringConverter.asRGB(rgbString);
(还处理许多其他类型)。
由于您要为每一行保存三个值,因此每行使用三个首选项会更简单,这可能类似于:
int row = 0;
for (TableItem item : this.viewer.getTable().getItems()) {
Content c = (Content) item.getData();
String name = c.getName();
RGB bc = c.getBackgroundColor();
RGB fc = c.getForegroundColor();
String nameKey = "name" + row;
String bcKey = "bc" + row;
String fcKey = "fc" + row;
prefStore.setValue(nameKey, name);
prefStore.setValue(bcKey, StringConverter.asString(bc));
prefStore.setValue(fcKey, StringConverter.asString(fc));
++row;
}
prefStore.setValue("rowCount", row);
阅读:
int rows = prefStore.getInt("rowCount");
for (int row = 0; row < rows; ++row) {
String nameKey = "name" + row;
String bcKey = "bc" + row;
String fcKey = "fc" + row;
String name = prefStore.getString(nameKey);
RGB bc = StringConverter.asRGB(prefStore.getString(bcKey));
RGB fc = StringConverter.asRGB(prefStore.getString(fcKey));
...
}
我有一个首选项页面,里面有一个 table 查看器,table 的每一行都是一个包含字符串、背景颜色和前景色的对象。
是否可以将此 table 查看器的数据存储在首选项存储中,因为首选项是 key/value 对 我如何在单击“应用”时存储此信息并填充table 稍后从偏好商店?
@Override
protected void performApply() {
for (TableItem item : this.viewer.getTable().getItems()) {
Content c = (Content) item.getData();
String name = c.getName();
RGB bc = c.getBackgroundColor();
RGB fc = c.getForegroundColor();
}
}
谢谢
没有执行此操作的标准方法。您可以使用一个包含逗号分隔值的条目或多个包含键名 'xxx1'、'xxx2'、....
的条目对于 RGB
值,StringConverter
class 将转换 to/from 适合首选项的字符串:
RGB rgb = ...
String rgbString = StringConverter.asString(rgb);
RGB rgb = StringConverter.asRGB(rgbString);
(还处理许多其他类型)。
由于您要为每一行保存三个值,因此每行使用三个首选项会更简单,这可能类似于:
int row = 0;
for (TableItem item : this.viewer.getTable().getItems()) {
Content c = (Content) item.getData();
String name = c.getName();
RGB bc = c.getBackgroundColor();
RGB fc = c.getForegroundColor();
String nameKey = "name" + row;
String bcKey = "bc" + row;
String fcKey = "fc" + row;
prefStore.setValue(nameKey, name);
prefStore.setValue(bcKey, StringConverter.asString(bc));
prefStore.setValue(fcKey, StringConverter.asString(fc));
++row;
}
prefStore.setValue("rowCount", row);
阅读:
int rows = prefStore.getInt("rowCount");
for (int row = 0; row < rows; ++row) {
String nameKey = "name" + row;
String bcKey = "bc" + row;
String fcKey = "fc" + row;
String name = prefStore.getString(nameKey);
RGB bc = StringConverter.asRGB(prefStore.getString(bcKey));
RGB fc = StringConverter.asRGB(prefStore.getString(fcKey));
...
}