private async Task ExecuteLoadItemsCommand() { if (IsBusy) { return; } //var lines = text.Split('\n'); //foreach (var line in lines) //{ // var fields = line.Split('\t'); // foreach (var field in fields) // { // Debug.WriteLine(field); // } //} IsBusy = true; var error = false; try { var responseString = string.Empty; var assembly = typeof(ServerViewModel).GetTypeInfo().Assembly; Stream stream = assembly.GetManifestResourceStream("VASSALChatter.getCurrentConnections.txt"); using (var reader = new System.IO.StreamReader(stream)) { responseString = reader.ReadToEnd(); } //using (var httpClient = new HttpClient()) //{ // var feed = "http://www.vassalengine.org/util/getCurrentConnections"; // responseString = await httpClient.GetStringAsync(feed); //} ModuleItems.Clear(); List <ModuleItem> items = await ParseData(responseString); //foreach (var item in items) //{ // ModuleItems.Add(item); //} ModuleItems = new ObservableCollection <ModuleItem>(items); } catch { error = true; } if (error) { var page = new ContentPage(); await page.DisplayAlert("Error", "Unable to load server list.", "OK"); } IsBusy = false; }
public void updateActiveProperty(ModuleItems.Property tobeupdated,CanvasCtrl c) { foreach (object j in m_model.SelectedObjects) { if (j.GetType().ToString().IndexOf("Module") > 0) { ModuleItems.Module temp = j as ModuleItems.Module; foreach (ModuleItems.Property p in temp.Properties) if (p.name == tobeupdated.name) p.value = tobeupdated.value; } } DoInvalidate(true); }
private void Trace(ModuleItems.Module m, List<ModuleItems.Module> l) { CanvasWrapper c = new CanvasWrapper(m_canvas); List<ModuleItems.Module> toremove = new List<ModuleItems.Module>(); foreach (ModuleItems.Property p in m.Properties) if (p.name == "name") foreach (ModuleItems.Module n in l) foreach (ModuleItems.Property q in n.Properties) if ((q.name == "from" && q.value.ToString() == p.value.ToString()) || (q.name == "parent" && q.value.ToString() == p.value.ToString())) toremove.Add(n); foreach (ModuleItems.Property p in m.Properties) if (p.name == "to") foreach (ModuleItems.Module n in l) foreach (ModuleItems.Property q in n.Properties) if ((q.name == "name" && q.value.ToString() == p.value.ToString())) toremove.Add(n); for(int i = 0;i <toremove.Count;i++) { int spacerX = 0; int spacerY = 0; while (m_canvas.Model.GetHitObjects(c, new UnitPoint(m.ToPoint.X + spacerX * 2, m.ToPoint.Y - 1 - spacerY*2)).Count > 0) if (spacerX++ > 5) { spacerY++; spacerX = 0; } toremove[i].FromPoint = toremove[i].StartPoint = toremove[i].ToPoint = toremove[i].EndPoint = m.ToPoint; if (toremove[i].tofrom) { toremove[i].StartPoint = new UnitPoint(m.ToPoint.X + spacerX * 2, m.ToPoint.Y - 1 - spacerY * 2); toremove[i].EndPoint = new UnitPoint(m.ToPoint.X + 1 + spacerX * 2, m.ToPoint.Y - 1 - spacerY * 2); toremove[i].ToPoint = new UnitPoint(m.ToPoint.X + spacerX * 2, m.ToPoint.Y - 2 - spacerY * 2); } if (toremove[i].child) { toremove[i].StartPoint = new UnitPoint(m.StartPoint.X + spacerX * 2, m.StartPoint.Y - 1 - spacerY * 2); toremove[i].EndPoint = toremove[i].ToPoint = new UnitPoint(m.StartPoint.X + 1 + spacerX * 2, m.StartPoint.Y - 1 - spacerY * 2); } Model.AddObject(Model.ActiveLayer, toremove[i]); l.Remove(toremove[i]); } while (toremove.Count > 0) { Trace(toremove[0], l); toremove.Remove(toremove[0]); } }