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.configurable.mvc.multiplicity;
17  
18  import org.kuali.student.common.ui.client.widgets.KSButton;
19  import org.kuali.student.common.ui.client.widgets.KSButtonAbstract.ButtonStyle;
20  
21  import com.google.gwt.event.dom.client.ClickEvent;
22  import com.google.gwt.event.dom.client.ClickHandler;
23  import com.google.gwt.user.client.ui.Widget;
24  
25  /**
26   * This extends multiplicity composite to allow adding and removing of items. 
27   * 
28   * @author Kuali Student Team
29   *
30   */
31  public abstract class UpdatableMultiplicityComposite extends MultiplicityComposite {
32      protected String addItemLabel;
33      protected String itemLabel;
34      protected boolean readOnly = false;
35      
36      public UpdatableMultiplicityComposite(StyleType style){
37      	super(style);
38      }
39      
40      public UpdatableMultiplicityComposite(StyleType style, boolean readOnly){
41      	super(style);
42      	this.readOnly=readOnly;
43      }
44      
45      /**
46       * @see org.kuali.student.common.ui.client.configurable.mvc.multiplicity.MultiplicityComposite#getItemDecorator()
47       */
48      @Override
49      public MultiplicityItem getItemDecorator(StyleType style) {
50          org.kuali.student.common.ui.client.configurable.mvc.sections.RemovableItemWithHeader item = new org.kuali.student.common.ui.client.configurable.mvc.sections.RemovableItemWithHeader(style, readOnly);
51          item.setItemLabel(itemLabel + " " + itemCount);            
52          return item;
53      }
54  
55      /**
56       * @see org.kuali.student.common.ui.client.configurable.mvc.multiplicity.MultiplicityComposite#generateAddWidget()
57       */
58      public Widget generateAddWidget() {
59      	//If this is read only don't display add widgets
60      	if(readOnly){
61      		return null;
62      	}
63      	
64      	KSButton addWidget;
65      	if(style == StyleType.TOP_LEVEL){
66      		addWidget = new KSButton(addItemLabel, ButtonStyle.FORM_LARGE);
67      	}
68      	else{
69      		addWidget = new KSButton(addItemLabel, ButtonStyle.FORM_SMALL);
70      	}
71          addWidget.addClickHandler(new ClickHandler(){
72              public void onClick(ClickEvent event) {
73                  addItem();
74              }            
75          });
76          return addWidget;
77      }
78  
79  
80      public String getAddItemLabel() {
81          return addItemLabel;
82      }
83  
84  
85      public void setAddItemLabel(String addItemLabel) {
86          this.addItemLabel = addItemLabel;
87      }
88  
89      public String getItemLabel() {
90          return itemLabel;
91      }
92  
93      public void setItemLabel(String itemLabel) {
94          this.itemLabel = itemLabel;
95      }
96      
97  
98  }