⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 persistentpreferencestore.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
字号:
/* * Copyright (c) 2004-2006 Marco Maccaferri 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: *     Marco Maccaferri - initial API and implementation */package net.sourceforge.eclipsetrader.core.db;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import org.eclipse.core.runtime.ListenerList;import org.eclipse.jface.preference.IPreferenceStore;import org.eclipse.jface.resource.JFaceResources;import org.eclipse.jface.util.Assert;import org.eclipse.jface.util.IPropertyChangeListener;import org.eclipse.jface.util.PropertyChangeEvent;import org.eclipse.jface.util.SafeRunnable;/** * A concrete preference store implementation based on an internal * <code>java.util.Map</code> object. * <p> * This class was not designed to be subclassed. * </p> *  * @see IPreferenceStore */public class PersistentPreferenceStore implements IPreferenceStore{    /**     * List of registered listeners (element type:     * <code>IPropertyChangeListener</code>). These listeners are to be     * informed when the current value of a preference changes.     */    private ListenerList listeners = new ListenerList();    /**     * The mapping from preference name to preference value (represented as     * strings).     */    private Map properties = new HashMap();    /**     * The mapping from preference name to default preference value (represented     * as strings).     */    private Map defaultProperties = new HashMap();    /**     * Indicates whether a value as been changed by <code>setToDefault</code>     * or <code>setValue</code>; initially <code>false</code>.     */    private boolean dirty = false;    /**     * Creates an empty preference store.     */    public PersistentPreferenceStore()    {    }    /**     * Creates an preference store that is the exact copy of the given preference store.     */    public PersistentPreferenceStore(PersistentPreferenceStore preferenceStore)    {        properties.putAll(preferenceStore.properties);        defaultProperties.putAll(preferenceStore.defaultProperties);    }        /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void addPropertyChangeListener(IPropertyChangeListener listener)    {        listeners.add(listener);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public boolean contains(String name)    {        return (properties.containsKey(name) || defaultProperties.containsKey(name));    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void firePropertyChangeEvent(String name, Object oldValue, Object newValue)    {        final Object[] finalListeners = this.listeners.getListeners();        // Do we need to fire an event.        if (finalListeners.length > 0 && (oldValue == null || !oldValue.equals(newValue)))        {            final PropertyChangeEvent pe = new PropertyChangeEvent(this, name, oldValue, newValue);            for (int i = 0; i < finalListeners.length; ++i)            {                final IPropertyChangeListener l = (IPropertyChangeListener) finalListeners[i];                SafeRunnable.run(new SafeRunnable(JFaceResources.getString("PreferenceStore.changeError")) { //$NON-NLS-1$                    public void run()                    {                        l.propertyChange(pe);                    }                });            }        }    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public boolean getBoolean(String name)    {        return getBoolean(properties, name);    }    /**     * Helper function: gets boolean for a given name.     *      * @param p     * @param name     * @return boolean     */    private boolean getBoolean(Map p, String name)    {        String value = (String)p.get(name);        if (value == null)            return BOOLEAN_DEFAULT_DEFAULT;        if (value.equals(IPreferenceStore.TRUE))            return true;        return false;    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public boolean getDefaultBoolean(String name)    {        return getBoolean(defaultProperties, name);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public double getDefaultDouble(String name)    {        return getDouble(defaultProperties, name);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public float getDefaultFloat(String name)    {        return getFloat(defaultProperties, name);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public int getDefaultInt(String name)    {        return getInt(defaultProperties, name);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public long getDefaultLong(String name)    {        return getLong(defaultProperties, name);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public String getDefaultString(String name)    {        return getString(defaultProperties, name);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public double getDouble(String name)    {        return getDouble(properties, name);    }    /**     * Helper function: gets double for a given name.     *      * @param p     * @param name     * @return double     */    private double getDouble(Map p, String name)    {        String value = (String)p.get(name);        if (value == null)            return DOUBLE_DEFAULT_DEFAULT;        double ival = DOUBLE_DEFAULT_DEFAULT;        try        {            ival = new Double(value).doubleValue();        }        catch (NumberFormatException e)        {        }        return ival;    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public float getFloat(String name)    {        return getFloat(properties, name);    }    /**     * Helper function: gets float for a given name.     * @param p     * @param name     * @return float     */    private float getFloat(Map p, String name)    {        String value = (String)p.get(name);        if (value == null)            return FLOAT_DEFAULT_DEFAULT;        float ival = FLOAT_DEFAULT_DEFAULT;        try        {            ival = new Float(value).floatValue();        }        catch (NumberFormatException e)        {        }        return ival;    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public int getInt(String name)    {        return getInt(properties, name);    }    /**     * Helper function: gets int for a given name.     * @param p     * @param name     * @return int     */    private int getInt(Map p, String name)    {        String value = (String)p.get(name);        if (value == null)            return INT_DEFAULT_DEFAULT;        int ival = 0;        try        {            ival = Integer.parseInt(value);        }        catch (NumberFormatException e)        {        }        return ival;    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public long getLong(String name)    {        return getLong(properties, name);    }    /**     * Helper function: gets long for a given name.     * @param p     * @param name     * @return     */    private long getLong(Map p, String name)    {        String value = (String)p.get(name);        if (value == null)            return LONG_DEFAULT_DEFAULT;        long ival = LONG_DEFAULT_DEFAULT;        try        {            ival = Long.parseLong(value);        }        catch (NumberFormatException e)        {        }        return ival;    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public String getString(String name)    {        return getString(properties, name);    }    /**     * Helper function: gets string for a given name.     * @param p     * @param name     * @return     */    private String getString(Map p, String name)    {        String value = (String)p.get(name);        if (value == null)            return STRING_DEFAULT_DEFAULT;        return value;    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public boolean isDefault(String name)    {        return (!properties.containsKey(name) && defaultProperties.containsKey(name));    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public boolean needsSaving()    {        return dirty;    }    /**     * Returns an enumeration of all preferences known to this store which have     * current values other than their default value.     *      * @return an array of preference names     */    public String[] preferenceNames()    {        ArrayList list = new ArrayList();        Iterator it = properties.keySet().iterator();        while (it.hasNext())        {            list.add(it.next());        }        return (String[]) list.toArray(new String[list.size()]);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void putValue(String name, String value)    {        String oldValue = getString(name);        if (oldValue == null || !oldValue.equals(value))        {            setValue(properties, name, value);            dirty = true;        }    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void removePropertyChangeListener(IPropertyChangeListener listener)    {        listeners.remove(listener);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setDefault(String name, double value)    {        setValue(defaultProperties, name, value);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setDefault(String name, float value)    {        setValue(defaultProperties, name, value);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setDefault(String name, int value)    {        setValue(defaultProperties, name, value);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setDefault(String name, long value)    {        setValue(defaultProperties, name, value);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setDefault(String name, String value)    {        setValue(defaultProperties, name, value);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setDefault(String name, boolean value)    {        setValue(defaultProperties, name, value);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setToDefault(String name)    {        Object oldValue = properties.get(name);        properties.remove(name);        dirty = true;        Object newValue = null;        if (defaultProperties != null)            newValue = defaultProperties.get(name);        firePropertyChangeEvent(name, oldValue, newValue);    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setValue(String name, double value)    {        double oldValue = getDouble(name);        if (oldValue != value)        {            setValue(properties, name, value);            dirty = true;            firePropertyChangeEvent(name, new Double(oldValue), new Double(value));        }    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setValue(String name, float value)    {        float oldValue = getFloat(name);        if (oldValue != value)        {            setValue(properties, name, value);            dirty = true;            firePropertyChangeEvent(name, new Float(oldValue), new Float(value));        }    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setValue(String name, int value)    {        int oldValue = getInt(name);        if (oldValue != value)        {            setValue(properties, name, value);            dirty = true;            firePropertyChangeEvent(name, new Integer(oldValue), new Integer(value));        }    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setValue(String name, long value)    {        long oldValue = getLong(name);        if (oldValue != value)        {            setValue(properties, name, value);            dirty = true;            firePropertyChangeEvent(name, new Long(oldValue), new Long(value));        }    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setValue(String name, String value)    {        String oldValue = getString(name);        if (oldValue == null || !oldValue.equals(value))        {            setValue(properties, name, value);            dirty = true;            firePropertyChangeEvent(name, oldValue, value);        }    }    /*     * (non-Javadoc) Method declared on IPreferenceStore.     */    public void setValue(String name, boolean value)    {        boolean oldValue = getBoolean(name);        if (oldValue != value)        {            setValue(properties, name, value);            dirty = true;            firePropertyChangeEvent(name, new Boolean(oldValue), new Boolean(value));        }    }    /**     * Helper method: sets value for a given name.     * @param p     * @param name     * @param value     */    private void setValue(Map p, String name, double value)    {        p.put(name, Double.toString(value));    }    /**     * Helper method: sets value for a given name.     * @param p     * @param name     * @param value     */    private void setValue(Map p, String name, float value)    {        p.put(name, Float.toString(value));    }    /**     * Helper method: sets value for a given name.     * @param p     * @param name     * @param value     */    private void setValue(Map p, String name, int value)    {        p.put(name, Integer.toString(value));    }    /**     * Helper method: sets the value for a given name.     * @param p     * @param name     * @param value     */    private void setValue(Map p, String name, long value)    {        p.put(name, Long.toString(value));    }    /**     * Helper method: sets the value for a given name.     * @param p     * @param name     * @param value     */    private void setValue(Map p, String name, String value)    {        Assert.isTrue(value != null);        p.put(name, value);    }    /**     * Helper method: sets the value for a given name.     * @param p     * @param name     * @param value     */    private void setValue(Map p, String name, boolean value)    {        p.put(name, value == true ? IPreferenceStore.TRUE : IPreferenceStore.FALSE);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -