01: /**********************************************************************************
02: * $URL: $
03: * $Id: $
04: ***********************************************************************************
05: *
06: * Copyright (c) 2006, 2007 The Sakai Foundation.
07: *
08: * Licensed under the Educational Community License, Version 1.0 (the "License");
09: * you may not use this file except in compliance with the License.
10: * You may obtain a copy of the License at
11: *
12: * http://www.opensource.org/licenses/ecl1.php
13: *
14: * Unless required by applicable law or agreed to in writing, software
15: * distributed under the License is distributed on an "AS IS" BASIS,
16: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: * See the License for the specific language governing permissions and
18: * limitations under the License.
19: *
20: **********************************************************************************/package org.sakaiproject.content.api;
21:
22: import java.util.List;
23:
24: import javax.servlet.http.HttpServletRequest;
25:
26: import org.sakaiproject.entity.api.Reference;
27:
28: /**
29: * An InteractionAction defines a kind of ResourceToolAction which involves
30: * user interaction to complete the action. The Resources tool will invoke
31: * a helper to render an html page (or possibly a series of pages), process
32: * the response(s) and turn control back to the Resources tool when done.
33: *
34: * Before invoking the helper, ResourcesAction will call initializeAction()
35: * supplying a Reference onject as a parameter. Implementations of this
36: * interface may do whatever is necessary to prepare for invocation of the
37: * helper and they may return an identifier for that initialization.
38: *
39: * After starting the helper and getting back control from the helper,
40: * ResourcesAction will call either finalizeAction or cancelAction to indicate
41: * that the user either finalized the action or canceled it. The registrant may
42: * do whatever is necessary to commit any changes in persistant storage (other
43: * than changes to the referenced resource in ContentHosting) or reverse them.
44: */
45: public interface InteractionAction extends ResourceToolAction {
46: /**
47: * Access the unique identifier for the tool that will handle this action.
48: * This is the identifier by which the helper is registered with the
49: * ToolManager.
50: * @return
51: */
52: public String getHelperId();
53:
54: /**
55: * Access a list of properties that should be provided to the helper if they are defined.
56: * Returning null or empty list indicates no properties are needed by the helper.
57: * @return a List of Strings if property values are required.
58: */
59: public List getRequiredPropertyKeys();
60:
61: /**
62: * ResourcesAction calls this method before starting the helper. This is intended to give
63: * the registrant a chance to do any preparation needed before the helper starts with respect
64: * to this action and the reference specified in the parameter. The method returns a String
65: * (possibly null) which will be provided as the "initializationId" parameter to other
66: * methods and in
67: * @param reference
68: * @return
69: */
70: public String initializeAction(Reference reference);
71:
72: /**
73: * ResourcesAction calls this method after completion of its portion of the action.
74: * @param reference The
75: * @param initializationId
76: */
77: public void finalizeAction(Reference reference,
78: String initializationId);
79:
80: /**
81: * ResourcesAction calls this method if the user cancels out of the action or some error
82: * occurs preventing completion of the action after the helper completes its part of the
83: * action.
84: * @param reference
85: * @param initializationId
86: */
87: public void cancelAction(Reference reference,
88: String initializationId);
89:
90: }
|