Package org.objectstyle.wolips.preferences

Source Code of org.objectstyle.wolips.preferences.Preferences

/* ====================================================================
*
* The ObjectStyle Group Software License, Version 1.0
*
* Copyright (c) 2002 - 2004 The ObjectStyle Group
* and individual authors of the software.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in
*    the documentation and/or other materials provided with the
*    distribution.
*
* 3. The end-user documentation included with the redistribution, if
*    any, must include the following acknowlegement:
*       "This product includes software developed by the
*        ObjectStyle Group (http://objectstyle.org/)."
*    Alternately, this acknowlegement may appear in the software itself,
*    if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "ObjectStyle Group" and "Cayenne"
*    must not be used to endorse or promote products derived
*    from this software without prior written permission. For written
*    permission, please contact andrus@objectstyle.org.
*
* 5. Products derived from this software may not be called "ObjectStyle"
*    nor may "ObjectStyle" appear in their names without prior written
*    permission of the ObjectStyle Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED.  IN NO EVENT SHALL THE OBJECTSTYLE GROUP OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the ObjectStyle Group.  For more
* information on the ObjectStyle Group, please see
* <http://objectstyle.org/>.
*
*/

package org.objectstyle.wolips.preferences;

import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Vector;

import org.eclipse.jface.preference.IPersistentPreferenceStore;
import org.eclipse.jface.preference.IPreferenceStore;

/**
* @author uli
*/
public class Preferences {

  /**
   * Comment for <code>PREF_WRITE_PB_DOT_PROJECT_ON_BUILD</code>
   */
  public static final String PREF_WRITE_PB_DOT_PROJECT_ON_BUILD = "org.objectstyle.wolips.preference.WritePB_DotProjectOnBuild";

  public static final String PREF_MOCK_BUNDLE_ENABLED = "org.objectstyle.wolips.preference.MockBundleEnabled";

  /**
   * Comment for <code>PREF_WRITE_XCODE_ON_BUILD</code>
   */
  public static final String PREF_WRITE_XCODE_ON_BUILD = "org.objectstyle.wolips.preference.WriteXcodeOnBuild";

  /**
   * Comment for <code>PREF_WRITE_XCODE21_ON_BUILD</code>
   */
  public static final String PREF_WRITE_XCODE21_ON_BUILD = "org.objectstyle.wolips.preference.WriteXcode21OnBuild";

  /**
   * Comment for <code>PREF_AUTOEOGENERATE_ON_BUILD</code>
   */
  public static final String PREF_AUTOEOGENERATE_ON_BUILD = "org.objectstyle.wolips.preference.AutoEOGenerateOnBuild";

  /**
   * Comment for <code>PREF_CAPTURE_ANT_OUTPUT</code>
   */
  public static final String PREF_CAPTURE_ANT_OUTPUT = "org.objectstyle.wolips.preference.CapureAntOutput";

  /**
   * Comment for <code>PREF_OPEN_WOCOMPONENT_ACTION_INCLUDES_OPEN_HTML</code>
   */
  public static final String PREF_OPEN_WOCOMPONENT_ACTION_INCLUDES_OPEN_HTML = "org.objectstyle.wolips.Preference.OpenWOComponentActionIncludesOpenHTML";

  /**
   * Comment for <code>PREF_NS_PROJECT_SEARCH_PATH</code>
   */
  public static final String PREF_NS_PROJECT_SEARCH_PATH = "org.objectstyle.wolips.Preference.NSProjectSearch";

  /**
   * Comment for <code>PREF_REBUILD_WOBUILD_PROPERTIES_ON_NEXT_LAUNCH</code>
   */
  public static final String PREF_REBUILD_WOBUILD_PROPERTIES_ON_NEXT_LAUNCH = "org.objectstyle.wolips.Preference.RebuildWOBuildPropertiesOnNextLaunch";

  /**
   * Comment for <code>PREF_WOLIPS_VERSION_EARLY_STARTUP</code>
   */
  public static final String PREF_WOLIPS_VERSION_EARLY_STARTUP = "org.objectstyle.wolips.Preference.WOLipsVersionEarlyStartup";

  /**
   * Comment for <code>PREF_LAUNCH_GLOBAL</code>
   */
  public static final String PREF_LAUNCH_GLOBAL = "org.objectstyle.wolips.Preference.Launch_Global";

  public static final String PREF_EOGENERATOR_JAVA_14 = "org.objectstyle.wolips.Preference.EOGeneratorJava14";

  public static final String PREF_EOGENERATOR_PATH = "org.objectstyle.wolips.Preference.EOGeneratorPath";

  public static final String PREF_EOGENERATOR_TEMPLATE_DIR = "org.objectstyle.wolips.Preference.EOGeneratorTemplateDir";

  public static final String PREF_EOGENERATOR_JAVA_TEMPLATE = "org.objectstyle.wolips.Preference.EOGeneratorTemplate";

  public static final String PREF_EOGENERATOR_SUBCLASS_JAVA_TEMPLATE = "org.objectstyle.wolips.Preference.EOGeneratorSubclassTemplate";

  public static final String PREF_SHOW_CONSOLE_EXCEPTION_DIALOGS = "org.objectstyle.wolips.Preference.ConsoleExceptionDialogs";
 
  public static final String PREF_WOLIPS_PROPERTIES_FILE = "org.objectstyle.wolips.wolipsPropertiesFile";
  /**
   * Comment for <code>FLAG_INCLUDE_EXCLUDE_RULES_CHANGED</code>
   */
  public static boolean FLAG_INCLUDE_EXCLUDE_RULES_CHANGED = false;

  /**
   * Comment for <code>trueString</code>
   */
  public static final String trueString = "true";

  /**
   * Comment for <code>falseString</code>
   */
  public static final String falseString = "false";

  // set this sting to a preferences key and call set defaults to set the
  // default value for this preferences key
  private static String SET_DEFAULTS_STRING = null;

  /**
   *
   */
  public static void save() {
    IPreferenceStore store = getPreferenceStore();
    if (store instanceof IPersistentPreferenceStore) {
      IPersistentPreferenceStore pstore = (IPersistentPreferenceStore) store;
      if (pstore.needsSaving()) {
        try {
          pstore.save();
        } catch (IOException up) {
          // hmm, what should we do?
        }
      }
    }

  }

  /**
   * Method setDefaults.
   */
  public static synchronized void setDefaults() {
    IPreferenceStore store = getPreferenceStore();
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_WOLIPS_PROPERTIES_FILE)) {
      store.setDefault(Preferences.PREF_WOLIPS_PROPERTIES_FILE, "wolips.properties");
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_CAPTURE_ANT_OUTPUT)) {
      store.setDefault(Preferences.PREF_CAPTURE_ANT_OUTPUT, Preferences.falseString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_MOCK_BUNDLE_ENABLED)) {
      store.setDefault(Preferences.PREF_MOCK_BUNDLE_ENABLED, Preferences.trueString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_WRITE_PB_DOT_PROJECT_ON_BUILD)) {
      store.setDefault(Preferences.PREF_WRITE_PB_DOT_PROJECT_ON_BUILD, Preferences.falseString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_EOGENERATOR_PATH)) {
      store.setDefault(Preferences.PREF_EOGENERATOR_PATH, "");
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_EOGENERATOR_TEMPLATE_DIR)) {
      store.setDefault(Preferences.PREF_EOGENERATOR_TEMPLATE_DIR, "");
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_EOGENERATOR_JAVA_TEMPLATE)) {
      store.setDefault(Preferences.PREF_EOGENERATOR_JAVA_TEMPLATE, "");
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_EOGENERATOR_SUBCLASS_JAVA_TEMPLATE)) {
      store.setDefault(Preferences.PREF_EOGENERATOR_SUBCLASS_JAVA_TEMPLATE, "");
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_EOGENERATOR_JAVA_14)) {
      store.setDefault(Preferences.PREF_EOGENERATOR_JAVA_14, Preferences.falseString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_WRITE_XCODE_ON_BUILD)) {
      store.setDefault(Preferences.PREF_WRITE_XCODE_ON_BUILD, Preferences.falseString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_WRITE_XCODE21_ON_BUILD)) {
      store.setDefault(Preferences.PREF_WRITE_XCODE21_ON_BUILD, Preferences.falseString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_AUTOEOGENERATE_ON_BUILD)) {
      store.setDefault(Preferences.PREF_AUTOEOGENERATE_ON_BUILD, Preferences.falseString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_OPEN_WOCOMPONENT_ACTION_INCLUDES_OPEN_HTML)) {
      store.setDefault(Preferences.PREF_OPEN_WOCOMPONENT_ACTION_INCLUDES_OPEN_HTML, Preferences.falseString);
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_NS_PROJECT_SEARCH_PATH)) {
      store.setDefault(Preferences.PREF_NS_PROJECT_SEARCH_PATH, "");
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_REBUILD_WOBUILD_PROPERTIES_ON_NEXT_LAUNCH)) {
      store.setDefault(Preferences.PREF_REBUILD_WOBUILD_PROPERTIES_ON_NEXT_LAUNCH, PreferencesMessages.getString(Preferences.falseString));
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_WOLIPS_VERSION_EARLY_STARTUP)) {
      store.setDefault(Preferences.PREF_WOLIPS_VERSION_EARLY_STARTUP, "0.0.0");
    }
    if (Preferences.SET_DEFAULTS_STRING == null || Preferences.SET_DEFAULTS_STRING.equals(Preferences.PREF_SHOW_CONSOLE_EXCEPTION_DIALOGS)) {
      store.setDefault(Preferences.PREF_SHOW_CONSOLE_EXCEPTION_DIALOGS, PreferencesMessages.getString(Preferences.trueString));
    }
    store.setDefault(Preferences.PREF_LAUNCH_GLOBAL, PreferencesMessages.getString(Preferences.PREF_LAUNCH_GLOBAL));
    Preferences.SET_DEFAULTS_STRING = null;
  }

  /**
   * Method getString.
   *
   * @param key
   * @return String
   */
  public static synchronized String getString(String key) {
    IPreferenceStore store = getPreferenceStore();
    String returnValue = store.getString(key);
    if (returnValue.equals(IPreferenceStore.STRING_DEFAULT_DEFAULT)) {
      Preferences.setDefaults();
      Preferences.SET_DEFAULTS_STRING = key;
      returnValue = store.getString(key);
    }
    return returnValue;
  }

  /**
   * Method setString.
   *
   * @param key
   * @param value
   */
  public static void setString(String key, String value) {
    IPreferenceStore store = getPreferenceStore();
    store.setValue(key, value);
  }

  /**
   * Method getBoolean.
   *
   * @param key
   * @return boolean
   */
  private static boolean getBoolean(String key) {
    IPreferenceStore store = getPreferenceStore();
    return (Preferences.trueString.equals(store.getString(key)));
  }

  /**
   * Method setBoolean.
   *
   * @param key
   * @param value
   */
  private static void setBoolean(String key, boolean value) {
    IPreferenceStore store = getPreferenceStore();
    if (value)
      store.setValue(key, Preferences.trueString);
    else
      store.setValue(key, Preferences.falseString);
  }

  /**
   * Method getPreferenceStore.
   *
   * @return IPreferenceStore
   */
  public static IPreferenceStore getPreferenceStore() {
    return PreferencesPlugin.getDefault().getPreferenceStore();
  }

  /**
   * @param key
   * @return the launch info for the given key
   */
  public static ILaunchInfo[] getLaunchInfoForKey(String key) {
    String string = Preferences.getString(key);
    return Preferences.getLaunchInfoFrom(string);
  }

  /**
   * @param string
   * @return creates a launch info from the given string
   */
  public static ILaunchInfo[] getLaunchInfoFrom(String string) {
    if (string == null)
      return new ILaunchInfo[0];
    StringTokenizer stringTokenizer = new StringTokenizer(string, "<>");
    Vector<String> vector = new Vector<String>();
    while (stringTokenizer.hasMoreElements()) {
      String token = stringTokenizer.nextToken();
      vector.add(token);
    }
    ILaunchInfo[] launchInfo = new ILaunchInfo[vector.size() / 3];
    int j = 0;
    for (int i = 0; i < launchInfo.length; i++) {
      launchInfo[i] = new LaunchInfo(vector.elementAt(j), vector.elementAt(j + 1), vector.elementAt(j + 2));
      j = j + 3;
    }
    return launchInfo;
  }

  /**
   * @param parameter
   * @param arguments
   * @param enabled
   * @return the launch info converted to a string
   */
  public static String LaunchInfoToString(String[] parameter, String[] arguments, boolean[] enabled) {
    String value = "";
    for (int i = 0; i < parameter.length; i++) {
      value += parameter[i];
      value += "<>";
      value += arguments[i];
      value += "<>";
      value += enabled[i];
      if (i != (parameter.length - 1))
        value += "<>";
    }
    return value;
  }

  /**
   * @param parameter
   * @param arguments
   * @param enabled
   * @param key
   */
  public static void setLaunchInfoForKey(String[] parameter, String[] arguments, boolean[] enabled, String key) {
    String value = Preferences.LaunchInfoToString(parameter, arguments, enabled);
    Preferences.setString(key, value);
  }

  private static class LaunchInfo implements ILaunchInfo {
    /**
     * Comment for <code>parameter</code>
     */
    public String parameter;

    /**
     * Comment for <code>argument</code>
     */
    public String argument;

    /**
     * Comment for <code>enabled</code>
     */
    public boolean enabled;

    /**
     * @param parameter
     * @param argument
     * @param enabled
     */
    public LaunchInfo(String parameter, String argument, String enabled) {
      this.parameter = parameter;
      this.argument = argument;
      this.enabled = (enabled != null && Preferences.trueString.equals(enabled));
    }

    public String getArgument() {
      return this.argument;
    }

    public boolean isEnabled() {
      return this.enabled;
    }

    public String getParameter() {
      return this.parameter;
    }

    public int compareTo(ILaunchInfo obj) {
      return parameter.compareTo(obj.getParameter());
    }

  }

  public static String getLaunchGlobal() {
    return Preferences.getString(Preferences.PREF_LAUNCH_GLOBAL);
  }

  public static String getNSProjectSearchPath() {
    return Preferences.getString(Preferences.PREF_NS_PROJECT_SEARCH_PATH);
  }

  public static boolean getOpenWOComponentActionIncludesOpenHTML() {
    return Preferences.getBoolean(Preferences.PREF_OPEN_WOCOMPONENT_ACTION_INCLUDES_OPEN_HTML);
  }

  public static boolean shouldRebuildWOBuildPropertiesOnNextLaunch() {
    return Preferences.getBoolean(Preferences.PREF_REBUILD_WOBUILD_PROPERTIES_ON_NEXT_LAUNCH);
  }

  public static boolean shouldCaptureAntOutput() {
    return Preferences.getBoolean(Preferences.PREF_CAPTURE_ANT_OUTPUT);
  }

  public static boolean mockBundleEnabled() {
    return Preferences.getBoolean(Preferences.PREF_MOCK_BUNDLE_ENABLED);
  }
 
  public static boolean shouldWritePBProjOnBuild() {
    return Preferences.getBoolean(Preferences.PREF_WRITE_PB_DOT_PROJECT_ON_BUILD);
  }

  public static boolean shouldWriteXcodeOnBuild() {
    return Preferences.getBoolean(Preferences.PREF_WRITE_XCODE_ON_BUILD);
  }

  public static boolean shouldWriteXcodeProjOnBuild() {
    return Preferences.getBoolean(Preferences.PREF_WRITE_XCODE21_ON_BUILD);
  }

  public static boolean shouldAutoEOGeneratorOnBuild() {
    return Preferences.getBoolean(Preferences.PREF_AUTOEOGENERATE_ON_BUILD);
  }

  public static boolean isEOGeneratorJava14() {
    return Preferences.getBoolean(Preferences.PREF_EOGENERATOR_JAVA_14);
  }
 
  public static void setEOGeneratorJava14(boolean eogeneratorJava14) {
    Preferences.setBoolean(Preferences.PREF_EOGENERATOR_JAVA_14, eogeneratorJava14);
  }
 
  public static String getEOGeneratorPath() {
    return Preferences.getString(Preferences.PREF_EOGENERATOR_PATH);
  }

  public static void setEOGeneratorPath(String _path) {
    Preferences.setString(Preferences.PREF_EOGENERATOR_PATH, _path);
  }

  public static String getEOGeneratorTemplateDir() {
    return Preferences.getString(Preferences.PREF_EOGENERATOR_TEMPLATE_DIR);
  }

  public static void setEOGeneratorTemplateDir(String _path) {
    Preferences.setString(Preferences.PREF_EOGENERATOR_TEMPLATE_DIR, _path);
  }

  public static String getEOGeneratorJavaTemplate() {
    return Preferences.getString(Preferences.PREF_EOGENERATOR_JAVA_TEMPLATE);
  }

  public static void setEOGeneratorJavaTemplate(String _path) {
    Preferences.setString(Preferences.PREF_EOGENERATOR_JAVA_TEMPLATE, _path);
  }

  public static String getEOGeneratorSubclassJavaTemplate() {
    return Preferences.getString(Preferences.PREF_EOGENERATOR_SUBCLASS_JAVA_TEMPLATE);
  }

  public static void setEOGeneratorSubclassJavaTemplate(String _path) {
    Preferences.setString(Preferences.PREF_EOGENERATOR_SUBCLASS_JAVA_TEMPLATE, _path);
  }

  public static String getWOLipsVersionEarlyStartup() {
    return Preferences.getString(Preferences.PREF_WOLIPS_VERSION_EARLY_STARTUP);
  }

  public static void setLaunchGlobal(String string) {
    Preferences.setString(Preferences.PREF_LAUNCH_GLOBAL, string);
  }

  public static void setNSProjectSearchPath(String string) {
    Preferences.setString(Preferences.PREF_NS_PROJECT_SEARCH_PATH, string);
  }

  public static void setOpenWOComponentActionIncludesOpenHTML(boolean value) {
    Preferences.setBoolean(Preferences.PREF_OPEN_WOCOMPONENT_ACTION_INCLUDES_OPEN_HTML, value);
  }

  public static void setRebuildWOBuildPropertiesOnNextLaunch(boolean value) {
    Preferences.setBoolean(Preferences.PREF_REBUILD_WOBUILD_PROPERTIES_ON_NEXT_LAUNCH, value);
  }

  public static void setCaptureAntOutput(boolean value) {
    Preferences.setBoolean(Preferences.PREF_CAPTURE_ANT_OUTPUT, value);
  }

  public static void setWritePBProjOnBuild(boolean value) {
    Preferences.setBoolean(PREF_WRITE_PB_DOT_PROJECT_ON_BUILD, value);
  }

  public static void setWriteXcodeOnBuild(boolean value) {
    Preferences.setBoolean(Preferences.PREF_WRITE_XCODE_ON_BUILD, value);
  }

  public static void setWriteXcodeProjOnBuild(boolean value) {
    Preferences.setBoolean(Preferences.PREF_WRITE_XCODE21_ON_BUILD, value);
  }

  public static void setAutoEOGenerateOnBuild(boolean value) {
    Preferences.setBoolean(Preferences.PREF_AUTOEOGENERATE_ON_BUILD, value);
  }

  public static void setWOLipsVersionEarlyStartup(String string) {
    Preferences.setString(Preferences.PREF_WOLIPS_VERSION_EARLY_STARTUP, string);
  }
 
  public static void setShowConsoleExceptionDialogs(boolean value) {
    Preferences.setBoolean(Preferences.PREF_SHOW_CONSOLE_EXCEPTION_DIALOGS, value);
  }
 
  public static boolean isShowConsoleExceptionDialogs() {
    return Preferences.getBoolean(Preferences.PREF_SHOW_CONSOLE_EXCEPTION_DIALOGS);
  }
}
TOP

Related Classes of org.objectstyle.wolips.preferences.Preferences

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.