0001: // @@
0002: // @@
0003: /*
0004: * Wi.Ser Framework
0005: *
0006: * LGPL Version: 1.8.1, 20-September-2007
0007: * Copyright (C) 2005-2006 Dirk von der Weiden <dvdw@imail.de>
0008: *
0009: * This library is free software; you can redistribute it and/or
0010: * modify it under the terms of the GNU Lesser General Public
0011: * License as published by the Free Software Foundation; either
0012: * version 2 of the License, or (at your option) any later version.
0013: *
0014: * This library is distributed in the hope that it will be useful,
0015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
0016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0017: * Lesser General Public License for more details.
0018: *
0019: * You should have received a copy of the GNU Lesser General Public
0020: * License along with this library located in LGPL.txt in the
0021: * license directory; if not, write to the
0022: * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
0023: * Boston, MA 02111-1307, USA.
0024: *
0025: * If this agreement does not cover your requirements, please contact us
0026: * via email to get detailed information about the commercial license
0027: * or our service offerings!
0028: *
0029: */
0030: // @@
0031: package de.ug2t.channel.ho.server.generic;
0032:
0033: import java.io.*;
0034: import java.net.*;
0035: import java.util.*;
0036:
0037: import de.ug2t.channel.ho.session.*;
0038: import de.ug2t.kernel.*;
0039: import de.ug2t.process.*;
0040: import de.ug2t.unifiedGui.*;
0041: import de.ug2t.unifiedGui.interfaces.*;
0042: import de.ug2t.unifiedGui.session.*;
0043: import de.ug2t.workflow.*;
0044: import de.ug2t.xmlScript.*;
0045:
0046: public final class HoSrvGenericApplication extends
0047: AHoSrvGenericContainer implements IUnApplication,
0048: IHoSessionBindEvent, IUnIconView {
0049: private UnPeerValueMapper pem_mapper = new UnPeerValueMapper();
0050:
0051: private HoSrvGenericPage pem_active = null;
0052: private HashMap pem_applContext = new HashMap();
0053: private String pem_user = null;
0054: private String pem_role = null;
0055: private Map pem_submitValues = new HashMap();
0056: private WfState pem_state = null;
0057: private String pem_rootUrl = null;
0058:
0059: // @@
0060:
0061: private boolean pem_clientPoll = false;
0062: private HashMap pem_transaction = null;
0063: private boolean pem_mdi = false;
0064: private IUnMenu pem_mainMenu = null;
0065: private UnComponentFactory pem_fact = null;
0066: private IKeExecutable pem_init = null;
0067: protected IUnImage pdm_bgImg = null;
0068: private boolean pem_strict = false;
0069: private boolean pem_mixedMode = false;
0070: private String pem_protocol = "http";
0071: private int pem_HttpPort = 8000;
0072: private String pem_hostName = null;
0073: private IUnImage pem_icon = null;
0074: private HoSrvGenericPage pem_desktop = null;
0075: private boolean pem_submitReshapes = false;
0076: private String pem_recorded = null;
0077: private int pem_lastCheckPoint = -1;
0078: private boolean pem_bubble = true;
0079:
0080: public void pcmf_setEventBubbling(boolean xBubble) {
0081: this .pem_bubble = xBubble;
0082: }
0083:
0084: public boolean pcmf_isEventBubbling() {
0085: return (this .pem_bubble);
0086: }
0087:
0088: public PcProcess pcmf_getService() {
0089: PcProcess l_ret = null;
0090:
0091: // @@
0092:
0093: return (l_ret);
0094: }
0095:
0096: public PcProcess pcmf_detachService() {
0097: PcProcess l_ret = null;
0098:
0099: // @@
0100:
0101: return (l_ret);
0102: }
0103:
0104: public void pcmf_setService(IKeExecutable xServiceFct,
0105: int xPollService, int xRefresh) {
0106: // @@
0107: }
0108:
0109: public void pcmf_setServiceProcess(PcProcess xServiceProc,
0110: int xRefresh) {
0111: // @@
0112: }
0113:
0114: public boolean pcmf_isMDI() {
0115: return (this .pem_mdi);
0116: };
0117:
0118: // @@
0119:
0120: public HoSrvGenericApplication(String xName, boolean xMDI,
0121: int xPort, String xClass) throws Exception {
0122: super (xName);
0123:
0124: this .pcmf_setAppl(this );
0125: this .pem_rootUrl = xName;
0126: this .pem_mdi = xMDI;
0127: this .pem_HttpPort = xPort;
0128:
0129: pem_hostName = this .pdm_session.pcmf_getHostName();
0130: if (pem_hostName == null)
0131: pem_hostName = InetAddress.getLocalHost().getHostName();
0132:
0133: if (xClass == null)
0134: pdm_clientClass = "de.ug2t.channel.ho.client.swing.HoSwingClient";
0135: else
0136: pdm_clientClass = xClass;
0137:
0138: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0139: "");
0140:
0141: if (this .pdm_session.pcmf_isInTransaction()) {
0142: ScXmlScript.pcmf_createPBody(l_remCall);
0143: } else {
0144: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0145: ScXmlScript.pcmf_addProc(l_remCall, null);
0146: }
0147: ;
0148: ScXmlScript.pcmf_addDecl(l_remCall, this .pcmf_getRemName(),
0149: this .pdm_clientClass, "global");
0150: ScXmlScript.pcmf_addDeclPar(l_remCall, xName, "false",
0151: "java.lang.String");
0152: ScXmlScript.pcmf_addDeclPar(l_remCall, xMDI ? "true" : "false",
0153: "false", "boolean");
0154: ScXmlScript.pcmf_endAll(l_remCall);
0155:
0156: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0157:
0158: this .pcmf_unRegister();
0159: this .pcmf_register(IUnApplication.MY_APPL);
0160: KeRegisteredObject.pcmf_register(IUnApplication.MY_APPL_TYPE,
0161: IUnApplication.APPL_TYPE_SWING);
0162:
0163: this .pem_desktop = new HoSrvGenericPage("_MY_DESKTOP", true,
0164: this , null);
0165: this .pem_desktop.pcmf_reRegister("_MY_DESKTOP");
0166:
0167: // @@
0168:
0169: this .pdm_session.pcmf_addCtxValue(IUnApplication.MY_APPL, this );
0170:
0171: return;
0172: };
0173:
0174: public HoSrvGenericApplication(String xName, boolean xMDI,
0175: int xPort, String xPlaf, String xClass) throws Exception {
0176: super (xName);
0177: this .pcmf_setAppl(this );
0178: this .pem_rootUrl = xName;
0179: this .pem_mdi = xMDI;
0180: this .pem_HttpPort = xPort;
0181:
0182: pem_hostName = this .pdm_session.pcmf_getHostName();
0183: if (pem_hostName == null)
0184: pem_hostName = InetAddress.getLocalHost().getHostName();
0185:
0186: if (xClass == null)
0187: pdm_clientClass = "de.ug2t.channel.ho.client.swing.HoSwingClient";
0188: else
0189: pdm_clientClass = xClass;
0190:
0191: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0192: "");
0193:
0194: if (this .pdm_session.pcmf_isInTransaction()) {
0195: ScXmlScript.pcmf_createPBody(l_remCall);
0196: } else {
0197: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0198: ScXmlScript.pcmf_addProc(l_remCall, null);
0199: }
0200: ;
0201: ScXmlScript.pcmf_addDecl(l_remCall, this .pcmf_getRemName(),
0202: this .pdm_clientClass, "global");
0203: ScXmlScript.pcmf_addDeclPar(l_remCall, xName, "false",
0204: "java.lang.String");
0205: ScXmlScript.pcmf_addDeclPar(l_remCall, xMDI ? "true" : "false",
0206: "false", "boolean");
0207: ScXmlScript.pcmf_addDeclPar(l_remCall, xPlaf, "false",
0208: "java.lang.String");
0209: ScXmlScript.pcmf_endAll(l_remCall);
0210:
0211: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0212:
0213: this .pcmf_unRegister();
0214: this .pcmf_register(IUnApplication.MY_APPL);
0215: KeRegisteredObject.pcmf_register(IUnApplication.MY_APPL_TYPE,
0216: new StringBuffer(IUnApplication.APPL_TYPE_SWING));
0217:
0218: this .pem_desktop = new HoSrvGenericPage("_MY_DESKTOP", true,
0219: this , null);
0220: this .pem_desktop.pcmf_reRegister("_MY_DESKTOP");
0221:
0222: // @@
0223:
0224: // Debug
0225: // this.pcmf_setGenerateReshapeEvents(true);
0226: // this.pcmf_addListener(new UnPrintValueListener());
0227:
0228: this .pdm_session.pcmf_addCtxValue(IUnApplication.MY_APPL, this );
0229:
0230: return;
0231: };
0232:
0233: public HoSrvGenericApplication(String xName, WfState xWfState,
0234: boolean xMDI, int xPort, String xClass) throws Exception {
0235: super (xName);
0236: this .pcmf_setAppl(this );
0237: this .pem_rootUrl = xName;
0238: this .pem_state = xWfState;
0239: this .pem_mdi = xMDI;
0240: this .pem_HttpPort = xPort;
0241:
0242: pem_hostName = this .pdm_session.pcmf_getHostName();
0243: if (pem_hostName == null)
0244: pem_hostName = InetAddress.getLocalHost().getHostName();
0245:
0246: if (xClass == null)
0247: pdm_clientClass = "de.ug2t.channel.ho.client.swing.HoSwingClient";
0248: else
0249: pdm_clientClass = xClass;
0250:
0251: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0252: "");
0253:
0254: if (this .pdm_session.pcmf_isInTransaction()) {
0255: ScXmlScript.pcmf_createPBody(l_remCall);
0256: } else {
0257: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0258: ScXmlScript.pcmf_addProc(l_remCall, null);
0259: }
0260: ;
0261: ScXmlScript.pcmf_addDecl(l_remCall, this .pcmf_getRemName(),
0262: this .pdm_clientClass, "global");
0263: ScXmlScript.pcmf_addDeclPar(l_remCall, xName, "false",
0264: "java.lang.String");
0265: ScXmlScript.pcmf_addDeclPar(l_remCall, xMDI ? "true" : "false",
0266: "false", "boolean");
0267: ScXmlScript.pcmf_endAll(l_remCall);
0268:
0269: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0270:
0271: this .pcmf_unRegister();
0272: this .pcmf_register(IUnApplication.MY_APPL);
0273:
0274: this .pem_desktop = new HoSrvGenericPage("_MY_DESKTOP", true,
0275: this , null);
0276: this .pem_desktop.pcmf_reRegister("_MY_DESKTOP");
0277:
0278: // @@
0279:
0280: this .pdm_session.pcmf_addCtxValue(IUnApplication.MY_APPL, this );
0281:
0282: return;
0283: };
0284:
0285: public Object pcmf_execObj(Object xObj) {
0286: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0287: "");
0288:
0289: if (this .pdm_session.pcmf_isInTransaction()) {
0290: ScXmlScript.pcmf_createPBody(l_remCall);
0291: } else {
0292: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0293: ScXmlScript.pcmf_addProc(l_remCall, null);
0294: }
0295: ;
0296: ScXmlScript.pcmf_addCall(l_remCall, null, this
0297: .pcmf_getRemName(), "pcmf_execObj");
0298: ScXmlScript.pcmf_addCallPar(l_remCall, "null", "false",
0299: "java.lang.Object");
0300: ScXmlScript.pcmf_endAll(l_remCall);
0301:
0302: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0303:
0304: return (this );
0305: };
0306:
0307: public final void pcmf_setProtocol(String xProt) {
0308: this .pem_protocol = xProt;
0309: };
0310:
0311: public final String pcmf_getProtocol() {
0312: return (this .pem_protocol);
0313: };
0314:
0315: public UnComponent pcmf_setPosition(String xName, int xPos,
0316: int yPos, int xWidth, int xHeigth, int xAlign) {
0317: this .pcmf_reshape(xName, xPos, yPos, xWidth, xHeigth);
0318: return (this );
0319: };
0320:
0321: public UnComponent pcmf_setPosition(UnComponent xObj, int xPos,
0322: int yPos, int xWidth, int xHeigth, int xAlign) {
0323: this .pcmf_reshape(xObj.pcmf_getName(), xPos, yPos, xWidth,
0324: xHeigth);
0325: return (this );
0326: };
0327:
0328: public void pcmf_reshape(String xName, int x, int y, int w, int l) {
0329: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0330: "");
0331:
0332: if (this .pdm_session.pcmf_isInTransaction()) {
0333: ScXmlScript.pcmf_createPBody(l_remCall);
0334: } else {
0335: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0336: ScXmlScript.pcmf_addProc(l_remCall, null);
0337: }
0338: ;
0339: ScXmlScript.pcmf_addCall(l_remCall, null, this
0340: .pcmf_getRemName(), "pcmf_reshape");
0341: ScXmlScript.pcmf_addCallPar(l_remCall, xName, "false",
0342: "java.lang.String");
0343: ScXmlScript.pcmf_addCallPar(l_remCall, Integer.toString(x),
0344: "false", "int");
0345: ScXmlScript.pcmf_addCallPar(l_remCall, Integer.toString(y),
0346: "false", "int");
0347: ScXmlScript.pcmf_addCallPar(l_remCall, Integer.toString(w),
0348: "false", "int");
0349: ScXmlScript.pcmf_addCallPar(l_remCall, Integer.toString(l),
0350: "false", "int");
0351: ScXmlScript.pcmf_endAll(l_remCall);
0352:
0353: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0354: };
0355:
0356: public KeTreeElement pcmf_addListener(String xPage, String xPath,
0357: IUnGuiEventListener xListener) {
0358: UnComponent l_guiobj = null;
0359: KeTreeNode l_page = (KeTreeNode) pcmf_getSubNode(xPage);
0360:
0361: if (l_page == null)
0362: return (null);
0363:
0364: l_guiobj = (UnComponent) l_page.pcmf_getByPath(xPath);
0365: if (l_guiobj == null)
0366: return (null);
0367:
0368: l_guiobj.pcmf_addListener(xListener);
0369:
0370: return (l_guiobj);
0371: };
0372:
0373: public KeTreeElement pcmf_addListener(String xPath,
0374: IUnGuiEventListener xListener) {
0375: UnComponent l_guiobj = (UnComponent) pcmf_getByPath(xPath);
0376:
0377: if (l_guiobj == null)
0378: return (null);
0379:
0380: l_guiobj.pcmf_addListener(xListener);
0381:
0382: return (l_guiobj);
0383: };
0384:
0385: public void pcmf_setState(WfState xState) {
0386: this .pem_state = xState;
0387: return;
0388: };
0389:
0390: public WfState pcmf_getState() {
0391: return (this .pem_state);
0392: };
0393:
0394: public String pcmf_getHostName() {
0395: return (this .pem_hostName);
0396: };
0397:
0398: public int pcmf_getPort() {
0399: return (this .pem_HttpPort);
0400: };
0401:
0402: public IUnPage pcmf_addPage(String xName, IUnPage xPage) {
0403: if (this .pem_mdi)
0404: xPage.pcmf_getUnComponent().pcmf_setGlobal(true);
0405:
0406: xPage.pcmf_getUnComponent().pcmf_setAppl((IUnApplication) this );
0407: return ((IUnPage) this .pcmf_addNode(xName, xPage
0408: .pcmf_getUnComponent()));
0409: };
0410:
0411: public UnComponent pcmf_setActive(String xName) {
0412: if (xName == null)
0413: xName = this .pcmf_getActive().pcmf_getName();
0414:
0415: if (xName.equals("_MY_DESKTOP")) {
0416: this .pcmf_repaint();
0417: return (this .pem_desktop);
0418: }
0419:
0420: if (this .pem_active != null) {
0421: try {
0422: pem_active.pcmf_execPostFcts();
0423: } catch (Exception e) {
0424: KeLog
0425: .pcmf_log(
0426: this .pcmf_getObjName(),
0427: "catch exception during postfunction-execution, propably no active page",
0428: this , KeLog.FATAL);
0429: }
0430: ;
0431: }
0432:
0433: KeTreeElement l_active = this .pcmf_getSubNode(xName);
0434: if (l_active == null) {
0435: KeLog.pcmf_log(this .pcmf_getUnComponent().pcmf_getName(),
0436: "page: " + xName + " not found", this ,
0437: KeLog.MESSAGE);
0438: return (null);
0439: }
0440:
0441: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0442: "");
0443:
0444: if (this .pdm_session.pcmf_isInTransaction()) {
0445: ScXmlScript.pcmf_createPBody(l_remCall);
0446: } else {
0447: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0448: ScXmlScript.pcmf_addProc(l_remCall, null);
0449: }
0450: ;
0451: ScXmlScript.pcmf_addCall(l_remCall, null, this
0452: .pcmf_getRemName(), "pcmf_setActive");
0453: ScXmlScript.pcmf_addCallPar(l_remCall, xName, "false",
0454: "java.lang.String");
0455: ScXmlScript.pcmf_endAll(l_remCall);
0456:
0457: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0458:
0459: this .pem_active = (HoSrvGenericPage) l_active;
0460: try {
0461: pem_active.pcmf_execPreFcts();
0462: } catch (Exception e) {
0463: KeLog
0464: .pcmf_log(
0465: this .pcmf_getObjName(),
0466: "catch exception during prefunction-execution, propably no active page",
0467: this , KeLog.FATAL);
0468: return (null);
0469: }
0470: ;
0471:
0472: if (this .pem_active instanceof HoSrvGenericPage)
0473: ((HoSrvGenericPage) this .pem_active).pcmf_setDefaultFocus();
0474:
0475: return (pem_active);
0476: };
0477:
0478: public UnComponent pcmf_setActiveLocal(String xName) {
0479: if (xName == null)
0480: xName = this .pcmf_getActive().pcmf_getName();
0481:
0482: if (xName.equals("_MY_DESKTOP"))
0483: return (this .pem_desktop);
0484:
0485: if (this .pem_active != null) {
0486: try {
0487: pem_active.pcmf_execPostFcts();
0488: } catch (Exception e) {
0489: KeLog
0490: .pcmf_log(
0491: this .pcmf_getObjName(),
0492: "catch exception during postfunction-execution, propably no active page",
0493: this , KeLog.FATAL);
0494: }
0495: ;
0496: }
0497:
0498: KeTreeElement l_active = this .pcmf_getSubNode(xName);
0499: if (l_active == null) {
0500: KeLog.pcmf_log(this .pcmf_getUnComponent().pcmf_getName(),
0501: "page: " + xName + " not found", this ,
0502: KeLog.MESSAGE);
0503: return (null);
0504: }
0505:
0506: this .pem_active = (HoSrvGenericPage) l_active;
0507: try {
0508: pem_active.pcmf_execPreFcts();
0509: } catch (Exception e) {
0510: KeLog
0511: .pcmf_log(
0512: this .pcmf_getObjName(),
0513: "catch exception during prefunction-execution, propably no active page",
0514: this , KeLog.FATAL);
0515: return (null);
0516: }
0517: ;
0518:
0519: if (this .pem_active instanceof HoSrvGenericPage)
0520: ((HoSrvGenericPage) this .pem_active).pcmf_setDefaultFocus();
0521:
0522: return (pem_active);
0523: };
0524:
0525: public UnComponent pcmf_getActive() {
0526: return (this .pem_active);
0527: };
0528:
0529: public void pcmf_work(Object xReq, Object xResp, boolean xRobust) {
0530: try {
0531: UnEventDispatcher.pcmf_incReqCnt();
0532: pemf_work(xReq, xResp, xRobust);
0533: UnEventDispatcher.pcmf_decReqCnt();
0534: } catch (Exception e) {
0535: KeLog.pcmf_logException("ug2t", this , e);
0536: } catch (Throwable e) {
0537: KeLog.pcmf_logThrowable("ug2t", this , e);
0538: }
0539: }
0540:
0541: private void pemf_work(Object xReq, Object xResp, boolean xRobust)
0542: throws Exception {
0543: if (this .pem_init != null) {
0544: this .pem_init.pcmf_execObj(this );
0545: this .pem_init = null;
0546: }
0547:
0548: ArrayList l_dispList = new ArrayList();
0549:
0550: // @@
0551:
0552: long l_milli = 0;
0553:
0554: if (KeLog.pcmf_testLog(KeLog.STATISTICS)) {
0555: l_milli = new Date().getTime();
0556: KeLog.pcmf_log("ug2t", "Start of Request Cycle", this ,
0557: KeLog.STATISTICS);
0558: }
0559:
0560: if (pem_mapper.pcmf_execMapping(this .pem_submitValues,
0561: this .pem_active, l_dispList, pem_strict,
0562: this .pem_bubble) == true) {
0563: if (KeLog.pcmf_testLog(KeLog.STATISTICS))
0564: KeLog.pcmf_log("ug2t", "End of value mapping: "
0565: + (new Date().getTime() - l_milli), this ,
0566: KeLog.STATISTICS);
0567:
0568: this .pcmf_execPreFcts();
0569: UnComponent.pdm_dispatcher.pcmf_execDispatch(l_dispList,
0570: pcmf_getAppl());
0571: }
0572:
0573: if (KeLog.pcmf_testLog(KeLog.STATISTICS))
0574: KeLog.pcmf_log("ug2t", "End of event-dispatch: "
0575: + (new Date().getTime() - l_milli), this ,
0576: KeLog.STATISTICS);
0577:
0578: // @@
0579:
0580: this .pem_submitValues.clear();
0581:
0582: this .pcmf_resetPropertyChangeFlag();
0583: this .pcmf_execPostFcts();
0584:
0585: if (KeLog.pcmf_testLog(KeLog.STATISTICS))
0586: KeLog.pcmf_log("ug2t", "End of request after: "
0587: + (new Date().getTime() - l_milli), this ,
0588: KeLog.STATISTICS);
0589:
0590: return;
0591: };
0592:
0593: // @@
0594:
0595: public Object pcmf_execView() {
0596: return (pcmf_execObj(null));
0597: }
0598:
0599: public HashMap pcmf_getContext() {
0600: return (this .pem_applContext);
0601: };
0602:
0603: public String pcmf_getUser() {
0604: return (this .pem_user);
0605: };
0606:
0607: public String pcmf_setUser(String xUser) {
0608: String l_user = this .pem_user;
0609: this .pem_user = xUser;
0610:
0611: return (l_user);
0612: };
0613:
0614: public String pcmf_getRole() {
0615: return (pem_role);
0616: };
0617:
0618: public String pcmf_setRole(String xRole) {
0619: String l_role = pem_role;
0620: pem_role = xRole;
0621:
0622: return (l_role);
0623: };
0624:
0625: // @@
0626:
0627: public void pcmf_setSubmitVal(String xName, String xVal) {
0628: this .pem_submitValues.put(xName, xVal);
0629: };
0630:
0631: public void pcmf_clearSubmitValues() {
0632: this .pem_submitValues.clear();
0633: };
0634:
0635: public void pcmf_bind(IHoSession xSession) {
0636: return;
0637: };
0638:
0639: public void pcmf_unBind(IHoSession xSession) {
0640: Iterator l_it = pem_applContext.values().iterator();
0641: Object l_obj = null;
0642:
0643: KeLog.pcmf_log(pcmf_getName(), "release swing session", this ,
0644: KeLog.MESSAGE);
0645:
0646: // @@
0647:
0648: try {
0649: while (l_it.hasNext()) {
0650: KeLog.pcmf_log(pcmf_getName(),
0651: "cleaning up application-context", this ,
0652: KeLog.MESSAGE);
0653: l_obj = l_it.next();
0654: if (l_obj instanceof KeRegisteredObject)
0655: ((KeRegisteredObject) l_obj).pcmf_delete();
0656: else
0657: KeRegisteredObject.pcmf_unRegister(l_obj);
0658: }
0659: ;
0660: } catch (Exception e) {
0661: KeLog.pcmf_log(pcmf_getName(),
0662: "error during session unbind", this , KeLog.ERROR);
0663: }
0664: ;
0665: pem_applContext.clear();
0666: pcmf_releaseSubs();
0667: KeTools.pcmf_deleteFiles(new File(KeEnvironment
0668: .pcmf_getSessionTmpDir()), true);
0669:
0670: return;
0671: };
0672:
0673: public AHoSrvGenericComponent pcmf_buildRefObj() throws Exception {
0674: throw (new UnsupportedOperationException());
0675: };
0676:
0677: public void pcmf_setIcon(String xName) {
0678: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0679: "");
0680:
0681: if (this .pdm_session.pcmf_isInTransaction()) {
0682: ScXmlScript.pcmf_createPBody(l_remCall);
0683: } else {
0684: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0685: ScXmlScript.pcmf_addProc(l_remCall, null);
0686: }
0687: ;
0688: ScXmlScript.pcmf_addCall(l_remCall, null, this
0689: .pcmf_getRemName(), "pcmf_setIcon");
0690: ScXmlScript.pcmf_addCallPar(l_remCall, xName, "false",
0691: "java.lang.String");
0692: ScXmlScript.pcmf_endAll(l_remCall);
0693:
0694: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0695: };
0696:
0697: public void pcmf_setMainMenu(IUnMenu xMainMenu) {
0698: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0699: "");
0700:
0701: if (this .pdm_session.pcmf_isInTransaction()) {
0702: ScXmlScript.pcmf_createPBody(l_remCall);
0703: } else {
0704: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0705: ScXmlScript.pcmf_addProc(l_remCall, null);
0706: }
0707: ;
0708: ScXmlScript.pcmf_addCall(l_remCall, null, this
0709: .pcmf_getRemName(), "pcmf_setMainMenu");
0710: ScXmlScript.pcmf_addCallPar(l_remCall, xMainMenu
0711: .pcmf_getUnComponent().pcmf_getObjLongName(), "true",
0712: "de.ug2t.unifiedGui.interfaces.IUnMenu");
0713: ScXmlScript.pcmf_endAll(l_remCall);
0714:
0715: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0716:
0717: this .pem_mainMenu = xMainMenu;
0718: super .pcmf_addLocalNode(xMainMenu.pcmf_getUnComponent()
0719: .toString(), xMainMenu.pcmf_getUnComponent());
0720: };
0721:
0722: public IUnMenu pcmf_getMainMenu() {
0723: return (this .pem_mainMenu);
0724: };
0725:
0726: public void pcmf_setInitFct(IKeExecutable xInit) {
0727: this .pem_init = xInit;
0728: return;
0729: };
0730:
0731: public String pcmf_getRootUrl() {
0732: return (this .pem_rootUrl);
0733: };
0734:
0735: public final void pcmf_setRootUrl(String xUrl) {
0736: this .pem_rootUrl = xUrl;
0737: };
0738:
0739: public void pcmf_setComponentFactory(UnComponentFactory xFact) {
0740: this .pem_fact = xFact;
0741: }
0742:
0743: public UnComponentFactory pcmf_getComponentFactory() {
0744: return (this .pem_fact);
0745: }
0746:
0747: public IHoSession pcmf_getSession() {
0748: return (this .pdm_session);
0749: }
0750:
0751: public void pcmf_close() {
0752: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0753: "");
0754:
0755: if (this .pdm_session.pcmf_isInTransaction()) {
0756: ScXmlScript.pcmf_createPBody(l_remCall);
0757: } else {
0758: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0759: ScXmlScript.pcmf_addProc(l_remCall, null);
0760: }
0761: ;
0762: ScXmlScript.pcmf_addCall(l_remCall, null, this
0763: .pcmf_getRemName(), "pcmf_close");
0764: ScXmlScript.pcmf_endAll(l_remCall);
0765:
0766: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0767:
0768: this .pdm_session.pcmf_kill();
0769:
0770: return;
0771: }
0772:
0773: public void pcmf_setIcon(IUnImage xIcon) {
0774: this
0775: .pcmf_setIcon(xIcon.pcmf_getUnComponent()
0776: .pcmf_getObjName());
0777:
0778: if (this .pem_icon != null)
0779: this .pem_icon.pcmf_detach();
0780:
0781: this .pem_icon = xIcon;
0782: this .pem_icon.pcmf_attach();
0783: }
0784:
0785: public IUnImage pcmf_getIcon() {
0786: return (this .pem_icon);
0787: };
0788:
0789: public void pcmf_setBgImage(IUnImage xImg) {
0790: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0791: "");
0792:
0793: if (this .pdm_session.pcmf_isInTransaction()) {
0794: ScXmlScript.pcmf_createPBody(l_remCall);
0795: } else {
0796: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0797: ScXmlScript.pcmf_addProc(l_remCall, null);
0798: }
0799: ;
0800: ScXmlScript.pcmf_addCall(l_remCall, null, this
0801: .pcmf_getRemName(), "pcmf_setBgImage");
0802: ScXmlScript.pcmf_addCallPar(l_remCall, xImg
0803: .pcmf_getUnComponent().pcmf_getRemName(), "true",
0804: "de.ug2t.unifiedGui.interfaces.IUnImage");
0805: ScXmlScript.pcmf_endAll(l_remCall);
0806:
0807: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0808: this .pdm_bgImg = xImg;
0809:
0810: return;
0811: }
0812:
0813: public void pcmf_setApplWinSize(int xWi, int xHi) {
0814: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0815: "");
0816:
0817: if (this .pdm_session.pcmf_isInTransaction()) {
0818: ScXmlScript.pcmf_createPBody(l_remCall);
0819: } else {
0820: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0821: ScXmlScript.pcmf_addProc(l_remCall, null);
0822: }
0823: ;
0824: ScXmlScript.pcmf_addCall(l_remCall, null, this
0825: .pcmf_getRemName(), "pcmf_setApplWinSize");
0826: ScXmlScript.pcmf_addCallPar(l_remCall, Integer.toString(xWi),
0827: "false", "int");
0828: ScXmlScript.pcmf_addCallPar(l_remCall, Integer.toString(xHi),
0829: "false", "int");
0830: ScXmlScript.pcmf_endAll(l_remCall);
0831:
0832: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0833: }
0834:
0835: public IUnImage pcmf_getBgImage() {
0836: return (this .pdm_bgImg);
0837: };
0838:
0839: public void pcmf_setStrict(boolean xStrict) {
0840: this .pem_strict = xStrict;
0841: }
0842:
0843: public int pcmf_getApplType() {
0844: return (UnComponentFactory.HALFOBJECT);
0845: }
0846:
0847: public void pcmf_disable() {
0848: if (this .pem_mdi) {
0849: Iterator l_it = this .pcmf_getSubIterator();
0850: while (l_it.hasNext())
0851: ((KeTreeElement) l_it.next()).pcmf_disable();
0852: } else
0853: this .pem_active.pcmf_disable();
0854:
0855: pcmf_disableThis();
0856: };
0857:
0858: public void pcmf_enable() {
0859: if (this .pem_mdi) {
0860: Iterator l_it = this .pcmf_getSubIterator();
0861: while (l_it.hasNext())
0862: ((KeTreeElement) l_it.next()).pcmf_enable();
0863: } else
0864: this .pem_active.pcmf_enable();
0865:
0866: pcmf_enableThis();
0867: };
0868:
0869: public void pcmf_setMixedMode(boolean xMode) {
0870: this .pem_mixedMode = xMode;
0871: }
0872:
0873: public boolean pcmf_isMixedMode() {
0874: return (this .pem_mixedMode);
0875: }
0876:
0877: public void pcmf_setLocalValue(Object xValue) {
0878: if (xValue != null
0879: && xValue.equals(IUnApplication.APPL_CLOSING)
0880: && this .pcmf_getListeners() == null)
0881: this .pcmf_close();
0882:
0883: super .pcmf_setLocalValue(xValue);
0884:
0885: return;
0886: };
0887:
0888: public void pcmf_setValue(Object xValue) {
0889: pcmf_setLocalValue(xValue);
0890:
0891: return;
0892: };
0893:
0894: public void pcmf_beginSessionTR() {
0895: this .pdm_session.pcmf_beginTr();
0896: };
0897:
0898: public void pcmf_commitSessionTR() {
0899: this .pdm_session.pcmf_commitTr();
0900: };
0901:
0902: public void pcmf_rollbackSessionTR() {
0903: this .pdm_session.pcmf_rollbackTr();
0904: }
0905:
0906: public void pcmf_delete() throws Exception {
0907: if (this .pdm_deleted == true)
0908: return;
0909:
0910: this .pem_desktop.pcmf_delete();
0911: if (this .pem_icon != null) {
0912: this .pem_icon.pcmf_detach();
0913: this .pem_icon.pcmf_getUnComponent().pcmf_delete();
0914: }
0915:
0916: super .pcmf_delete();
0917: }
0918:
0919: public String pcmf_getCurrentTemplateKitName() {
0920: return (null);
0921: }
0922:
0923: public final void pcmf_setHostName(String xHost) {
0924: this .pem_hostName = xHost;
0925: };
0926:
0927: public final void pcmf_setHttpPort(int xPort) {
0928: this .pem_HttpPort = xPort;
0929: };
0930:
0931: public final void pcmf_execClientCommand(String xCommand) {
0932: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0933: "");
0934:
0935: if (this .pdm_session.pcmf_isInTransaction()) {
0936: ScXmlScript.pcmf_createPBody(l_remCall);
0937: } else {
0938: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0939: ScXmlScript.pcmf_addProc(l_remCall, null);
0940: }
0941: ;
0942: ScXmlScript.pcmf_addCall(l_remCall, null, this
0943: .pcmf_getRemName(), "pcmf_execClientCommand");
0944: ScXmlScript.pcmf_addCallPar(l_remCall, xCommand, "false",
0945: "java.lang.String");
0946: ScXmlScript.pcmf_endAll(l_remCall);
0947:
0948: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0949: };
0950:
0951: public final void pcmf_execInternalClientCommand(String xCommand,
0952: String xParam) {
0953: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
0954: "");
0955:
0956: if (this .pdm_session.pcmf_isInTransaction()) {
0957: ScXmlScript.pcmf_createPBody(l_remCall);
0958: } else {
0959: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
0960: ScXmlScript.pcmf_addProc(l_remCall, null);
0961: }
0962: ;
0963: ScXmlScript.pcmf_addCall(l_remCall, null, this
0964: .pcmf_getRemName(), "pcmf_execInternalClientCommand");
0965: ScXmlScript.pcmf_addCallPar(l_remCall, xCommand, "false",
0966: "java.lang.String");
0967: ScXmlScript.pcmf_addCallPar(l_remCall, xParam, "false",
0968: "java.lang.String");
0969: ScXmlScript.pcmf_endAll(l_remCall);
0970:
0971: this .pdm_session.pcmf_call(l_remCall.toString(), this );
0972: };
0973:
0974: public KeTreeElement pcmf_removeElement(String xName) {
0975: Object l_ret = super .pcmf_removeElement(xName);
0976: if (l_ret == this .pem_active)
0977: this .pem_active = pem_desktop;
0978:
0979: return ((KeTreeElement) l_ret);
0980: }
0981:
0982: public KeTreeNode pcmf_removeNode(KeTreeNode xNode) {
0983: Object l_ret = super .pcmf_removeNode(xNode);
0984: if (l_ret == this .pem_active)
0985: this .pem_active = pem_desktop;
0986:
0987: return ((KeTreeNode) l_ret);
0988: }
0989:
0990: public KeTreeNode pcmf_removeNode(String xName) {
0991: Object l_ret = super .pcmf_removeNode(xName);
0992: if (l_ret == this .pem_active)
0993: this .pem_active = pem_desktop;
0994:
0995: return ((KeTreeNode) l_ret);
0996: }
0997:
0998: public void pcmf_disableLazyWidgets() {
0999: this .pdm_session.pcmf_setLazyEnabled(false);
1000: }
1001:
1002: private String pem_extCss = null;
1003:
1004: public void pcmf_setExternalCss(String xCss) {
1005: this .pem_extCss = xCss;
1006: }
1007:
1008: public String pcmf_getExternalCss() {
1009: if (this .pem_mdi || this .pem_active == null)
1010: return (this .pem_extCss);
1011: else
1012: return (this .pem_active.pcmf_getExternalCss());
1013: }
1014:
1015: public void pcmf_setGenerateReshapeEvents(boolean xReshapes) {
1016: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
1017: "");
1018:
1019: if (this .pdm_session.pcmf_isInTransaction()) {
1020: ScXmlScript.pcmf_createPBody(l_remCall);
1021: } else {
1022: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
1023: ScXmlScript.pcmf_addProc(l_remCall, null);
1024: }
1025: ;
1026: ScXmlScript.pcmf_addCall(l_remCall, null, this
1027: .pcmf_getRemName(), "pcmf_setGenerateReshapeEvents");
1028: ScXmlScript.pcmf_addCallPar(l_remCall, xReshapes ? "true"
1029: : "false", "false", "boolean");
1030: ScXmlScript.pcmf_endAll(l_remCall);
1031:
1032: this .pdm_session.pcmf_call(l_remCall.toString(), this );
1033:
1034: this .pem_submitReshapes = xReshapes;
1035:
1036: return;
1037: }
1038:
1039: public void pcmf_setAutoShow(boolean xShow) {
1040: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
1041: "");
1042:
1043: if (this .pdm_session.pcmf_isInTransaction()) {
1044: ScXmlScript.pcmf_createPBody(l_remCall);
1045: } else {
1046: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
1047: ScXmlScript.pcmf_addProc(l_remCall, null);
1048: }
1049: ;
1050: ScXmlScript.pcmf_addCall(l_remCall, null, this
1051: .pcmf_getRemName(), "pcmf_setAutoShow");
1052: ScXmlScript.pcmf_addCallPar(l_remCall,
1053: xShow ? "true" : "false", "false", "boolean");
1054: ScXmlScript.pcmf_endAll(l_remCall);
1055:
1056: this .pdm_session.pcmf_call(l_remCall.toString(), this );
1057:
1058: return;
1059: }
1060:
1061: public void pcmf_show() {
1062: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
1063: "");
1064:
1065: if (this .pdm_session.pcmf_isInTransaction()) {
1066: ScXmlScript.pcmf_createPBody(l_remCall);
1067: } else {
1068: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
1069: ScXmlScript.pcmf_addProc(l_remCall, null);
1070: }
1071: ;
1072: ScXmlScript.pcmf_addCall(l_remCall, null, this
1073: .pcmf_getRemName(), "pcmf_show");
1074: ScXmlScript.pcmf_endAll(l_remCall);
1075:
1076: this .pdm_session.pcmf_call(l_remCall.toString(), this );
1077:
1078: return;
1079: }
1080:
1081: public boolean pcmf_getGenerateReshapeEvents() {
1082: return (this .pem_submitReshapes);
1083: }
1084:
1085: public boolean pcmf_isCssSupported() {
1086: return (false);
1087: }
1088:
1089: public void pcmf_startClientPoll(int xPollTime) {
1090: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
1091: "");
1092:
1093: if (this .pdm_session.pcmf_isInTransaction()) {
1094: ScXmlScript.pcmf_createPBody(l_remCall);
1095: } else {
1096: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
1097: ScXmlScript.pcmf_addProc(l_remCall, null);
1098: }
1099: ;
1100: ScXmlScript.pcmf_addCall(l_remCall, null, this
1101: .pcmf_getRemName(), "pcmf_startClientPoll");
1102: ScXmlScript.pcmf_addCallPar(l_remCall, Integer
1103: .toString(xPollTime), "false", "int");
1104: ScXmlScript.pcmf_endAll(l_remCall);
1105:
1106: this .pdm_session.pcmf_call(l_remCall.toString(), this );
1107: this .pem_clientPoll = true;
1108:
1109: return;
1110: }
1111:
1112: public void pcmf_stopClientPoll() {
1113: KeStringTemplateWrapper l_remCall = new KeStringTemplateWrapper(
1114: "");
1115:
1116: if (this .pdm_session.pcmf_isInTransaction()) {
1117: ScXmlScript.pcmf_createPBody(l_remCall);
1118: } else {
1119: ScXmlScript.pcmf_createxScriptString(l_remCall, null);
1120: ScXmlScript.pcmf_addProc(l_remCall, null);
1121: }
1122: ;
1123: ScXmlScript.pcmf_addCall(l_remCall, null, this
1124: .pcmf_getRemName(), "pcmf_stopClientPoll");
1125: ScXmlScript.pcmf_endAll(l_remCall);
1126:
1127: this .pdm_session.pcmf_call(l_remCall.toString(), this );
1128: this .pem_clientPoll = false;
1129:
1130: return;
1131: }
1132:
1133: public boolean pcmf_getClientPoll() {
1134: return (this .pem_clientPoll);
1135: }
1136:
1137: public void pcmf_toLastCheckPoint() {
1138: this .pdm_session.pcmf_toCheckPoint(this .pem_lastCheckPoint);
1139: }
1140:
1141: public void pcmf_refreshSession() {
1142: KeLog.pcmf_logNotSupported("pcmf_refreshSession");
1143: }
1144:
1145: public Object pcmf_persist() throws Throwable {
1146: String l_sid = Thread.currentThread().getName();
1147: // @@
1148: return (l_sid + ".session");
1149: }
1150:
1151: // @@
1152:
1153: public void pcmf_prePersit() {
1154: // @@
1155: }
1156:
1157: public void pcmf_resumed() {
1158: // @@
1159:
1160: this .pcmf_repaint();
1161: }
1162:
1163: public void pcmf_setResumeHandler(IKeExecutable xResHdl) {
1164: // @@
1165: }
1166:
1167: public void pcmf_setPrePersist(IKeExecutable xResHdl) {
1168: // @@
1169: }
1170:
1171: public void pcmf_record(boolean xRecord) {
1172: // @@
1173: }
1174:
1175: public void pcmf_playback() {
1176: // @@
1177: }
1178:
1179: public void pcmf_playback(String xSession) {
1180: // @@
1181: }
1182:
1183: public void pcmf_setInPlayBack(boolean xIn) {
1184: // @@
1185: return;
1186: }
1187:
1188: public void pcmf_execPreFcts() throws Exception {
1189: if (this .pdm_preFctActive && this .pdm_preFct != null) {
1190: Iterator l_it = this .pdm_preFct.iterator();
1191: while (l_it.hasNext())
1192: ((IUnPreDisplayFunction) l_it.next())
1193: .pcmf_execPreFct(this );
1194: }
1195: };
1196:
1197: public void pcmf_execPostFcts() throws Exception {
1198: if (this .pdm_postFctActive && this .pdm_postFct != null) {
1199: Iterator l_it = this .pdm_postFct.iterator();
1200: while (l_it.hasNext())
1201: ((IUnPostDisplayFunction) l_it.next())
1202: .pcmf_execPostFct(this );
1203: }
1204: };
1205:
1206: public void pcmf_addMappingListener(IUnMappingEventListener xListen) {
1207: this .pem_mapper.pcmf_addMappingListener(xListen);
1208: }
1209:
1210: public void pcmf_removeMappingListener(
1211: IUnMappingEventListener xListen) {
1212: this.pem_mapper.pcmf_removeMappingListener(xListen);
1213: }
1214: }
|