001 /*
002 * Copyright 2002-2008 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * 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, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.richclient.application;
017
018 /**
019 * A view is a panel-like component displayed within an area on the page associated with an application window. There
020 * can be multiple views per page; a single view can only be displayed once on a single page.
021 *
022 * View instances encapsulate the creation of and access to the visual presentation of the underlying control. A view's
023 * descriptor -- which is effectively a singleton -- can be asked to instantiate new instances of a single view for
024 * display within an application with multiple windows. In other words, a single view instance is never shared between
025 * windows.
026 *
027 * @author Keith Donald
028 */
029 public interface View extends PageComponent {
030 /**
031 * Sets the input for this {@link View}. This method may be implemented so this {@link View} can update it's own
032 * state (ui) when this method is called.
033 * <p>
034 * Normally this method is called from {@link ApplicationPage#showView(String, Object)}, but may also be called
035 * directly.
036 *
037 * @param input
038 * the input, can be <code>null</code>
039 */
040 void setInput(Object input);
041 }