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;
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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]);

            }
        }