001 /**
002 * Copyright 2010 The Kuali Foundation Licensed under the
003 * Educational Community License, Version 2.0 (the "License"); you may
004 * not use this file except in compliance with the License. You may
005 * obtain a copy of the License at
006 *
007 * http://www.osedu.org/licenses/ECL-2.0
008 *
009 * Unless required by applicable law or agreed to in writing,
010 * software distributed under the License is distributed on an "AS IS"
011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012 * or implied. See the License for the specific language governing
013 * permissions and limitations under the License.
014 */
015
016 package org.kuali.student.common.ui.client.mvc.dto;
017
018 import java.util.HashMap;
019 import java.util.Map;
020
021 import org.kuali.student.common.ui.client.configurable.mvc.HasReferenceId;
022 import org.kuali.student.common.ui.client.mvc.Model;
023 import org.kuali.student.common.ui.client.mvc.ModelChangeEvent;
024 import org.kuali.student.common.ui.client.mvc.ModelChangeHandler;
025 import org.kuali.student.common.ui.client.mvc.ModelChangeEvent.Action;
026
027 import com.google.gwt.event.shared.HandlerManager;
028 import com.google.gwt.event.shared.HandlerRegistration;
029
030 /**
031 * A small model that contains id, type, and state
032 *
033 * @author Kuali Student Team
034 *
035 */
036 public class ReferenceModel implements HasReferenceId, Model {
037 String referenceId;
038 String referenceTypeKey;
039 String referenceType;
040 String referenceState;
041 Map<String, String> referenceAttributes; // Use referenceAttributes to store misc data from the parent Model
042 private HandlerManager handlers = new HandlerManager(this);
043
044 @Override
045 public HandlerRegistration addModelChangeHandler(
046 ModelChangeHandler handler) {
047 return handlers.addHandler(ModelChangeEvent.TYPE, handler);
048 }
049
050 /**
051 * @see org.kuali.student.common.ui.client.configurable.mvc.HasReferenceId#setReferenceId(java.lang.String)
052 */
053 @Override
054 public void setReferenceId(String id) {
055 this.referenceId = id;
056 handlers.fireEvent(new ModelChangeEvent(Action.RELOAD, this));
057 }
058
059 /**
060 * @see org.kuali.student.common.ui.client.configurable.mvc.HasReferenceId#setReferenceKey(java.lang.String)
061 */
062 @Override
063 public String getReferenceId() {
064 return referenceId;
065 }
066
067 @Override
068 public String getReferenceTypeKey() {
069 return referenceTypeKey;
070 }
071
072 @Override
073 public void setReferenceTypeKey(String referenceTypeKey) {
074 this.referenceTypeKey = referenceTypeKey;
075 handlers.fireEvent(new ModelChangeEvent(Action.RELOAD, this));
076 }
077
078 @Override
079 public String getReferenceType() {
080 return referenceType;
081 }
082
083 @Override
084 public void setReferenceType(String referenceType) {
085 this.referenceType = referenceType;
086 handlers.fireEvent(new ModelChangeEvent(Action.RELOAD, this));
087 }
088
089 @Override
090 public String getReferenceState() {
091 return referenceState;
092 }
093
094 @Override
095 public void setReferenceState(String referenceState) {
096 this.referenceState = referenceState;
097 handlers.fireEvent(new ModelChangeEvent(Action.RELOAD, this));
098 }
099
100 public Map<String, String> getReferenceAttributes(){
101 if(referenceAttributes!=null){
102 return referenceAttributes;
103 }
104 else{
105 return new HashMap<String,String>();
106 }
107 }
108 public void setReferenceAttributes(Map<String, String> referenceAttributes){
109 this.referenceAttributes = referenceAttributes;
110 handlers.fireEvent(new ModelChangeEvent(Action.RELOAD, this));
111 }
112 }