我正在以视图状态保存一些UI设置。在这种情况下,我将表格的当前列顺序保存在逗号分隔的字符串中。

@Override
public void saveState(final IMemento memento) {
    int[] columnOrder = tableViewer.getTable().getColumnOrder();
    StringBuilder order = new StringBuilder();
    for (int i = 0; i < columnOrder.length; i++) {
        order.append(columnOrder[i]);
        order.append(",");
    }
    IMemento viewMemento = memento.createChild(MyView.ID);
    viewMemento.putString("viewColumnOrder", order.toString());
    super.saveState(memento);
}


有没有办法通过编程将状态重置为初始值?我试图重新设置视角,但这没有用。重置工作台也无济于事。

最佳答案

没有API可以执行此操作。

在Eclipse 4上,使用-clearPersistedState标志启动RCP应该丢弃保存的状态。

在Eclipse 4上,IMemento的XML版本保存在MPart键下的memento持久状态视图中-但这是内部实现细节,可能随时更改。

09-07 16:38