Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2004-2005 Revolution Systems Inc.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.revolsys.ui.html.fields;
 
 import java.util.List;
 import java.util.Map;
 
 
 
 
 public class MultiSelectField extends Field {
   private static final Logger log = Logger.getLogger(MultiSelectField.class);
 
   private boolean hasInvalidOptions = false;
 
   private Map selectedValues = new HashMap();
 
   private List options = new ArrayList();
 
   private Map optionMap = new HashMap();
 
   private Map optionValueMap = new HashMap();
 
   private String onChange;
 
   private int size = 4;

  

Parameters:
name
required
 
   public MultiSelectField(final String namefinal boolean required) {
     super(namerequired);
   }
 
   public void addOption(final String label) {
     addOption(labellabel);
   }
 
   public void addOption(final Object valuefinal String label) {
     String stringValue = null;
     if (value != null) {
       stringValue = value.toString();
     }
     addOption(valuestringValuelabel);
   }
 
   public void addOption(final String valuefinal String label) {
     addOption(valuevaluelabel);
   }
 
   public void addOption(final Object valuefinal String stringValue,
     final String label) {
     FieldValue option = new FieldValue(valuestringValuelabel);
     .add(option);
     .put(stringValueoption);
     .put(valueoption);
   }
 
   public void addOption(final Object valuefinal Object stringValue,
     final String label) {
     addOption(valuestringValue.toString(), label);
   }
 
   public void serializeElement(final XmlWriter out) {
     out.startTag(.);
     out.attribute(.getName());
     out.attribute(."multiple");
     out.attribute(., String.valueOf());
     if ( != null) {
     }
     serializeOptions(out);
     out.endTag(.);
 
     out.startTag(.);
    out.attribute(."fieldActions");
    String baseUrl = "javascript:setMutliSelectAllSelected('"
      + getForm().getName() + "','" + getName() + "'";
    HtmlUtil.serializeA(outnullbaseUrl + ",true)""select all");
    HtmlUtil.serializeA(outnullbaseUrl + ",false)""select none");
    out.endTag(.);
  }
  private void serializeOptions(final XmlWriter out) {
    for (Iterator optionIter = .iterator(); optionIter.hasNext();) {
      FieldValue option = (FieldValue)optionIter.next();
      out.startTag(.);
      if (.containsKey(option.getStringValue())) {
        out.attribute(."true");
      }
      if (!option.getStringValue().equals(option.getLabel())) {
        out.attribute(.option.getStringValue());
      }
      out.text(option.getLabel());
      out.endTag(.);
    }
  }
  public void initialize(final Form formfinal HttpServletRequest request) {
    String[] parameterValues = request.getParameterValues(getName());
    if (parameterValues == null) {
      if (!form.hasTask()) {
        Object initialValue = getInitialValue(request);
        if (initialValue != null) {
          setValue(initialValue);
        }
      }
    } else {
      for (int i = 0; i < parameterValues.lengthi++) {
        String stringValue = parameterValues[i];
        FieldValue option = (FieldValue).get(stringValue);
        if (option != null) {
          .put(option.getStringValue(), option.getValue());
        } else {
           = true;
        }
      }
    }
  }
  public void setValue(final Object object) {
    List valueList = (List)object;
    super.setValue(valueList);
    if (valueList != null) {
      for (Iterator values = valueList.iterator(); values.hasNext();) {
        Object value = (Object)values.next();
        FieldValue option = (FieldValue).get(value);
        if (option != null) {
          .put(option.getStringValue(), option.getValue());
        }
      }
    }
  }
  public boolean hasValue() {
    return !.isEmpty();
  }
  public boolean isValid() {
    boolean valid = true;
    if (!super.isValid()) {
      valid = false;
    } else if (hasValue()) {
      if () {
        addValidationError("Invalid Value");
        valid = false;
      }
      if (valid) {
        if (.isEmpty()) {
          setValue(.);
        } else {
          setValue(new ArrayList(.values()));
        }
      }
    }
    return valid;
  }
  public void setOnChange(final String onChange) {
    this. = onChange;
  }
New to GrepCode? Check out our FAQ X