Warning, /graphics/kst-plot/devel-docs/deprecated/scripting.txt is written in an unsupported language. File is not indexed.
0001 Javascript Definition:
0002
0003 Overview:
0004 A planck-HFI reqirement is that kst support scripting to allow flexable
0005 generation of complex plots. We plan to use JavaScript as excellent
0006 facilities for this exist within KDE.
0007
0008 Requirements:
0009 - Complete bindings to all objects
0010 - everything that can be done in a .kst file can be done with a
0011 javascript
0012 - DCOP based commandline tool with konsole
0013 - will provide a 'command line' to kst (like sm or idl)
0014 - Can be commanded from either an embedded konsole, or an external
0015 konsole.
0016 - Multiple ways of entering scripts
0017 - from command line when starting kst
0018 eg: kst -J "file=\"data.dat\";field=\"N15C2\"" bolo.js
0019 - From file menue
0020 - From DCOP/command line tool.
0021 - We will not use automatic bindings. Instead, we will "ideal" bindings
0022 and implement them as internal calls to our internal objects
0023 - The update thread doesn't run if the interpreter is running, and blocks the
0024 interpreter from starting up during an update There will be a force
0025 update/repaint mechanism to allow updates during script interpretation.
0026 - vectors can be referenced as strings (tagname) everywhere too
0027
0028
0029 Open Questions:
0030 - kjsembed or qsa?
0031
0032
0033 Examples:
0034 A plot with points + error bars, and a line fit.
0035 The X axis vector has to be re-scaled.
0036
0037 var f = new DataSource("Data.dat");
0038 if (!f) {
0039 alert("error");
0040 }
0041
0042 var Vx = new DataVector(f, "1");
0043 string Vn = (new DataVector(f, "2", start, end)).tagName();
0044 var Vp = new DataVector(f, "3", start, end, skip);
0045 var Vm = new DataVector(f, "4", start, end, skip, ave);
0046
0047 // After here is unimplemented so far
0048 var Ex = Equation("[" + Vx.tag + "] * 0.0042", Vx);
0049
0050 var C = Curve(Ex.sv, Vn);
0051 C.hasPoint = true;
0052 C.hasLines = false;
0053 C.setYError(Vp, Vm);
0054 C.setPointType(6);.
0055
0056 var lfit = fit("kstfit_linear_unweighted", Ex.sv, Vn);
0057
0058 var Cf = Curve(Ex.sv, lfit.Y_Fitted);
0059
0060 var P = Plot();
0061
0062 P.addCurve(C); // ordering etc............. P.curves.append() etc?
0063 P.addCurve(Cf);
0064
0065 P.xLabel.text = "x axis";
0066 P.yLabel.text = "y axis";
0067
0068 L = PlotLabel(lfit.parameterstring);
0069 L.setPos(0.2, 0.8);
0070 P.addLabel(L);
0071
0072 Window().addPlot(P);
0073