public static Object loadFrame( JopSession session, String className, String instance, boolean scrollbar) throws ClassNotFoundException { if (className.indexOf(".pwg") != -1) { GrowFrame frame = new GrowFrame( className, session.getGdh(), instance, new GrowFrameCb(session), session.getRoot()); frame.validate(); frame.setVisible(true); } else { Object frame; if (instance == null) instance = ""; JopLog.log( "JopSpider.loadFrame: Loading frame \"" + className + "\" instance \"" + instance + "\""); try { Class clazz = Class.forName(className); try { Class argTypeList[] = new Class[] {session.getClass(), instance.getClass(), boolean.class}; Object argList[] = new Object[] {session, instance, new Boolean(scrollbar)}; System.out.println("JopSpider.loadFrame getConstructor"); Constructor constructor = clazz.getConstructor(argTypeList); try { frame = constructor.newInstance(argList); } catch (Exception e) { System.out.println( "Class instanciation error: " + className + " " + e.getMessage() + " " + constructor); return null; } // frame = clazz.newInstance(); JopLog.log("JopSpider.loadFrame openFrame"); openFrame(frame); return frame; } catch (NoSuchMethodException e) { System.out.println("NoSuchMethodException: Unable to get frame constructor " + className); } catch (Exception e) { System.out.println( "Exception: Unable to get frame class " + className + " " + e.getMessage()); } } catch (ClassNotFoundException e) { System.out.println("Class not found: " + className); throw new ClassNotFoundException(); } return null; } return null; }
static String replaceUrlSymbol(JopSession session, String url) { Gdh gdh = session.getGdh(); CdhrObjid webConfig = gdh.getClassList(Pwrb.cClass_WebBrowserConfig); if (webConfig.evenSts()) return url; CdhrString webName = gdh.objidToName(webConfig.objid, Cdh.mName_volumeStrict); if (webConfig.evenSts()) return url; for (int i = 0; i < 10; i++) { String attr = webName.str + ".URL_Symbols[" + i + "]"; CdhrString attrValue = gdh.getObjectInfoString(attr); if (attrValue.evenSts()) return url; if (attrValue.str.equals("")) continue; StringTokenizer token = new StringTokenizer(attrValue.str); String symbol = "$" + token.nextToken(); if (!token.hasMoreTokens()) continue; String value = token.nextToken(); int idx = url.lastIndexOf(symbol); while (idx != -1) { url = url.substring(0, idx) + value + url.substring(idx + symbol.length()); idx = url.lastIndexOf(symbol); } } return url; }
static void openURL( JopSession session, String name, boolean newFrame, String frameName, String bookmark) { System.out.println("openURL " + name); Object root = session.getRoot(); // Replace any URL symbol name = replaceUrlSymbol(session, name); try { String url_str = null; if (name.substring(0, 5).equals("http:")) { url_str = name; if (url_str.lastIndexOf(".html") == -1 && url_str.lastIndexOf(".shtml") == -1 && url_str.lastIndexOf(".htm") == -1 && url_str.lastIndexOf(".pdf") == -1) url_str = url_str + ".html"; } else if (name.startsWith("$pwr_doc/")) { URL current = ((JApplet) root).getDocumentBase(); String current_str = current.toString(); int idx1 = current_str.indexOf('/'); if (idx1 != -1 && current_str.length() > idx1 + 1) { idx1 = current_str.indexOf('/', idx1 + 1); if (idx1 != -1 && current_str.length() > idx1 + 1) { idx1 = current_str.indexOf('/', idx1 + 1); if (idx1 != -1 && current_str.length() > idx1 + 1) { url_str = current_str.substring(0, idx1 + 1) + "pwr_doc/" + name.substring(9); if (url_str.lastIndexOf(".html") == -1 && url_str.lastIndexOf(".shtml") == -1 && url_str.lastIndexOf(".htm") == -1 && url_str.lastIndexOf(".pdf") == -1) url_str = url_str + ".html"; } } } } else { URL current = ((JApplet) root).getCodeBase(); String current_str = current.toString(); int idx1 = current_str.lastIndexOf('/'); int idx2 = current_str.lastIndexOf(':'); int idx = idx1; if (idx2 > idx) idx = idx2; String path = current_str.substring(0, idx + 1); if (name.lastIndexOf(".html") == -1 && name.lastIndexOf(".shtml") == -1 && name.lastIndexOf(".htm") == -1 && name.lastIndexOf(".pdf") == -1) url_str = new String(path + name + ".html"); else url_str = new String(path + name); if (bookmark != null) url_str += "#" + bookmark; } System.out.println("Opening URL: " + url_str); URL url = new URL(url_str); AppletContext appCtx = ((JApplet) root).getAppletContext(); if (newFrame) appCtx.showDocument(url, "_blank"); else if (frameName != null) appCtx.showDocument(url, frameName); else appCtx.showDocument(url, "_self"); } catch (MalformedURLException e) { System.out.println("MalformedURL : " + name); } }
public static Image getImage(JopSession session, String image) { String fullName; if (session.getRoot() instanceof JopApplet) { String name; try { URL current = ((JApplet) session.getRoot()).getCodeBase(); String current_str = current.toString(); int idx1 = current_str.lastIndexOf('/'); int idx2 = current_str.lastIndexOf(':'); int idx = idx1; if (idx2 > idx) idx = idx2; String path = current_str.substring(0, idx + 1); String url_str; // String url_str = new String( path + name); if (image.substring(0, 5).compareTo("jpwr/") == 0) { idx = image.lastIndexOf('/'); name = image.substring(5, idx); url_str = new String("jar:" + path + "pwr_" + name + ".jar!/" + image); } else { idx = image.lastIndexOf('/'); if (idx == -1) name = new String(image); else name = image.substring(idx + 1); url_str = new String("jar:" + path + "pwrp_" + systemName + "_web.jar!/" + name); } System.out.println("Opening URL: " + url_str); URL url = new URL(url_str); return Toolkit.getDefaultToolkit().getImage(url); } catch (MalformedURLException e) { } return null; } else { // Add default directory /pwrp/img System.out.println("Image: " + image); // int idx = image.lastIndexOf('/'); // if ( idx == -1) // fullName = new String("/pwrp/img/" + image); // else fullName = new String(image); // return Toolkit.getDefaultToolkit().getImage( fullName); try { String name; String url_str; int idx; String path = new String("file://"); if (image.substring(0, 5).compareTo("jpwr/") == 0) { idx = image.lastIndexOf('/'); name = image.substring(5, idx); url_str = new String("$pwr_lib/pwr_" + name + ".jar"); url_str = Gdh.translateFilename(url_str); url_str = new String("jar:" + path + url_str + "!/" + image); } else { idx = image.lastIndexOf('/'); if (idx == -1) name = new String(image); else name = image.substring(idx + 1); url_str = new String("$pwrp_lib/pwrp_" + systemName + ".jar"); System.out.println("java: " + url_str); url_str = Gdh.translateFilename(url_str); url_str = new String("jar:" + path + url_str + "!/" + name); } System.out.println("Opening URL: " + url_str); URL url = new URL(url_str); return Toolkit.getDefaultToolkit().getImage(url); } catch (MalformedURLException e) { } } return null; }
static int command(JopSession session, String cmd) { boolean local_cmd = false; Object root = session.getRoot(); Gdh gdh = session.getEngine().gdh; System.out.println("JopSpider command : " + cmd); if (root instanceof JopApplet) { if (((JopApplet) root).engine.isInstance()) cmd = RtUtilities.strReplace(cmd, "$object", ((JopApplet) root).engine.getInstance()); } Cli cli = new Cli(cliTable); String command = cli.parse(cmd); if (cli.oddSts()) { System.out.println("JopSpider1 : " + command); if (command.equals("OPEN")) { if (cli.qualifierFound("cli_arg1")) { String jgraph = "JGRAPH"; String graph = "GRAPH"; String url = "URL"; String trend = "TREND"; String fast = "FAST"; String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); if (jgraph.length() >= cli_arg1.length() && jgraph.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN JGRAPH" boolean newFrame = cli.qualifierFound("/NEW"); boolean scrollbar = cli.qualifierFound("/SCROLLBAR"); if (!cli.qualifierFound("cli_arg2")) { System.out.println("Syntax error"); return 0; } String frameName = cli.getQualValue("cli_arg2"); String instance = cli.getQualValue("/INSTANCE"); if (session.isOpWindowApplet()) { frameName = frameName.substring(0, 1).toUpperCase() + frameName.substring(1); System.out.println("Open frame " + frameName); session.openGraphFrame(frameName, instance, scrollbar, false); } else if (session.isApplet()) { System.out.println("Loading applet \"" + frameName + "\""); openURL(session, frameName, newFrame, null, null); local_cmd = true; } else { System.out.println("Loading frame \"" + frameName + "\""); try { loadFrame(session, frameName, instance, scrollbar); } catch (ClassNotFoundException e) { } local_cmd = true; } } else if (graph.length() >= cli_arg1.length() && graph.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN GRAPH" if (root instanceof JopApplet) { System.out.println("open graph for JopApplet"); boolean newFrame = cli.qualifierFound("/NEW"); boolean scrollbar = cli.qualifierFound("/SCROLLBAR"); if (cli.qualifierFound("/OBJECT")) { String objectValue = cli.getQualValue("/OBJECT"); String objectName; String appletName; String instance = null; // Replace * by node object if (objectValue.charAt(0) == '*') { CdhrObjid cdhr_node = gdh.getNodeObject(0); if (cdhr_node.evenSts()) return 0; CdhrString cdhr_nodestr = gdh.objidToName(cdhr_node.objid, Cdh.mName_volumeStrict); objectName = cdhr_nodestr.str + objectValue.substring(1); } else objectName = objectValue; String attrName = objectName + ".Action"; CdhrString cdhr = gdh.getObjectInfoString(attrName); if (cdhr.evenSts()) { System.out.println("Object name error"); return 0; } int idx = cdhr.str.lastIndexOf(".pwg"); if (idx != -1) { // appletName = cdhr.str.substring(0, idx); appletName = cdhr.str; // atest } else { idx = cdhr.str.lastIndexOf(".class"); if (idx != -1) appletName = cdhr.str.substring(0, idx); else { // This is a command return command(session, cdhr.str); } } attrName = objectName + ".Object"; cdhr = gdh.getObjectInfoString(attrName); if (cdhr.oddSts() && !cdhr.str.equals("")) instance = cdhr.str; if (session.isOpWindowApplet()) { // atest appletName = appletName.substring(0,1).toUpperCase() + // appletName.substring(1); System.out.println("Open frame " + appletName); session.openGraphFrame(appletName, instance, false, false); } else { System.out.println("Loading applet \"" + appletName + "\""); openURL(session, appletName, newFrame, null, null); } local_cmd = true; } else { if (true /* session.isOpWindowApplet() */) { String frameName = null; String instanceValue = null; boolean classGraph = false; if (cli.qualifierFound("/INSTANCE")) { instanceValue = cli.getQualValue("/INSTANCE"); classGraph = cli.qualifierFound("/CLASSGRAPH"); boolean parent = cli.qualifierFound("/PARENT"); if (parent) { int idx = instanceValue.lastIndexOf('.'); if (idx != -1 && idx != 0) instanceValue = instanceValue.substring(0, idx); System.out.println("open graph /parent: " + instanceValue); } } if (!classGraph) { if (!cli.qualifierFound("cli_arg2")) { System.out.println("Syntax error"); return 0; } frameName = cli.getQualValue("cli_arg2").toLowerCase(); frameName = frameName.substring(0, 1).toUpperCase() + frameName.substring(1); System.out.println("Open frame " + frameName); } session.openGraphFrame(frameName, instanceValue, scrollbar, classGraph); } /** * *********** else { String frameName = null; if ( ! * cli.qualifierFound("cli_arg2")) { System.out.println("Syntax error"); return 0; } * frameName = cli.getQualValue("cli_arg2").toLowerCase(); * * <p>if ( cli.qualifierFound("/INSTANCE")) { String instanceValue = * cli.getQualValue("/INSTANCE").toLowerCase(); * * <p>boolean parent = cli.qualifierFound("/PARENT"); if ( parent) { int idx = * instanceValue.lastIndexOf( '.'); if ( idx != -1 && idx != 0) instanceValue = * instanceValue.substring( 0, idx); System.out.println( "open graph /parent: " + * instanceValue); } * * <p>String tempFile = frameName + "_" + * instanceValue.replace('å','a').replace('ä','a').replace('ö','o'); PwrtStatus psts * = gdh.createInstanceFile( "$pwrp_websrv/"+frameName+".html", tempFile+".html", * instanceValue); if ( psts.evenSts()) { System.out.println("createInstanceFile * error"); return 0; } frameName = tempFile; } * * <p>System.out.println( "Loading applet \"" + frameName + "\""); * * <p>openURL( session, frameName, newFrame, null, null); local_cmd = true; } * */ } } else { // Application boolean newFrame = cli.qualifierFound("/NEW"); boolean scrollbar = cli.qualifierFound("/SCROLLBAR"); String frameName = null; String instanceValue = null; boolean classGraph = false; if (cli.qualifierFound("/INSTANCE")) { instanceValue = cli.getQualValue("/INSTANCE"); classGraph = cli.qualifierFound("/CLASSGRAPH"); boolean parent = cli.qualifierFound("/PARENT"); if (parent) { int idx = instanceValue.lastIndexOf('.'); if (idx != -1 && idx != 0) instanceValue = instanceValue.substring(0, idx); System.out.println("open graph /parent: " + instanceValue); } } if (cli.qualifierFound("/OBJECT")) { String objectValue = cli.getQualValue("/OBJECT"); String objectName; String appletName; String instance = null; // Replace * by node object if (objectValue.charAt(0) == '*') { CdhrObjid cdhr_node = gdh.getNodeObject(0); if (cdhr_node.evenSts()) return 0; CdhrString cdhr_nodestr = gdh.objidToName(cdhr_node.objid, Cdh.mName_volumeStrict); objectName = cdhr_nodestr.str + objectValue.substring(1); } else objectName = objectValue; String attrName = objectName + ".Action"; CdhrString cdhr = gdh.getObjectInfoString(attrName); if (cdhr.evenSts()) { System.out.println("Object name error"); return 0; } int idx = cdhr.str.lastIndexOf(".pwg"); if (idx != -1) { // appletName = cdhr.str.substring(0, idx); appletName = cdhr.str; // atest } else { idx = cdhr.str.lastIndexOf(".class"); if (idx != -1) appletName = cdhr.str.substring(0, idx); else { // This is a command return command(session, cdhr.str); } } attrName = objectName + ".Object"; cdhr = gdh.getObjectInfoString(attrName); if (cdhr.oddSts() && !cdhr.str.equals("")) instance = cdhr.str; System.out.println("Open frame " + appletName); session.openGraphFrame(appletName, instance, false, false); local_cmd = true; } if (!classGraph) { if (cli.qualifierFound("/FILE")) { frameName = cli.getQualValue("/FILE"); if (frameName.indexOf(".pwg") == -1) frameName = frameName + ".pwg"; } else if (cli.qualifierFound("cli_arg2")) { frameName = cli.getQualValue("cli_arg2").toLowerCase(); frameName = frameName.substring(0, 1).toUpperCase() + frameName.substring(1); } else { System.out.println("Syntax error"); return 0; } System.out.println("Open frame " + frameName); } session.openGraphFrame(frameName, instanceValue, scrollbar, classGraph); } } else if (url.length() >= cli_arg1.length() && url.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN URL" if (root instanceof JopApplet) { if (cli.qualifierFound("cli_arg2")) { Boolean newFrame = true; String frameName = null; String urlValue = cli.getQualValue("cli_arg2"); System.out.println("open url " + urlValue); if (urlValue.startsWith("pwrb_") || urlValue.startsWith("pwrs_") || urlValue.startsWith("nmps_") || urlValue.startsWith("profibus_") || urlValue.startsWith("otherio_") || urlValue.startsWith("opc_") || urlValue.startsWith("basecomponent_") || urlValue.startsWith("abb_") || urlValue.startsWith("siemens_") || urlValue.startsWith("ssabox_")) // Object reference manual urlValue = "$pwr_doc/" + session.getLang() + "/orm/" + urlValue; if (cli.qualifierFound("/NAME")) { frameName = cli.getQualValue("/NAME"); newFrame = false; } openURL(session, urlValue, newFrame, frameName, null); } } } else if (trend.length() >= cli_arg1.length() && trend.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN TREND" String name; if (cli.qualifierFound("cli_arg2")) name = cli.getQualValue("cli_arg2"); else name = cli.getQualValue("/NAME"); StringTokenizer tokens = new StringTokenizer(name, ","); int cnt = tokens.countTokens(); String[] trendList = new String[cnt]; for (int i = 0; i < cnt; i++) trendList[i] = tokens.nextToken(); session.openTrend(trendList); } else if (fast.length() >= cli_arg1.length() && fast.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN FAST" String name; if (cli.qualifierFound("cli_arg2")) name = cli.getQualValue("cli_arg2"); else name = cli.getQualValue("/NAME"); session.openFast(name); } else { System.out.println("Unknown command"); } } } else if (command.equals("HELP")) { if (root instanceof JopApplet) { String fileName = "xtt_help_"; String bookmarkValue = null; if (cli.qualifierFound("/VERSION")) { openURL(session, "$pwr_doc/xtt_version_help_version.html", true, null, null); } else { if (cli.qualifierFound("/BASE")) // Not language dependent !! TODO fileName = "$pwr_doc/help/xtt_help_"; if (cli.qualifierFound("cli_arg1")) fileName += cli.getQualValue("cli_arg1").toLowerCase(); if (cli.qualifierFound("cli_arg2")) fileName += "_" + cli.getQualValue("cli_arg2").toLowerCase(); if (cli.qualifierFound("cli_arg3")) fileName += "_" + cli.getQualValue("cli_arg3").toLowerCase(); if (cli.qualifierFound("cli_arg4")) fileName += "_" + cli.getQualValue("cli_arg4").toLowerCase(); if (fileName.startsWith("pwrb_") || fileName.startsWith("pwrs_") || fileName.startsWith("nmps_") || fileName.startsWith("profibus_") || fileName.startsWith("otherio_") || fileName.startsWith("opc_") || fileName.startsWith("basecomponent_") || fileName.startsWith("abb_") || fileName.startsWith("siemens_") || fileName.startsWith("ssabox_")) // Object reference manual fileName = "$pwr_doc/orm/" + fileName; if (cli.qualifierFound("/BOOKMARK")) bookmarkValue = cli.getQualValue("/BOOKMARK"); System.out.println("Loading helpfile \"" + fileName + "\""); openURL(session, fileName, true, null, bookmarkValue); } local_cmd = true; } } else if (command.equals("SET")) { if (cli.qualifierFound("cli_arg1")) { String parameter = "PARAMETER"; String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); if (parameter.length() >= cli_arg1.length() && parameter.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "SET PARAMETER" if (root instanceof JopApplet) { String name; String value; PwrtStatus sts; local_cmd = true; if (cli.qualifierFound("/NAME")) name = cli.getQualValue("/NAME"); else { System.out.println("Cmd: name is missing\n"); return 0; } if (cli.qualifierFound("/VALUE")) value = cli.getQualValue("/VALUE"); else { System.out.println("Cmd: value is missing\n"); return 0; } boolean bypass = cli.qualifierFound("/BYPASS"); if (!bypass) { // Need RtWrite or System to set attribute if (!gdh.isAuthorized(Pwr.mPrv_RtWrite | Pwr.mPrv_System)) { System.out.println("No authorized"); return 0; } } // Get type of attribute GdhrGetAttributeChar ret = gdh.getAttributeChar(name); if (ret.evenSts()) return 0; if (ret.typeId == Pwr.eType_Float32) { float setValue = Float.parseFloat(value); sts = gdh.setObjectInfo(name, setValue); } else if (ret.typeId == Pwr.eType_Boolean) { boolean setValue = (Integer.parseInt(value, 10) != 0); sts = gdh.setObjectInfo(name, setValue); } else if (ret.typeId == Pwr.eType_Int32 || ret.typeId == Pwr.eType_UInt32 || ret.typeId == Pwr.eType_Int16 || ret.typeId == Pwr.eType_UInt16 || ret.typeId == Pwr.eType_Int8 || ret.typeId == Pwr.eType_UInt8 || ret.typeId == Pwr.eType_Mask || ret.typeId == Pwr.eType_Enum) { int setValue = Integer.parseInt(value, 10); sts = gdh.setObjectInfo(name, setValue); } else if (ret.typeId == Pwr.eType_String) { sts = gdh.setObjectInfo(name, value); } else return 0; if (sts.evenSts()) System.out.println("setObjectInfoError " + sts); } } } } else if (command.equals("CHECK")) { if (cli.qualifierFound("cli_arg1")) { String methodstr = "METHOD"; String isattributestr = "ISATTRIBUTE"; String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); if (methodstr.length() >= cli_arg1.length() && methodstr.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "CHECK METHOD" String method; String object; if (cli.qualifierFound("/METHOD")) method = cli.getQualValue("/METHOD"); else { System.out.println("Cmd: Method is missing\n"); return 0; } if (cli.qualifierFound("/OBJECT")) object = cli.getQualValue("/OBJECT"); else { System.out.println("Cmd: Object is missing\n"); return 0; } if (methObject == null || object.compareToIgnoreCase(methObject) != 0) { CdhrAttrRef oret = gdh.nameToAttrRef(object); if (oret.evenSts()) return 0; CdhrTypeId cret = gdh.getAttrRefTid(oret.aref); if (cret.evenSts()) return 0; methObject = object; methAref = oret.aref; methClassId = cret.typeId; } JopMethods methods = new JopMethods(session, methAref, methObject, methClassId, JopUtility.NO); boolean b = methods.callFilterMethod(method); System.out.println( "Cmd check method: " + method + " , Object: " + object + ", value: " + b); if (b) return 1; else return 0; } else if (isattributestr.length() >= cli_arg1.length() && isattributestr.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "CHECK ISATTRIBUTE" String method; String object; if (cli.qualifierFound("/OBJECT")) object = cli.getQualValue("/OBJECT"); else { System.out.println("Cmd: Object is missing\n"); return 0; } if (methObject == null || object.compareToIgnoreCase(methObject) != 0) { CdhrAttrRef oret = gdh.nameToAttrRef(object); if (oret.evenSts()) return 0; CdhrTypeId cret = gdh.getAttrRefTid(oret.aref); if (cret.evenSts()) return 0; methObject = object; methAref = oret.aref; methClassId = cret.typeId; } if ((methAref.flags & PwrtAttrRef.OBJECTATTR) != 0) return 1; else return 0; } } } else if (command.equals("CALL")) { if (cli.qualifierFound("cli_arg1")) { String parameter = "METHOD"; String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); if (parameter.length() >= cli_arg1.length() && parameter.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "CHECK METHOD" String method; String object; if (cli.qualifierFound("/METHOD")) method = cli.getQualValue("/METHOD"); else { System.out.println("Cmd: Method is missing\n"); return 0; } if (cli.qualifierFound("/OBJECT")) object = cli.getQualValue("/OBJECT"); else { System.out.println("Cmd: Object is missing\n"); return 0; } if (methObject == null || object.compareToIgnoreCase(methObject) != 0) { CdhrAttrRef oret = gdh.nameToAttrRef(object); if (oret.evenSts()) return 0; CdhrTypeId cret = gdh.getAttrRefTid(oret.aref); if (cret.evenSts()) return 0; methObject = object; methAref = oret.aref; methClassId = cret.typeId; } JopMethods methods = new JopMethods(session, methAref, methObject, methClassId, JopUtility.NO); methods.callMethod(method); System.out.println("Cmd call method: " + method + " , Object: " + object); return 1; } } } else if (command.equals("SET")) { if (cli.qualifierFound("cli_arg1")) { String parameter = "LANGUAGE"; String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); if (parameter.length() >= cli_arg1.length() && parameter.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "SET LANGUAGE" String cli_arg2; if (cli.qualifierFound("cli_arg2")) cli_arg2 = cli.getQualValue("cli_arg2"); else { System.out.println("Cmd: Language is missing\n"); return 0; } JopLang lng = new JopLang(session); lng.set(cli_arg2); JopLang.setDefault(lng); return 1; } } } } else { System.out.println("JopSpider: Parse error " + cli.getStsString()); return 0; } if (!local_cmd) { // Send to xtt if (qcom != null) { PwrtStatus sts = qcom.put(op_qcom_qix, op_qcom_nid, cmd); System.out.println("Send " + cmd + " sts: " + sts.getSts()); if (sts.evenSts()) System.out.println("Qcom put error: " + sts.getSts()); } } return 1; }
static void command(JopSession session, String cmd) { boolean local_cmd = false; Object root = session.getRoot(); Gdh gdh = session.getEngine().gdh; System.out.println("JopSpider command : " + cmd); if (root instanceof JopApplet) { if (((JopApplet) root).engine.isInstance()) cmd = RtUtilities.strReplace(cmd, "$object", ((JopApplet) root).engine.getInstance()); } Cli cli = new Cli(cliTable); String command = cli.parse(cmd); if (cli.oddSts()) { System.out.println("JopSpider1 : " + command); if (command.equals("OPEN")) { if (cli.qualifierFound("cli_arg1")) { String jgraph = "JGRAPH"; String graph = "GRAPH"; String url = "URL"; String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); if (jgraph.length() >= cli_arg1.length() && jgraph.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN JGRAPH" boolean newFrame = cli.qualifierFound("/NEW"); boolean scrollbar = cli.qualifierFound("/SCROLLBAR"); if (!cli.qualifierFound("cli_arg2")) { System.out.println("Syntax error"); return; } String frameName = cli.getQualValue("cli_arg2"); String instance = cli.getQualValue("/INSTANCE"); if (session.isOpWindowApplet()) { frameName = frameName.substring(0, 1).toUpperCase() + frameName.substring(1); System.out.println("Open frame " + frameName); session.openGraphFrame(frameName, instance, scrollbar, false); } else if (session.isApplet()) { System.out.println("Loading applet \"" + frameName + "\""); openURL(session, frameName, newFrame, null); local_cmd = true; } else { System.out.println("Loading frame \"" + frameName + "\""); loadFrame(session, frameName, instance, scrollbar); local_cmd = true; } } else if (graph.length() >= cli_arg1.length() && graph.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN GRAPH" if (root instanceof JopApplet) { boolean newFrame = cli.qualifierFound("/NEW"); boolean scrollbar = cli.qualifierFound("/SCROLLBAR"); if (cli.qualifierFound("/OBJECT")) { String objectValue = cli.getQualValue("/OBJECT"); String objectName; String appletName; String instance = null; // Replace * by node object if (objectValue.charAt(0) == '*') { CdhrObjid cdhr_node = gdh.getNodeObject(0); if (cdhr_node.evenSts()) return; CdhrString cdhr_nodestr = gdh.objidToName(cdhr_node.objid, Cdh.mName_volumeStrict); objectName = cdhr_nodestr.str + objectValue.substring(1); } else objectName = objectValue; String attrName = objectName + ".Action"; CdhrString cdhr = gdh.getObjectInfoString(attrName); if (cdhr.evenSts()) { System.out.println("Object name error"); return; } int idx = cdhr.str.lastIndexOf(".pwg"); if (idx != -1) appletName = cdhr.str.substring(0, idx); else { idx = cdhr.str.lastIndexOf(".class"); if (idx != -1) appletName = cdhr.str.substring(0, idx); else { // This is a command command(session, cdhr.str); return; } } attrName = objectName + ".Object"; cdhr = gdh.getObjectInfoString(attrName); if (cdhr.oddSts() && !cdhr.str.equals("")) instance = cdhr.str; if (session.isOpWindowApplet()) { appletName = appletName.substring(0, 1).toUpperCase() + appletName.substring(1); System.out.println("Open frame " + appletName); session.openGraphFrame(appletName, instance, false, false); } else { System.out.println("Loading applet \"" + appletName + "\""); openURL(session, appletName, newFrame, null); } local_cmd = true; } else { if (session.isOpWindowApplet()) { String frameName = null; String instanceValue = null; boolean classGraph = false; if (cli.qualifierFound("/INSTANCE")) { instanceValue = cli.getQualValue("/INSTANCE"); classGraph = cli.qualifierFound("/CLASSGRAPH"); } if (!classGraph) { if (!cli.qualifierFound("cli_arg2")) { System.out.println("Syntax error"); return; } frameName = cli.getQualValue("cli_arg2").toLowerCase(); frameName = frameName.substring(0, 1).toUpperCase() + frameName.substring(1); System.out.println("Open frame " + frameName); } session.openGraphFrame(frameName, instanceValue, scrollbar, classGraph); } else { String frameName = null; if (!cli.qualifierFound("cli_arg2")) { System.out.println("Syntax error"); return; } frameName = cli.getQualValue("cli_arg2").toLowerCase(); if (cli.qualifierFound("/INSTANCE")) { String instanceValue = cli.getQualValue("/INSTANCE").toLowerCase(); String tempFile = frameName + "_" + instanceValue.replace('å', 'a').replace('ä', 'a').replace('ö', 'o'); PwrtStatus psts = gdh.createInstanceFile( "$pwrp_websrv/" + frameName + ".html", tempFile + ".html", instanceValue); if (psts.evenSts()) { System.out.println("createInstanceFile error"); return; } frameName = tempFile; } System.out.println("Loading applet \"" + frameName + "\""); openURL(session, frameName, newFrame, null); local_cmd = true; } } } else { // Application boolean newFrame = cli.qualifierFound("/NEW"); boolean scrollbar = cli.qualifierFound("/SCROLLBAR"); String frameName = null; String instanceValue = null; boolean classGraph = false; if (cli.qualifierFound("/INSTANCE")) { instanceValue = cli.getQualValue("/INSTANCE"); classGraph = cli.qualifierFound("/CLASSGRAPH"); } if (!classGraph) { if (!cli.qualifierFound("cli_arg2")) { System.out.println("Syntax error"); return; } frameName = cli.getQualValue("cli_arg2").toLowerCase(); frameName = frameName.substring(0, 1).toUpperCase() + frameName.substring(1); System.out.println("Open frame " + frameName); } session.openGraphFrame(frameName, instanceValue, scrollbar, classGraph); } } else if (url.length() >= cli_arg1.length() && url.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "OPEN URL" if (root instanceof JopApplet) { if (cli.qualifierFound("cli_arg2")) { String urlValue = cli.getQualValue("cli_arg2"); System.out.println("open url " + urlValue); if (urlValue.startsWith("pwrb_") || urlValue.startsWith("pwrs_") || urlValue.startsWith("nmps_") || urlValue.startsWith("ssab_")) // Object reference manual urlValue = "$pwr_doc/orm/" + urlValue; openURL(session, urlValue, true, null); } } } else { System.out.println("Unknown command"); } } } else if (command.equals("HELP")) { if (root instanceof JopApplet) { String fileName = "xtt_help_"; String bookmarkValue = null; if (cli.qualifierFound("/VERSION")) { openURL(session, "$pwr_doc/xtt_version_help_version.html", true, null); } else { if (cli.qualifierFound("/BASE")) // Not language dependent !! TODO fileName = "$pwr_doc/help/xtt_help_"; if (cli.qualifierFound("cli_arg1")) fileName += cli.getQualValue("cli_arg1").toLowerCase(); if (cli.qualifierFound("cli_arg2")) fileName += "_" + cli.getQualValue("cli_arg2").toLowerCase(); if (cli.qualifierFound("cli_arg3")) fileName += "_" + cli.getQualValue("cli_arg3").toLowerCase(); if (cli.qualifierFound("cli_arg4")) fileName += "_" + cli.getQualValue("cli_arg4").toLowerCase(); if (fileName.startsWith("pwrb_") || fileName.startsWith("pwrs_") || fileName.startsWith("nmps_") || fileName.startsWith("ssab_")) // Object reference manual fileName = "$pwr_doc/orm/" + fileName; if (cli.qualifierFound("/BOOKMARK")) bookmarkValue = cli.getQualValue("/BOOKMARK"); System.out.println("Loading helpfile \"" + fileName + "\""); openURL(session, fileName, true, bookmarkValue); } local_cmd = true; } } else if (command.equals("SET")) { if (cli.qualifierFound("cli_arg1")) { String parameter = "PARAMETER"; String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); if (parameter.length() >= cli_arg1.length() && parameter.substring(0, cli_arg1.length()).equals(cli_arg1)) { // Command is "SET PARAMETER" if (root instanceof JopApplet) { String name; String value; PwrtStatus sts; local_cmd = true; if (cli.qualifierFound("/NAME")) name = cli.getQualValue("/NAME"); else { System.out.println("Cmd: name is missing\n"); return; } if (cli.qualifierFound("/VALUE")) value = cli.getQualValue("/VALUE"); else { System.out.println("Cmd: value is missing\n"); return; } boolean bypass = cli.qualifierFound("/BYPASS"); if (!bypass) { // Need RtWrite or System to set attribute if (!gdh.isAuthorized(Pwr.mPrv_RtWrite | Pwr.mPrv_System)) { System.out.println("No authorized"); return; } } // Get type of attribute GdhrGetAttributeChar ret = gdh.getAttributeChar(name); if (ret.evenSts()) return; if (ret.typeId == Pwr.eType_Float32) { float setValue = Float.parseFloat(value); sts = gdh.setObjectInfo(name, setValue); } else if (ret.typeId == Pwr.eType_Boolean) { boolean setValue = (Integer.parseInt(value, 10) != 0); sts = gdh.setObjectInfo(name, setValue); } else if (ret.typeId == Pwr.eType_Int32 || ret.typeId == Pwr.eType_UInt32 || ret.typeId == Pwr.eType_Int16 || ret.typeId == Pwr.eType_UInt16 || ret.typeId == Pwr.eType_Int8 || ret.typeId == Pwr.eType_UInt8 || ret.typeId == Pwr.eType_Mask || ret.typeId == Pwr.eType_Enum) { int setValue = Integer.parseInt(value, 10); sts = gdh.setObjectInfo(name, setValue); } else if (ret.typeId == Pwr.eType_String) { sts = gdh.setObjectInfo(name, value); } else return; if (sts.evenSts()) System.out.println("setObjectInfoError " + sts); } } } } } else System.out.println("JopSpider: Parse error " + cli.getStsString()); if (!local_cmd) { // Send to xtt if (qcom != null) { PwrtStatus sts = qcom.put(op_qcom_qix, op_qcom_nid, cmd); System.out.println("Send " + cmd + " sts: " + sts.getSts()); if (sts.evenSts()) System.out.println("Qcom put error: " + sts.getSts()); } } }