001/*
002 * This library is part of OpenCms -
003 * the Open Source Content Management System
004 *
005 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
006 *
007 * This library is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * This library is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * For further information about Alkacon Software, please see the
018 * company website: http://www.alkacon.com
019 *
020 * For further information about OpenCms, please see the
021 * project website: http://www.opencms.org
022 *
023 * You should have received a copy of the GNU Lesser General Public
024 * License along with this library; if not, write to the Free Software
025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
026 */
027
028package org.opencms.gwt.shared.categorizedselect;
029
030import java.util.List;
031
032// TODO: Auto-generated Javadoc
033/**
034 * Configuration for the client-side categorized select widget.
035 */
036public interface I_CmsCategorizedSelectData {
037
038    /**
039     * Represents a filter category in the categorized select widget (not necessarily an OpenCms category).
040     */
041    public interface Category {
042
043        /**
044         * Gets the internal value representing the filter category.
045         *
046         * @return the key
047         */
048        public String getKey();
049
050        /**
051         * Gets the label.
052         *
053         * @return the label
054         */
055        public String getLabel();
056
057        /**
058         * Sets the key.
059         *
060         * @param key the key.
061         */
062        public void setKey(String key);
063
064        /**
065         * Sets the label.
066         *
067         * @param label the new label
068         */
069        public void setLabel(String label);
070
071    }
072
073    /**
074     * The Interface Option.
075     */
076    public interface Option {
077
078        /**
079         * Gets the categories.
080         *
081         * @return the categories
082         */
083        List<String> getCategories();
084
085        /**
086         * Gets the key.
087         *
088         * @return the key
089         */
090        String getKey();
091
092        /**
093         * Gets the label.
094         *
095         * @return the label
096         */
097        String getLabel();
098
099        /**
100         * Sets the categories.
101         *
102         * @param categories the new categories
103         */
104        void setCategories(List<String> categories);
105
106        /**
107         * Sets the key.
108         *
109         * @param key the new key
110         */
111        void setKey(String key);
112
113        /**
114         * Sets the label.
115         *
116         * @param label the new label
117         */
118        void setLabel(String label);
119
120    }
121
122    /**
123     * Gets the categories.
124     *
125     * @return the categories
126     */
127    List<Category> getCategories();
128
129    /**
130     * Gets the filter label.
131     *
132     * @return the filter label
133     */
134    String getFilterLabel();
135
136    /**
137     * Gets the options.
138     *
139     * @return the options
140     */
141    List<Option> getOptions();
142
143    /**
144     * Sets the categories.
145     *
146     * @param categories the new categories
147     */
148    void setCategories(List<Category> categories);
149
150    /**
151     * Sets the filter label.
152     *
153     * @param filterLabel the new filter label
154     */
155    void setFilterLabel(String filterLabel);
156
157    /**
158     * Sets the options.
159     *
160     * @param options the new options
161     */
162    void setOptions(List<Option> options);
163
164}