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: EditorManager.java,v 1.9 2002/09/12 10:51:03 ludovicc Exp $
37 */
38 package org.scopemvc.core;
39
40 /***
41 * <P>
42 *
43 * EditorManager is a {@link ModelManager} that handles the creation of
44 * appropriate Viewer and Editor Views for the properties of model objects for a
45 * specific view type. An implementation for JavaBean model objects is provided
46 * in {@link org.scopemvc.model.beans.BeansEditorManager}. </P> <P>
47 *
48 * The viewtype passed into this manager is arbitrary and identifies the
49 * particular type of View an application is interested in. For example, "swing"
50 * or "xml" or "awt". See {@link org.scopemvc.view.util.PropertyEditorFactory}.
51 * </P>
52 *
53 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A>
54 * @created 05 August 2002
55 * @version $Revision: 1.9 $ $Date: 2002/09/12 10:51:03 $
56 */
57 public abstract class EditorManager extends ModelManager {
58
59 private static final String NAME = "EditorManager";
60
61
62 /***
63 * Create an EditorManager for the model class
64 *
65 * @param inModelClass The model class
66 * @return The EditorManager instance
67 */
68 public static EditorManager getInstance(Class inModelClass) {
69 return (EditorManager) make(NAME, inModelClass);
70 }
71
72
73 /***
74 * Create an EditorManager for the model
75 *
76 * @param inModel The model
77 * @return The EditorManager instance
78 */
79 public static EditorManager getInstance(Object inModel) {
80 if (inModel == null) {
81 throw new IllegalArgumentException("Can't create an EditorManager for null");
82 }
83 return getInstance(inModel.getClass());
84 }
85
86
87 /***
88 * Get the editor for the view type and the property in the model.
89 *
90 * @param inViewType type of view this editor is needed for. Defaults are
91 * provided for "swing" in DefaultScopeConfig that the
92 * BeansEditorManager uses.
93 * @param inModel model for whose property the editor is required.
94 * @param inSelector identify the property that the editor is needed for.
95 * @return a View used to edit the passed model's property for the passed
96 * view type.
97 */
98 public abstract View getEditor(String inViewType, Object inModel, Selector inSelector);
99
100
101 /***
102 * Get the viewer for the view type and the property in the model.
103 *
104 * @param inViewType type of view this viewer is needed for. Defaults are
105 * provided for "swing" in DefaultScopeConfig that the
106 * BeansEditorManager uses.
107 * @param inModel model for whose property the viewer is required.
108 * @param inSelector identify the property that the viewer is needed for.
109 * @return a View used to view the passed model's property for the passed
110 * view type.
111 */
112 public abstract View getViewer(String inViewType, Object inModel, Selector inSelector);
113 }
This page was automatically generated by Maven