Workaround for feature request #1154254 (sticky browser URL) that solves bug #1827766...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / compiler / ConfigurableOption.java
index e1a64ce..e9b77f2 100644 (file)
@@ -17,210 +17,242 @@ package net.sourceforge.phpdt.internal.compiler;
  * @deprecated backport 1.0 internal functionality
  */
 
-import java.util.*;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.NoSuchElementException;
+import java.util.ResourceBundle;
+import java.util.StringTokenizer;
 
 public class ConfigurableOption {
        private String componentName;
+
        private String optionName;
+
        private int id;
 
        private String category;
+
        private String name;
+
        private String description;
+
        private int currentValueIndex;
+
        private int defaultValueIndex;
+
        private String[] possibleValues;
 
-       // special value for <possibleValues> indicating that 
+       // special value for <possibleValues> indicating that
        // the <currentValueIndex> is the actual value
-       public final static String[] NoDiscreteValue = {}; 
-/**
- * INTERNAL USE ONLY
- *
- * Initialize an instance of this class according to a specific locale
- *
- * @param loc java.util.Locale
- */
-public ConfigurableOption(
-       String componentName, 
-       String optionName, 
-       Locale loc, 
-       int currentValueIndex) {
-
-       this.componentName = componentName;
-       this.optionName = optionName;
-       this.currentValueIndex = currentValueIndex;
-               
-       ResourceBundle resource = null;
-       try {
-               String location = componentName.substring(0, componentName.lastIndexOf('.'));
-               resource = ResourceBundle.getBundle(location + ".Options", loc); //$NON-NLS-1$
-       } catch (MissingResourceException e) {
-               category = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
-               name = "Missing ressources entries for"+ componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
-               description = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
-               possibleValues = new String[0];
-               id = -1;
+       public final static String[] NoDiscreteValue = {};
+
+       /**
+        * INTERNAL USE ONLY
+        * 
+        * Initialize an instance of this class according to a specific locale
+        * 
+        * @param loc
+        *            java.util.Locale
+        */
+       public ConfigurableOption(String componentName, String optionName,
+                       Locale loc, int currentValueIndex) {
+
+               this.componentName = componentName;
+               this.optionName = optionName;
+               this.currentValueIndex = currentValueIndex;
+
+               ResourceBundle resource = null;
+               try {
+                       String location = componentName.substring(0, componentName
+                                       .lastIndexOf('.'));
+                       resource = ResourceBundle.getBundle(location + ".Options", loc); //$NON-NLS-1$
+               } catch (MissingResourceException e) {
+                       category = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+                       name = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+                       description = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+                       possibleValues = new String[0];
+                       id = -1;
+               }
+               if (resource == null)
+                       return;
+               try {
+                       id = Integer.parseInt(resource.getString(optionName + ".number")); //$NON-NLS-1$
+               } catch (MissingResourceException e) {
+                       id = -1;
+               } catch (NumberFormatException e) {
+                       id = -1;
+               }
+               try {
+                       category = resource.getString(optionName + ".category"); //$NON-NLS-1$
+               } catch (MissingResourceException e) {
+                       category = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+               }
+               try {
+                       name = resource.getString(optionName + ".name"); //$NON-NLS-1$
+               } catch (MissingResourceException e) {
+                       name = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+               }
+               try {
+                       StringTokenizer tokenizer = new StringTokenizer(resource
+                                       .getString(optionName + ".possibleValues"), "|"); //$NON-NLS-1$ //$NON-NLS-2$
+                       int numberOfValues = Integer.parseInt(tokenizer.nextToken());
+                       if (numberOfValues == -1) {
+                               possibleValues = NoDiscreteValue;
+                       } else {
+                               possibleValues = new String[numberOfValues];
+                               int index = 0;
+                               while (tokenizer.hasMoreTokens()) {
+                                       possibleValues[index] = tokenizer.nextToken();
+                                       index++;
+                               }
+                       }
+               } catch (MissingResourceException e) {
+                       possibleValues = new String[0];
+               } catch (NoSuchElementException e) {
+                       possibleValues = new String[0];
+               } catch (NumberFormatException e) {
+                       possibleValues = new String[0];
+               }
+               try {
+                       description = resource.getString(optionName + ".description"); //$NON-NLS-1$
+               } catch (MissingResourceException e) {
+                       description = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+               }
        }
-       if (resource == null) return;
-       try {
-               id = Integer.parseInt(resource.getString(optionName + ".number")); //$NON-NLS-1$
-       } catch (MissingResourceException e) {
-               id = -1;
-       } catch (NumberFormatException e) {
-               id = -1;
+
+       /**
+        * Return a String that represents the localized category of the receiver.
+        * 
+        * @return java.lang.String
+        */
+       public String getCategory() {
+               return category;
        }
-       try {
-               category = resource.getString(optionName + ".category"); //$NON-NLS-1$
-       } catch (MissingResourceException e) {
-               category = "Missing ressources entries for" + componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+
+       /**
+        * Return a String that identifies the component owner (typically the
+        * qualified type name of the class which it corresponds to).
+        * 
+        * e.g. "org.phpeclipse.phpdt.internal.compiler.api.Compiler"
+        * 
+        * @return java.lang.String
+        */
+       public String getComponentName() {
+               return componentName;
        }
-       try {
-               name = resource.getString(optionName + ".name"); //$NON-NLS-1$
-       } catch (MissingResourceException e) {
-               name = "Missing ressources entries for"+ componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+
+       /**
+        * Answer the index (in possibleValues array) of the current setting for
+        * this particular option.
+        * 
+        * In case the set of possibleValues is NoDiscreteValue, then this index is
+        * the actual value (e.g. max line lenght set to 80).
+        * 
+        * @return int
+        */
+       public int getCurrentValueIndex() {
+               return currentValueIndex;
        }
-       try {
-               StringTokenizer tokenizer = new StringTokenizer(resource.getString(optionName + ".possibleValues"), "|"); //$NON-NLS-1$ //$NON-NLS-2$
-               int numberOfValues = Integer.parseInt(tokenizer.nextToken());
-               if(numberOfValues == -1){
-                       possibleValues = NoDiscreteValue;
-               } else {
-                       possibleValues = new String[numberOfValues];
-                       int index = 0;
-                       while (tokenizer.hasMoreTokens()) {
-                               possibleValues[index] = tokenizer.nextToken();
-                               index++;
-                       }
-               }
-       } catch (MissingResourceException e) {
-               possibleValues = new String[0];
-       } catch (NoSuchElementException e) {
-               possibleValues = new String[0];
-       } catch (NumberFormatException e) {
-               possibleValues = new String[0];
+
+       /**
+        * Answer the index (in possibleValues array) of the default setting for
+        * this particular option.
+        * 
+        * In case the set of possibleValues is NoDiscreteValue, then this index is
+        * the actual value (e.g. max line lenght set to 80).
+        * 
+        * @return int
+        */
+       public int getDefaultValueIndex() {
+               return defaultValueIndex;
        }
-       try {
-               description = resource.getString(optionName + ".description");  //$NON-NLS-1$
-       } catch (MissingResourceException e) {
-               description = "Missing ressources entries for"+ componentName + " options"; //$NON-NLS-1$ //$NON-NLS-2$
+
+       /**
+        * Return an String that represents the localized description of the
+        * receiver.
+        * 
+        * @return java.lang.String
+        */
+       public String getDescription() {
+               return description;
        }
-}
-/**
- * Return a String that represents the localized category of the receiver.
- * @return java.lang.String
- */
-public String getCategory() {
-       return category;
-}
-/**
- * Return a String that identifies the component owner (typically the qualified
- *     type name of the class which it corresponds to).
- *
- * e.g. "org.eclipse.jdt.internal.compiler.api.Compiler"
- *
- * @return java.lang.String
- */
-public String getComponentName() {
-       return componentName;
-}
-/**
- * Answer the index (in possibleValues array) of the current setting for this
- * particular option.
- *
- * In case the set of possibleValues is NoDiscreteValue, then this index is the
- * actual value (e.g. max line lenght set to 80).
- *
- * @return int
- */
-public int getCurrentValueIndex() {
-       return currentValueIndex;
-}
-/**
- * Answer the index (in possibleValues array) of the default setting for this
- * particular option.
- *
- * In case the set of possibleValues is NoDiscreteValue, then this index is the
- * actual value (e.g. max line lenght set to 80).
- *
- * @return int
- */
-public int getDefaultValueIndex() {
-       return defaultValueIndex;
-}
-/**
- * Return an String that represents the localized description of the receiver.
- *
- * @return java.lang.String
- */
-public String getDescription() {
-       return description;
-}
-/**
- * Internal ID which allows the configurable component to identify this particular option.
- *
- * @return int
- */
-public int getID() {
-       return id;
-}
-/**
- * Return a String that represents the localized name of the receiver.
- * @return java.lang.String
- */
-public String getName() {
-       return name;
-}
-/**
- * Return an array of String that represents the localized possible values of the receiver.
- * @return java.lang.String[]
- */
-public String[] getPossibleValues() {
-       return possibleValues;
-}
-/**
- * Change the index (in possibleValues array) of the current setting for this
- * particular option.
- *
- * In case the set of possibleValues is NoDiscreteValue, then this index is the
- * actual value (e.g. max line lenght set to 80).
- *
- * @return int
- */
-public void setValueIndex(int newIndex) {
-       currentValueIndex = newIndex;
-}
-public String toString() {
-       StringBuffer buffer = new StringBuffer();
-       buffer.append("Configurable option for "); //$NON-NLS-1$ 
-       buffer.append(this.componentName).append("\n"); //$NON-NLS-1$ 
-       buffer.append("- category:                      ").append(this.category).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
-       buffer.append("- name:                          ").append(this.name).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
-       /* display current value */
-       buffer.append("- current value: "); //$NON-NLS-1$ 
-       if (possibleValues == NoDiscreteValue){
-               buffer.append(this.currentValueIndex);
-       } else {
-               buffer.append(this.possibleValues[this.currentValueIndex]);
+
+       /**
+        * Internal ID which allows the configurable component to identify this
+        * particular option.
+        * 
+        * @return int
+        */
+       public int getID() {
+               return id;
+       }
+
+       /**
+        * Return a String that represents the localized name of the receiver.
+        * 
+        * @return java.lang.String
+        */
+       public String getName() {
+               return name;
+       }
+
+       /**
+        * Return an array of String that represents the localized possible values
+        * of the receiver.
+        * 
+        * @return java.lang.String[]
+        */
+       public String[] getPossibleValues() {
+               return possibleValues;
        }
-       buffer.append("\n"); //$NON-NLS-1$ 
-       
-       /* display possible values */
-       if (possibleValues != NoDiscreteValue){
-               buffer.append("- possible values:       ["); //$NON-NLS-1$ 
-               for (int i = 0, max = possibleValues.length; i < max; i++) {
-                       if (i != 0)
-                               buffer.append(", "); //$NON-NLS-1$ 
-                       buffer.append(possibleValues[i]);
+
+       /**
+        * Change the index (in possibleValues array) of the current setting for
+        * this particular option.
+        * 
+        * In case the set of possibleValues is NoDiscreteValue, then this index is
+        * the actual value (e.g. max line lenght set to 80).
+        * 
+        * @return int
+        */
+       public void setValueIndex(int newIndex) {
+               currentValueIndex = newIndex;
+       }
+
+       public String toString() {
+               StringBuffer buffer = new StringBuffer();
+               buffer.append("Configurable option for "); //$NON-NLS-1$ 
+               buffer.append(this.componentName).append("\n"); //$NON-NLS-1$ 
+               buffer.append("- category:                      ").append(this.category).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+               buffer.append("- name:                          ").append(this.name).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+               /* display current value */
+               buffer.append("- current value: "); //$NON-NLS-1$ 
+               if (possibleValues == NoDiscreteValue) {
+                       buffer.append(this.currentValueIndex);
+               } else {
+                       buffer.append(this.possibleValues[this.currentValueIndex]);
                }
-               buffer.append("]\n"); //$NON-NLS-1$ 
-               buffer.append("- curr. val. index:      ").append(currentValueIndex).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+               buffer.append("\n"); //$NON-NLS-1$ 
+
+               /* display possible values */
+               if (possibleValues != NoDiscreteValue) {
+                       buffer.append("- possible values:       ["); //$NON-NLS-1$ 
+                       for (int i = 0, max = possibleValues.length; i < max; i++) {
+                               if (i != 0)
+                                       buffer.append(", "); //$NON-NLS-1$ 
+                               buffer.append(possibleValues[i]);
+                       }
+                       buffer.append("]\n"); //$NON-NLS-1$ 
+                       buffer
+                                       .append("- curr. val. index:    ").append(currentValueIndex).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+               }
+               buffer.append("- description:           ").append(description).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
+               return buffer.toString();
        }
-       buffer.append("- description:           ").append(description).append("\n"); //$NON-NLS-1$ //$NON-NLS-2$
-       return buffer.toString();
-}
+
        /**
         * Gets the optionName.
+        * 
         * @return Returns a String
         */
        public String getOptionName() {