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