| Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
| MenuStateModel |
|
| 1.0;1 |
| 1 | /* | |
| 2 | * This file is part of the Echo2 Extras Project. | |
| 3 | * Copyright (C) 2005-2006 NextApp, Inc. | |
| 4 | * | |
| 5 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |
| 6 | * | |
| 7 | * The contents of this file are subject to the Mozilla Public License Version | |
| 8 | * 1.1 (the "License"); you may not use this file except in compliance with | |
| 9 | * the License. You may obtain a copy of the License at | |
| 10 | * http://www.mozilla.org/MPL/ | |
| 11 | * | |
| 12 | * Software distributed under the License is distributed on an "AS IS" basis, | |
| 13 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |
| 14 | * for the specific language governing rights and limitations under the | |
| 15 | * License. | |
| 16 | * | |
| 17 | * Alternatively, the contents of this file may be used under the terms of | |
| 18 | * either the GNU General Public License Version 2 or later (the "GPL"), or | |
| 19 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | |
| 20 | * in which case the provisions of the GPL or the LGPL are applicable instead | |
| 21 | * of those above. If you wish to allow use of your version of this file only | |
| 22 | * under the terms of either the GPL or the LGPL, and not to allow others to | |
| 23 | * use your version of this file under the terms of the MPL, indicate your | |
| 24 | * decision by deleting the provisions above and replace them with the notice | |
| 25 | * and other provisions required by the GPL or the LGPL. If you do not delete | |
| 26 | * the provisions above, a recipient may use your version of this file under | |
| 27 | * the terms of any one of the MPL, the GPL or the LGPL. | |
| 28 | */ | |
| 29 | ||
| 30 | package org.karora.cooee.app.menu; | |
| 31 | ||
| 32 | import java.io.Serializable; | |
| 33 | ||
| 34 | import org.karora.cooee.app.event.ChangeListener; | |
| 35 | ||
| 36 | /** | |
| 37 | * Representation of the state of a <code>MenuModel</code>s, describing the | |
| 38 | * selected and enabled states of all options. | |
| 39 | */ | |
| 40 | public interface MenuStateModel extends Serializable { | |
| 41 | ||
| 42 | /** | |
| 43 | * Registers a <code>ChangeListener</code> to be notified when the selection | |
| 44 | * or enabled state of menu items change. | |
| 45 | * | |
| 46 | * @param l the listener to add | |
| 47 | */ | |
| 48 | public void addChangeListener(ChangeListener l); | |
| 49 | ||
| 50 | /** | |
| 51 | * Determines if a specific menu option is enabled. | |
| 52 | * | |
| 53 | * @param id the id of the menu option | |
| 54 | * @return true if it is enabled | |
| 55 | */ | |
| 56 | public boolean isEnabled(String id); | |
| 57 | ||
| 58 | /** | |
| 59 | * Determines if a specific menu option is selected. | |
| 60 | * | |
| 61 | * @param id the id of the menu option | |
| 62 | * @return true if it is selected | |
| 63 | */ | |
| 64 | public boolean isSelected(String id); | |
| 65 | ||
| 66 | /** | |
| 67 | * Unregisters a <code>ChangeListener</code> from being notified when | |
| 68 | * the selection or enabled state of menu items change. | |
| 69 | * | |
| 70 | * @param l the listener to remove | |
| 71 | */ | |
| 72 | public void removeChangeListener(ChangeListener l); | |
| 73 | ||
| 74 | /** | |
| 75 | * Sets the enabled state of a specific menu option. | |
| 76 | * | |
| 77 | * @param id the id of the menu option | |
| 78 | * @param enabled the new enabled state | |
| 79 | */ | |
| 80 | public void setEnabled(String id, boolean enabled); | |
| 81 | ||
| 82 | /** | |
| 83 | * Sets the selection state of a specific menu option. | |
| 84 | * | |
| 85 | * @param id the id of the menu option | |
| 86 | * @param selected the new selection state | |
| 87 | */ | |
| 88 | public void setSelected(String id, boolean selected); | |
| 89 | } |