Как сохранить состояние плагина Eclipse между сессиями? - PullRequest
3 голосов
/ 25 января 2011

Я работаю над плагином Eclipse.Плагин напоминает пользователю о необходимости сохранять свою работу в центральном хранилище каждый раз, когда он сохраняет свою работу локально.

Однако, как только пользователь успешно сохранит свою работу в центральном хранилище в течение 10 раз, ему больше не будут напоминатьсохранить его работу.

Это хорошо работает в одном сеансе.То есть, когда пользователь начинает работать в рабочей области и включает плагин.

Однако, если пользователь выходит из рабочей области после сохранения своей работы в центральном хранилище в течение 9 раз, ему будут напоминатьЕще 10 раз, т.е. с нуля, в следующий раз, когда он откроет свое рабочее пространство.

Я хочу знать, возможно ли увеличить счетчик и сохранить его в памяти, чтобы плагин работал как задумано.

Ответы [ 2 ]

7 голосов
/ 25 января 2011

Вы можете использовать настройки плагина для хранения и получения значений для вашего плагина.
Пример из FAQ по Eclipse :

 private void savePluginSettings() {
  // saves plugin preferences at the workspace level
  Preferences prefs =
    //Platform.getPreferencesService().getRootNode().node(Plugin.PLUGIN_PREFEERENCES_SCOPE).node(MY_PLUGIN_ID);
    new InstanceScope().getNode(MY_PLUGIN_ID); // does all the above behind the scenes

  prefs.put(KEY1, this.someStr);
  prefs.put(KEY2, this.someBool);

  try {
    // prefs are automatically flushed during a plugin's "super.stop()".
    prefs.flush();
  } catch(BackingStoreException e) {
    //TODO write a real exception handler.
    e.printStackTrace();
  }
}

private void loadPluginSettings() {
  Preferences prefs = new InstanceScope().getNode(MY_PLUGIN_ID);
  // you might want to call prefs.sync() if you're worried about others changing your settings
  this.someStr = prefs.get(KEY1);
  this.someBool= prefs.getBoolean(KEY2);
}
2 голосов
/ 25 января 2011

Вам нужно сохранить свое состояние на диск. Детали того, как это сделать, полностью зависят от вас. Есть множество способов сделать это. Одним из способов является использование API настроек Eclipse. Он основан на концепции различных областей действия: установка против рабочей области против проекта. Я считаю, что уровень рабочего пространства отслеживается классом InstanceScope ...

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/preferences/InstanceScope.html

Этот API даст вам возможность хранить произвольный контент в древовидной структуре и затем читать его обратно. Убедитесь, что первый узел в дереве - это идентификатор вашего плагина, чтобы избежать коллизий с другими плагинами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...