All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nextapp.echo2.app.ContentPane Maven / Gradle / Ivy

Go to download

Echo2 bundled with Echo2_Extras, Echo2_FileTransfer and echopointing and various improvements/bugfixes

There is a newer version: 2.0.4
Show newest version
/* 
 * This file is part of the Echo Web Application Framework (hereinafter "Echo").
 * Copyright (C) 2002-2009 NextApp, Inc.
 *
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 */

package nextapp.echo2.app;

/**
 * A content pane is a high-level container/layout object which provides
 * layout for a content region and floating WindowPanes.
 * 

* A ContentPane may only be added to a Component * which implements PaneContainer. *

* At most one Component that does NOT implement * FloatingPane may be added to a ContentPane. * Any number of FloatingPanes may be added as children. */ public class ContentPane extends Component implements Pane, PaneContainer { private static final Extent PX_0 = new Extent(0); private static final Extent SCROLL_BOTTOM = new Extent(-1); public static final String PROPERTY_BACKGROUND_IMAGE = "backgroundImage"; public static final String PROPERTY_HORIZONTAL_SCROLL = "horizontalScroll"; public static final String PROPERTY_INSETS = "insets"; public static final String PROPERTY_VERTICAL_SCROLL = "verticalScroll"; /** * Creates a new ContentPane. */ public ContentPane() { super(); } /** * Returns the background image. * * @return the background image */ public FillImage getBackgroundImage() { return (FillImage) getProperty(PROPERTY_BACKGROUND_IMAGE); } /** * Returns the horizontal scrollbar position. * * @return the horizontal scrollbar position */ public Extent getHorizontalScroll() { return (Extent) getProperty(PROPERTY_HORIZONTAL_SCROLL); } /** * Returns the inset margin of the content. * Note that FloatingPanes, such as * WindowPanes, will NOT be constrained by * this margin. * Values may only be specified in pixel-based units. * * @return newValue the inset margin */ public Insets getInsets() { return (Insets) getProperty(PROPERTY_INSETS); } /** * Returns the vertical scrollbar position. * * @return the vertical scrollbar position */ public Extent getVerticalScroll() { return (Extent) getProperty(PROPERTY_VERTICAL_SCROLL); } /** * @see nextapp.echo2.app.Component#isValidChild(nextapp.echo2.app.Component) */ public boolean isValidChild(Component child) { if (child instanceof FloatingPane) { // Allow addition of any number of FloatingPanes. return true; } // allow only one Non-FloatingPane child. int componentCount = getComponentCount(); for (int i = 0; i < componentCount; ++i) { if (!(getComponent(i) instanceof FloatingPane)) { return false; } } return true; } /** * @see nextapp.echo2.app.Component#isValidParent(nextapp.echo2.app.Component) */ public boolean isValidParent(Component parent) { return parent instanceof PaneContainer || parent instanceof Window; } /** * @see nextapp.echo2.app.Component#processInput(java.lang.String, java.lang.Object) */ public void processInput(String inputName, Object inputValue) { if (PROPERTY_HORIZONTAL_SCROLL.equals(inputName)) { setHorizontalScroll((Extent) inputValue); } else if (PROPERTY_VERTICAL_SCROLL.equals(inputName)) { setVerticalScroll((Extent) inputValue); } } /** * Sets the background image. * * @param newValue the new background image */ public void setBackgroundImage(FillImage newValue) { setProperty(PROPERTY_BACKGROUND_IMAGE, newValue); } /** * Sets the horizontal scrollbar position. * Values must be in pixel units. * A value of -1px indicates that the scrollbar should be positioned * at the end of the range. * * @param newValue the new horizontal scrollbar position */ public void setHorizontalScroll(Extent newValue) { setProperty(PROPERTY_HORIZONTAL_SCROLL, newValue); } /** * Sets the inset margin of the content. * Note that FloatingPanes, such as * WindowPanes, will NOT be constrained by * this margin. * Values may only be specified in pixel-based units. * * @param newValue the new inset margin */ public void setInsets(Insets newValue) { setProperty(PROPERTY_INSETS, newValue); } /** * Sets the vertical scrollbar position. * Values must be in pixel units. * A value of -1px indicates that the scrollbar should be positioned * at the end of the range. * * @param newValue the new vertical scrollbar position */ public void setVerticalScroll(Extent newValue) { if (SCROLL_BOTTOM.equals(newValue)) { setProperty(PROPERTY_VERTICAL_SCROLL, PX_0); } setProperty(PROPERTY_VERTICAL_SCROLL, newValue); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy