| /* |
| *(c) Copyright QNX Software Systems Ltd. 2002. |
| * All Rights Reserved. |
| * |
| */ |
| package org.eclipse.cdt.debug.internal.ui.actions; |
| |
| import java.util.HashMap; |
| |
| import org.eclipse.jface.preference.IPreferenceStore; |
| import org.eclipse.jface.util.IPropertyChangeListener; |
| import org.eclipse.jface.util.ListenerList; |
| import org.eclipse.jface.util.PropertyChangeEvent; |
| |
| /** |
| * |
| * A preference store that presents the state of the properties |
| * of a C/C++ breakpoint. Default settings are not supported. |
| * |
| * @since Aug 27, 2002 |
| */ |
| public class CBreakpointPreferenceStore implements IPreferenceStore |
| { |
| protected final static String ENABLED = "ENABLED"; //$NON-NLS-1$ |
| protected final static String CONDITION = "CONDITION"; //$NON-NLS-1$ |
| protected final static String IGNORE_COUNT = "IGNORE_COUNT"; //$NON-NLS-1$ |
| |
| protected HashMap fProperties; |
| private boolean fIsDirty = false; |
| private ListenerList fListeners; |
| |
| /** |
| * Constructor for CBreakpointPreferenceStore. |
| */ |
| public CBreakpointPreferenceStore() |
| { |
| fProperties = new HashMap( 3 ); |
| fListeners = new ListenerList(); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#addPropertyChangeListener(IPropertyChangeListener) |
| */ |
| public void addPropertyChangeListener( IPropertyChangeListener listener ) |
| { |
| fListeners.add( listener ); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#contains(String) |
| */ |
| public boolean contains( String name ) |
| { |
| return fProperties.containsKey( name ); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#firePropertyChangeEvent(String, Object, Object) |
| */ |
| public void firePropertyChangeEvent( String name, Object oldValue, Object newValue ) |
| { |
| Object[] listeners = fListeners.getListeners(); |
| if ( listeners.length > 0 && (oldValue == null || !oldValue.equals( newValue ) ) ) |
| { |
| PropertyChangeEvent pe = new PropertyChangeEvent( this, name, oldValue, newValue ); |
| for ( int i = 0; i < listeners.length; ++i ) |
| { |
| IPropertyChangeListener l = (IPropertyChangeListener)listeners[i]; |
| l.propertyChange( pe ); |
| } |
| } |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(String) |
| */ |
| public boolean getBoolean( String name ) |
| { |
| Object b = fProperties.get( name ); |
| if ( b instanceof Boolean ) |
| { |
| return ((Boolean)b).booleanValue(); |
| } |
| return false; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(String) |
| */ |
| public boolean getDefaultBoolean( String name ) |
| { |
| return false; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(String) |
| */ |
| public double getDefaultDouble( String name ) |
| { |
| return 0; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(String) |
| */ |
| public float getDefaultFloat( String name ) |
| { |
| return 0; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(String) |
| */ |
| public int getDefaultInt( String name ) |
| { |
| return 0; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(String) |
| */ |
| public long getDefaultLong( String name ) |
| { |
| return 0; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(String) |
| */ |
| public String getDefaultString( String name ) |
| { |
| return null; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getDouble(String) |
| */ |
| public double getDouble( String name ) |
| { |
| return 0; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getFloat(String) |
| */ |
| public float getFloat( String name ) |
| { |
| return 0; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getInt(String) |
| */ |
| public int getInt( String name ) |
| { |
| Object i = fProperties.get( name ); |
| if ( i instanceof Integer ) |
| { |
| return ((Integer)i).intValue(); |
| } |
| return 1; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getLong(String) |
| */ |
| public long getLong( String name ) |
| { |
| return 0; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#getString(String) |
| */ |
| public String getString( String name ) |
| { |
| Object str = fProperties.get( name ); |
| if ( str instanceof String ) |
| { |
| return (String)str; |
| } |
| return null; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#isDefault(String) |
| */ |
| public boolean isDefault( String name ) |
| { |
| return false; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#needsSaving() |
| */ |
| public boolean needsSaving() |
| { |
| return fIsDirty; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#putValue(String, String) |
| */ |
| public void putValue( String name, String newValue ) |
| { |
| Object oldValue = fProperties.get( name ); |
| if ( oldValue == null || !oldValue.equals( newValue ) ) |
| { |
| fProperties.put( name, newValue ); |
| setDirty( true ); |
| } |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(IPropertyChangeListener) |
| */ |
| public void removePropertyChangeListener( IPropertyChangeListener listener ) |
| { |
| fListeners.remove( listener ); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, double) |
| */ |
| public void setDefault( String name, double value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, float) |
| */ |
| public void setDefault( String name, float value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, int) |
| */ |
| public void setDefault( String name, int value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, long) |
| */ |
| public void setDefault( String name, long value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, String) |
| */ |
| public void setDefault( String name, String defaultObject ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(String, boolean) |
| */ |
| public void setDefault( String name, boolean value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(String) |
| */ |
| public void setToDefault( String name ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, double) |
| */ |
| public void setValue( String name, double value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, float) |
| */ |
| public void setValue( String name, float value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, int) |
| */ |
| public void setValue( String name, int newValue ) |
| { |
| int oldValue = getInt( name ); |
| if ( oldValue != newValue ) |
| { |
| fProperties.put( name, new Integer( newValue ) ); |
| setDirty( true ); |
| firePropertyChangeEvent( name, new Integer( oldValue ), new Integer( newValue ) ); |
| } |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, long) |
| */ |
| public void setValue( String name, long value ) |
| { |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, String) |
| */ |
| public void setValue( String name, String newValue ) |
| { |
| Object oldValue = fProperties.get( name ); |
| if ( oldValue == null || !oldValue.equals( newValue ) ) |
| { |
| fProperties.put( name, newValue ); |
| setDirty( true ); |
| firePropertyChangeEvent( name, oldValue, newValue ); |
| } |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jface.preference.IPreferenceStore#setValue(String, boolean) |
| */ |
| public void setValue( String name, boolean newValue ) |
| { |
| boolean oldValue = getBoolean( name ); |
| if ( oldValue != newValue ) |
| { |
| fProperties.put( name, new Boolean( newValue ) ); |
| setDirty(true); |
| firePropertyChangeEvent( name, new Boolean( oldValue ), new Boolean( newValue ) ); |
| } |
| } |
| |
| protected void setDirty( boolean isDirty ) |
| { |
| fIsDirty = isDirty; |
| } |
| } |