From 2a8dbe811d6210df1709beb0454e46b096539eca Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Mon, 13 Feb 2017 22:30:38 +0100 Subject: [PATCH] =?UTF-8?q?A=20t=C3=A1bl=C3=A1zat=20g=C3=B6rgethet=C5=91,?= =?UTF-8?q?=20form=C3=A1zott;=20egy=C3=A9b=20jav=C3=ADt=C3=A1sok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Orarend/API.cs | 8 +- Orarend/Osztály.cs | 7 +- Orarend/Órarend.cs | 22 ++++- OrarendAndroidApp/MainActivity.cs | 84 ++++++++++++++++--- OrarendAndroidApp/OrarendAndroidApp.csproj | 20 +++++ .../Resources/Resource.Designer.cs | 64 +++++++++----- .../drawable/cell_shape_added_light.xml | 7 ++ .../Resources/drawable/cell_shape_light.xml | 7 ++ .../drawable/cell_shape_removed_light.xml | 7 ++ .../drawable/cell_shape_selected_light.xml | 7 ++ .../Resources/layout/MainLayout.axml | 60 ++++++++----- 11 files changed, 231 insertions(+), 62 deletions(-) create mode 100644 OrarendAndroidApp/Resources/drawable/cell_shape_added_light.xml create mode 100644 OrarendAndroidApp/Resources/drawable/cell_shape_light.xml create mode 100644 OrarendAndroidApp/Resources/drawable/cell_shape_removed_light.xml create mode 100644 OrarendAndroidApp/Resources/drawable/cell_shape_selected_light.xml diff --git a/Orarend/API.cs b/Orarend/API.cs index 2ac5490..f31bca7 100644 --- a/Orarend/API.cs +++ b/Orarend/API.cs @@ -73,9 +73,11 @@ namespace Orarend continue; if (óra == null) (ahét ? órarend.ÓrákAHét : órarend.ÓrákBHét)[i, x] = óra = new Óra(); - var csoportok = óranode.FirstChild.InnerText.TrimEnd(':'); + var csoport = óranode.FirstChild.InnerText.TrimEnd(':'); + if (csoport != "Egész osztály" && !órarend.Csoportok.Contains(csoport)) + continue; óra.Sorszám = x + 1; - óra.Csoportok = new string[] { csoportok }; //Az állandó órarendben osztályonként csak egy csoport van egy órán + óra.Csoportok = new string[] { csoport }; //Az állandó órarendben osztályonként csak egy csoport van egy órán óra.Azonosító = óranode.ChildNodes[2].InnerText; óra.TeljesNév = óranode.ChildNodes[2].Attributes["title"].Value; óra.Terem = óranode.ChildNodes[3].InnerText.Trim(' ', '(', ')'); @@ -99,7 +101,7 @@ namespace Orarend /// public static async Task HelyettesítésFrissítés() { - + //TODO } } } diff --git a/Orarend/Osztály.cs b/Orarend/Osztály.cs index 6f277fd..998a8ea 100644 --- a/Orarend/Osztály.cs +++ b/Orarend/Osztály.cs @@ -8,7 +8,10 @@ namespace Orarend { public class Osztály { - public string Azonosító { get; set; } - public string Név { get; set; } + public string Azonosító { get; internal set; } + public string Név { get; internal set; } + internal Osztály() + { + } } } diff --git a/Orarend/Órarend.cs b/Orarend/Órarend.cs index b68c187..f895069 100644 --- a/Orarend/Órarend.cs +++ b/Orarend/Órarend.cs @@ -9,13 +9,18 @@ namespace Orarend public class Órarend { /// - /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban + /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban + /// Egy hívás állítja be az órákat /// public Óra[,] ÓrákAHét { get; } = new Óra[6, 16]; /// - /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban + /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban + /// Egy hívás állítja be az órákat /// public Óra[,] ÓrákBHét { get; } = new Óra[6, 16]; + /// + /// Egy hívás állítja be + /// public string Név { get; set; } public Osztály Osztály { get; set; } /// @@ -23,5 +28,18 @@ namespace Orarend /// public TimeSpan[] Órakezdetek { get; } = new TimeSpan[16]; public List Csoportok { get; } + + /// + /// Létrehoz egy új órarendet + /// + /// Az órarend neve. Ez jelenik meg a fejlécen + /// Az osztály, amihez tartozik ez az órarend. Lásd + /// A megjelenítendő csoportok szóközzel elválasztva + public Órarend(string név, Osztály osztály, string csoportok) + { + Név = név; + Osztály = osztály; + Csoportok = new List(csoportok.Replace("Egész osztály", "").Trim().Split(' ')); + } } } diff --git a/OrarendAndroidApp/MainActivity.cs b/OrarendAndroidApp/MainActivity.cs index 7970e83..93d4b22 100644 --- a/OrarendAndroidApp/MainActivity.cs +++ b/OrarendAndroidApp/MainActivity.cs @@ -9,6 +9,8 @@ using Orarend; using System.Linq; using Android.Graphics; using Java.Lang; +using System.Collections.Generic; +using System.Threading.Tasks; namespace OrarendAndroidApp { @@ -23,8 +25,19 @@ namespace OrarendAndroidApp base.OnCreate(bundle); SetContentView(Resource.Layout.MainLayout); handler = new Handler(); + API.Frissítés().ContinueWith(t => + { + handler.Post(() => + { + TaskHiba(t); + }); + órarend = new Órarend("Teszt", API.Osztályok.First(), "gy1"); + API.Órarendek.Add(órarend); + API.Frissítés().ContinueWith(tt => HelyettesítésFrissítés()); + }); } + private int a = 0; //TODO: TMP private void HelyettesítésFrissítés() { var table = FindViewById(Resource.Id.tableLayout1); @@ -33,29 +46,69 @@ namespace OrarendAndroidApp TextView textview = new TextView(this); textview.SetText(text, TextView.BufferType.Normal); textview.SetTextColor(color); + textview.SetPadding(10, 10, 10, 10); + switch(a) + { + case 0: + textview.SetBackgroundResource(Resource.Drawable.cell_shape_light); + a++; + break; + case 1: + textview.SetBackgroundResource(Resource.Drawable.cell_shape_selected_light); + a++; + break; + case 2: + textview.SetBackgroundResource(Resource.Drawable.cell_shape_removed_light); + a++; + break; + case 3: + textview.SetBackgroundResource(Resource.Drawable.cell_shape_added_light); + a++; + break; + default: + a = 0; + break; + } tr1.AddView(textview); }; API.HelyettesítésFrissítés().ContinueWith(t => { handler.Post(() => { - if (t.Exception?.InnerExceptions.Count > 0) + TaskHiba(t); { - foreach (var ex in t.Exception.InnerExceptions) - { - TableRow tr = new TableRow(this); - addCell(ex.ToString(), Color.Red, tr); - table.AddView(tr); - } + TableRow tr = new TableRow(this); + addCell("", Color.Black, tr); + addCell("Hétfő", Color.Black, tr); + addCell("Kedd", Color.Black, tr); + addCell("Szerda", Color.Black, tr); + addCell("Csütörtök", Color.Black, tr); + addCell("Péntek", Color.Black, tr); + addCell("Szombat", Color.Black, tr); + table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)); + } - else + if ((t.Exception?.InnerExceptions?.Count ?? 0) == 0) { for (int j = 0; j < órarend.ÓrákAHét.GetLength(1); j++) { TableRow tr = new TableRow(this); + bool notnull = false; for (int i = 0; i < órarend.ÓrákAHét.GetLength(0); i++) - addCell(órarend.ÓrákAHét[i, j] != null ? órarend.ÓrákAHét[i, j].EgyediNév : "", Color.Aqua, tr); - table.AddView(tr); + { //Kihagyja az üres sorokat + if (órarend.ÓrákAHét[i, j] != null) + { + notnull = true; + break; + } + } + if (notnull) + { + addCell((j + 1).ToString(), Color.Black, tr); + for (int i = 0; i < órarend.ÓrákAHét.GetLength(0); i++) + addCell(órarend.ÓrákAHét[i, j] != null ? órarend.ÓrákAHét[i, j].EgyediNév : "", Color.Black, tr); + table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)); + } } } }); @@ -101,5 +154,16 @@ namespace OrarendAndroidApp } return base.OnOptionsItemSelected(item); } + + private void Hiba(string msg) + { + new AlertDialog.Builder(this).SetMessage(msg).SetNeutralButton("OK", (s, e) => { ((AlertDialog)s).Dismiss(); ((AlertDialog)s).Dispose(); }).SetTitle("Hiba").Show(); + } + + private void TaskHiba(Task t) + { + foreach (var ex in (IEnumerable)t.Exception?.InnerExceptions ?? new System.Exception[0]) + Hiba(ex.ToString()); + } } } diff --git a/OrarendAndroidApp/OrarendAndroidApp.csproj b/OrarendAndroidApp/OrarendAndroidApp.csproj index 8ad7dac..ed283a1 100644 --- a/OrarendAndroidApp/OrarendAndroidApp.csproj +++ b/OrarendAndroidApp/OrarendAndroidApp.csproj @@ -89,6 +89,26 @@ + + + Designer + + + + + Designer + + + + + Designer + + + + + Designer + +