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.lum.common.client.lo;
017
018 import org.kuali.student.core.assembly.data.Data;
019
020 public class OutlineNode<T> {
021 int indentLevel = 0;
022
023 T userObject;
024
025 OutlineNodeModel<T> outlineModel;
026
027 // TODO M4 - some way to subclass OutlineNode?
028 private Object opaque;
029
030 private Data metaInfo;
031
032 public void setModel(OutlineNodeModel<T> model) {
033 outlineModel = model;
034 }
035
036 public void setCurrentNode() {
037 outlineModel.setCurrentNode(this);
038 }
039
040 public T getUserObject() {
041 return userObject;
042 }
043
044 public void setUserObject(T u) {
045 userObject = u;
046 }
047
048 public void indent() {
049 indentLevel++;
050 }
051
052 public void outdent() {
053 indentLevel--;
054 }
055
056 public void setIndentLevel(int level) {
057 indentLevel = level;
058 }
059
060 public int getIndentLevel() {
061 return indentLevel;
062 }
063
064 public void setOpaque(Object opaque) {
065 this.opaque = opaque;
066 }
067
068 public Object getOpaque() {
069 return opaque;
070 }
071
072 public void setMetaInfo(Data metaInfo) {
073 this.metaInfo=metaInfo;
074 }
075 public Data getMetaInfo() {
076 return metaInfo;
077 }
078 }