/******************************************************************************* * Copyright (c) 2006 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; public Properties getProperties() { if (!propertiesRead) { props = saveHelper.loadState(element.getID()); propertiesRead = true; } return props; } public CheatSheetManager getCheatSheetManager() { CheatSheetManager result = new CheatSheetManager(element); if (getProperties() != null) { result.setData((Hashtable) getProperties().get(IParserTags.MANAGERDATA)); } return result; } public void setElement(CheatSheetElement element) { this.element = element; } public IStatus saveState(Properties properties, CheatSheetManager manager) { return saveHelper.saveState(properties, manager); } }