Commit 867fdfb6 authored by Christoffer Ackelman's avatar Christoffer Ackelman

Web: Minor cleanup.

parent 121334c9
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
class CliTable { class CliTable {
command: string; command: string;
qualifier: Array<string>; qualifier: Array<string>;
constructor(command, qualifier) { constructor(command, qualifier) {
this.command = command; this.command = command;
this.qualifier = qualifier; this.qualifier = qualifier;
...@@ -32,19 +33,16 @@ enum State { ...@@ -32,19 +33,16 @@ enum State {
} }
class Cli { class Cli {
verb: Array; verb: Array = new Array(CliC.VERB_VECT_SIZE);
qualifier: Array; qualifier: Array = new Array(30);
qualValue: Array; qualValue: Array = new Array(30);
status: number; status: number;
cliTableIndex: number; cliTableIndex: number;
cliQualifierIndex: Array; cliQualifierIndex: Array = new Array(30);
configuredVerbs: number; configuredVerbs: number;
cliTable: Array<CliTable>; cliTable: Array<CliTable>;
constructor(cliTable) { constructor(cliTable) {
this.verb = new Array(CliC.VERB_VECT_SIZE);
this.qualifier = new Array(30);
this.qualValue = new Array(30);
this.cliQualifierIndex = new Array(30);
this.cliTable = cliTable; this.cliTable = cliTable;
} }
......
...@@ -130,15 +130,13 @@ class GlowBarChartInfo { ...@@ -130,15 +130,13 @@ class GlowBarChartInfo {
class GlowTableInfo { class GlowTableInfo {
columns; columns;
rows; rows;
column_size: Array; column_size: Array = new Array(30);
constructor() {
this.column_size = new Array(30);
}
} }
class PendingData { class PendingData {
func_cb: (id: number, val: number, sts: number = 0, res: number = 0) => void; func_cb: (id: number, val: number, sts: number = 0, res: number = 0) => void;
data: object; data: object;
constructor(func_cb, data) { constructor(func_cb, data) {
this.func_cb = func_cb; this.func_cb = func_cb;
this.data = data; this.data = data;
...@@ -227,6 +225,7 @@ enum Msg { ...@@ -227,6 +225,7 @@ enum Msg {
class Uint8ArrayHelper { class Uint8ArrayHelper {
buf: Uint8Array; buf: Uint8Array;
idx: number; idx: number;
constructor(size, tag) { constructor(size, tag) {
this.buf = new Uint8Array(size); this.buf = new Uint8Array(size);
this.buf[0] = tag; this.buf[0] = tag;
...@@ -255,10 +254,10 @@ class Uint8ArrayHelper { ...@@ -255,10 +254,10 @@ class Uint8ArrayHelper {
class DataViewHelper { class DataViewHelper {
dv: DataView; dv: DataView;
offset: number; offset = 0;
constructor(data: ArrayBuffer) { constructor(data: ArrayBuffer) {
this.dv = new DataView(data); this.dv = new DataView(data);
this.offset = 0;
} }
getUint8() { getUint8() {
...@@ -266,11 +265,6 @@ class DataViewHelper { ...@@ -266,11 +265,6 @@ class DataViewHelper {
return this.dv.getUint8(this.offset - 1); return this.dv.getUint8(this.offset - 1);
} }
getInt16() {
this.offset += 2;
return this.dv.getInt16(this.offset - 2);
}
getUint16() { getUint16() {
this.offset += 2; this.offset += 2;
return this.dv.getUint8(this.offset - 2); return this.dv.getUint8(this.offset - 2);
...@@ -302,32 +296,17 @@ class DataViewHelper { ...@@ -302,32 +296,17 @@ class DataViewHelper {
} }
class Gdh { class Gdh {
debug: boolean; debug = false;
pending: Array; pending: Array = [];
sub: Array<Sub>; sub: Array<Sub> = [];
PORT: number; static PORT = 4448;
ws: WebSocket; ws: WebSocket = null;
open_cb: () => void; return_cb: () => void = null;
close_cb: () => void; next_id = 1234;
return_cb: () => void; subscriptionCount = 1;
next_id: number; listSent = false;
subscriptionCount: number;
listSent: boolean; constructor(open_cb, close_cb = null) {
constructor() {
this.debug = false;
this.pending = [];
this.sub = [];
this.PORT = 4448;
this.ws = null;
this.open_cb = null;
this.close_cb = null;
this.return_cb = null;
this.next_id = 1234;
this.subscriptionCount = 1;
this.listSent = false;
}
init() {
if (window.location.hostname === "") { if (window.location.hostname === "") {
this.ws = new WebSocket("ws:127.0.0.1:4448"); this.ws = new WebSocket("ws:127.0.0.1:4448");
} else { } else {
...@@ -336,8 +315,8 @@ class Gdh { ...@@ -336,8 +315,8 @@ class Gdh {
this.ws.binaryType = "arraybuffer"; this.ws.binaryType = "arraybuffer";
this.ws.onopen = function (e) { this.ws.onopen = function (e) {
if (this.gdh.open_cb !== null) { if (open_cb !== null) {
this.gdh.open_cb(); open_cb();
} }
}; };
...@@ -345,8 +324,8 @@ class Gdh { ...@@ -345,8 +324,8 @@ class Gdh {
if (this.debug) { if (this.debug) {
console.log("Socket closed"); console.log("Socket closed");
} }
if (this.gdh.close_cb !== null) { if (close_cb !== null) {
this.gdh.close_cb(); close_cb();
} }
}; };
......
...@@ -122,15 +122,13 @@ enum Event { ...@@ -122,15 +122,13 @@ enum Event {
class PlowNodeClass { class PlowNodeClass {
a: PlowArray; a: PlowArray;
ctx: PlowCtx; ctx: PlowCtx;
nc_name: string; nc_name = "";
group: number; group = 0;
node_open: number; node_open = 0;
constructor(ctx) { constructor(ctx) {
this.a = new PlowArray(ctx); this.a = new PlowArray(ctx);
this.ctx = ctx; this.ctx = ctx;
this.nc_name = "";
this.group = 0;
this.node_open = 0;
} }
draw(g, p, node, highlight) { draw(g, p, node, highlight) {
...@@ -143,10 +141,10 @@ class PlowNodeClass { ...@@ -143,10 +141,10 @@ class PlowNodeClass {
} }
class PlowArray { class PlowArray {
a: Array<PlowNode>; a: Array = [];
ctx: PlowCtx; ctx: PlowCtx;
constructor(ctx) { constructor(ctx) {
this.a = [];
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -391,56 +389,35 @@ class PlowArray { ...@@ -391,56 +389,35 @@ class PlowArray {
class PlowNode { class PlowNode {
ctx: PlowCtx; ctx: PlowCtx;
userdata: object; userdata: object = null;
x_right: number; x_right = 0.0;
x_left: number; x_left = 0.0;
y_high: number; y_high = 0.0;
y_low: number; y_low = 0.0;
nc: PlowNodeClass; nc: PlowNodeClass;
pos: Point; pos = new Point();
n_name: string; n_name = "";
annotv: Array; annotv = [];
annotsize: Array; annotsize = [];
pixmapv: Array; pixmapv = [];
trace_object: string; trace_object = "";
trace_attribute: string; trace_attribute = "";
trace_attr_type: number; trace_attr_type = 0;
highlight: boolean; highlight = false;
select: boolean; select = false;
invert: boolean; invert = false;
level: number; level: number;
node_open: number; node_open = 0;
fill_color: number; fill_color = 0;
p: number; p = 0;
old_value: number; old_value = 0;
first_scan: boolean; first_scan = true;
relative_position: number; relative_position = 0;
constructor(ctx, nc, level) { constructor(ctx, nc, level) {
this.ctx = ctx; this.ctx = ctx;
this.userdata = null;
this.x_right = 0.0;
this.x_left = 0.0;
this.y_high = 0.0;
this.y_low = 0.0;
this.nc = nc; this.nc = nc;
this.pos = new Point();
this.n_name = "";
this.annotv = [];
this.annotsize = [];
this.pixmapv = [];
this.trace_object = "";
this.trace_attribute = "";
this.trace_attr_type = 0;
this.highlight = false;
this.select = false;
this.invert = false;
this.level = level; this.level = level;
this.node_open = 0;
this.fill_color = 0;
this.p = 0;
this.old_value = 0;
this.first_scan = true;
this.relative_position = 0;
} }
set_annotation(number, text) { set_annotation(number, text) {
...@@ -570,13 +547,14 @@ class PlowNode { ...@@ -570,13 +547,14 @@ class PlowNode {
} }
class PlowAnnot { class PlowAnnot {
RELATIVE_OFFSET = 1; static RELATIVE_OFFSET = 1;
ctx: PlowCtx; ctx: PlowCtx;
p: Point; p: Point;
draw_type: number; draw_type: number;
text_size: number; text_size: number;
annot_type: number; annot_type: number;
number: number; number: number;
constructor(ctx, x, y, text_size, text_color, annot_type, number) { constructor(ctx, x, y, text_size, text_color, annot_type, number) {
this.p = new Point(x, y); this.p = new Point(x, y);
this.draw_type = text_color; this.draw_type = text_color;
...@@ -646,7 +624,7 @@ class PlowAnnot { ...@@ -646,7 +624,7 @@ class PlowAnnot {
let y = (this.p.y + p0.y) * this.ctx.zoom_factor - tsize / 4; let y = (this.p.y + p0.y) * this.ctx.zoom_factor - tsize / 4;
if ((this.annot_type & RELATIVE_POSITION) !== 0) { if ((this.annot_type & RELATIVE_POSITION) !== 0) {
let rel_x = (p0.x + node.relative_position + this.RELATIVE_OFFSET) * let rel_x = (p0.x + node.relative_position + PlowAnnot.RELATIVE_OFFSET) *
this.ctx.zoom_factor; this.ctx.zoom_factor;
if (x < rel_x) { if (x < rel_x) {
x = rel_x; x = rel_x;
...@@ -674,6 +652,7 @@ class PlowAnnotPixmap { ...@@ -674,6 +652,7 @@ class PlowAnnotPixmap {
ctx: PlowCtx; ctx: PlowCtx;
p: Point; p: Point;
number: number; number: number;
constructor(ctx, x, y, number) { constructor(ctx, x, y, number) {
this.p = new Point(x, y); this.p = new Point(x, y);
this.number = number; this.number = number;
...@@ -729,6 +708,7 @@ class PlowRect { ...@@ -729,6 +708,7 @@ class PlowRect {
fill_color: number; fill_color: number;
fill: number; fill: number;
fix_color: number; fix_color: number;
constructor(ctx, x, y, width, height, fill_color, border_color, fill, fix_color) { constructor(ctx, x, y, width, height, fill_color, border_color, fill, fix_color) {
this.ll = new Point(x, y); this.ll = new Point(x, y);
this.ur = new Point(x + width, y + height); this.ur = new Point(x + width, y + height);
...@@ -817,6 +797,7 @@ class GDraw { ...@@ -817,6 +797,7 @@ class GDraw {
canvas: HTMLCanvasElement; canvas: HTMLCanvasElement;
gctx: CanvasRenderingContext2D; gctx: CanvasRenderingContext2D;
offset_top: number; offset_top: number;
constructor(ctx) { constructor(ctx) {
this.ctx = ctx; this.ctx = ctx;
this.canvas = document.querySelector("canvas"); this.canvas = document.querySelector("canvas");
...@@ -826,43 +807,29 @@ class GDraw { ...@@ -826,43 +807,29 @@ class GDraw {
} }
class PlowCtx { class PlowCtx {
gdh: Gdh; gdh: Gdh = null;
debug: boolean; debug = false;
nodraw: number; nodraw = 0;
zoom_factor: number; zoom_factor = 20.0;
base_zoom_factor: number; base_zoom_factor = 20.0;
offset_x: number; offset_x = 0;
offset_y: number; offset_y = 0;
x_right: number; x_right = 0.0;
x_left: number; x_left = 0.0;
y_high: number; y_high = 0.0;
y_low: number; y_low = 0.0;
a: PlowArray; a: PlowArray;
a_nc: PlowArray; a_nc: PlowArray;
name: string; name = "Claes context";
gdraw: GDraw; gdraw: GDraw;
select_object: PlowNode; select_object: PlowNode = null;
event_cb: (event: object, object: PlowNode, x: number, y: number) => void; event_cb: (event: object, object: PlowNode, x: number, y: number) => void = null;
event_object: PlowNode; event_object: PlowNode = null;
constructor() { constructor() {
this.gdh = null;
this.debug = false;
this.nodraw = 0;
this.zoom_factor = 20.0;
this.base_zoom_factor = 20.0;
this.offset_x = 0;
this.offset_y = 0;
this.x_right = 0.0;
this.x_left = 0.0;
this.y_high = 0.0;
this.y_low = 0.0;
this.a = new PlowArray(this); this.a = new PlowArray(this);
this.a_nc = new PlowArray(this); this.a_nc = new PlowArray(this);
this.name = "Claes context";
this.gdraw = new GDraw(this); this.gdraw = new GDraw(this);
this.select_object = null;
this.event_cb = null;
this.event_object = null;
} }
draw() { draw() {
......
...@@ -159,6 +159,7 @@ enum XttMntMethodsMask { ...@@ -159,6 +159,7 @@ enum XttMntMethodsMask {
class PwrtObjid { class PwrtObjid {
vid: number; vid: number;
oix: number; oix: number;
constructor(vid, oix) { constructor(vid, oix) {
this.oix = oix; this.oix = oix;
this.vid = vid; this.vid = vid;
...@@ -176,6 +177,7 @@ class PwrtAttrRef { ...@@ -176,6 +177,7 @@ class PwrtAttrRef {
class CdhrNumber { class CdhrNumber {
value: number; value: number;
sts: number; sts: number;
constructor(value, sts) { constructor(value, sts) {
this.value = value; this.value = value;
this.sts = sts; this.sts = sts;
...@@ -195,9 +197,11 @@ class UserdataCbReturn { ...@@ -195,9 +197,11 @@ class UserdataCbReturn {
class Point { class Point {
x = 0; x = 0;
y = 0; y = 0;
constructor() { constructor() {
} }
constructor(x: number, y:number) {
constructor(x: number, y: number) {
this.x = x; this.x = x;
this.y = y; this.y = y;
} }
...@@ -208,9 +212,11 @@ class Rect { ...@@ -208,9 +212,11 @@ class Rect {
y = 0; y = 0;
width = 0; width = 0;
height = 0; height = 0;
constructor() { constructor() {
} }
constructor(x: number, y:number, width: number, height: number) {
constructor(x: number, y: number, width: number, height: number) {
this.x = x; this.x = x;
this.y = y; this.y = y;
this.width = width; this.width = width;
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Alarm List</title> <title>Alarm List</title>
<link rel="stylesheet" type="text/css" href="toolbar.css"> <link rel="stylesheet" type="text/css" href="toolbar.css">
</head> </head>
<body> <body>
<div class="toolbar" role="toolbar"> <div class="toolbar" role="toolbar">
<div id="toolitem1" tabindex="0" class="toolbar-item" role="button"><img src="toolbar_ack.png"><img>....</div> <div id="toolitem1" tabindex="0" class="toolbar-item" role="button">
<div id="toolitem2" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_navigator.png"><img></div> <img src="toolbar_ack.png"/>....
<div id="toolitem3" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_plc.png"><img>....</div> </div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_graph.png"><img></div> <div id="toolitem2" tabindex="-1" class="toolbar-item" role="button">
<div id="toolitem5" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_objectgraph.png"><img></div> <img src="toolbar_navigator.png"/>
<div id="toolitem6" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_navigator.png"><img></div> </div>
<div id="toolitem7" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_plc.png"><img></div> <div id="toolitem3" tabindex="-1" class="toolbar-item" role="button">
<div id="toolitem8" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_history.png"><img></div> <img src="toolbar_plc.png"/>....
<div id="toolitem9" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_object.png"><img></div> </div>
<div id="toolitem10" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_crossref.png"><img></div> <div id="toolitem4" tabindex="-1" class="toolbar-item" role="button">
<div id="toolitem11" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_help.png"><img></div> <img src="toolbar_graph.png"/>
<div id="toolitem12" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_classhelp.png"><img></div> </div>
<div id="toolitem5" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_objectgraph.png"/>
</div>
<div id="toolitem6" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_navigator.png"/>
</div>
<div id="toolitem7" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_plc.png"/>
</div>
<div id="toolitem8" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_history.png"/>
</div>
<div id="toolitem9" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_object.png"/>
</div>
<div id="toolitem10" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_crossref.png"/>
</div>
<div id="toolitem11" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_help.png"/>
</div>
<div id="toolitem12" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_classhelp.png"/>
</div>
</div> </div>
<canvas id="flowcanvas" width="1200" height="800"></canvas> <canvas id="flowcanvas" width="1200" height="800"></canvas>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
...@@ -29,5 +53,5 @@ ...@@ -29,5 +53,5 @@
<script type="text/babel" src="ev.ts"></script> <script type="text/babel" src="ev.ts"></script>
<hr> <hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address> <address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
...@@ -15,14 +15,12 @@ class Ev { ...@@ -15,14 +15,12 @@ class Ev {
ncSuccess: PlowNodeClass; ncSuccess: PlowNodeClass;
scan_update: boolean; scan_update: boolean;
priv: number; priv: number;
mhSyncIdx: number; mhSyncIdx = 0;
maxEve: number; maxEve = 30;
type: EvType; type: EvType;
timer: number; timer: number;
constructor() {
this.mhSyncIdx = 0;
this.maxEve = 30;
constructor() {
this.type = this.get_type(); this.type = this.get_type();
switch (this.type) { switch (this.type) {
case EvType.EventList: case EvType.EventList:
...@@ -39,9 +37,7 @@ class Ev { ...@@ -39,9 +37,7 @@ class Ev {
this.ctx.event_cb = this.plow_event; this.ctx.event_cb = this.plow_event;
this.createNodeClasses(); this.createNodeClasses();
this.ctx.gdh = new Gdh(); this.ctx.gdh = new Gdh(this.gdh_init_cb);
this.ctx.gdh.open_cb = this.gdh_init_cb;
this.ctx.gdh.init();
this.ctx.gdraw.canvas.addEventListener("click", function (event) { this.ctx.gdraw.canvas.addEventListener("click", function (event) {
let y = event.pageY - this.ctx.gdraw.offset_top; let y = event.pageY - this.ctx.gdraw.offset_top;
...@@ -671,6 +667,7 @@ class Ev { ...@@ -671,6 +667,7 @@ class Ev {
class EvItemAlarm { class EvItemAlarm {
node: PlowNode; node: PlowNode;
e: MhEvent; e: MhEvent;
constructor(ev, e, destination, destCode) { constructor(ev, e, destination, destCode) {
this.e = e; this.e = e;
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Trace</title> <title>Trace</title>
<link rel="stylesheet" type="text/css" href="toolbar.css"> <link rel="stylesheet" type="text/css" href="toolbar.css">
</head> </head>
<body> <body>
<div class="toolbar" role="toolbar"> <div class="toolbar" role="toolbar">
<div id="toolitem1" tabindex="0" class="toolbar-item" role="button"><img src="toolbar_graph.png"><img></div> <div id="toolitem1" tabindex="0" class="toolbar-item" role="button">
<div id="toolitem2" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_navigator.png"><img></div> <img src="toolbar_graph.png"/>
<div id="toolitem3" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_history.png"><img></div> </div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_object.png"><img></div> <div id="toolitem2" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_navigator.png"/>
</div>
<div id="toolitem3" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_history.png"/>
</div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_object.png"/>
</div>
</div> </div>
<canvas id="flowcanvas" width="1200" height="800"></canvas> <canvas id="flowcanvas" width="1200" height="800"></canvas>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
...@@ -19,5 +27,5 @@ ...@@ -19,5 +27,5 @@
<script type="text/babel" src="flow.ts"></script> <script type="text/babel" src="flow.ts"></script>
<hr> <hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address> <address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
...@@ -220,6 +220,7 @@ class GDraw { ...@@ -220,6 +220,7 @@ class GDraw {
gctx: CanvasRenderingContext2D; gctx: CanvasRenderingContext2D;
offset_top: number; offset_top: number;
offset_left: number; offset_left: number;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.ctx = ctx; this.ctx = ctx;
this.canvas = document.querySelector("canvas"); this.canvas = document.querySelector("canvas");
...@@ -243,9 +244,9 @@ class GDraw { ...@@ -243,9 +244,9 @@ class GDraw {
class FlowArray { class FlowArray {
ctx: FlowCtx; ctx: FlowCtx;
a: Array<any>; a = [];
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.a = [];
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -335,7 +336,7 @@ class FlowArray { ...@@ -335,7 +336,7 @@ class FlowArray {
this.a.push(arrow); this.a.push(arrow);
break; break;
case Save.Point: case Save.Point:
let point = new FlowPoint(this.ctx); let point = new FlowPoint();
i = point.open(lines, i + 1); i = point.open(lines, i + 1);
this.a.push(point); this.a.push(point);
break; break;
...@@ -372,13 +373,12 @@ class FlowArray { ...@@ -372,13 +373,12 @@ class FlowArray {
class FlowNodeClass { class FlowNodeClass {
ctx: FlowCtx; ctx: FlowCtx;
a: FlowArray; a: FlowArray;
nc_name: string; nc_name = "";
group: number; group = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.a = new FlowArray(ctx); this.a = new FlowArray(ctx);
this.ctx = ctx; this.ctx = ctx;
this.nc_name = "";
this.group = 0;
} }
draw(g, p, node, highlight) { draw(g, p, node, highlight) {
...@@ -424,25 +424,17 @@ class FlowNodeClass { ...@@ -424,25 +424,17 @@ class FlowNodeClass {
class FlowConClass { class FlowConClass {
ctx: FlowCtx; ctx: FlowCtx;
cc_name: string; cc_name = "";
con_type: number; con_type = 0;
corner: number; corner = 0;
draw_type: number; draw_type = 0;
line_width: number; line_width = 0;
arrow_width: number; arrow_width = 0.0;
arrow_length: number; arrow_length = 0.0;
round_corner_amount: number; round_corner_amount = 0.0;
group: number; group = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.cc_name = "";
this.con_type = 0;
this.corner = 0;
this.draw_type = 0;
this.line_width = 0;
this.arrow_width = 0.0;
this.arrow_length = 0.0;
this.round_corner_amount = 0.0;
this.group = 0;
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -498,14 +490,8 @@ class FlowConClass { ...@@ -498,14 +490,8 @@ class FlowConClass {
} }
class FlowPoint { class FlowPoint {
ctx: FlowCtx; x = 0.0;
x: number; y = 0.0;
y: number;
constructor(ctx: FlowCtx) {
this.x = 0.0;
this.y = 0.0;
this.ctx = ctx;
}
open(lines, row) { open(lines, row) {
let i; let i;
...@@ -513,10 +499,6 @@ class FlowPoint { ...@@ -513,10 +499,6 @@ class FlowPoint {
let tokens = lines[i].split(' '); let tokens = lines[i].split(' ');
let key = parseInt(tokens[0]); let key = parseInt(tokens[0]);
if (this.ctx.debug) {
console.log("point : " + lines[i]);
}
switch (key) { switch (key) {
case Save.Point: case Save.Point:
break; break;
...@@ -539,15 +521,12 @@ class FlowPoint { ...@@ -539,15 +521,12 @@ class FlowPoint {
class FlowLine { class FlowLine {
ctx: FlowCtx; ctx: FlowCtx;
p1: FlowPoint; p1 = new FlowPoint();
p2: FlowPoint; p2 = new FlowPoint();
draw_type: DrawType; draw_type: DrawType = 0;
line_width: number; line_width = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.p1 = new FlowPoint(ctx);
this.p2 = new FlowPoint(ctx);
this.draw_type = 0;
this.line_width = 0;
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -637,19 +616,14 @@ class FlowLine { ...@@ -637,19 +616,14 @@ class FlowLine {
class FlowRect { class FlowRect {
ctx: FlowCtx; ctx: FlowCtx;
ll: FlowPoint; ll = new FlowPoint();
ur: FlowPoint; ur = new FlowPoint();
draw_type: DrawType; draw_type: DrawType = 0;
line_width: number; line_width = 0;
display_level: DisplayLevel; display_level: DisplayLevel = 0;
fill: number; fill = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.ll = new FlowPoint(ctx);
this.ur = new FlowPoint(ctx);
this.draw_type = 0;
this.line_width = 0;
this.display_level = 0;
this.fill = 0;
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -731,19 +705,14 @@ class FlowRect { ...@@ -731,19 +705,14 @@ class FlowRect {
class FlowArc { class FlowArc {
ctx: FlowCtx; ctx: FlowCtx;
ll: FlowPoint; ll = new FlowPoint();
ur: FlowPoint; ur = new FlowPoint();
angle1: number; angle1 = 0.0;
angle2: number; angle2 = 0.0;
draw_type: DrawType; draw_type: DrawType = 0;
line_width: number; line_width = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.ll = new FlowPoint(ctx);
this.ur = new FlowPoint(ctx);
this.angle1 = 0.0;
this.angle2 = 0.0;
this.draw_type = 0;
this.line_width = 0;
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -818,15 +787,12 @@ class FlowArc { ...@@ -818,15 +787,12 @@ class FlowArc {
class FlowText { class FlowText {
ctx: FlowCtx; ctx: FlowCtx;
p: FlowPoint; p = new FlowPoint();
draw_type: DrawType; draw_type: DrawType = 0;
text_size: number; text_size = 0;
text: string; text = "";
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.p = new FlowPoint(ctx);
this.draw_type = 0;
this.text_size = 0;
this.text = "";
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -917,21 +883,15 @@ class FlowText { ...@@ -917,21 +883,15 @@ class FlowText {
class FlowArrow { class FlowArrow {
ctx: FlowCtx; ctx: FlowCtx;
p1: FlowPoint; p1 = new FlowPoint();
p2: FlowPoint; p2 = new FlowPoint();
p_dest: FlowPoint; p_dest = new FlowPoint();
arrow_width: number; arrow_width = 0.0;
arrow_length: number; arrow_length = 0.0;
draw_type: DrawType; draw_type: DrawType = 0;
line_width: number; line_width = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.p1 = new FlowPoint(ctx);
this.p2 = new FlowPoint(ctx);
this.p_dest = new FlowPoint(ctx);
this.arrow_width = 0.0;
this.arrow_length = 0.0;
this.draw_type = 0;
this.line_width = 0;
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -1012,6 +972,7 @@ class FlowArrow { ...@@ -1012,6 +972,7 @@ class FlowArrow {
class FlowTriangle extends FlowRect { class FlowTriangle extends FlowRect {
ctx: FlowCtx; ctx: FlowCtx;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
super(ctx); super(ctx);
} }
...@@ -1091,18 +1052,14 @@ class FlowTriangle extends FlowRect { ...@@ -1091,18 +1052,14 @@ class FlowTriangle extends FlowRect {
class FlowConPoint { class FlowConPoint {
ctx: FlowCtx; ctx: FlowCtx;
p: FlowPoint; p = new FlowPoint();
number: number; number = 0;
direction: number; direction = 0;
trace_attribute: string; trace_attribute = "";
trace_attr_type: number; trace_attr_type = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.ctx = ctx; this.ctx = ctx;
this.p = new FlowPoint(ctx);
this.number = 0;
this.direction = 0;
this.trace_attribute = "";
this.trace_attr_type = 0;
} }
draw(g, p, node, highlight) { draw(g, p, node, highlight) {
...@@ -1149,19 +1106,14 @@ class FlowConPoint { ...@@ -1149,19 +1106,14 @@ class FlowConPoint {
class FlowAnnot { class FlowAnnot {
ctx: FlowCtx; ctx: FlowCtx;
p: FlowPoint; p = new FlowPoint();
draw_type: DrawType; draw_type: DrawType = 0;
text_size: number; text_size = 0
display_level: DisplayLevel; display_level: DisplayLevel = 0;
annot_type: number; annot_type = 0;
number: number; number = 0;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.p = new FlowPoint(ctx);
this.draw_type = 0;
this.text_size = 0;
this.display_level = 0;
this.annot_type = 0;
this.number = 0;
this.ctx = ctx; this.ctx = ctx;
} }
...@@ -1279,63 +1231,45 @@ class FlowAnnot { ...@@ -1279,63 +1231,45 @@ class FlowAnnot {
class FlowCon { class FlowCon {
ctx: FlowCtx; ctx: FlowCtx;
x_right: number;
x_left: number;
y_high: number;
y_low: number;
cc: object;
p_num: number;
l_num: number;
a_num: number;
arrow_num: number;
ref_num: number;
point_x: FlowArray; point_x: FlowArray;
point_y: FlowArray; point_y: FlowArray;
line_a: FlowArray; line_a: FlowArray;
arc_a: FlowArray; arc_a: FlowArray;
arrow_a: FlowArray; arrow_a: FlowArray;
ref_a: FlowArray; ref_a: FlowArray;
c_name: string; x_right = 0.0;
trace_object: string; x_left = 0.0;
trace_attribute: string; y_high = 0.0;
trace_attr_type: number; y_low = 0.0;
temporary_ref: number; cc = null;
highlight: boolean; p_num = 0;
redraw: boolean; l_num = 0;
a_num = 0;
arrow_num = 0;
ref_num = 0;
c_name = "";
trace_object = "";
trace_attribute = "";
trace_attr_type = 0;
temporary_ref = 0;
highlight = false;
redraw = true;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.ctx = ctx; this.ctx = ctx;
this.x_right = 0.0;
this.x_left = 0.0;
this.y_high = 0.0;
this.y_low = 0.0;
this.cc = null;
this.p_num = 0;
this.l_num = 0;
this.a_num = 0;
this.arrow_num = 0;
this.ref_num = 0;
this.point_x = new FlowArray(ctx); this.point_x = new FlowArray(ctx);
this.point_y = new FlowArray(ctx); this.point_y = new FlowArray(ctx);
this.line_a = new FlowArray(ctx); this.line_a = new FlowArray(ctx);
this.arc_a = new FlowArray(ctx); this.arc_a = new FlowArray(ctx);
this.arrow_a = new FlowArray(ctx); this.arrow_a = new FlowArray(ctx);
this.ref_a = new FlowArray(ctx); this.ref_a = new FlowArray(ctx);
this.c_name = "";
this.trace_object = "";
this.trace_attribute = "";
this.trace_attr_type = 0;
this.temporary_ref = 0;
this.highlight = false;
this.redraw = true;
} }
draw(g, p0, node, highlight) { draw(g, p0, node, highlight) {
if (!this.redraw) { if (!this.redraw) {
return; return;
} }
let p = new FlowPoint(this.ctx); let p = new FlowPoint();
p.x = 0;
p.y = 0;
if (this.temporary_ref !== 0 || if (this.temporary_ref !== 0 ||
this.cc.con_type === ConType.Reference) { this.cc.con_type === ConType.Reference) {
this.ref_a.draw(g, p, null, highlight); this.ref_a.draw(g, p, null, highlight);
...@@ -1480,46 +1414,28 @@ class FlowCon { ...@@ -1480,46 +1414,28 @@ class FlowCon {
class FlowNode { class FlowNode {
ctx: FlowCtx; ctx: FlowCtx;
x_right: number; x_right = 0.0;
x_left: number; x_left = 0.0;
y_high: number; y_high = 0.0;
y_low: number; y_low = 0.0;
nc: FlowNodeClass; nc: FlowNodeClass = null;
pos: FlowPoint; pos = new FlowPoint();
n_name: string; n_name = "";
annotv: Array; annotv: Array = [];
annotsize: Array; annotsize: Array = [];
trace_object: string; trace_object = "";
trace_attribute: string; trace_attribute = "";
trace_attr_type: number; trace_attr_type = 0;
highlight: boolean; highlight = false;
select: boolean; select = false;
fill_color: number; fill_color = 0;
p: number; p = 0;
old_value: number; old_value = 0;
first_scan: boolean; first_scan = true;
redraw: boolean; redraw = true;
constructor(ctx: FlowCtx) { constructor(ctx: FlowCtx) {
this.ctx = ctx; this.ctx = ctx;
this.x_right = 0.0;
this.x_left = 0.0;
this.y_high = 0.0;
this.y_low = 0.0;
this.nc = null;
this.pos = new FlowPoint(ctx);
this.n_name = "";
this.annotv = [];
this.annotsize = [];
this.trace_object = "";
this.trace_attribute = "";
this.trace_attr_type = 0;
this.highlight = false;
this.select = false;
this.fill_color = 0;
this.p = 0;
this.old_value = 0;
this.first_scan = true;
this.redraw = true;
} }
draw(g, p, node, highlight) { draw(g, p, node, highlight) {
...@@ -1758,41 +1674,29 @@ class FlowNode { ...@@ -1758,41 +1674,29 @@ class FlowNode {
} }
class FlowCtx { class FlowCtx {
display_level: DisplayLevel;
gdh: Gdh;
debug: boolean;
zoom_factor: number;
base_zoom_factor: number;
offset_x: number;
offset_y: number;
x_right: number;
x_left: number;
y_high: number;
y_low: number;
a: FlowArray; a: FlowArray;
a_nc: FlowArray; a_nc: FlowArray;
a_cc: FlowArray; a_cc: FlowArray;
name: string;
gdraw: GDraw; gdraw: GDraw;
select_object: FlowNode; display_level = DisplayLevel.One;
gdh: Gdh = null;
debug = false;
zoom_factor = 20.0;
base_zoom_factor = 20.0;
offset_x = 0;
offset_y = 0;
x_right = 0.0;
x_left = 0.0;
y_high = 0.0;
y_low = 0.0;
name = "Claes context";
select_object: FlowNode = null;
constructor() { constructor() {
this.display_level = DisplayLevel.One;
this.gdh = null;
this.debug = false;
this.zoom_factor = 20.0;
this.base_zoom_factor = 20.0;
this.offset_x = 0;
this.offset_y = 0;
this.x_right = 0.0;
this.x_left = 0.0;
this.y_high = 0.0;
this.y_low = 0.0;
this.a = new FlowArray(this); this.a = new FlowArray(this);
this.a_nc = new FlowArray(this); this.a_nc = new FlowArray(this);
this.a_cc = new FlowArray(this); this.a_cc = new FlowArray(this);
this.name = "Claes context";
this.gdraw = new GDraw(this); this.gdraw = new GDraw(this);
this.select_object = null;
} }
draw() { draw() {
...@@ -1939,13 +1843,11 @@ class FlowCtx { ...@@ -1939,13 +1843,11 @@ class FlowCtx {
class FlowFrame { class FlowFrame {
ctx: FlowCtx; ctx: FlowCtx;
timer: number; timer: number = null;
vars_object: string; vars_object: string = null;
constructor() { constructor() {
this.ctx = new FlowCtx(); this.ctx = new FlowCtx();
this.timer = null;
console.log("ctx: ", this.ctx);
this.vars_object = null;
} }
readFlowWeb(fname, read_cb) { readFlowWeb(fname, read_cb) {
...@@ -2008,12 +1910,7 @@ class FlowFrame { ...@@ -2008,12 +1910,7 @@ class FlowFrame {
this.ctx.offset_y -= this.ctx.y_low * this.ctx.zoom_factor; this.ctx.offset_y -= this.ctx.y_low * this.ctx.zoom_factor;
this.ctx.draw(); this.ctx.draw();
console.log("New Gdh"); this.ctx.gdh = new Gdh(this.flow_open, this.flow_close);
this.ctx.gdh = new Gdh();
this.ctx.gdh.open_cb = this.flow_open;
this.ctx.gdh.close_cb = this.flow_close;
console.log("ctx.gdh", this.ctx.gdh);
this.ctx.gdh.init();
if (this.vars_object !== null) { if (this.vars_object !== null) {
let o = this.ctx.search_object(this.vars_object); let o = this.ctx.search_object(this.vars_object);
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Ge graph</title> <title>Ge graph</title>
<link rel="stylesheet" type="text/css" href="toolbar.css"> <link rel="stylesheet" type="text/css" href="toolbar.css">
</head> </head>
<body> <body>
<canvas id="flowcanvas" width="1200" height="800"></canvas> <canvas id="flowcanvas" width="1200" height="800"></canvas>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel" src="pwr.js"></script> <script type="text/babel" src="pwr.js"></script>
...@@ -65,5 +65,5 @@ ...@@ -65,5 +65,5 @@
<script type="text/babel" src="ge_appl.ts"></script> <script type="text/babel" src="ge_appl.ts"></script>
<hr> <hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address> <address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
...@@ -14,6 +14,7 @@ let cliTable = [new CliTable("OPEN", ...@@ -14,6 +14,7 @@ let cliTable = [new CliTable("OPEN",
class Appl { class Appl {
graph: Graph; graph: Graph;
constructor() { constructor() {
this.graph = new Graph(this); this.graph = new Graph(this);
} }
......
...@@ -8319,6 +8319,7 @@ class DynInputFocus extends DynElem { ...@@ -8319,6 +8319,7 @@ class DynInputFocus extends DynElem {
action(o, e) { action(o, e) {
return 1; return 1;
} }
open(lines, row) { open(lines, row) {
let i; let i;
for (i = row; i < lines.length; i++) { for (i = row; i < lines.length; i++) {
......
...@@ -27,9 +27,11 @@ class LocalSub { ...@@ -27,9 +27,11 @@ class LocalSub {
ref() { ref() {
this.refCount++; this.refCount++;
} }
unref() { unref() {
this.refCount--; this.refCount--;
} }
getRefCount() { getRefCount() {
return this.refCount; return this.refCount;
} }
...@@ -235,6 +237,7 @@ class Graph { ...@@ -235,6 +237,7 @@ class Graph {
priv = 0; priv = 0;
timer: number; timer: number;
frame: GrowFrame; frame: GrowFrame;
constructor(appl) { constructor(appl) {
this.appl = appl; this.appl = appl;
if (typeof InstallTrigger !== 'undefined') { if (typeof InstallTrigger !== 'undefined') {
...@@ -268,9 +271,7 @@ class Graph { ...@@ -268,9 +271,7 @@ class Graph {
this.ctx.traceConnect(); this.ctx.traceConnect();
this.trace_cyclic(); this.trace_cyclic();
} else { } else {
this.gdh = new Gdh(); this.gdh = new Gdh(this.gdh_init_cb);
this.gdh.open_cb = this.gdh_init_cb;
this.gdh.init();
} }
} }
...@@ -303,6 +304,7 @@ class Graph { ...@@ -303,6 +304,7 @@ class Graph {
this.gdh.getRefObjectInfoAll(this.trace_scan); this.gdh.getRefObjectInfoAll(this.trace_scan);
} }
} }
trace_scan(id, sts) { trace_scan(id, sts) {
this.scan_time = this.ctx.scantime; this.scan_time = this.ctx.scantime;
this.fast_scan_time = this.ctx.fast_scantime; this.fast_scan_time = this.ctx.fast_scantime;
...@@ -713,9 +715,11 @@ class Graph { ...@@ -713,9 +715,11 @@ class Graph {
getLdb() { getLdb() {
return this.ldb; return this.ldb;
} }
getGdh() { getGdh() {
return this.gdh; return this.gdh;
} }
isAuthorized(access) { isAuthorized(access) {
return !!(this.priv & access); return !!(this.priv & access);
// return appl.isAuthorized( access); // return appl.isAuthorized( access);
...@@ -769,11 +773,13 @@ class Graph { ...@@ -769,11 +773,13 @@ class Graph {
this.ctxPush(); this.ctxPush();
} }
} }
traceDisconnect(o) { traceDisconnect(o) {
if (o.userdata !== null) { if (o.userdata !== null) {
o.userdata.disconnect(o); o.userdata.disconnect(o);
} }
} }
traceScan(o) { traceScan(o) {
if (o.userdata !== null) { if (o.userdata !== null) {
let dyn = o.userdata; let dyn = o.userdata;
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Operator window</title> <title>Operator window</title>
<link rel="stylesheet" type="text/css" href="toolbar.css"> <link rel="stylesheet" type="text/css" href="toolbar.css">
<style> <style>
.menu { .menu {
float:left; float: left;
width:20%; width: 20%;
height:100%; height: 100%;
} }
.main { .main {
float:left; float: left;
width:79%; width: 79%;
height:100%; height: 100%;
} }
</style> </style>
</head> </head>
<body> <body>
<iframe class="menu" src="opwind_menu.html"></iframe> <iframe class="menu" src="opwind_menu.html"></iframe>
<iframe class="main" src="xtt_help_index.html"></iframe> <iframe class="main" src="xtt_help_index.html"></iframe>
</body> </body>
</html> </html>
"use strict"; "use strict";
class OpWindMenu { class OpWindMenu {
priv: number; priv = 0;
user: string; user = "";
user_text: Text; user_text: Text = null;
host: string; host: string;
gdh: Gdh; gdh: Gdh;
info: OpwindMenuInfo; info: OpwindMenuInfo;
constructor() { constructor() {
this.priv = 0;
this.user = "";
this.user_text = null;
this.host = window.location.hostname; this.host = window.location.hostname;
if (this.host === "") { if (this.host === "") {
this.host = "localhost"; this.host = "localhost";
} }
this.gdh = new Gdh(); this.gdh = new Gdh(this.gdh_init_cb);
this.gdh.open_cb = this.gdh_init_cb;
this.gdh.init();
} }
is_authorized(access) { is_authorized(access) {
...@@ -46,7 +42,7 @@ class OpWindMenu { ...@@ -46,7 +42,7 @@ class OpWindMenu {
button.type = "button"; button.type = "button";
button.className = "leftmenu-button"; button.className = "leftmenu-button";
button.value = text; button.value = text;
button.addEventListener('click', function() { button.addEventListener('click', function () {
menu.button_cb(button.value); menu.button_cb(button.value);
}); });
context.appendChild(button); context.appendChild(button);
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <html>
<head> <head>
<title>Operator Menu</title> <title>Operator Menu</title>
<link rel="stylesheet" type="text/css" href="toolbar.css"> <link rel="stylesheet" type="text/css" href="toolbar.css">
</head> </head>
<body> <body>
<div id="opwindmenu" width="120" height="800"> <div id="opwindmenu" width="120" height="800">
<h1 id="opwind_title"></h1> <h1 id="opwind_title"></h1>
<p id="opwind_text"></p> <p id="opwind_text"></p>
<hr> <hr>
<button id="login_button" type="button" class="leftmenu-button">Login</button> <button id="login_button" type="button" class="leftmenu-button">Login</button>
<div id="login_frame" class="login-frame"> <div id="login_frame" class="login-frame">Username<br>
Username<br> <input id="login_user" name="username" class="login-field"/><br>Password<br>
<input id="login_user" name="username" class="login-field" /><br> <input id="login_passw" name="password" type="password" class="login-field"/><br>
Password<br>
<input id="login_passw" name="password" type="password" class="login-field" /><br>
<button id="apply_button" type="button" style="flex-grow:1">Apply</button> <button id="apply_button" type="button" style="flex-grow:1">Apply</button>
<button id="cancel_button" type="button" style="float:right">Cancel</button><br> <button id="cancel_button" type="button" style="float:right">Cancel</button>
<br>
<button id="logout_button" type="button" class="leftmenu-button">Logout</button> <button id="logout_button" type="button" class="leftmenu-button">Logout</button>
</div> </div>
</div> </div>
...@@ -28,5 +27,5 @@ ...@@ -28,5 +27,5 @@
<script type="text/babel" src="opwind.ts"></script> <script type="text/babel" src="opwind.ts"></script>
<hr> <hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address> <address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Xtt</title> <title>Xtt</title>
<link rel="stylesheet" type="text/css" href="toolbar.css"> <link rel="stylesheet" type="text/css" href="toolbar.css">
</head> </head>
<body> <body>
<div class="toolbar" role="toolbar"> <div class="toolbar" role="toolbar">
<div id="toolitem1" tabindex="0" class="toolbar-item" role="button"><img src="toolbar_graph.png"><img></div> <div id="toolitem1" tabindex="0" class="toolbar-item" role="button">
<div id="toolitem2" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_objectgraph.png"><img></div> <img src="toolbar_graph.png"/>
<div id="toolitem3" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_plc.png"><img></div> </div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_history.png"><img></div> <div id="toolitem2" tabindex="-1" class="toolbar-item" role="button">
<div id="toolitem5" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_object.png"><img></div> <img src="toolbar_objectgraph.png"/>
<div id="toolitem6" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_crossref.png"><img></div> </div>
<div id="toolitem7" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_help.png"><img></div> <div id="toolitem3" tabindex="-1" class="toolbar-item" role="button">
<div id="toolitem8" tabindex="-1" class="toolbar-item" role="button"><img src="toolbar_classhelp.png"><img></div> <img src="toolbar_plc.png"/>
</div>
<div id="toolitem4" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_history.png"/>
</div>
<div id="toolitem5" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_object.png"/>
</div>
<div id="toolitem6" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_crossref.png"/>
</div>
<div id="toolitem7" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_help.png"/>
</div>
<div id="toolitem8" tabindex="-1" class="toolbar-item" role="button">
<img src="toolbar_classhelp.png"/>
</div>
</div> </div>
<canvas id="flowcanvas" width="1200" height="800"></canvas> <canvas id="flowcanvas" width="1200" height="800"></canvas>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
...@@ -25,5 +41,5 @@ ...@@ -25,5 +41,5 @@
<script type="text/babel" src="xtt.ts"></script> <script type="text/babel" src="xtt.ts"></script>
<hr> <hr>
<address><a href="mailto:claes@debian86.ssab.com"></a></address> <address><a href="mailto:claes@debian86.ssab.com"></a></address>
</body> </body>
</html> </html>
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
class XttOpenChildrenData { class XttOpenChildrenData {
node: PlowNode; node: PlowNode;
open_next: PlowNode; open_next: PlowNode;
constructor(node, open_next) { constructor(node, open_next) {
this.node = node; this.node = node;
this.open_next = open_next; this.open_next = open_next;
...@@ -10,13 +11,13 @@ class XttOpenChildrenData { ...@@ -10,13 +11,13 @@ class XttOpenChildrenData {
} }
class Xtt { class Xtt {
ncObject: PlowNodeClass; ncObject: PlowNodeClass = null;
scan_update: boolean; scan_update: boolean;
priv: number; priv: number;
ctx: PlowCtx; ctx: PlowCtx;
timer: number; timer = null;
constructor() { constructor() {
this.ncObject = null;
this.priv = Number(sessionStorage.getItem("pwr_privilege")); this.priv = Number(sessionStorage.getItem("pwr_privilege"));
console.log("pwr_privilege", this.priv); console.log("pwr_privilege", this.priv);
...@@ -25,9 +26,7 @@ class Xtt { ...@@ -25,9 +26,7 @@ class Xtt {
this.ctx.event_cb = this.plow_event; this.ctx.event_cb = this.plow_event;
this.createNodeClasses(); this.createNodeClasses();
this.ctx.gdh = new Gdh(); this.ctx.gdh = new Gdh(this.gdh_init_cb);
this.ctx.gdh.open_cb = this.gdh_init_cb;
this.ctx.gdh.init();
this.ctx.gdraw.canvas.addEventListener("click", function (event) { this.ctx.gdraw.canvas.addEventListener("click", function (event) {
let y = event.pageY - this.ctx.gdraw.offset_top; let y = event.pageY - this.ctx.gdraw.offset_top;
...@@ -591,6 +590,7 @@ class XttItemObject { ...@@ -591,6 +590,7 @@ class XttItemObject {
full_name: string; full_name: string;
has_children: boolean; has_children: boolean;
node: PlowNode; node: PlowNode;
constructor(xtt, object_info, destination, destCode) { constructor(xtt, object_info, destination, destCode) {
this.objid = object_info.objid; this.objid = object_info.objid;
this.cid = object_info.cid; this.cid = object_info.cid;
...@@ -690,6 +690,7 @@ class XttItemAttr { ...@@ -690,6 +690,7 @@ class XttItemAttr {
firstScan: boolean; firstScan: boolean;
old_value: number; old_value: number;
node: PlowNode; node: PlowNode;
constructor(xtt, info, destination, destCode) { constructor(xtt, info, destination, destCode) {
this.name = info.name; this.name = info.name;
this.objid = info.objid; this.objid = info.objid;
...@@ -807,6 +808,7 @@ class XttItemAttrArray { ...@@ -807,6 +808,7 @@ class XttItemAttrArray {
size: number; size: number;
elements: number; elements: number;
node: PlowNode; node: PlowNode;
constructor(xtt, info, destination, destCode) { constructor(xtt, info, destination, destCode) {
this.name = info.name; this.name = info.name;
this.objid = info.objid; this.objid = info.objid;
...@@ -882,6 +884,7 @@ class XttItemAttrObject { ...@@ -882,6 +884,7 @@ class XttItemAttrObject {
flags: number; flags: number;
size: number; size: number;
node: PlowNode; node: PlowNode;
constructor(xtt, info, destination, destCode) { constructor(xtt, info, destination, destCode) {
this.name = info.name; this.name = info.name;
this.classname = info.classname; this.classname = info.classname;
...@@ -941,6 +944,7 @@ class XttItemCrr { ...@@ -941,6 +944,7 @@ class XttItemCrr {
objid: PwrtObjid; objid: PwrtObjid;
type: number; type: number;
node: PlowNode; node: PlowNode;
constructor(xtt, info, destination, destCode) { constructor(xtt, info, destination, destCode) {
this.name = info.name; this.name = info.name;
this.classname = info.classname; this.classname = info.classname;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment