blob: 0d3109c7ac66ffd99ca0ef4ceed52a9a9096baf8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/**
* The default state manager for a cheat sheet. The data will be saved and restored
* using a file in metadata whose name is derived from the id
*/
package org.eclipse.ui.internal.cheatsheets.state;
import java.util.Hashtable;
import java.util.Properties;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.ui.internal.cheatsheets.data.CheatSheetSaveHelper;
import org.eclipse.ui.internal.cheatsheets.data.IParserTags;
import org.eclipse.ui.internal.cheatsheets.registry.CheatSheetElement;
import org.eclipse.ui.internal.cheatsheets.views.CheatSheetManager;
/**
* The default state manager saves the state in an xml file whose name is the
* same as the id of the cheatsheet.
*/
public class DefaultStateManager implements ICheatSheetStateManager {
private CheatSheetSaveHelper saveHelper = new CheatSheetSaveHelper();
private Properties props;
private CheatSheetElement element;
private boolean propertiesRead = false;
@Override
public Properties getProperties() {
if (!propertiesRead) {
props = saveHelper.loadState(element.getID());
propertiesRead = true;
}
return props;
}
@Override
public CheatSheetManager getCheatSheetManager() {
CheatSheetManager result = new CheatSheetManager(element);
if (getProperties() != null) {
result.setData((Hashtable<String, String>) getProperties().get(IParserTags.MANAGERDATA));
}
return result;
}
@Override
public void setElement(CheatSheetElement element) {
this.element = element;
}
@Override
public IStatus saveState(Properties properties, CheatSheetManager manager) {
return saveHelper.saveState(properties, manager);
}
}