diff -r 14dc2103a631 -r ed1c9f64298a trace/tracebuilder/com.nokia.tracebuilder.view/src/com/nokia/tracebuilder/preferences/ConfigurationImpl.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trace/tracebuilder/com.nokia.tracebuilder.view/src/com/nokia/tracebuilder/preferences/ConfigurationImpl.java Wed Jun 23 14:35:40 2010 +0300 @@ -0,0 +1,190 @@ +/* +* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +* Configuration interface implementation +* +*/ +package com.nokia.tracebuilder.preferences; + +import java.util.ArrayList; +import java.util.Iterator; + +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.util.IPropertyChangeListener; +import org.eclipse.jface.util.PropertyChangeEvent; + +import com.nokia.tracebuilder.engine.TraceBuilderConfiguration; +import com.nokia.tracebuilder.engine.TraceBuilderConfigurationListener; +import com.nokia.tracebuilder.view.TraceViewPlugin; + +/** + * Configuration interface implementation + * + */ +public final class ConfigurationImpl implements TraceBuilderConfiguration { + + /** + * UI preferences + */ + private IPreferenceStore uiPreferences; + + /** + * List of configuration listeners + */ + private ArrayList configurationListeners; + + /** + * Property change listener for preferences + */ + private IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() { + + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.util.IPropertyChangeListener# + * propertyChange(org.eclipse.jface.util.PropertyChangeEvent) + */ + public void propertyChange(PropertyChangeEvent event) { + if (configurationListeners != null) { + Iterator itr = configurationListeners + .iterator(); + while (itr.hasNext()) { + itr.next().configurationChanged(event.getProperty(), + event.getNewValue()); + } + } + } + }; + + /** + * Constructor + */ + public ConfigurationImpl() { + uiPreferences = TraceViewPlugin.getDefault().getPreferenceStore(); + setDefaults(); + uiPreferences.addPropertyChangeListener(propertyChangeListener); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#hasEntry(java.lang.String) + */ + public boolean hasEntry(String entryName) { + return uiPreferences.contains(entryName); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#setFlag(java.lang.String, + * boolean) + */ + + public void setFlag(String flagName, boolean flag) { + uiPreferences.setValue(flagName, flag); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#getFlag(java.lang.String) + */ + public boolean getFlag(String flagName) { + return uiPreferences.getBoolean(flagName); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#setValue(java.lang.String, + * int) + */ + public void setValue(String valueName, int value) { + uiPreferences.setValue(valueName, value); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#getValue(java.lang.String) + */ + public int getValue(String valueName) { + return uiPreferences.getInt(valueName); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#setText(java.lang.String, + * java.lang.String) + */ + public void setText(String textName, String text) { + uiPreferences.setValue(textName, text); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#getText(java.lang.String) + */ + public String getText(String textName) { + return uiPreferences.getString(textName); + } + + /** + * Sets default values for configuration entries not found from + * configuration file + */ + private void setDefaults() { + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration# + * addConfigurationListener(com.nokia.tracebuilder.engine.TraceBuilderConfigurationListener) + */ + public void addConfigurationListener( + TraceBuilderConfigurationListener configurationListener) { + if (configurationListeners == null) { + configurationListeners = new ArrayList(); + } + configurationListeners.add(configurationListener); + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration# + * removeConfigurationListener(com.nokia.tracebuilder.engine.TraceBuilderConfigurationListener) + */ + public void removeConfigurationListener( + TraceBuilderConfigurationListener configurationListener) { + if (configurationListeners != null) { + configurationListeners.remove(configurationListener); + } + } + + /* + * (non-Javadoc) + * + * @see com.nokia.tracebuilder.engine.TraceBuilderConfiguration#isAvailable() + */ + public boolean isAvailable() { + return true; + } + +} \ No newline at end of file