method message_refinment boxRoot = (
if(is_an_atom || (car decomp_message)="inv")
then (
let label_1 = Label.create ~text:(transcript_receiver_for_intruder agent_name message) ~height:1 f_center_top in
let l = Label.create ~text:"No match" ~foreground:violet ~width:7 ~background:selcol f_center_top in
pack ~side:`Left ~fill:`Y ~expand:true [f_center];
pack ~side:`Top ~fill:`Both ~expand:false [f_center_top];
pack ~side:`Top ~fill:`X ~expand:false [label_1];
pack ~side:`Top ~fill:`Both ~expand:false [l];
let button_unrefinment = Button.create ~text:"<" ~command:(fun () ->
l0_rec := "" ;
del_entry message entry_1;
(match parent with None -> ()
|Some p -> p#init);
) f_center_top
in
(match parent with None -> ()
|Some _ -> pack ~side:`Left ~fill:`X [button_unrefinment]);
)
else
if((car decomp_message)="pair")
then (
pack ~side:`Top ~fill:`Y ~expand:false [l];
pack ~side:`Left ~fill:`Y ~expand:true [f_center];
let f_center_box = Frame.create f_center in
pack ~side:`Left ~fill:`Y ~expand:true [f_center_box];
let w1 = Some (new box f_center_box intruder_name agent_name intruder_state (cadr decomp_message) boxRoot) in
match w1 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w1::l_w;
let frame_mark = Frame.create f_center in
let label_vide = Label.create ~text:"." ~background:defcol ~foreground:blue frame_mark in
let mark = Label.create ~text:"." ~background:defcol ~foreground:blue frame_mark in
pack ~side:`Left ~fill:`Y ~expand:true [frame_mark];
pack ~side:`Top ~fill:`Y ~expand:false [label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [mark];
let f_center_box2 = Frame.create f_center in
pack ~side:`Left ~fill:`Y ~expand:true [f_center_box2];
let w2 = Some (new box f_center_box2 intruder_name agent_name intruder_state (caddr decomp_message) boxRoot) in
match w2 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w2::l_w;
)
else if((car decomp_message)="scrypt" || (car decomp_message)="crypt")
then (
let col_par = getcol() in
pack ~side:`Top ~fill:`Y ~expand:false [l];
pack ~side:`Left ~fill:`Y ~expand:true [f_center];
let frame_left_par = Frame.create f_center in
let left_par_label_vide = Label.create ~text:"{" ~foreground:violet ~background:col_par frame_left_par in
let left_par = Label.create ~text:"{" ~foreground:violet ~background:col_par frame_left_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_left_par];
pack ~side:`Top ~fill:`Y ~expand:false [left_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [left_par];
let f_center_box = Frame.create f_center in
pack ~side:`Left ~fill:`Y ~expand:true [f_center_box];
let w1 = Some (new box f_center_box intruder_name agent_name intruder_state (caddr decomp_message) boxRoot) in
match w1 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w1::l_w;
let frame_right_par = Frame.create f_center in
let right_par_label_vide = Label.create ~text:"}" ~foreground:violet ~background:col_par frame_right_par in
let right_par = Label.create ~text:"}" ~foreground:violet ~background:col_par frame_right_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_right_par];
pack ~side:`Top ~fill:`Y ~expand:false [right_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [right_par];
let frame_mark = Frame.create f_center in
let label_vide = Label.create ~text:"_" ~background:defcol ~foreground:blue frame_mark in
let mark = Label.create ~text:"_" ~background:defcol ~foreground:blue frame_mark in
pack ~side:`Left ~fill:`Y ~expand:true [frame_mark];
pack ~side:`Top ~fill:`Y ~expand:false [label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [mark];
let f_center_box2 = Frame.create f_center in
pack ~side:`Left ~fill:`Y ~expand:true [f_center_box2];
let w2 = Some (new box f_center_box2 intruder_name agent_name intruder_state (cadr decomp_message) boxRoot) in
match w2 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w2::l_w;
)
else if(((car decomp_message)="exp") || ((car decomp_message)="xor"))
then (
let col_par = getcol() in
let label_vide1 = Label.create f_left_top ~text:(car decomp_message) ~background:defcol ~foreground:blue in
Label.configure l ~text:(car decomp_message) ~background:defcol ~foreground:blue;
pack ~side:`Top ~fill:`Y ~expand:true [f_left_top];
pack ~side:`Top ~fill:`Y ~expand:false [label_vide1];
pack ~side:`Top ~fill:`Y ~expand:false [l];
pack ~side:`Top ~fill:`Y ~expand:true [f_left_down];
pack ~side:`Left ~fill:`Y ~expand:true [f_center];
let frame_left_par = Frame.create f_center in
let left_par_label_vide = Label.create ~text:"(" ~foreground:violet ~width:1 ~background:col_par frame_left_par in
let left_par = Label.create ~text:"(" ~foreground:violet ~width:1 ~background:col_par frame_left_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_left_par];
pack ~side:`Top ~fill:`Y ~expand:false [left_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [left_par];
let nb = ref (List.length decomp_message) in
List.iter
(fun m ->
let f_center_box = Frame.create f_center in
pack ~side:`Left ~fill:`Y ~expand:true [f_center_box];
let w1 = Some (new box f_center_box intruder_name agent_name intruder_state m boxRoot) in
match w1 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w1::l_w;
if(!nb > 2) then(
let frame_mark = Frame.create f_center in
let label_vide2 = Label.create ~text:"," ~background:defcol ~foreground:blue frame_mark in
let mark = Label.create ~text:"," ~background:defcol ~foreground:blue frame_mark in
pack ~side:`Left ~fill:`Y ~expand:true [frame_mark];
pack ~side:`Top ~fill:`Y ~expand:false [label_vide2];
pack ~side:`Top ~fill:`Y ~expand:false [mark];
nb:=(!nb)-1
)
)
(cdr decomp_message);
let frame_right_par = Frame.create f_center in
let right_par_label_vide = Label.create ~text:")" ~foreground:violet ~background:col_par frame_right_par in
let right_par = Label.create ~text:")" ~foreground:violet ~background:col_par frame_right_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_right_par];
pack ~side:`Top ~fill:`Y ~expand:false [right_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [right_par];
)
else if ((car decomp_message)="apply")
then(
let col_par = getcol() in
let label_vide1 = Label.create f_left_top ~text:(cadr decomp_message) ~background:violet ~foreground:violet in
Label.configure l ~text:(cadr decomp_message) ~background:violet ~foreground:violet;
pack ~side:`Top ~fill:`Y ~expand:true [f_left_top];
pack ~side:`Top ~fill:`Y ~expand:false [label_vide1];
pack ~side:`Top ~fill:`Y ~expand:false [l];
pack ~side:`Top ~fill:`Y ~expand:true [f_left_down];
pack ~side:`Left ~fill:`Y ~expand:true [f_center];
let frame_left_par = Frame.create f_center in
let left_par_label_vide = Label.create ~text:"(" ~foreground:violet ~background:col_par frame_left_par in
let left_par = Label.create ~text:"(" ~foreground:violet ~background:col_par frame_left_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_left_par];
pack ~side:`Top ~fill:`Y ~expand:false [left_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [left_par];
let nb = ref (List.length decomp_message) in
List.iter
(fun m ->
let f_center_box = Frame.create f_center in
pack ~side:`Left ~fill:`Y ~expand:true [f_center_box];
let w1 = Some (new box f_center_box intruder_name agent_name intruder_state m boxRoot) in
match w1 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w1::l_w;
if(!nb > 3) then(
let frame_mark = Frame.create f_center in
let label_vide2 = Label.create frame_mark ~text:" " in
let mark = Label.create ~text:"," ~background:defcol ~foreground:blue frame_mark in
pack ~side:`Left ~fill:`Y ~expand:true [frame_mark];
pack ~side:`Top ~fill:`Y ~expand:false [label_vide2];
pack ~side:`Top ~fill:`Y ~expand:false [mark];
nb:=(!nb)-1
)
)
(cddr decomp_message);
let frame_right_par = Frame.create f_center in
let right_par_label_vide = Label.create ~text:")" ~foreground:violet ~background:col_par frame_right_par in
let right_par = Label.create ~text:")" ~foreground:violet ~background:col_par frame_right_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_right_par];
pack ~side:`Top ~fill:`Y ~expand:false [right_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [right_par];
)
else if((cdr decomp_message)<>[])
then (
let col_par = getcol() in
pack ~side:`Top ~fill:`Y ~expand:false [l];
pack ~side:`Left ~fill:`Y ~expand:true [f_center];
let w1 = Some (new box f_center intruder_name agent_name intruder_state (car decomp_message) boxRoot) in
match w1 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w1::l_w;
let frame_left_par = Frame.create f_center in
let left_par_label_vide = Label.create ~text:"(" ~foreground:col_par ~background:clicol frame_left_par in
let left_par = Label.create ~text:"(" ~foreground:col_par ~background:clicol frame_left_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_left_par];
pack ~side:`Top ~fill:`Y ~expand:false [left_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [left_par];
let nb = ref (List.length decomp_message) in
List.iter
(fun m ->
let f_center_box = Frame.create f_center in
pack ~side:`Left ~fill:`Y ~expand:true [f_center_box];
let w1 = Some (new box f_center_box intruder_name agent_name intruder_state m boxRoot) in
match w1 with None -> ()
|Some obj_box -> obj_box#init;
l_w <- w1::l_w;
if(!nb > 2) then(
let frame_mark = Frame.create f_center in
let label_vide2 = Label.create frame_mark ~text:" " in
let mark = Label.create ~text:"," ~background:defcol ~foreground:blue frame_mark in
pack ~side:`Left ~fill:`Y ~expand:true [frame_mark];
pack ~side:`Top ~fill:`Y ~expand:false [label_vide2];
pack ~side:`Top ~fill:`Y ~expand:false [mark];
nb:=(!nb)-1
)
)
(cdr decomp_message);
let frame_right_par = Frame.create f_center in
let right_par_label_vide = Label.create ~text:")" ~foreground:col_par ~background:clicol frame_right_par in
let right_par = Label.create ~text:")" ~foreground:col_par ~background:clicol frame_right_par in
pack ~side:`Left ~fill:`Y ~expand:true [frame_right_par];
pack ~side:`Top ~fill:`Y ~expand:false [right_par_label_vide];
pack ~side:`Top ~fill:`Y ~expand:false [right_par];
);
)