/** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: CCOrderedList.java,v 1.1 2008/07/02 17:21:46 veiming Exp $ */ /* * Portions Copyrighted [2011] [ForgeRock AS] */ package com.sun.identity.console.ui.view; import com.iplanet.jato.view.ContainerView; import com.iplanet.jato.view.View; import com.iplanet.jato.view.html.Option; import com.iplanet.jato.view.html.OptionList; import com.iplanet.jato.view.html.TextField; import com.sun.web.ui.model.CCOrderableListModelInterface; import com.sun.web.ui.model.CCOrderedListModelBase; import com.sun.web.ui.view.html.CCButton; import com.sun.web.ui.view.orderablelist.CCOrderableList; /** * This class is designed to be used use with CCOrderedListTag. *

* This class maintains the state of selectable list options set * via client-side Javascript. Once the state of a selectable list has * been set, that state will persist until the state is cleared via * the resetStateData() method. */ public class CCOrderedList extends CCOrderableList { public static final String ADD_BUTTON = "addButton"; public static final String DELETE_BUTTON = "deleteButton"; public static final String TEXTFIELD = "textField"; /** * Construct a minimal instance using the parent's default model * and the field's name as its bound name * * @param parent The parent view of this object * @param model The model to which this instance is bound. * @param name This view's name. */ public CCOrderedList( ContainerView parent, CCOrderableListModelInterface model, String name ) { super(parent, model, name); } /** * Register child views. */ protected void registerChildren() { super.registerChildren(); registerChild(ADD_BUTTON, CCButton.class); registerChild(DELETE_BUTTON, CCButton.class); registerChild(TEXTFIELD, TextField.class); } /** * Create child views. * * @param name The child view name. * @return The View object. */ protected View createChild(String name) { if (name.equals(ADD_BUTTON)) { CCButton child = new CCButton(this, name, null); return child; } else if (name.equals(DELETE_BUTTON)) { CCButton child = new CCButton(this, name, null); // move down btn initially disabled since nothing is selected child.setDisabled(true); return child; } else if (name.equals(TEXTFIELD)) { return new TextField(this, name, null); } else { return super.createChild(name); } } protected String getOptions(OptionList optionList) { StringBuilder buffer = new StringBuilder(); if (optionList != null) { for (int i = 0; i < optionList.size(); i++) { Option option = optionList.get(i); if (option != null) { if (buffer.length() > 0) { buffer.append(CCOrderedListModelBase.SEPARATOR); } String label = option.getLabel(); if (label.length() == 0) { label = " "; } String value = option.getValue(); if (value.length() == 0) { value = " "; } buffer.append(label) .append(CCOrderedListModelBase.SEPARATOR) .append(value); } } } return buffer.toString(); } }