Инструментальная среда имитационного моделирования распределенных систем мобильных агентов



страница7/21
Дата24.11.2016
Размер2.3 Mb.
Просмотров4039
Скачиваний0
1   2   3   4   5   6   7   8   9   10   ...   21



Приложение 9 Класс ChartInfo.cs


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Automata {
public class ChartInfo {

public double x_max;

public List positions = new List();

public List pos_ids = new List();

public List states = new List();

public List state_ids = new List();

public List items = new List();

public void add_position(string i_title) {

add_position(i_title, i_title);

}

public void add_position(string i_title, string i_id) {



positions.Add(i_title);

pos_ids.Add(i_id);

}

public void add_state(string i_title) {



add_state(i_title, i_title);

}

public void add_state(string i_title, string i_id) {



states.Add(i_title);

state_ids.Add(i_id);

}

public void add_item(string i_pos, string i_state, double i_from, double i_to) {



int pos = pos_ids.IndexOf(i_pos);

if(pos == -1) {

pos = positions.Count;

add_position(i_pos);

}

int state = state_ids.IndexOf(i_state);



if(state == -1) {

state = states.Count;

add_state(i_state);

}

add_item(pos, state, i_from, i_to);



}

public void add_item(int i_pos, int i_state, double i_from, double i_to) {

items.Add(new ChartItem(i_pos,i_state,i_from,i_to));

x_max = Math.Max(x_max,i_to);

}

}
public struct ChartItem {



public int position;

public int state;

public double x_from;

public double x_to;

public ChartItem(int i_pos, int i_state, double i_from, double i_to) {

state = i_state;

position = i_pos;

x_from = i_from;

x_to = i_to;

}

}



}


Приложение 10 Form_xml.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Windows.Forms;

using System.Xml;


namespace Automata {

partial class Form1: Form {

static private String get_config_fname() {

String ss = Application.ExecutablePath;

String

dir = Path.GetDirectoryName(ss)



, fname = Path.GetFileName(ss)

, fname_woe = Path.GetFileNameWithoutExtension(ss)

;

String path = dir + "\\" + fname_woe + ".xml";



//

log("ss=" + ss);

log("dir=" + Path.GetDirectoryName(ss));

log("fname=" + Path.GetFileName(ss));

log("fname_woe=" + Path.GetFileNameWithoutExtension(ss));

log("fname=" + fname);

//

return path;



}
private void config_save() {

XmlDocument doc = new XmlDocument();

XmlElement e_root = doc.CreateElement("root");

doc.AppendChild(e_root);

//

/*

XmlElement e_main = doc.CreateElement("form_main");



Lib.form_attr_write(e_main, this);

e_root.AppendChild(e_main);

*/

//


XmlElement e_pars = doc.CreateElement("pars");

e_pars.SetAttribute("page_length", "" + Model.page_length);

e_pars.SetAttribute("gap", "" + Model.gap);

e_pars.SetAttribute("title_length", "" + Model.title_length);

e_pars.SetAttribute("loop_count", "" + loop_count);

e_root.AppendChild(e_pars);


//

String path = get_config_fname();

doc.Save(path);

}
public void show_main_size() {

log("main top=" + this.Top + " left=" + this.Left

+ " width=" + this.Width + " height=" + this.Height

);

}
private void config_restore() {



//

String path = get_config_fname();

XmlDocument doc = new XmlDocument();

XmlElement e_root = null;

try {

doc.Load(path);



e_root = doc.DocumentElement;

log("docElement name=" + e_root.Name);

log("do read_config");

show_main_size();

/*

foreach(XmlElement e in e_root.GetElementsByTagName("form_main")) {



Lib.form_attr_read(e, this);

break;


}

*/

foreach(XmlElement e in e_root.GetElementsByTagName("pars")) {



loop_count = Lib.nvl_int(e.GetAttribute("loop_count"), loop_count);

Model.page_length = Lib.nvl_int(e.GetAttribute("page_length"), Model.page_length);

Model.gap = Lib.nvl_int(e.GetAttribute("gap"), Model.gap);

Model.title_length = Lib.nvl_int(e.GetAttribute("title_length"), Model.title_length);

break;

}
show_main_size();



} catch(Exception e) {

Lib.alarm("exp=" + e.Message);

}
}

}

}



Приложение 11 Form1.cs


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;


namespace Automata {

public enum VisualNet { system_net, automata_net };


public partial class Form1 : Form {
static Form1 frmMain;

static FormLog frmLog;

static bool is_logging = false;

static bool is_visible = false;

static bool is_autonet = false;

static bool only_trace_logging = false;

static bool is_chart_visible = false;
static string build_id = "67 20.05.2013";

void log_only_trace(bool only_trace) {

only_trace_logging = only_trace;

}

public static void log_t(string ss) {



log(ss + "$trc");

}

public static void log(string ss) {



if (!is_logging) return;

if(only_trace_logging) {

if(!ss.Contains("$trc")){

return;


}

}

string new_ss = ss.Replace("$trc", "");



check_log_form();

frmLog.log(new_ss);

}
public void log_visible(bool i_visible) {

check_log_form();

is_logging = i_visible;

frmLog.Visible = i_visible;

cb_Log.Checked = i_visible;

}
public void chart_visible(bool i_visible) {

is_chart_visible = i_visible;

cb_chart.Checked = is_chart_visible;

if (is_chart_visible) {

show_chart();

}else{

if (frmChart != null) {



frmChart.Visible = false;

}

}



}
static void check_log_form() {

if (frmLog == null) {

frmLog = new FormLog(frmMain);

}

if (frmLog.IsDisposed) {



frmLog = new FormLog(frmMain);

}

}



/*

static void check_visual_form2() {

if(frm_viz == null) {

frm_viz = new FormVisual(frmMain);

}

if(frm_viz.IsDisposed) {



frm_viz = new FormVisual(frmMain);

}

}



*/

void show_log() {

log_visible(true);

cb_Log.Checked = true;

frmLog.Focus();

}
public Form1() {

InitializeComponent();

init();


frmMain = this;

this.Text = ml["form1_title"];

}
private void init(){

//config_restore();

status("Welcome");

// numericUpDown2.Value = loop_count;

// btn_Loop.Text = loop_count + " шагов";

btn_Loop.Enabled = false;

btn_exec.Enabled = false;

set_text();

}
static MultyLanguage ml = MultyLanguage.get_MultyLanguage();
void set_text() {

this.Text = ml["title_Form1"];


cb_visual.Text = ml["title_SystemNet"];

cb_autonet.Text = ml["title_AutomataNet"];

btn_chart.Text = ml.msg_btn_chart.Str; // "Time chart";

btn_Trace.Text = ml.msg_btn_trace.Str; //"Трассировка";

btn_rezult.Text = ml.msg_btn_rezult.Str; //Результаты анализа

cb_chart.Text = ml.cb_chart.Str; //Диаграмма

cb_Log.Text = ml.cb_log.Str; //Лог

cb_Trace.Text = ml.cb_trace.Str;//Только трассировка

cb_Marking.Text = ml.cb_marking.Str;//Достижимость

cb_stop.Text = ml.cb_stop.Str;//Пауза при нахождении

cb_Finiteness.Text = ml.cb_Finiteness.Str;//Ограниченность

btn_exec.Text = ml.btn_exec.Str;//1Шаг

btn_Loop.Text = ml.btn_Loop.Str;//шагов

btn_steps.Text = ml.btn_steps.Str;//По шагам

label1.Text = ml.label1.Str;//Сделать

btn_time.Text = ml.btn_time.Str;//время+

fileToolStripMenuItem.Text = ml.menu_file.Str;//Файл

openToolStripMenuItem.Text = ml.openToolStripMenuItem.Str;//Открыть

загрузитьДемоМодельToolStripMenuItem.Text = ml.загрузитьДемоМодельToolStripMenuItem.Str;// Загрузить демо модель

saveToolStripMenuItem.Text = ml.saveToolStripMenuItem.Str;//Сохранить

выходToolStripMenuItem.Text = ml.выходToolStripMenuItem.Str;//Выход

справкаToolStripMenuItem.Text = ml.справкаToolStripMenuItem.Str;//Справка

оПрограммеToolStripMenuItem.Text = ml.оПрограммеToolStripMenuItem.Str;//О программе

языкОписанияМоделиToolStripMenuItem.Text = ml.языкОписанияМоделиToolStripMenuItem.Str;//Язык описани модели


//cb_chart.Text = ml["cb_chart"]; // Диаграмма

// cb_Log.Text = ml["cb_log"]; // Журнал

// cb_Trace.Text = ml["cb_trace"]; // Only Trace

//cb_Marking.Text = ml["cb_marking"]; // Достижимость

// cb_stop.Text = ml["cb_stop"]; // Пауза при нахождении

//cb_Finiteness.Text = ml["cb_finiteness "]; //Ограниченность
}
private Model m;
void init_model() {

if(m != null) {

if(!confirm(ml["q_delete_model"]/*"Удалить текущую модель?"*/)) return;

}

try {



m = Model.init();

trda_file_name = "demo.tda";

model_ready(ml["model_init"]/*"Модель инициализована"*/);

} catch (Exception e) {

status(ml["error:"]/*"ошибка: "*/ + e.Message);

}
}
private void status(String ss){

toolStripStatusLabel1.Text = ss;

log(ss);


}
void error(string i_ss) {

string ss = ml["***Error:"]/*"***Ошибка: "*/+i_ss;

log(ss);

status(ss);

}
bool multy_alarm = false;

List alarm_string_list = new List();


void multy_alarm_on() {

multy_alarm = true;

alarm_string_list = new List();

}

void multy_alarm_off() {



multy_alarm = false;

if(alarm_string_list.Count > 0) {

string ss = "";

foreach(string s in alarm_string_list) {

ss += s+"\r\n";

}

alarm(ss);



}

}
void alarm(string ss) {

if(multy_alarm) {

alarm_string_list.Add(ss);

} else {

MessageBox.Show(ss, "Message");

}

}
Boolean confirm(string ss) {



DialogResult result =

MessageBox.Show(ss, "Confirm", MessageBoxButtons.YesNo);

return(result == DialogResult.Yes);

}


void model_not_ready() {

treeView1.Nodes.Clear();

lb_Vars.Items.Clear();

btn_exec.Enabled = false;

btn_Loop.Enabled = false;

btn_time.Enabled = false;

}
void model_ready(string ss) {

m.set_test_marking(cb_Marking.Checked);

m.set_test_stop(cb_stop.Checked);

m.set_test_bounds(cb_Finiteness.Checked);

m.set_test_lock(cb_lock.Checked);

status(ss);

next_step();

}
void next_step() {

next_step(false);

}
bool next_step(bool in_loop) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return false;

}

List step_list = m.get_candidates();



// tb_StepInfo.Text = m.get_step_info();
bool rez = (step_list != null);

if (m.do_pause) rez = false;

if (in_loop) return rez;
status(m.get_step_info());

lb_Vars.Items.Clear();

if (step_list != null) {

foreach (String ss in step_list) {

lb_Vars.Items.Add(ss);

}

lb_Vars.SelectedIndex = m.get_champ_index();



btn_exec.Enabled = true;

btn_Loop.Enabled = true;

btn_time.Enabled = true;

} else {


btn_exec.Enabled = false;

btn_Loop.Enabled = false;

if(m.get_exec_mode() == Model.Exec_Mode_Stop) {

btn_time.Enabled = false;

} else {

btn_time.Enabled = true;

}

}

toolStripProgressBar1.Visible = false;



show_places();

if(is_chart_visible) show_chart();

if (is_visible) show_visual_system_net();

if(is_autonet) show_visual_automata_net();

return rez;

}
int loop_count = 50;


void exec_loop() {

if (m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;


}

log_visible(false);

status(ml["executing_cycle"]/*"Выполняется цикл ..."*/);

toolStripProgressBar1.Visible = true;

loop_count = (int)numericUpDown2.Value;

toolStripProgressBar1.Maximum = loop_count;

statusStrip1.Refresh();

int i = 0;

do {

i++;


if (i % 10 == 0) {

status(ml["executing_cycle"]/*"Выполняется цикл ..."*/);

toolStripProgressBar1.Value = i;

}

m.exec_step();



if (!next_step(true)) break;

// if (cb_Stop.Checked) break;

} while (i

next_step();

}
void exec_time(double delta_t) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;


}

Double time_to = m.get_t_current() + delta_t;

m.time_limit_on(time_to);

status(ml["executing_cycle_to"]/*"Выполняется цикл до "*/+time_to+ "...");

do {

log_t("do next_step t_current=" + m.get_t_current());



if(!next_step(true)) break;

log_t("posle next_step t_current=" + m.get_t_current());

m.exec_step();

log_t("posle exec_step t_current=" + m.get_t_current());

} while(true);

status("Выполнился цикл до " + time_to + ".");

m.set_t_current(time_to);

next_step();

m.time_limit_off();

/*

status(m.get_step_info());



show_places();

*/


}

void go_by_steps() {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.time_limit_off();



next_step();

}
void exec_1_step() {

int n = lb_Vars.SelectedIndex;

log("Выбран вариант " + n);

if(m==null){

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;

}

m.exec_step(n);



// show_places();

next_step();

}
string get_inst_title(Instance inst) {

string ss = inst.con.name;

if (inst.is_visual) {

ss = "*" + ss;

}

if (inst.current_state != null) {



ss += ":" + inst.current_state.name;

}

if (inst.current_step != null) {



ss += "->" + inst.current_step.trans.name;

}

if (inst.con.type.initial_state != null) {


foreach (Register reg in inst.con.type.list_regs) {

//ss += " reg.name="+reg.name+" reg.id="+reg.id;

if (reg.reg_type == RegType.rt_timer) {

ss += "[" + reg.name + "=" + inst.registers[reg.id] + "]";

}

}

}



return ss;

}
void show_places(){

if (m == null)

{

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);



return;

}

treeView1.Visible = false;



treeView1.Nodes.Clear();

foreach (Place p in m.p_list){

TreeNode p_node = new TreeNode(p.name);

p_node.Tag = p;

treeView1.Nodes.Add(p_node);

int n = 0;

foreach (Instance inst in p.list_inst) {

n++;


/*

string ss = inst.con.name;

if (inst.is_visual) {

ss = "*" + ss;

}

if(inst.current_state != null){



ss += ":"+inst.current_state.name;

}

if(inst.current_step != null) {



ss += "->" + inst.current_step.trans.name;

}

if(inst.con.type.initial_state != null) {



foreach(Register reg in inst.con.type.list_regs) {

//ss += " reg.name="+reg.name+" reg.id="+reg.id;

if(reg.reg_type == RegType.rt_timer) {

ss += "["+reg.name + "=" + inst.registers[reg.id]+"]";

}

}

}



*/

string ss = get_inst_title(inst);

TreeNode i_node = new TreeNode(ss);

i_node.Tag = inst;

p_node.Nodes.Add(i_node);

}

if(!p.is_expanded) p_node.Text += "(total " + n + ")";



if(p.is_expanded) p_node.Expand();

}

//treeView1.ExpandAll();



treeView1.Visible = true;

}
void show_dump() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

FormRezult fr = new FormRezult("");



string ss = m.get_dump();

// log(ss);

fr.log(m.get_dump());

fr.Show();

}
void show_model(Model m) {

if(m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ +DateTime.Now);

treeView1.Nodes.Clear();

return;

}

//



treeView1.Nodes.Clear();

TreeNode root_node = new TreeNode(m.name);

treeView1.Nodes.Add(root_node);

//

TreeNode places_node = new TreeNode(ml["place"]/*"места"*/);



root_node.Nodes.Add(places_node);

foreach(Place p in m.p_list){

TreeNode place_node = places_node.Nodes.Add(p.name);

TreeNode place_in_node = place_node.Nodes.Add("arc_in");

foreach(Arc a in p.list_in) {

place_in_node.Nodes.Add("" + a.p.name + ":" + a.port.name);

}

TreeNode place_out_node = place_node.Nodes.Add("arc_out");



foreach(Arc a in p.list_out) {

place_out_node.Nodes.Add("" + a.p.name + ":" + a.port.name);

}

TreeNode place_inst_node = place_node.Nodes.Add("instances");



foreach(Instance i in p.list_inst) {

string st = "";

if(i.current_state != null) {

st = ":" + i.current_state.name;

}

place_inst_node.Nodes.Add("" + i.con.name+st);



}

}

TreeNode types_node = new TreeNode(ml["types"]/*"типы"*/);



root_node.Nodes.Add(types_node);

foreach(Type t in m.t_list) {

string init_state = "";

if(t.initial_state != null){

init_state = " (init="+t.initial_state.name+")";

}

TreeNode type_node = types_node.Nodes.Add(t.name+init_state);



//

TreeNode consts_node = new TreeNode(ml["constants"]/*"константы"*/);

type_node.Nodes.Add(consts_node);

foreach(Const c in t.list_const) {

TreeNode const_node = new TreeNode(c.name);

consts_node.Nodes.Add(const_node);

}

//

TreeNode vars_node = new TreeNode(ml["variables"]/*"переменные"*/);



type_node.Nodes.Add(vars_node);

foreach(Var v in t.list_var) {

TreeNode var_node = new TreeNode(v.name);

vars_node.Nodes.Add(var_node);

}

//

TreeNode ports_node = new TreeNode(ml["ports"]/*"порты"*/);



type_node.Nodes.Add(ports_node);

foreach(Port p in t.list_port) {

TreeNode port_node = new TreeNode(p.name);

ports_node.Nodes.Add(port_node);

}

//

TreeNode states_node = new TreeNode(ml["states"]/*"состояния"*/);



type_node.Nodes.Add(states_node);

foreach(State s in t.list_states) {

TreeNode state_node = new TreeNode(s.name+"("+s.symbol+")");

states_node.Nodes.Add(state_node);

foreach(Transition tr in s.list_trans) {

TreeNode trans_node = new TreeNode(tr.state_from.name + " -> " + tr.state_to.name+" ("+tr.symbol+")");

state_node.Nodes.Add(trans_node);

}

}



//

TreeNode transes_node = new TreeNode(ml["transitions"]/*"переходы"*/);

type_node.Nodes.Add(transes_node);

foreach(Transition tr in t.list_trans) {

TreeNode trans_node = new TreeNode(tr.state_from.name+" -> "+tr.state_to.name);

transes_node.Nodes.Add(trans_node);

foreach(Term term in tr.list_term_in) {

TreeNode term_node = new TreeNode("in:" + term.port.name + ":" + term.res.name+":"+term.res.GetType().Name);

trans_node.Nodes.Add(term_node);

}

foreach(Term term in tr.list_term_out) {



TreeNode term_node = new TreeNode("out:" + term.port.name + ":" + term.res.name + ":" + term.res.GetType().Name);

trans_node.Nodes.Add(term_node);

}
}
}

//

TreeNode all_ports_node = new TreeNode(ml["ports"]/*"порты"*/);



root_node.Nodes.Add(all_ports_node);

foreach(Port p in m.port_list) {

string ss = p.name;

if(p.type != null) {

ss = ss+":"+p.type.name;

}

TreeNode port_node = new TreeNode(ss);



all_ports_node.Nodes.Add(port_node);

}
TreeNode all_trace_node = new TreeNode("trace");

root_node.Nodes.Add(all_trace_node);

for(int i = 0; i < m.trace_hash.Count; i++) {

Trace t = (Trace)m.trace_hash[i];

string ss = t.show();

TreeNode trace_node = new TreeNode(ss);

all_trace_node.Nodes.Add(trace_node);

}
status(ml["view_model"]/*"Просмотр модели: "*/ + DateTime.Now);

// treeView1.ExpandAll();

}
void log_total() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;


}

show_log();

cb_Trace.Checked = false;

if(!m.log_total()) {

status(ml["show_rez"]/*"Показ итогов невозможен: смотрите сообщения в журнале."*/);

}
}
void log_trace() {

if(m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

show_log();



m.log_trace();

}
private void btn_Init_Click(object sender, EventArgs e) {

init_model();

}
private void btn_Show_Click(object sender, EventArgs e) {

show_model(m);

}
private void btn_Log_Click(object sender, EventArgs e) {

show_log();

}

/*



private void btn_Step_Click(object sender, EventArgs e) {

next_step();

}

*/

private void btn_exec_Click(object sender, EventArgs e) {



exec_1_step();

}
private void saveToolStripMenuItem_Click(object sender, EventArgs e) {

save_model();

}
private void openToolStripMenuItem_Click(object sender, EventArgs e) {

load_model();

}
private void btn_ShowPlaces_Click(object sender, EventArgs e)

{

show_places();



}
private void cb_Log_CheckedChanged(object sender, EventArgs e) {

log_visible(cb_Log.Checked);

}
private void lb_Vars_DoubleClick(object sender, EventArgs e) {

log("double click selectedIndex="+lb_Vars.SelectedIndex);

if(lb_Vars.SelectedIndex >= 0) exec_1_step();

}
private void btn_Trace_Click(object sender, EventArgs e) {

log_trace();

}
private void cb_Trace_CheckedChanged(object sender, EventArgs e) {

log_only_trace(cb_Trace.Checked);

}
private void btn_total_Click(object sender, EventArgs e) {

log_total();

}
private void btn_Loop_Click(object sender, EventArgs e) {

exec_loop();

}
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {

bool do_confirm = false;

if(do_confirm && !Lib.confirm("Good buy?")) {

e.Cancel = true;

return;


}

//config_save();

}
static FormChart frmChart;
void show_chart() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;


}

if (frmChart == null) {

frmChart = new FormChart(frmMain);

}

if (frmChart.IsDisposed) {



frmChart = new FormChart(frmMain);

}
ChartInfo chin = m.get_chin();


frmChart.set_chin(chin);

frmChart.Visible = true;

frmChart.Focus();

}
private void btn_chart_Click(object sender, EventArgs e) {

show_chart();

}
private void выходToolStripMenuItem_Click(object sender, EventArgs e) {

this.Close();

}
private void button1_Click(object sender, EventArgs e) {

int i = (int)numericUpDown1.Value;

exec_time(0.0+i);

}
private void загрузитьДемоМодельToolStripMenuItem_Click(object sender, EventArgs e)

{

init_model();



}
private void btn_steps_Click(object sender, EventArgs e) {

go_by_steps();

}
private void cb_chart_CheckedChanged(object sender, EventArgs e) {

chart_visible(cb_chart.Checked);

}
static void help(string p_title, string p_text) {

FormHelp frm_help = new FormHelp(p_title,p_text);

frm_help.Show();

}

private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e) {



FormHelp.help_about(build_id);

}
private void языкОписанияМоделиToolStripMenuItem_Click(object sender, EventArgs e) {

FormHelp.help_bnf();

}
void exec_place_expand(TreeNode n, bool i_expand) {

Object tag = n.Tag;

if(tag != null) {

if(tag.GetType() == typeof(Place)) {

Place p = (Place)tag;

p.is_expanded = i_expand;

}

}



}
void exec_change_inst_visual(TreeNode n) {

Object tag = n.Tag;

if (tag != null) {

if (tag.GetType() == typeof(Instance)) {

Instance inst = (Instance)tag;

inst.is_visual = !inst.is_visual;

n.Text = get_inst_title(inst);

}

}



}
private void treeView1_BeforeCollapse(object sender, TreeViewCancelEventArgs e) {

/*

TreeView tv = (TreeView)sender;



alarm("e=" + e + " sender=" + sender

+ " type=" + sender.GetType()

+ " tv="+ tv

+ " selected node=" + tv.SelectedNode

+ "e.node="+e.Node

);

*/



exec_place_expand(e.Node, false);

}
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) {

exec_place_expand(e.Node, true);

}

static FormVisual frm_viz;



static FormVisual frm_autonet;

void show_visual_system_net() {

if(m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;

}

bool new_form_viz = false;



if(frm_viz == null) {

new_form_viz = true;

} else if(frm_viz.IsDisposed) {

new_form_viz = true;

}

if(new_form_viz) {



frm_viz = new FormVisual(this,VisualNet.system_net);

}
frm_viz.new_dot(trda_file_name);

m.show_system_net(frm_viz);
frm_viz.Show();

frm_viz.Focus();

}
void show_visual_automata_net() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;


}

bool new_form = false;

if (frm_autonet == null) {

new_form = true;

} else if (frm_autonet.IsDisposed) {

new_form = true;

}

if (new_form) {



frm_autonet = new FormVisual(this,VisualNet.automata_net);

}
frm_autonet.new_dot(trda_file_name);

m.show_automata_net(frm_autonet);
frm_autonet.Show();

frm_autonet.Focus();

}
public void set_visual_automata_net(bool i_do_set) {

is_autonet = i_do_set;

if (i_do_set) {

show_visual_automata_net();

} else {

if (frm_autonet != null) {

frm_autonet.Visible = false;

}

}



cb_autonet.Checked = i_do_set;

}
public void set_visual_system_net(bool i_do_set) {

is_visible = i_do_set;

if(i_do_set) {

show_visual_system_net();

} else {


if(frm_viz != null) {

frm_viz.Visible = false;

}

}

cb_visual.Checked = i_do_set;


}
public void set_visual(bool i_do_set, VisualNet i_net) {

if (i_net == VisualNet.system_net) set_visual_system_net(i_do_set);

if (i_net == VisualNet.automata_net) set_visual_automata_net(i_do_set);

}

static FormRezult frm_rez;



public static void rez(string ss) {

frm_rez.log(ss);

}
void show_rezult() {

if (m == null) {

status(ml["no_init_model"]/*"Модель не инициализирована: "*/ + DateTime.Now);

return;


}

//

bool new_form_rez = false;



if (frm_rez == null) {

new_form_rez = true;

} else if (frm_rez.IsDisposed) {

new_form_rez = true;

}

if (new_form_rez) {



frm_rez = new FormRezult(trda_file_name);

}

//



frm_rez.log_begin();

m.show_rezult();

//

frm_rez.Show();



frm_rez.Focus();

}
private void btn_rezult_Click(object sender, EventArgs e) {

show_rezult();
}
private void cb_Marking_CheckedChanged(object sender, EventArgs e) {

if (m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;


}

m.set_test_marking(cb_Marking.Checked);

}
private void cb_stop_CheckedChanged(object sender, EventArgs e) {

if (m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;


}

m.set_test_stop(cb_stop.Checked);

}
private void cb_Finiteness_CheckedChanged(object sender, EventArgs e) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;


}

m.set_test_bounds(cb_Finiteness.Checked);

}
private void cb_lock_CheckedChanged(object sender, EventArgs e) {

if(m == null) {

error(ml["no_init_model"]/*"Не инициализирована модель"*/);

return;


}

m.set_test_lock(cb_lock.Checked);

}
private void panel4_MouseDoubleClick(object sender, MouseEventArgs e) {

show_dump();

}
void set_eng_rus() {

if (MultyLanguage.current_language == MultyLanguage.Language.english) {

set_rus();

} else {


set_eng();

}

}


void set_eng() {

MultyLanguage.current_language = MultyLanguage.Language.english;

set_text();

}
void set_rus() {

MultyLanguage.current_language = MultyLanguage.Language.russian;

set_text();

}

/*

private void btn_visual_Click(object sender, EventArgs e) {



show_visual_system_net();

}

*/



private void cb_visual_CheckedChanged(object sender, EventArgs e) {

set_visual_system_net(cb_visual.Checked);

}
private void cb_autonet_CheckedChanged(object sender, EventArgs e) {

set_visual_automata_net(cb_autonet.Checked);

}
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) {

exec_change_inst_visual(e.Node);

}
private void englishToolStripMenuItem_Click(object sender, EventArgs e) {

set_eng_rus();

}
}

}


Каталог: data -> 2013
2013 -> Федеральное государственное автономное образовательное
2013 -> «Визуальный образ персонажей массового кинематогрфа в историческом контексте»
2013 -> 2 раздел анализ предметной области 5
2013 -> Магистерская диссертация
2013 -> Влияние вовлеченности на готовность платить за коллекционные товары
2013 -> Выражение гендерных характеристик в англоязычном "глянцевом" дискурсе
2013 -> Продакт Плейсмент и перспективы его развития в сети Интернет
2013 -> 1Лекции первого полугодия
2013 -> «Правовое рассмотрение компьютерного мошенничества», Ницца, 22 октября 1992 года, грамота «весьма достойно»


Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   10   ...   21


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал