01: /**
02: * Title: OpenUSS - Open Source University Support System
03: * Description: Page Translator Factory for Presentation
04: * Copyright: Copyright (c) B. Lofi Dewanto
05: * Company: University of Muenster
06: * @author B. Lofi Dewanto
07: * @version 1.0
08: */package org.openuss.presentation.enhydra.framework.multilanguage;
09:
10: import com.lutris.appserver.server.httpPresentation.*;
11:
12: import java.lang.reflect.*;
13:
14: import java.util.*;
15:
16: import org.enhydra.xml.xmlc.html.*;
17:
18: /**
19: * Page Translator Factory for the presentation objects in Enhydra.
20: *
21: * @author B. Lofi Dewanto
22: * @version 1.0
23: */
24: public class PageTranslatorFactory {
25: // Static variables
26: private static String TRANSLATION_SUFFIX = "Translator";
27:
28: /**
29: * Translate the page with its respective translation.
30: */
31: public static HTMLObjectImpl createAndTranslate(
32: HttpPresentationComms comms, Locale locale,
33: String fullClassName) throws Exception {
34: // The name of the translation class is
35: // Page Name Class + Translator
36: // Example:
37: // - Page name : LoginApplicationDetailOfAssistant.java
38: // - Translation name : LoginApplicationDetailOfAssistantTranslator.java
39: String translationFullClassName = new String(fullClassName
40: .concat(TRANSLATION_SUFFIX));
41:
42: // Create the page and translate it
43: Class objectClass = Class.forName(translationFullClassName);
44:
45: // Get the constructor
46: Class myHttpPresentationComms = Class
47: .forName("com.lutris.appserver.server.httpPresentation.HttpPresentationComms");
48: Class myLocale = Class.forName("java.util.Locale");
49: Class[] parameterTypes = new Class[2];
50: parameterTypes[0] = myHttpPresentationComms;
51: parameterTypes[1] = myLocale;
52:
53: Constructor objectConstructor = objectClass
54: .getConstructor(parameterTypes);
55:
56: // Create the object with the constructor
57: // Translate the page and return it
58: Object[] initArgs = new Object[2];
59: initArgs[0] = comms;
60: initArgs[1] = locale;
61:
62: BasePageTranslator translator = (BasePageTranslator) objectConstructor
63: .newInstance(initArgs);
64:
65: try {
66: translator.translatePage();
67: } catch (Exception ex) {
68: // Error on translation, just ignore
69: System.out.println("Error on translating the page: "
70: + translator + " - " + ex);
71: }
72:
73: return translator.getPage();
74: }
75: }
|