Esempio n. 1
0
 private void btnRun_Click(object sender, EventArgs e)
 {
     try
     {
         Objects.ForEach(o => o.BgColor = Color.Orange);
         VisitedNodes = new ObservableCollection <object>();
         VisitedNodes.CollectionChanged += _visitedNodes_CollectionChanged;
         BaseNetwork network = rbPredefinedNetwork.Checked ? (BaseNetwork)cbPredefinedNetworks.SelectedItem : _customNetwork;
         DistributedAlgorithm <int, string> algorithm = rbFromList.Checked ? (DistributedAlgorithm <int, string>)cbAlgorithms.SelectedItem : (DistributedAlgorithm <int, string>)Activator.CreateInstance((Type)((ComboBoxItem)cbClassFromDll.SelectedItem).Value);
         NodesManager.Instance.Nodes.Clear();
         NodesManager.Instance.Nodes.AddRange(network.GetNetwork(algorithm, new NetworkSimulator(), node_OnNodeMessage));
         NodesManager.Instance.Nodes.ForEach(n => ((NetworkSimulator)n.GetNetworkComponent()).CurrentNodeId = n.GetId());
         var messages = txtMessage.Text.Split(';');
         RedrawPanel(Objects, Connections);
         for (int i = 0; i < chlInitNodes.CheckedItems.Count; i++)
         {
             Objects.First(p => p.Id == ((Node <int, string>)chlInitNodes.CheckedItems[i]).GetId().Id).BgColor = Colors[i % 8];
             var thread  = new Thread(ExecuteInit);
             var message = i < messages.Length ? messages[i] : messages[messages.Length - 1];
             thread.Start(new List <object> {
                 i, message, Colors[i % 8]
             });
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error has occured. More information: " + ex);
     }
 }
Esempio n. 2
0
 private void btnEditCustomNetwork_Click(object sender, EventArgs e)
 {
     using (var dialog = new NetworkConstructorForm(ObjectsEditCache, ConnectionsEditCache))
     {
         if (dialog.ShowDialog() != DialogResult.OK)
         {
             return;
         }
         ObjectsEditCache           = Objects = dialog.Objects;
         ConnectionsEditCache       = Connections = dialog.Connections;
         _customNetwork             = new CustomNetwork(Objects, Connections);
         txtCustomNetworStatus.Text = String.Format("Nodes: {0} Edges: {1}", Objects.Count, Connections.Count);
         rbCustomNetwork.Checked    = true;
         LoadCustomNetworkToNodePicker();
         RedrawPanel(Objects, Connections);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Only to get structure, not intended for real use
 /// </summary>
 /// <param name="network"></param>
 /// <returns></returns>
 private List <Node <int, string> > ListOfNodesFromNetwork(BaseNetwork network)
 {
     return(network.GetNetwork(new Broadcast(), new NetworkSimulator(), node_OnNodeMessage));
 }