001: /*
002: * Copyright 2005 jWic group (http://www.jwic.de)
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: *
016: * de.jwic.controls.ScrollableContainer
017: * Created on 03.06.2005
018: * $Id: ScrollableContainer.java,v 1.2 2006/08/14 10:56:37 lordsam Exp $
019: */
020: package de.jwic.controls;
021:
022: import de.jwic.base.ControlContainer;
023: import de.jwic.base.Field;
024: import de.jwic.base.IControlContainer;
025: import de.jwic.base.IOuterLayout;
026:
027: /**
028: * This container allows horizontal and vertical scrolling of the content. The
029: * container must specify a fixed width and/or height.
030: *
031: * @author Florian Lippisch
032: * @version $Revision: 1.2 $
033: */
034: public class ScrollableContainer extends ControlContainer implements
035: IOuterLayout {
036:
037: private static final long serialVersionUID = 1L;
038: private String width = "100%";
039: private String height = "100%";
040:
041: private Field fldTop;
042: private Field fldLeft;
043:
044: /**
045: * @param container
046: */
047: public ScrollableContainer(IControlContainer container) {
048: super (container);
049: init();
050: }
051:
052: /**
053: * @param container
054: * @param name
055: */
056: public ScrollableContainer(IControlContainer container, String name) {
057: super (container, name);
058: init();
059: }
060:
061: /**
062: * Initialize the control.
063: */
064: private void init() {
065: setRendererId(DEFAULT_OUTER_RENDERER);
066: fldTop = new Field(this , "top");
067: fldTop.setValue("0");
068: fldLeft = new Field(this , "left");
069: fldLeft.setValue("0");
070: }
071:
072: /**
073: * Returns <code>null</code> if the class has not been extended and
074: * no template name has been set.
075: * @see de.jwic.base.Control#getTemplateName()
076: */
077: public String getTemplateName() {
078: if (super .getTemplateName().equals(
079: ScrollableContainer.class.getName())) {
080: return null;
081: }
082: return super .getTemplateName();
083: }
084:
085: /* (non-Javadoc)
086: * @see de.jwic.base.IOuterLayout#getOuterTemplateName()
087: */
088: public String getOuterTemplateName() {
089:
090: return ScrollableContainer.class.getName();
091: }
092:
093: /**
094: * @return Returns the height.
095: */
096: public String getHeight() {
097: return height;
098: }
099:
100: /**
101: * Set the height of the container. Can be set to either a % value or px, i.e. 200px;
102: * @param height The height to set.
103: */
104: public void setHeight(String height) {
105: this .height = height;
106: }
107:
108: /**
109: * @return Returns the width.
110: */
111: public String getWidth() {
112: return width;
113: }
114:
115: /**
116: * @param width The width to set.
117: */
118: public void setWidth(String width) {
119: this .width = width;
120: }
121:
122: /**
123: * Set the top scrolling position.
124: * @param top
125: */
126: public void setTop(int top) {
127: fldTop.setValue(Integer.toString(top));
128: requireRedraw();
129: }
130:
131: public void updateSize() {
132: // should be overwritten to implement dynamic sizing
133: }
134: }
|