View Javadoc

1   /*
2    * Copyright (c) 2005, The K-Wf Grid Consortium
3    * Fraunhofer Institute for Computer Architecture and Software Technology
4    * See http://www.kwfgrid.eu and http://www.first.fraunhofer.de for more details.
5    */
6   package net.kwfgrid.gwui.taskframework;
7   
8   import net.kwfgrid.gwui.servlets.ServletConstants;
9   import net.kwfgrid.gwui.Browser;
10  import net.kwfgrid.gwui.GWUI;
11  import net.kwfgrid.gworkflowdl.structure.*;
12  import net.kwfgrid.gworkflowdl.protocol.client.ClientWorkflow;
13  
14  import java.net.URL;
15  import java.net.URLEncoder;
16  import java.net.MalformedURLException;
17  import java.io.UnsupportedEncodingException;
18  
19  import org.apache.log4j.Logger;
20  
21  /***
22     Wrapper for HTML data input form.
23   */
24  public class HTMLDataInputFormWrapper implements Form {
25      /*** The identifier for the window tiggered by this Wrapper. */
26      public static final String WINDOW_IDENTIFIER = "kwfgrid.HTMLDataInputFormWrapper.window";
27  
28      private static final Logger logger = Logger.getLogger(HTMLDataInputFormWrapper.class);
29      
30      private Browser _browser;
31      private boolean _windowopen;
32      private ClientWorkflow _workflow;
33      private Transition _transition;
34  
35      /***
36         Constructor for a HTMLDataInputFormWrapper for firing a transition.
37         @param wf The workflow containing the transition.
38         @param t The transition to fire by means of user input.
39         @param browser The browser.
40       */
41      public HTMLDataInputFormWrapper(ClientWorkflow wf, Transition t, Browser browser) {
42  	_browser = browser;
43  	_windowopen = false;
44  	_workflow = wf;
45  	_transition = t;
46      }
47  
48      public void show() {
49  	try {
50  	    StringBuffer servlet = new StringBuffer((String)GWUI.getInstance().getProperty(GWUI.FORM_SELECTION_SERVLET_URL_KEY));
51  	    servlet
52  		.append("?")
53  		.append(ServletConstants.KEY_NEWSESSION).append("=true")
54  		.append("&")
55  		.append(ServletConstants.KEY_WORKFLOWID).append("=").append(URLEncoder.encode(_workflow.getID(), "UTF-8"))
56  		.append("&")
57  		.append(ServletConstants.KEY_TRANSITIONID).append("=").append(URLEncoder.encode(_transition.getID(), "UTF-8"))
58  		.append("&")
59  		.append(ServletConstants.KEY_VERSIONNUMBER).append("=").append(_workflow.getVersionNumber())
60  		.append("&")
61  		.append(ServletConstants.KEY_GWESADDRESS).append("=").append(URLEncoder.encode((String)GWUI.getInstance().getProperty(GWUI.GWES_URI_KEY), "UTF-8"))
62  		.append("&")
63  		.append(ServletConstants.KEY_COMMAND).append("=").append(ServletConstants.FIRE_COMMAND);
64  	    URL servleturl = new URL(servlet.toString());
65  	    
66  	    logger.debug("Opening URL: "+servleturl);
67  	    
68  	    _browser.showDocument(servleturl, WINDOW_IDENTIFIER);
69  	    _windowopen = true;
70  	} catch (MalformedURLException x) {
71  	    logger.fatal("Could not build form-selection-servlet URL.", x);
72  	} catch (UnsupportedEncodingException x) {
73  	    logger.fatal("Could not build form-selection-servlet URL.", x);
74  	}	
75      }
76      
77      public void dispose() {
78  	//
79      }
80  
81  }