1 /*
2 * Scope: a generic MVC framework.
3 * Copyright (c) 2000-2002, The Scope team
4 * All rights reserved.
5 *
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 *
18 * Neither the name "Scope" nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 *
36 * $Id: View.java,v 1.5 2002/09/06 16:11:47 ludovicc Exp $
37 */
38 package org.scopemvc.core;
39
40 /***
41 * <P>
42 *
43 * A View implements the presentation of a model object to the user and allows
44 * interaction with the model object. Implementations can be bound to a model
45 * and change the state of the model as the user interacts with the View. If the
46 * View implements ModelChangeListener then it can also update in response to
47 * changes in the state of bound models that implement ModelChangeEventSource. A
48 * View can also issue Controls to its parent Controller in response to user
49 * interaction that influences with application logic. </P> <P>
50 *
51 * A View is bound to a single model object, i.e. it presents some or all of the
52 * data in the bound model. </P> <P>
53 *
54 * If a View needs to show data from multiple models, it will be bound to a
55 * parent model that contains those multiple models as accessible properties.
56 * Think of this parent container as an implementation <I>view model</I> rather
57 * than a business/domain model. </P> <P>
58 *
59 * A View is created and displayed by a parent Controller the implements
60 * application/presentation logic. </P>
61 *
62 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
63 * @created 05 August 2002
64 * @version $Revision: 1.5 $ $Date: 2002/09/06 16:11:47 $
65 * @see Controller
66 * @see org.scopemvc.view.swing
67 * @see org.scopemvc.view.servlet.xml
68 */
69 public interface View {
70
71 /***
72 * Gets the model object bound to this View.
73 *
74 * @return the model object this View is bound to.
75 */
76 Object getBoundModel();
77
78
79 /***
80 * Sets the model object bound to this View.
81 *
82 * @param inModel a model object that this View will bind to to present to
83 * the user.
84 */
85 void setBoundModel(Object inModel);
86
87
88 /***
89 * Gets the Controller for this View
90 *
91 * @return the parent (owner) Controller or null if none.
92 */
93 Controller getController();
94
95
96 /***
97 * Sets the Controller for this View
98 *
99 * @param inController assign a parent (owner) Controller that this View
100 * will issue Controls to.
101 */
102 void setController(Controller inController);
103
104
105 /***
106 * Issue a Control to the View's parent (owner) Controller.
107 *
108 * @param inControl The Control to issue
109 */
110 void issueControl(Control inControl);
111 }
112
This page was automatically generated by Maven