01: /*
02: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
03: *
04: * "The contents of this file are subject to the Mozilla Public License
05: * Version 1.1 (the "License"); you may not use this file except in
06: * compliance with the License. You may obtain a copy of the License at
07: * http://www.mozilla.org/MPL/
08: *
09: * Software distributed under the License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11: * License for the specific language governing rights and limitations under
12: * the License.
13: *
14: * The Original Code is ICEfaces 1.5 open source software code, released
15: * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16: * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17: * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18: *
19: * Contributor(s): _____________________.
20: *
21: * Alternatively, the contents of this file may be used under the terms of
22: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23: * License), in which case the provisions of the LGPL License are
24: * applicable instead of those above. If you wish to allow use of your
25: * version of this file only under the terms of the LGPL License and not to
26: * allow others to use your version of this file under the MPL, indicate
27: * your decision by deleting the provisions above and replace them with
28: * the notice and other provisions required by the LGPL License. If you do
29: * not delete the provisions above, a recipient may use your version of
30: * this file under either the MPL or the LGPL License."
31: *
32: */
33:
34: package com.icesoft.faces.async.render;
35:
36: public interface AsyncRenderer extends Disposable {
37:
38: /**
39: * Get the current name of this AsyncRenderer. Names are used by the {@link
40: * RenderManager} to manage the various Renderers so that they can be easily
41: * accessed from different parts of the application.
42: *
43: * @return The current name of the AsyncRenderer.
44: */
45: public String getName();
46:
47: /**
48: * Set the current name of this AsyncRenderer. Names are used by the {@link
49: * RenderManager} to manage the various Renderers so that they can be easily
50: * accessed from different parts of the application.
51: *
52: * @param name The desired name of the renderer.
53: */
54: public void setName(String name);
55:
56: /**
57: * Used by the {@link RenderManager} to set the {@link RenderHub} for this
58: * AsyncRenderer.
59: *
60: * @param renderHub The RenderHub to use for this AsyncRenderer
61: */
62: // public void setRenderHub(RenderHub renderHub);
63: /**
64: * Used by the {@link RenderManager} to provide a reference to itself for
65: * this AsyncRenderer.
66: *
67: * @param renderManager The RenderManager to use for this AsyncRenderer
68: */
69: public void setRenderManager(RenderManager renderManager);
70:
71: /**
72: * Called by the RenderManager when the the application is shutting down to
73: * allow the AsyncRenderer to clean up any resources (threads, collections,
74: * etc).
75: */
76: public void dispose();
77:
78: /**
79: * The method called by the application when it wants to requrest a render
80: * pass for the one or more {@link Renderable}s handled by this
81: * AsyncRenderer.
82: */
83: public void requestRender();
84:
85: /**
86: * The method called by dispose to halt a render pass at the current {@link
87: * Renderable}s.
88: */
89: public void requestStop();
90:
91: }
|