/******************************************************************************* * Copyright (c) 2010, 2012 Ericsson * * 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: * Patrick Tasse - Initial API and implementation *******************************************************************************/ package fr.inria.linuxtools.tmf.ui.views.filter; import java.io.FileNotFoundException; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import fr.inria.linuxtools.internal.tmf.ui.Activator; import fr.inria.linuxtools.tmf.core.filter.model.ITmfFilterTreeNode; import fr.inria.linuxtools.tmf.core.filter.model.TmfFilterRootNode; import fr.inria.linuxtools.tmf.core.filter.xml.TmfFilterXMLParser; import fr.inria.linuxtools.tmf.core.filter.xml.TmfFilterXMLWriter; /** * Central filter manager * * @version 1.0 * @author Patrick Tasse */ public class FilterManager { private static final String SAVED_FILTERS_FILE_NAME = "saved_filters.xml"; //$NON-NLS-1$ private static final String SAVED_FILTERS_PATH_NAME = Activator.getDefault().getStateLocation().addTrailingSeparator().append(SAVED_FILTERS_FILE_NAME).toString(); private static ITmfFilterTreeNode fRoot = new TmfFilterRootNode(); static { try { fRoot = new TmfFilterXMLParser(SAVED_FILTERS_PATH_NAME).getTree(); } catch (FileNotFoundException e) { } catch (SAXException e) { Activator.getDefault().logError("Error parsing saved filter xml file: " + SAVED_FILTERS_PATH_NAME, e); //$NON-NLS-1$ } catch (IOException e) { Activator.getDefault().logError("Error parsing saved filter xml file: " + SAVED_FILTERS_PATH_NAME, e); //$NON-NLS-1$ } } /** * Retrieve the currently saved filters * * @return The array of filters */ public static ITmfFilterTreeNode[] getSavedFilters() { return fRoot.clone().getChildren(); } /** * Set the passed filters as the currently saved ones. * * @param filters * The filters to save */ public static void setSavedFilters(ITmfFilterTreeNode[] filters) { fRoot = new TmfFilterRootNode(); for (ITmfFilterTreeNode filter : filters) { fRoot.addChild(filter.clone()); } try { TmfFilterXMLWriter writerXML = new TmfFilterXMLWriter(fRoot); writerXML.saveTree(SAVED_FILTERS_PATH_NAME); } catch (ParserConfigurationException e) { Activator.getDefault().logError("Error saving filter xml file: " + SAVED_FILTERS_PATH_NAME, e); //$NON-NLS-1$ } } }