From 4464cd28408ecf4b10fb5274f29753e5c9fdc4a0 Mon Sep 17 00:00:00 2001
From: Thastertyn <60262101+Thastertyn@users.noreply.github.com>
Date: Thu, 23 Feb 2023 16:18:21 +0100
Subject: [PATCH] LoginDialog and source target
Source target changed to 1.8 to allow a few things
---
pom.xml | 4 +-
src/main/java/xyz/thastertyn/App.java | 5 +-
src/main/java/xyz/thastertyn/Jecna/Login.java | 19 +++
.../java/xyz/thastertyn/Window/Login.java | 36 ++++++
.../xyz/thastertyn/Window/LoginDialog.java | 112 ++++++++++++++++++
.../xyz/thastertyn/Window/MainWindow.java | 14 ++-
target/classes/xyz/thastertyn/App.class | Bin 517 -> 678 bytes
.../classes/xyz/thastertyn/Connection.class | Bin 808 -> 808 bytes
target/classes/xyz/thastertyn/Download.class | Bin 279 -> 279 bytes
.../xyz/thastertyn/Jecna/Dochazka.class | Bin 1255 -> 1255 bytes
.../xyz/thastertyn/Jecna/Downloader.class | Bin 745 -> 745 bytes
.../classes/xyz/thastertyn/Jecna/Login.class | Bin 3133 -> 3378 bytes
.../classes/xyz/thastertyn/Jecna/Rozvrh.class | Bin 3622 -> 3622 bytes
.../classes/xyz/thastertyn/Jecna/Znamky.class | Bin 5108 -> 5108 bytes
target/classes/xyz/thastertyn/Predmet.class | Bin 276 -> 276 bytes
.../xyz/thastertyn/RozvrhDownload.class | Bin 297 -> 297 bytes
.../classes/xyz/thastertyn/Tuple/Pair.class | Bin 1804 -> 1804 bytes
.../classes/xyz/thastertyn/Window/Login.class | Bin 0 -> 1367 bytes
.../xyz/thastertyn/Window/LoginDialog.class | Bin 0 -> 5126 bytes
.../xyz/thastertyn/Window/MainWindow.class | Bin 4040 -> 3753 bytes
.../xyz/thastertyn/Window/Rozvrh.class | Bin 2346 -> 2346 bytes
.../Window/RozvrhTableRenderer.class | Bin 1195 -> 0 bytes
.../thastertyn/Window/WindowListener.class | Bin 311 -> 0 bytes
.../test-classes/xyz/thastertyn/AppTest.class | Bin 475 -> 475 bytes
24 files changed, 178 insertions(+), 12 deletions(-)
create mode 100644 src/main/java/xyz/thastertyn/Window/Login.java
create mode 100644 src/main/java/xyz/thastertyn/Window/LoginDialog.java
create mode 100644 target/classes/xyz/thastertyn/Window/Login.class
create mode 100644 target/classes/xyz/thastertyn/Window/LoginDialog.class
delete mode 100644 target/classes/xyz/thastertyn/Window/RozvrhTableRenderer.class
delete mode 100644 target/classes/xyz/thastertyn/Window/WindowListener.class
diff --git a/pom.xml b/pom.xml
index 0b6e9fa..ceeb515 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,8 +14,8 @@
UTF-8
- 1.7
- 1.7
+ 1.8
+ 1.8
diff --git a/src/main/java/xyz/thastertyn/App.java b/src/main/java/xyz/thastertyn/App.java
index 56f206e..dcdb9b4 100644
--- a/src/main/java/xyz/thastertyn/App.java
+++ b/src/main/java/xyz/thastertyn/App.java
@@ -9,10 +9,7 @@ import xyz.thastertyn.Window.MainWindow;
*/
public class App {
public static void main(String[] args) {
- //System.out.println("Hello World!");
-
- //Login l = new Login();
- //l.login(Credentials.user, Credentials.pass);
+ System.out.println("Hello World!");
MainWindow window = new MainWindow();
window.run();
diff --git a/src/main/java/xyz/thastertyn/Jecna/Login.java b/src/main/java/xyz/thastertyn/Jecna/Login.java
index f89f4e8..8cc25be 100644
--- a/src/main/java/xyz/thastertyn/Jecna/Login.java
+++ b/src/main/java/xyz/thastertyn/Jecna/Login.java
@@ -43,6 +43,25 @@ public class Login {
return true;
}
+ public void saveCredentials(String user, String pass)
+ {
+ File credentials = null;
+
+ if(System.getProperty("os.name").equals("Linux"))
+ {
+ credentials = new File("~/.local/share/jecnak/credentials.json");
+
+ }else if(System.getProperty("os.name").contains("Windows"))
+ {
+ credentials = new File(System.getenv("APPDATA\\jecnak\\"));
+ }
+
+ if(!credentials.exists())
+ {
+
+ }
+ }
+
public String getJSESSIONID()
{
return Jsessionid;
diff --git a/src/main/java/xyz/thastertyn/Window/Login.java b/src/main/java/xyz/thastertyn/Window/Login.java
new file mode 100644
index 0000000..1253417
--- /dev/null
+++ b/src/main/java/xyz/thastertyn/Window/Login.java
@@ -0,0 +1,36 @@
+package xyz.thastertyn.Window;
+
+import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
+
+public class Login {
+
+ String user = "";
+ String pass = "";
+
+ xyz.thastertyn.Jecna.Login login = new xyz.thastertyn.Jecna.Login();
+
+ LoginDialog dialog = new LoginDialog("Login", "Enter your username and password");
+
+ public void showDialog(WindowBasedTextGUI textGUI)
+ {
+ String[] input = dialog.showDialog(textGUI);
+
+ user = input[0];
+ pass = input[1];
+
+ login();
+ }
+
+ private void login()
+ {
+ login.login(user, pass);
+
+ user = null;
+ pass = null;
+ }
+
+ public String getJsessionId()
+ {
+ return login.getJSESSIONID();
+ }
+}
diff --git a/src/main/java/xyz/thastertyn/Window/LoginDialog.java b/src/main/java/xyz/thastertyn/Window/LoginDialog.java
new file mode 100644
index 0000000..f7296f4
--- /dev/null
+++ b/src/main/java/xyz/thastertyn/Window/LoginDialog.java
@@ -0,0 +1,112 @@
+package xyz.thastertyn.Window;
+
+import com.googlecode.lanterna.TerminalSize;
+import com.googlecode.lanterna.gui2.Button;
+import com.googlecode.lanterna.gui2.EmptySpace;
+import com.googlecode.lanterna.gui2.GridLayout;
+import com.googlecode.lanterna.gui2.Label;
+import com.googlecode.lanterna.gui2.LocalizedString;
+import com.googlecode.lanterna.gui2.Panel;
+import com.googlecode.lanterna.gui2.TextBox;
+import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
+import com.googlecode.lanterna.gui2.GridLayout.Alignment;
+import com.googlecode.lanterna.gui2.dialogs.DialogWindow;
+import com.googlecode.lanterna.gui2.dialogs.MessageDialog;
+import com.googlecode.lanterna.gui2.dialogs.MessageDialogButton;
+
+public class LoginDialog extends DialogWindow {
+
+ private TextBox username;
+ private TextBox password;
+ private String user;
+ private String pass;
+
+ LoginDialog(
+ String title,
+ String description
+ )
+ {
+ super(title);
+ this.user = null;
+ this.pass = null;
+ this.username = new TextBox();
+ this.password = new TextBox().setMask('*');
+
+ Panel buttonPanel = new Panel();
+ buttonPanel.setLayoutManager((new GridLayout(2).setHorizontalSpacing(1)));
+ buttonPanel
+ .addComponent((new Button(LocalizedString.OK.toString(), this::onOK)
+ .setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.CENTER, GridLayout.Alignment.CENTER, true, false))));
+ buttonPanel.addComponent(new Button(LocalizedString.Cancel.toString(), this::onCancel));
+
+ Panel mainPanel = new Panel();
+ mainPanel.setLayoutManager(new GridLayout(1).setLeftMarginSize(1).setRightMarginSize(1));
+
+ if(description != null)
+ {
+ mainPanel.addComponent(new Label(description));
+ }
+
+ mainPanel.addComponent(new EmptySpace(TerminalSize.ONE));
+
+ Panel userPanel = new Panel()
+ .setLayoutManager(new GridLayout(3))
+ .setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, Alignment.CENTER, true, false));
+
+ this.username.setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, GridLayout.Alignment.CENTER, true, false));
+
+ userPanel.addComponent(new Label("Username: "))
+ .addComponent(username)
+ .addTo(mainPanel);
+
+ this.password.setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, GridLayout.Alignment.CENTER, true, false))
+ .addTo(mainPanel);
+
+ Panel passPanel = new Panel()
+ .setLayoutManager(new GridLayout(3))
+ .setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, Alignment.CENTER, true, false));
+
+ passPanel.addComponent(new Label("Password: "))
+ .addComponent(password)
+ .addTo(mainPanel);
+
+ mainPanel.addComponent(new EmptySpace(TerminalSize.ONE));
+
+ buttonPanel.setLayoutData(
+ GridLayout.createLayoutData(
+ Alignment.END,
+ Alignment.CENTER,
+ false, false))
+ .addTo(mainPanel);
+
+ setComponent(mainPanel);
+ }
+
+ public void onOK()
+ {
+ if(username.getText().isEmpty() || password.getText().isEmpty())
+ {
+ MessageDialog.showMessageDialog(getTextGUI(), getTitle(), "Username and password cannot be blank", MessageDialogButton.OK);
+ return;
+ }
+
+ this.user = username.getText();
+ this.pass = password.getText();
+
+ close();
+ }
+
+ public void onCancel()
+ {
+ close();
+ }
+
+ @Override
+ public String[] showDialog(WindowBasedTextGUI textGUI)
+ {
+ user = null;
+ pass = null;
+ super.showDialog(textGUI);
+ return new String[] {user, pass};
+ }
+}
diff --git a/src/main/java/xyz/thastertyn/Window/MainWindow.java b/src/main/java/xyz/thastertyn/Window/MainWindow.java
index 44d7924..1b274cb 100644
--- a/src/main/java/xyz/thastertyn/Window/MainWindow.java
+++ b/src/main/java/xyz/thastertyn/Window/MainWindow.java
@@ -5,6 +5,7 @@ import java.util.Arrays;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.gui2.BasicWindow;
+import com.googlecode.lanterna.gui2.Borders;
import com.googlecode.lanterna.gui2.DefaultWindowManager;
import com.googlecode.lanterna.gui2.Direction;
import com.googlecode.lanterna.gui2.EmptySpace;
@@ -49,16 +50,17 @@ public class MainWindow {
final Panel content = new Panel();
mainPanel.addComponent(content);
- Login l = new Login();
- l.login(Credentials.user, Credentials.pass);
- Rozvrh r = new Rozvrh();
- r.download(l.getJSESSIONID());
+ xyz.thastertyn.Window.Login login = new xyz.thastertyn.Window.Login();
+
+ /*Rozvrh r = new Rozvrh();
+ r.download(login.getJsessionId());
- content.addComponent(r.getPanel());
-
+ content.addComponent(r.getPanel());*/
+
// Create gui and start gui
final MultiWindowTextGUI gui = new MultiWindowTextGUI(screen, new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLACK_BRIGHT));
+ login.showDialog(gui);
/*KeyStroke k = terminal.readInput();
if(k.equals(KeyStroke.fromString("")))
{
diff --git a/target/classes/xyz/thastertyn/App.class b/target/classes/xyz/thastertyn/App.class
index 356a6493b3d62e5f12bbb6b1b7ea905b06b2dc0f..8c05ee8d916ff55ddc090c324eade17e126e9041 100644
GIT binary patch
delta 287
zcmZvX%Syvg7=*tQThg8ejj5^DOKh#xRu|d0>kGK(LZ}zq88DQ}X(BNdT)FZA@)GV<
zsGuOa^=W(p@o2U(FfcRB{QP%?`=b2(et84-*vaJ6ZJBwhCXT?q2(ANP1<}wS++3yM
z*kS=!FcVKwf!qI!N3nm9jG}aqCSfq{l~@#5`=L^C<0MYhc~eqn#bjAf{ik5D%9_Bu
z{M}HIpze0^;rwo@{b8?rY_gucw<{iHiN}UTEBpF5JHpTa_YvEvO<8)yJAJ0n-<{HY
n(1C%}>`>5bQDPRGIsL^U746jWGMluuvMI8~HbSGLwL$j>0{uF;
delta 127
zcmZ3++RDOp>ff$?3=9m$3^EhBHZ!v`2u==VROJ?6;N)TuU=ZP95S`r0cre71fe8p1
z7Q-2GIbd#eqBy237_M
P21y1+Ad~{~nHZ!2j#m$z
diff --git a/target/classes/xyz/thastertyn/Connection.class b/target/classes/xyz/thastertyn/Connection.class
index 2fe37209e57686252c0a7ece42abf30eff19a8c7..242c415d6ea96fa95c7f248076a07e383edd6f8f 100644
GIT binary patch
delta 17
ZcmZ3%wt|i0)W2Q(7#J8#HgYI10{}dv1+@SG
delta 17
ZcmZ3%wt|i0)W2Q(7#J9gH*zR20{}dq1+)MF
diff --git a/target/classes/xyz/thastertyn/Download.class b/target/classes/xyz/thastertyn/Download.class
index 6c11016b6517e3b4797589f08d0b92b4aee5ef05..51b02c3d8074b76e38f03d3422d4a096a1185a29 100644
GIT binary patch
delta 17
ZcmbQvG@Xg#)W2Q(7#J8#HgfPY0suMa1$Y1e
delta 17
ZcmbQvG@Xg#)W2Q(7#J9gH*)YZ0suMV1$O`d
diff --git a/target/classes/xyz/thastertyn/Jecna/Dochazka.class b/target/classes/xyz/thastertyn/Jecna/Dochazka.class
index 028a458c3f9f2f86f11fa27d1c0d9fc2b1ab834d..5e449962e129bfb14cc0e24a6a3e64ed1fe13f6d 100644
GIT binary patch
delta 17
ZcmaFP`J9vE)W2Q(7#J8#Hgeo&0RTo_2KfL0
delta 17
ZcmaFP`J9vE)W2Q(7#J9gH*(x(0RTo=2KWE~
diff --git a/target/classes/xyz/thastertyn/Jecna/Downloader.class b/target/classes/xyz/thastertyn/Jecna/Downloader.class
index dc97d604d9c050208f3564d73be90c0d7327cb83..b6a040f778a1f5a8b1dfdb456d1d373ea3901f2b 100644
GIT binary patch
delta 17
ZcmaFK`jVC7)W2Q(7#J8#HgY^<0suxQ2K4{{
delta 17
ZcmaFK`jVC7)W2Q(7#J9gH*!2=0suxL2J`>`
diff --git a/target/classes/xyz/thastertyn/Jecna/Login.class b/target/classes/xyz/thastertyn/Jecna/Login.class
index 437081046844768acc73c1cce55005174c25b8bb..f8ffa277b96031a11b2beeb2b7f80b7c47e4fce6 100644
GIT binary patch
delta 1251
zcmYjQU2qds6#h25o86?VDYwuX`!iY@N`tW-WKgOONG;lwCY2N#q_k|?r4325X?7DW
zD#3q6Mf9pr|4{s?KUHa=Apy%cJ~=)ybOsz49(?i12j6_~XFN&D40C7BJ@?#mzw_Pi
z+`Dkg+^z0k{yTdfz&f0tbuT(9J(iv^+Ed1ek+7qB+~RJr*|S4{l(vi%O-bFd_*KU)
zVJp8!tgjEEM?pw{$4rg3?6b^tvL#To8Xm(Fespw-=?nMS;;AD&@sdZrDipP5e)|R@*`3^
zEygrNv5#MsTC3v(90+%W!=0gE=R*}pAgRFQx66%e0u2J3!=@RF8Y(OSEqv11z%99o
zMUd7of&L7nr`rJvxPN-b&gnTF5t1&=Fhr7tyn#ZM@ARDG*Kf$D;Q?=`rfDwyTJDviP^{H@d2`!D-a9nmoMht{hsYP15rc!dA%TA6JxVQHmv@)DMSP6Q~T0m7e<2@ANwy7K5|VYa=1J`r=+
zUBIvd1&j&^`ur?bz_
c7E
zc9;@3_HhZ^(#*TTV0^SqBK3r3tKf1F#A7`JG9NPYLiC~-T%VT;u
zz8;^)jE@-2%;P(8CRmxxk~uI#N&y#e5hqLYCAwa@4~Ni5kpOAXg`2Sz)#yeot?LlN
zYJ}lOFZE)D>>9vh1$xT}mrg
zE3+)Ed@{>0`>h$7f)Fd&)Vrovjm+2#FPh0epy^%jn$9jY`Qo1E{P>>pe9t-e8N2&N
zS@7q-uYV8J^4-kEm|YvJ&;uJo@i@0Z%m;f8RyskNnPb20mf8w@Ba3N=z@
zV7|p5_bQ5dlF5OXW0KS({)g=d`}2X0Je#zIOGe-JFJJPE!j2_U8Fxn_I_Ru-lLJno
zwmZlHo-;V8DARxV%Y^dtyr3J4*00Md{KL_B#tCwSmkeH1l>a}Mv=f&Z)HKAMK_}tL
zH81Cx_@b^mWb%ssp=iajE?%{Gja}kyYYj(CURPK$JXaE`BL`AK_=L8M`?GIK3#~)3
zzL*U3Z9xwu;}X*fBkg8-1#NO#AajiKU7fLbj}AfhM%}2%S@`iEmhTaUyhiE2}KY|EQeJ@$$-;&wdDcEO$>DmR
zeN>QR94i#EkK1n)D%&UR#_XK--(`0cvEQ;!6{^|ql>2hL>&1S5)!g~P19Rs&`+Px>
z@W=lWtoK(<@p&m12Pe2xC5$djFzOv`nU|IC&?p{h@E2}!xp3Yhdj&7^#W>DVk!xiJ
zk8&4vETW#pV&B6$R1#p4*-#02oeAQ
delta 29
lcmZ1`vrI1#p4*-!)2oV4P
diff --git a/target/classes/xyz/thastertyn/Jecna/Znamky.class b/target/classes/xyz/thastertyn/Jecna/Znamky.class
index a1b1bbd9ad7e613ca41f1b9f216f13121dbf1934..bc021b48096617377daa0010b6211b3d7670213e 100644
GIT binary patch
delta 17
ZcmeyO{zaYR)W2Q(7#J8#HgdcX1^`Q{2WtQT
delta 17
ZcmeyO{zaYR)W2Q(7#J9gH*&lY1^`Q?2WkKS
diff --git a/target/classes/xyz/thastertyn/Predmet.class b/target/classes/xyz/thastertyn/Predmet.class
index cd35ab9e685c3e1fb49ba5c986c9377726b36aba..8ffad90deee3154f9bace5d72c533bc95fae967a 100644
GIT binary patch
delta 17
ZcmbQjG=+)d)W2Q(7#J8#HgfPV0suLJ1#bWV
delta 17
ZcmbQjG=+)d)W2Q(7#J9gH*)YW0suLE1#SQU
diff --git a/target/classes/xyz/thastertyn/RozvrhDownload.class b/target/classes/xyz/thastertyn/RozvrhDownload.class
index d6fbc4c0e304e472b12d785467ced891062ba007..29eccbb87fd63fb3deacb888b49df54436434672 100644
GIT binary patch
delta 17
ZcmZ3*3=#^>5cc1_lO`jT|iO06E|VbpQYW
delta 17
YcmeC->*3=#^>5cc1_lP>jT|iO06E(QbN~PV
diff --git a/target/classes/xyz/thastertyn/Window/Login.class b/target/classes/xyz/thastertyn/Window/Login.class
new file mode 100644
index 0000000000000000000000000000000000000000..efdcebffca2c61e9350abc3d2e5675b24b328930
GIT binary patch
literal 1367
zcmbVL>rN9v7(GKvZ!S_>OSLUnK%^I>TJZ*W2?D01LQJuQ_-kn=Wl7m3-K~I6rHMeI
zi4WjI8P9ARAQX-IW51c5J$ue~IrHP^*Y5yk@Y0Vyf#kvA$AYu1+m38Ghh|~JFzeQS
zp=>n_(+{sect`)B7n-`+D6DPm$eJVIZQHUX5GkL1syHpfY|Qc7o^IO${Y^z6kSbr`
zUy(Ia@6Z$Ns~b9z0^=8P=kr)}K?*)^n1=IQz>~>VsrAaL%Md&WYtS$dKtupR2wd0D
z51-l%Y4F46#|?qR?=uM@jfY%#gip?RQ!$Fq0|QtldJxvKmcUV_Vh4Sq*2^XdA_@
zEf#cJ*4O2M^ZH$BE?ZUgOl!!aAh7%&1n+wb4zb+(Y6t@Yey5|vlYdT*gE7p#Hq9En
zR3(nbO6AF44`M-Jpdp9~zet%C_!GKe{U&z|~76t&usoWP#W9lRN_-!E-_|v?@VWid?0%e5ymL5T8uhFu131U)72m&
zig-YkAaOHz$V~f`7rMG{iB{z%shi*v#A=gLZ+
lmh}{~UHT$dMITV~$C&%XeWz7E_k8T!|AEv0pS!3RzW_k=E}8%U
literal 0
HcmV?d00001
diff --git a/target/classes/xyz/thastertyn/Window/LoginDialog.class b/target/classes/xyz/thastertyn/Window/LoginDialog.class
new file mode 100644
index 0000000000000000000000000000000000000000..926ccde4872dc4937632f830f81f5541d9f585ce
GIT binary patch
literal 5126
zcmbVQi(gw;9seE(xe#uJQkey}j*gawKpR(9?O>}b6k65*6(|hq<}S%4+>+dj$xU0T
z^R?>S%c*nKb-uQ#b3RvGLv8J>k4>HRJ>UKTe*7PNe9yf%BnVAt`6TzA{Lb(FI={o~
z|GDrAfZOm71!V%8Pt2bT+cR3))>HPp86G#xm~}iHvEqig&(IQ9T!ByE)~J;X$1N+K
z(4$sN4<|H}1f~{_XN;ZUn1h%Oy96!^fyzu;q9k>JmPk?hQT>G7ZJp>M&777_AGcC5
z0iPrnsEZucj%iY0JUn8j3^PtNpF|Vz-(i@By+>eMa3$7CNb49Wd#HW@<)~3njaq^F
zRY+UMszAvqDp4g@Z&ndNm4X`twyedF0P3+(@^26*54zmms-gn^0B*v~3N{IB$eYzO
zqouSc{i&h}n+23(S|XzlO$%%c_Ouq*v4q$qB{Zwpf~`bP>-K<_o)x&W(3U)M>)O08
zE#0OB7h(^DrhHNQRMw8BNox-t&AN&8+J&~gc*upf9se8+^S+H
zI_PE^a==O%CoR*~5+ie3l+hMwCth(2^8D$TAa<#EJKiBsOMb4{0nOCnGMk2j#W^iQ
z?{Zc?9#)oZx%}woU|~{uMODY9(5s>k`inq
zu|M_7AWf-=%6_q4TC7jA`K5STjj&|ouC8KQ?$&X4*oe;*Y%7>4)z>20l{EIblCTu8YOZ=fjOwYRVY07LPZe``FY9b*u(#OZSV%(OA4OUgmF*PO
z)mq3h8n>v9sW>jH!`IgziO3ML>(*ne67LfT9QF?B&L+9@fQk>`g8~%{?xWPmRjHB!>yvA;+|oA%A;7pFLx6m}p)@x1(ch!Rq1+R3$aT^hm1Yu#;QM;l^998?m+M?0`1s=&IneY)$!wn``Jk%N#l=V|qr#
zGqTw$aov_fRRE{)1r=Y!mk2Y`PQKE~!PZIX3aGyd<#m+BH$JfbYqUG-DlK
zrlP==5;?nyKMT&sl_#bLIdc7$mI!chCkdQWk(HBeMKochSqhbw={9I)lCYE
z8{T?krRj25zo_Coe!%vB9V`nt4ow}^qc-mkitT1DM~&icTqQU%*)L0dzE68ctV}AZ
z_ZhM!)D~QtcE}
zw1pF*$GJyK@EEl9t{OjnT8jqh(qF0g92#mWaD@O5_InkJ4(xXX@G$5%O+D3llLR%&AXxV=FO1r3Vy4h
z5`P_$-XIR4;<-@UBHk1d=dfNrHiRyseqs@CIfusFvNm)cH)e6mIka3vkei{w?HAED
zQL%{azAWCB#cksR?4DRaXBKybE?^(%l>-Yn$d9l5Jl>VX;VdR{SogYE_d8e;?y>Fk
zH~1xEpUYSy^O$7b{uRpGG`vb%c>qE7Jx%>`A=
zqP{R*aS5j<%BlbQkqIAP8%ACtOP75eiGW$=Qi8dZL@i85%ngp%=3K0pS(oq%MD1RA
zymj%ch6<)(K+*_k#8m486Ge_SsDy;J)G`6d6R;BWqL0^AfA5iPfu$gAaU{GVDm}M$q1`385
zQ4?lEQHpam2IuqMKtZ{9W?*ma35#CF^2SAt@l_+D`&E?{EsK+}xx|Eqm5wJz4!W_v
zWVc40TnedE9-q?`OLv{==o%etIo|r8G--2%DK%-OLepF~xTaCs6B~|2++?KnSo7%V
zuGFBLOxWB|B}Kn2uMk~{QrRXcy{jozt?g>hR7S5*5zSONd$;yl{j&FX-fL7#sA|>j
zZ#Nx0R8Wkg7W^S|PR1{kkNd2C`o}ZzXpWwG-wM6a@CyBMO0JNKE^#);XpRf@hU0UL
zEaQ&hc(PpXoTuWm?H`m=eLA#LUks=(SRHvfSjBv<~uw+uRYQMwGkU
zlOY;NGsAsJJ48K7G_SBX^MHr=q(d=}n3eR)a^tbQ*LiwCprz=4C5CRG8O-IEX^(i%
cSNpx-rPOkvr-ksQ(V2W!jt`js0E(fGssI20
delta 967
zcmZva+i#3{7{@=qIlb@9`=TvvIzr0Gh;BpqXzooQz}b?!LS
znXURcZPj7zQg!OKyQV0vg-bz#Wd8v-d*K$(l(?z9$@lra&*A%hp6B=L8UJ*G@7c$P
zPkLUO3!SR&CIt7}t?gkX{qt(UREY
zBZZYE+-|djor)3RQ1kNIA8TuCeqL3xL@}ncY&cK0YPU@*X@%Jk-x`a?gAI!O?=(?X
zolV|rvyc6fEbOa;u~1Ywn5vu9SY73G>&H&hbwCl&eOBR+BWmS24G!sEW3Klgmcdb(
z@LSX}ZSQe@GdQ7yBwKUa^y;+fcH6XbQm-%aw2Z``}S>6~!xMO*voIv_Rnury`09{lBAFN3BJw
zPp2JYbwGJ_%xCI1)=XDMG3i@70XyIIP%(MPvB6$fQHYBoMo~zfybBv8n8Rqsh?Ui0
z3VP-EQaTmOJN@2nP22SYjI8wdJ^gIzCzhe9Zjh8Xw^kZ{!|%zkEyJ!lzuRwQ*ps0_
z!fo~CgB+Bc!-E{D@8{S69Rr-MH2tREmEl}nH|9^}87}mRq=Of{q6;UvBKivjg2m#U
z#0VynE?^4dC=o1`w>+JNlvB+N))J6+TOn6Fi(Sm-0CVVIE}hKd8uR&EGM}?p$d~e(
zWxSpva@}i+rb;I@Q1Wfz+m%oI=DGcX!a-D8jT#EJF5T{#&Rtb9K
z>lB$DZpylz%kpkNixyL}2
PpE{;-Uu+c*7{vP-K{?_1
diff --git a/target/classes/xyz/thastertyn/Window/Rozvrh.class b/target/classes/xyz/thastertyn/Window/Rozvrh.class
index 6982ef3773cc048ab670177b785f9f145ea98899..3a4dab834ceedb66c64d459dc3842e17fe83d8fa 100644
GIT binary patch
delta 17
ZcmZ1_v`UEM)W2Q(7#J8#HgYI&0suZ%1=#=q
delta 17
ZcmZ1_v`UEM)W2Q(7#J9gH*zR(0suZy1=s)p
diff --git a/target/classes/xyz/thastertyn/Window/RozvrhTableRenderer.class b/target/classes/xyz/thastertyn/Window/RozvrhTableRenderer.class
deleted file mode 100644
index c4225e785cb88c49cda9c500adcaba15fe87efe7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1195
zcmbtTTTc@~6#l04vKA06qIjiVTQFf0<*kMnqNGV91`5Q)m+kIpJ7jmJnNFebuY4lW
zMBn{U#xq+8NQ!~@urue(Ip_P%ZGZj#_5;9MR13%mEDjHkeA^BBmW(}A{;pJ!KJYj7
z(Z1<6gH}wNq#`n83djoF+6(prKMqvK-)QYoXbZ>-tb{u8J6d;Q3Ux%z&TuO5I|KQ~
zw+_WmvDPS#Pw@ou@1&A;RbZmJxFe8Vw8*5<0;PrygLo$}
z(qW!FW^GsY1ztC5%RKf6(h`V=3C`kqNBS>isaJo)bLGvGcZ)NiU{^xUEq+A=}kaxpJ|BN)aX8
zbG@4vn5&*kamyO1IyKkiTsjSbrAw2&I5TcmHsrav?w@5nnm*emLmdwiRp%uc3W&OZ
zXY|2|>P03va6=c+|JmJt=i8*AUEi*+o1oW~VV_I&@LXVFeCJNHs_>54zas^fug4@%
z+|mOR(gzvy63vhKbCzA(@D#l0{N?!Xb2qOzpEp?Z`4)WVmX1;U%0dQHeCE?f57R79
zjT~?jGpzCY;x?Zy_zQzM$l`aDK9}wstv@c-CfKza1>sTpMK*M1