View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.common.ui.client.widgets.menus;
17  
18  import java.util.List;
19  
20  import com.google.gwt.user.client.ui.Composite;
21  
22  
23  /**
24   * KSMenu is the abstract class which is used to describe widgets which are menu based in ks-commons.
25   * 
26   * @author Kuali Student Team
27   *
28   */
29  public abstract class KSMenu extends Composite {
30  	public static enum MenuImageLocation{LEFT, RIGHT};
31  	
32  	protected List<KSMenuItemData> items;
33  	
34  	/**
35  	 * Sets the list of KSMenuItemData to be used in this menu and populates it.
36  	 * 
37  	 * @param items list of KSMenuItemData to be used and populated into the menu
38  	 */
39  	public void setItems(List<KSMenuItemData> items) {
40  		this.items = items;
41  		populateMenu();
42  	}
43  	
44  	/**
45  	 * Gets the list of KSMenuItemData used in this menu.
46  	 * 
47  	 * @return the list of KSMenuItemData used to in this Menu.
48  	 */
49  	public List<KSMenuItemData> getItems() {
50  		return this.items;
51  	}
52  	
53  	protected abstract void populateMenu();
54  	
55  	public abstract boolean selectMenuItem(String[] hierarchy);
56  	
57  	/**
58  	 * Deselects the current selected menu item
59  	 *  
60  	 * @return
61  	 */
62  	public abstract void clearSelected();
63  }