From 413692ec4cb6e8d3326661ae3e0f1f398cab8da4 Mon Sep 17 00:00:00 2001 From: esoe Date: Fri, 22 Apr 2022 16:40:07 +0300 Subject: [PATCH] gui curr --- src/main/java/ru/egspt/moodle/App.java | 12 ++-- src/main/java/ru/egspt/moodle/Base.java | 7 ++- .../java/ru/egspt/moodle/BaseControls.java | 55 ++++++++++++++++++ .../moodle/events/ConnactionListener.java | 6 +- .../moodle/events/DisconnectionListener.java | 13 +++++ .../moodle/events/TagButtonListener.java | 22 +++++++ .../java/ru/egspt/moodle/panel/Account.java | 11 ++-- .../ru/egspt/moodle/panel/CurrentTag.java | 5 -- .../java/ru/egspt/moodle/panel/TagPane.java | 38 ++++++++++++ target/classes/ru/egspt/moodle/App.class | Bin 1330 -> 1597 bytes target/classes/ru/egspt/moodle/Base.class | Bin 14491 -> 14495 bytes .../ru/egspt/moodle/BaseControls.class | Bin 0 -> 2213 bytes .../moodle/events/ConnactionListener.class | Bin 1542 -> 1403 bytes .../moodle/events/DisconnectionListener.class | Bin 0 -> 774 bytes .../moodle/events/TagButtonListener.class | Bin 0 -> 1071 bytes .../ru/egspt/moodle/panel/Account.class | Bin 3044 -> 3115 bytes .../ru/egspt/moodle/panel/CurrentTag.class | Bin 299 -> 0 bytes .../ru/egspt/moodle/panel/TagPane.class | Bin 0 -> 1656 bytes 18 files changed, 149 insertions(+), 20 deletions(-) create mode 100644 src/main/java/ru/egspt/moodle/BaseControls.java create mode 100644 src/main/java/ru/egspt/moodle/events/DisconnectionListener.java create mode 100644 src/main/java/ru/egspt/moodle/events/TagButtonListener.java delete mode 100644 src/main/java/ru/egspt/moodle/panel/CurrentTag.java create mode 100644 src/main/java/ru/egspt/moodle/panel/TagPane.java create mode 100644 target/classes/ru/egspt/moodle/BaseControls.class create mode 100644 target/classes/ru/egspt/moodle/events/DisconnectionListener.class create mode 100644 target/classes/ru/egspt/moodle/events/TagButtonListener.class delete mode 100644 target/classes/ru/egspt/moodle/panel/CurrentTag.class create mode 100644 target/classes/ru/egspt/moodle/panel/TagPane.class diff --git a/src/main/java/ru/egspt/moodle/App.java b/src/main/java/ru/egspt/moodle/App.java index 23de895..54a1bd9 100644 --- a/src/main/java/ru/egspt/moodle/App.java +++ b/src/main/java/ru/egspt/moodle/App.java @@ -5,7 +5,7 @@ import javax.swing.JPanel; import javax.swing.WindowConstants; import ru.egspt.moodle.panel.Account; -import ru.egspt.moodle.panel.UserByTag; +import ru.egspt.moodle.panel.TagPane; /** * графический интерфейс для @@ -13,14 +13,15 @@ import ru.egspt.moodle.panel.UserByTag; * */ public class App extends JPanel { + Base base = new Base(); JFrame mainframe = new JFrame("moodle-anyreport"); - Account account = new Account(); - //Users pUsers = new Users(); - + Account accountPane = new Account(); + TagPane tagPane = new TagPane(base); //Заполняем панельку компонентами App(){ - this.add(account); + this.add(accountPane); + this.add(tagPane); } //устанавливаем панельку на форму public void init(){ @@ -36,7 +37,6 @@ public class App extends JPanel { System.out.println( "Работает подготовщик отчетов по результатам тестирования пользователей ..." ); App anyreport = new App(); anyreport.init(); - //System.out.println( "Работа с приложением завершена." ); } } diff --git a/src/main/java/ru/egspt/moodle/Base.java b/src/main/java/ru/egspt/moodle/Base.java index 5993d46..103bca5 100644 --- a/src/main/java/ru/egspt/moodle/Base.java +++ b/src/main/java/ru/egspt/moodle/Base.java @@ -39,6 +39,11 @@ public class Base { private ArrayList users; private ArrayList results; private ArrayList quizes; + + + public Base(){ + + } /** * @return the quizes @@ -439,7 +444,7 @@ public class Base { System.out.println("Пользователей (без дублирований): " + fusers.size()); System.out.println("Пользователей (balbesers): " + balbesers.size()); } - + /** * Главный метод, для проверки кода * @param args diff --git a/src/main/java/ru/egspt/moodle/BaseControls.java b/src/main/java/ru/egspt/moodle/BaseControls.java new file mode 100644 index 0000000..64b057e --- /dev/null +++ b/src/main/java/ru/egspt/moodle/BaseControls.java @@ -0,0 +1,55 @@ +package ru.egspt.moodle; + +import java.sql.Connection; +import java.sql.DriverManager; + +public class BaseControls { + private static Connection connaction = null; + /** + * @param connaction the connaction to set + */ + public static void setConnaction(Connection conn) { + connaction = conn; + } + /** + * @return the connaction + */ + public static Connection getConnaction() { + return connaction; + } + public static void connect(){ + System.out.println("Подключение к серверу баз данных ..."); + Connection conn = null; + try{ + //данные аккаунта + conn = DriverManager.getConnection (Access.getURL(), Access.getUserName(), Access.getPassword()); + System.out.println ("Подключение к серверу баз данных установлено ... "); + + + } + catch (Exception ex){ + System.err.println ("Подключение к серверу баз данных не установлено ... "); + ex.printStackTrace(); + System.out.println (ex); + } + setConnaction(conn); + } + + //отключение от базы + public static void disconnect(){ + if (getConnaction() != null){ + try{ + System.out.println("Попытка отключения от базы данных ... "); + getConnaction().close (); + System.out.println ("Подключение к базе данных завершено. "); + } + catch (Exception ex){ + System.out.println ("Подключение к серверу баз данных уже отсутствует."); + System.out.println (ex); + } + } + } + public static void main (String[] args){ + + } +} diff --git a/src/main/java/ru/egspt/moodle/events/ConnactionListener.java b/src/main/java/ru/egspt/moodle/events/ConnactionListener.java index eba6ea1..0c63d5c 100644 --- a/src/main/java/ru/egspt/moodle/events/ConnactionListener.java +++ b/src/main/java/ru/egspt/moodle/events/ConnactionListener.java @@ -4,6 +4,7 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import ru.egspt.moodle.Access; +import ru.egspt.moodle.BaseControls; import ru.egspt.moodle.panel.Account; public class ConnactionListener implements ActionListener{ @@ -16,9 +17,6 @@ public class ConnactionListener implements ActionListener{ Access.setUserName(account.getLoginField().getText()); Access.setPassword(String.valueOf(account.getPassField().getPassword())); Access.setUrl(account.getUrlField().getText()); - System.out.println(Access.getUserName()); - System.out.println(Access.getPassword()); - System.out.println(Access.getURL()); - account.getMainframe().dispose(); + BaseControls.connect();//подключиться к базе } } diff --git a/src/main/java/ru/egspt/moodle/events/DisconnectionListener.java b/src/main/java/ru/egspt/moodle/events/DisconnectionListener.java new file mode 100644 index 0000000..3954188 --- /dev/null +++ b/src/main/java/ru/egspt/moodle/events/DisconnectionListener.java @@ -0,0 +1,13 @@ +package ru.egspt.moodle.events; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import ru.egspt.moodle.BaseControls; + +public class DisconnectionListener implements ActionListener{ + public void actionPerformed(ActionEvent e) { + System.out.println("Нажата кнопка DisConnect"); + BaseControls.disconnect(); + } +} diff --git a/src/main/java/ru/egspt/moodle/events/TagButtonListener.java b/src/main/java/ru/egspt/moodle/events/TagButtonListener.java new file mode 100644 index 0000000..f859c0d --- /dev/null +++ b/src/main/java/ru/egspt/moodle/events/TagButtonListener.java @@ -0,0 +1,22 @@ +package ru.egspt.moodle.events; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import ru.egspt.moodle.Base; +import ru.egspt.moodle.BaseControls; + +public class TagButtonListener implements ActionListener{ + Base baseTagged; + public TagButtonListener(Base base){ + baseTagged = base; + } + public void actionPerformed(ActionEvent e) { + System.out.println("Нажата кнопка TagButton"); + //Добавляем выбранный тег в список, для возможности удаления + //фильтруем выборку пользователей и выводим в текстовую область + baseTagged.setUsersByTeg(BaseControls.getConnaction()); + System.out.println("Выборка пользователей изменена ... "); + + } +} diff --git a/src/main/java/ru/egspt/moodle/panel/Account.java b/src/main/java/ru/egspt/moodle/panel/Account.java index 526aa21..661b992 100644 --- a/src/main/java/ru/egspt/moodle/panel/Account.java +++ b/src/main/java/ru/egspt/moodle/panel/Account.java @@ -12,6 +12,7 @@ import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; import ru.egspt.moodle.events.ConnactionListener; +import ru.egspt.moodle.events.DisconnectionListener; public class Account extends JPanel{ @@ -23,7 +24,7 @@ public class Account extends JPanel{ private JLabel urlLabel = new JLabel("Адрес сервера: "); private JTextField urlField = new JTextField(25); private JButton connButton = new JButton("Подключиться"); - private JButton connCloseButton = new JButton("Отключиться"); + private JButton DisconnButton = new JButton("Отключиться"); public Account(){ loginField.setText("esoe");//значения по умолчанию @@ -35,7 +36,10 @@ public class Account extends JPanel{ this.add(urlLabel); this.add(urlField); this.add(connButton); - this.add(connCloseButton); + //настройка кнопки connButton + connButton.addActionListener(new ConnactionListener(this)); + this.add(DisconnButton); + DisconnButton.addActionListener(new DisconnectionListener()); TitledBorder border = new TitledBorder(new LineBorder(Color.black), "connection to mysql", TitledBorder.CENTER, TitledBorder.CENTER); this.setBorder(border); //this.setBorder(BorderFactory.createTitledBorder("аккаунт сервера базы данных")); @@ -48,8 +52,7 @@ public class Account extends JPanel{ mainframe.setSize(320, 240); mainframe.setVisible(true); - //настройка кнопки connButton - connButton.addActionListener(new ConnactionListener(this)); + } /** * @return the loginField diff --git a/src/main/java/ru/egspt/moodle/panel/CurrentTag.java b/src/main/java/ru/egspt/moodle/panel/CurrentTag.java deleted file mode 100644 index 0db07af..0000000 --- a/src/main/java/ru/egspt/moodle/panel/CurrentTag.java +++ /dev/null @@ -1,5 +0,0 @@ -package ru.egspt.moodle.panel; - -public class CurrentTag { - -} diff --git a/src/main/java/ru/egspt/moodle/panel/TagPane.java b/src/main/java/ru/egspt/moodle/panel/TagPane.java new file mode 100644 index 0000000..851740c --- /dev/null +++ b/src/main/java/ru/egspt/moodle/panel/TagPane.java @@ -0,0 +1,38 @@ +package ru.egspt.moodle.panel; + +import java.awt.Color; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.WindowConstants; +import javax.swing.border.LineBorder; +import javax.swing.border.TitledBorder; + +import ru.egspt.moodle.Base; +import ru.egspt.moodle.events.TagButtonListener; + +public class TagPane extends JPanel{ + private JFrame mainframe = new JFrame("Настройка выборки"); + private JTextField tagField = new JTextField(20); + private JButton TagAddButton = new JButton("+"); + //private JButton TagDelButton = new JButton("-"); + + + public TagPane(Base base){ + TitledBorder border = new TitledBorder(new LineBorder(Color.black), "Настройки выборки", TitledBorder.CENTER, TitledBorder.CENTER); + this.setBorder(border); + tagField.setText("");//значения по умолчанию + this.add(tagField); + TagAddButton.addActionListener(new TagButtonListener(base)); + this.add(TagAddButton); + //this.add(TagDelButton); + } + public void init(){ + mainframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + mainframe.add(this); + mainframe.setSize(320, 240); + mainframe.setVisible(true); + } +} diff --git a/target/classes/ru/egspt/moodle/App.class b/target/classes/ru/egspt/moodle/App.class index 158246bde37ee685dfaedc653528c98c4404b5c7..a5d928ec1db629ef36f22c5fac28eb2a9ffb6f4d 100644 GIT binary patch literal 1597 zcmaJ>*>W326g@2~9(gh(l59CP#I~|H)`BJ0us9GLCngReG02f|0uOC#Vuq4tRHG42 zcnaZxf}$$Fz$XwBNg)RF&eP}*_!5fKGb(}?sHy4Y_PO_-yLA8Y*VA19ui-Nd5rJX1 zRWvu74X;>toNCQ1&Nmtwq5{b;VTz&@>HA;LBwmG-28v+N(dl!@PcJq-n#+= znQVn@7o4i8V*m*Q&*7McVX``mxsD_fLttPAj$ly3*#7tf_Axv!5D)V-EA4x(*>GG> z#|fNN4kiRrnIPz5O)_a^&t>lBvK3`{%7BKLhEoC)`zh=RSw}kLa@N2QbPebJQ==ca zj%j2RfvmuI=0HM&(u5@P29CneNoUqT0YxTCR;vQJK5e<>6&IX(!?8`=gia}G^d&9t+cuQcc zX?mBt7HUq@ywNaS=~<3VcxEYEQP^2ETrltsSZ0k1W$PzQ`dtd>3L(L_}BE?XdT`|uhr;R6lVsH)n!U*UUA z&#W6L;X|gqmA|1_<(y>AtQ$J+ra-MjC%{ci6Yf2a3@(hqF>n&#B*ea-O+0R+?VZ(KhN zO%v;PL$Lz-JN$o17YYR(AEB(_W8VKm=o(m2&8#(41T|arOF|8+2A_>%%#?IDS=!-4 z62&LrpNqj7l%1BlVJ=##OJXd1L3zU|+8W>+6y?wB#u4gr1T$McnAxYC6^b{P_~TqX zq=w+UluD87`;Sa*vVfVy2B;j>|J0ytt|s zIkk91V-dW>@pRyRln&x_mB2~92s0SQd3M`HjNvNA@iK8nNC2jCTej a$o|Vk3ZGz&M&c~aEygMM-R3@mPyYthA)hAz delta 695 zcmYk3+int36o&sjGcYjS&|x@A0c)WMGgdsbo^7qItsq_*OR6z(tP_KwP=VU&O&hOG z44Eq*!^RGYjXr?S;Dt|OTw9vd?99qK?e(pH&v$;H=|BH``vG7U4^>DEQTL4$9pux4 zXZe6?Z)|k7+x@}E!r)hGKEx4(red7Icx}J6cPqV}X8Tp8w$imXod6;X`evu|vgOR! z?RQ;gtJCdk2qP-)#oVVX6HIXU;8&4y_t{i3iBJ#>6C5f68hKfc98SAj`Y`4bH_vjE zP!B6E&o2Im>np3{HSeD5&$O4Vw4P1G)MT*M^?jcRMnUh_qZ%1Y_Us5;9r zN3#@p&VL;@RorkFiC&Hbk%iDeR;G_$iQ2}plA-k%_D@@4SfjX5OE5U>qDG6MA|gJ zBJCm5_(Gi$Cdnpfs;~-lMCfFY#57VkLs>qWh$-avC}d)pW84nm#Y)yc(ln9kmfu6s zGCi0LDhTtjsYz@RKfpC(-ou?EFp_$&Zh2Ta;Tfb3G(AAdbQBRo`9DS+_fe&~PJkNG L7@Y?cOQ`<^ji+Kp diff --git a/target/classes/ru/egspt/moodle/Base.class b/target/classes/ru/egspt/moodle/Base.class index b0856d5aeebc19670d6756db7b805a896612daf8..fb71e3f9893101c355db233290e4b6b37603eed6 100644 GIT binary patch delta 1306 zcmW-f3v`cV9LGQ3=fAlu+GgpvZzi&i`&Q;MYhuXEB_m^UnGQKy<0zMP&L2aYOQvm# zXb3TK`#Whdkw{|h*A*J0B-b4j9sN${Ip=ww-}`>v=lMS0-}kc#g%h?+4h@e)Ho*U- z9RzK)g`<|u0rrFz_|Yn_AhesJd>2A%%iED^bS8){)F+lkyh;RdMDZH!=|)GolSn*+ z>A`S%GKOA^<#oo>n{*PGNgrm@mu#yS(VxW(U^z*wuzxq&eqZw@#SCF5$?Rh&2N}jO z+vzlK5n^&?`O+KLkW%w9!@K*xgFoZ*_J@y9hOb$ZGLLtPX`5!+KA;ZM31fz7n@L-; z=wPSDF^3dBWQ3hQnjEGuwKHJgQe#K$%lkjv+$Y^7DjYeBOkCzHTXh-URJ9fYt)9die$ZBp-3Irpky{_IGZ(+ElOppX0uI;*{&s4 zuVIJQ@r^c6tWA8Y5_W1YCHleYQugRPdv%+Adcpx$lOJ6}4!UL>auF1{mpSaBIpR98 z-1Xp?8$62RE{zjzDkt4sPPtr8yL`^LC7gAuIOmEu?<%<9u2bf2@~gYeB~Mi@dusBV zCzx{2^IY+Sa@F%96`oOC^Q3a!Gmaa+LCw?ryf@9T;K++@m@7iKNon_Qcxx zuQmNC$r34YjF5*3@?)C(nV~9Vt11gsjm4_Y3I*_`Syp76&-N)%pxrcx?-k4;)#9i^ zIIB8bR$YEKM=MpIhXd3=9yL^;8rcX{ONFU}8mqIy6{{xdrx!F*O_ix;%29;o+xr65 zSD{*HmC>u!N*mQ$Th&IzYNy?b^yRla>Aan(rWl@47oJrt!HT1fx)P>tv`}|is|Ov` zlX&%FfO<1j38bnIWTXm?EF6AfaS23s12Shth;$@V>}VVqLR z{~?}64U6(=o})JSuC-a@ykkv7nu$m^5${r08H8&hO*M(;dXHGWPok#K-|A##GFn-@ ztyzrI9MY9-M&~d|bIH{_)@gx7F2~}PYtfoz@yRz+3%F>JtI(%r=u&QL8Tah0$L5Nk z)~IS1tyO^5tEP$+qzwu&t6J$Rwbf=tSsi1xb=5ZY*LDpwHbpx%S-Z4IB}VS{MMaf6 z?|!Q5fZgE`f%=&c9X2D6n31JK=mhO_l4zYGPG?EbIg(UnLAl5nm6N3_tkhM$(+x`X z7sqvr6Bhdmx?{TUn(j*e&;!%_kVkqX>2K5hkE-ag<>86y>Ao7otI{Izz*_&%+Wbh- o26Zwh#-MnE67|&dS1QSv;l`vIlV(hYF%yl+G$zZDSJr;df8wr3i2wiq delta 1313 zcmW-g32;tl6o#Mo`vpZT4XHh7k!T4;#Tsj(Xi6&8rW3V_fE?_HVlRm!)iA&tY4T@cV} z8#N1U;ds{W6`wX+WO)JzT`T~xW{r;V})vXS*iN0Qd?H5J!|y}dFsqM#q*7ZQ=pM-P$C;Oi%rU5 zinE#A*r7A*l%L&t%w8ABKG%r-t_25N76dClPh>Ho4Hrb-0Rfi2F>}4P;Sy5zm4xc z19@QMdT671Y$pF>CjUzc|1s49HdA7b92xSEqYCCw0P9tW0@L~IoL#EI9#v(Z+4!>p zDOGiTQxF$bn=7irT?KPLR?o?!x~idiYOMNdtp@6>hU%t9inPvPg=nOjXquX8u3pdr z>t`!iE7ekK6solf(?+#Yp-4G>Pg@l3rz!1~5efnPIwlieaH%w{ING5)EOQVl4qfDO4PX?c7og zwQ8skw~Qwqsa`hI$j?! zTGJUTFXJ_n2}&bH>3m?ZTBOi}x6vCruaZmnq{% zl~bZC9Me^f>l$Zu-MDWUx1X!JWz4sEpgWT88u#C-sC$-&`<8~AY8WNIjsKR7`L@DM s6k(#SChBgYC=xDqEP^@CrLpT#pO>*#@Q0tq8 zaqLWIbo>QA`U+?u(kZ_A;L|yONd5NC#e}9EXUa@=_Fj8kzP-M+7WwP%y?p?$!U&>4 z;DoalH&gCvE}pUNm9!bZYPja4oy|FR+6|&fpzW@4&xoguY$|?Z`L3DF31~?>n>CU- z%gzdPCX|BvRXR?)EEOmo69|nb(^l5XT^4AJ4lW8bP1-AF7y>Oinh_9aO;}lTb}h4P zIt#{f+7xI{*hwS3XgHQUmxO_F*f8*xNjE6*^0kujzGf{u%2`JCapU)#=# z#!?&&;x$IC)X|h<-7}pTBWt8gN5|`U<3D1G^(8P<=M6=ss?j_xsZVDJmjrIV5Dor@ z|G-~YyzG;&$BM;$$xcL;$heNTR56&26T;g9cU~wO+0RFw6H>zjCWE+It_YQsYxk4p zs%%dkQ?iX(RYlC_jO3RKj*%oseYh^G<(&gHQfz!xBLeT~=)e(y2J?QUs%zcL&Qo4z zj8)adLCltc)XoXck`>D>b&|%}@PUplbcZl6FsTys2Wxztov|75_SL4UMf@L?u+$a) zqo?{J(t;V>(y=IC+nh|>t{K8@fvIQbzSv>1`Ko)&+au-2FG8A9N;@ME^y0=Yn-d~S#&SeaX{n`~>s#C~vq#90&bFib%H8VSJuQ^Hcx+N#; z;p({_lbwcMrn`~<3aBaPF?T_P)JGu9(`nwwzh?0(v@LELpmPl zeoLd~p0yL8gF|AZx}}_c=Jqv^ggzYW9_GQ&?}}3c%^`I1)MKnWLk>fr1%$fC$=%xewq8> z9bBQDU)P2Tcz26IHJoDSOwgH3Pz)_xI~k;lH^&I?IPXtVqX+%m4I{!t^-{1E literal 0 HcmV?d00001 diff --git a/target/classes/ru/egspt/moodle/events/ConnactionListener.class b/target/classes/ru/egspt/moodle/events/ConnactionListener.class index c897233dbc58bc4c1528b5f042f97c7612024c43..e4fa061376355be5f68d2aa975445769bc5c8b05 100644 GIT binary patch delta 183 zcmZqU`OU?3>ff$?3=9k=3=tc-J~NvHFa)tP1Tr$n6qV|yrWY5K=;!9=r{tvSJ0%vU zI_Kw=6y@g>^DqQ6@G&y5C+Fwor6!k5?qliaxZ$zyyR03}%xf zSdIL4F!*l-a+nwdfus}z8;}%W-~jSO8H5;A8H5>(7(^IM!8`^AF^EQ>s0dIU&9wV^Y9?j delta 323 zcmZ9HJxjw-6o#K$gEi^ZYOL+(WU(%-!L8sV4$}Hjt*zfi8%qSMG@=fIo2x_qhD$|) zIJoQIaV&@@1s6GRc+c~`_a08)deqj}&-(|kK&xkc4?Q@nYc?n;Qf=?L9(dhV_rkMq z*widiid9{+9Vdq4M6F_xr>WUtSD^(}UB7eIl~;=FY@u@Q-ne(g;MVW7iz~}9FI(($ znB+iV|8s4zHAjpok}W^Dx(vK<-gq)o7-&pJ!%w4NK9i7wX4p5J`xkO=tVK)@MD0&( ziI{sO9npx`>q$Jpg!H_818GJWXG+Knw%jyHnG8!ps$^-96N;$88gVl+$wH2CQBo%| HB{=;BP9j1& diff --git a/target/classes/ru/egspt/moodle/events/DisconnectionListener.class b/target/classes/ru/egspt/moodle/events/DisconnectionListener.class new file mode 100644 index 0000000000000000000000000000000000000000..4db78ad2dc3d6e3f29921564f75d6b8a0e2a7cc1 GIT binary patch literal 774 zcmb7C!EVz)5Pg%Taq5~DQd*#-G(dp_q58rt2nh;^g9Vj>a^ECN*vj6m)|(=({0ILK zI22Tga_3}z2r;%JP*8=0EYEnxvv1zK+3!D3P66CU$3um1&rU))P7hs}7&D4xD37Fe zY4}8?L!-4EI%RaEQYW>v9;$@%2jWPCvC!l2<=}t|Jk$tVMOM6ZB|!LS?jWJ|KxyS3 z5*FH>KB2m2M$*RumIHXG6ILUo<%>x&koJ`r#FEg6%uvLAVO1W_l2!LcrG(w+e`t3Z zUKD)xrG0H|B1eSnc627?r}_NdPJan&Sod&oZs6WK79t6-flEAznK;6F38PH7Z?He|oo3(IPg^YSUMa7StJw0;B&-#D=79oS!#2S? z%&}w5?PjzK{kfUaVOK;Oa5dJm|b!yxO(sz^6KzSr7#JoWY0?~?|BB+#*3nwR8j4Q`3_NJ&e#1&55 z`44GDAG9>wIc@$BV(f%gEdg1(>zSSTX6Bo*fBxEU1GtNa3L*>{uc>p>UlV%6b?Y|Q z`8s!mua^yTu_=V>6fIwHhkFX54Chvjbwjre$JAd`S9wh+7-X0YwZ=Qqb=IHOgmvu5 zpjHi^6QIfK3=_rE5f|yUz%cm8axC$fVLH>_BwJyKF1dBCVgSP$hA_e~kjYktK$&S! z5MziJEr&mEHmck!8&#V#B#Lg$uq%dV1#(Xr6>lt`A@^6Lf0a)OMuRdaf)SRt!oAn7 z*9c0Q%M|-E@GPLR5ac(Fq=K0f{FOF{*M^1^W~mCdDHz7PFqW&Yc$Ond!sAAx5W^h9 zy!;|ta!0m0A7m>n_vN8%%O7;M(np72yTa2Zz^l(hibb|_je>#&;? z%W_Q0RmC-A6=WDv{ra@zI>K{pUqcQH48tZDq;k5HFid8$-5UJ2wjNy2h|nk$RNR2B zAkQ$?4^_iW+#)oeirWJC6vlrq?9Q&s&;ZIsj8Lf;Sg4~`8!T-#L1RcZ5d~4a;esQsE;Dp@fTGoH zskUBPsU7S6ZmTx^;0o$F{6T%T!mM`^eu=*v@91nQT$i)J9Gh%`I%I>j?2BTXnXv z-7V8reimS-q9HM0n7zq<$LO=|-Eq?}2TjXK8WRc49w%m7kyz3(Ei(~f2ju~x?r8pe z)#Hxk*K9TE4X{V?!M^BV)QAo_MzbBa6FPf|Dg52>XwQB{QRMw_Q;2T%djjK%nYB}+ zbsa%0cZshexQl-8)mLt-Z>5&haTst%eM@VGbiQU-5lEU&TkL=-RJAQFo<+q$oo_hg zzVu!8{h;%sJK|rc4TY%Spu1jsyy`d31vo33vXbIatJi277Jq#@=eeNBw+9?WX--qj zHd+%g%V~2GX0)#<$R)Qqu%Yn^*8*G>>De6bKhn8Ql_=}?aB<61RPHUebdI?H1a8jA zppge^jyn|mJ2gi0IPIO`3>|4Y!{IU3rD@&l?c?m|%+Mv*^S<&dk7mc2}U@ebPm7X34)ra^x? z72P~7cywCo&!>W0Jn$@X!Y8SJ;k3KDpfct4FsE_-G%Pdt6?a17CUGPKMd?G%lw3@6 zc^oB!b0Z@2adWbIB{B-oCe>@Fh)qJ>kxiWKnRMoN{*ZW))cCe^ufQwX9l6Nk?rW@6 B;e!AG delta 948 zcmZva$xjqf5XOHGrn_-ylvQvdtBNohfkcf2hvHs_flVd^?g{%vCVf#|n$(ijggiTN_Inw}nf}LxE7c%}Q43 zcdqP&IvQ-!SfjtWvhvp|(i}Q}Q@A-4%nOI|+PXS62i(-M&O!Ngp)u3kV6%~C?KjE_ zT5STfDXb2ExTbl#UtttgR20{_QG{$Zv03*T*Ie6ecIahhq21~xi;%@0MX@e(W$K6V z=}8gxIpq5l1x1x-le3d%I|Oq$Xmg0e`e*!1eZYKWo}=4B>$z4&{CO_udMi&|(w$bd zd4+2hSM^6L%X6I^5woeiIT#KE9TAyMxMkC+Rl=PS=P-$r+4bwk2_GWfmn@7@Ro_Rg zua7$4bC&h6I{1Up~ zOr}HHjE;#W%ocfll{Q=1CcYG%(pJeE$+_eP)5TS;8KuiPy-{}7JD0yUb~z7mvRlrI z@;)LyZx4H;92j!ukr}}h5-1U8rJ}n`q)la-e2y49)@D$Q;s{6eC%0#uGZk|nH|sx~ z@eg;5<2otvf84xbaVLataiS+O#J6Br+(}LiS}&2)v2Hl#p2{V*qL`ShFb5*gtv42t{hCaSgfOUr7b9a}XULSPr?x-XFvrYrrXmDR3S z&+Ur4NEqK6XW|24ba}NPcj_6xSa(c$Y?oN;Hij3rC`p OeO-tjOCp?zW~g_9xk9J_ diff --git a/target/classes/ru/egspt/moodle/panel/TagPane.class b/target/classes/ru/egspt/moodle/panel/TagPane.class new file mode 100644 index 0000000000000000000000000000000000000000..59a5e3eebf0f651097cbdece3bd4ab25c2067f77 GIT binary patch literal 1656 zcmaJ>+jiSj5Zx!SBS(lfcGA?n*J!6n6Q3Ndb7uCje%1hQmgx$WW! zc;y@ThqjB@C0Q#Uz?1UCZ}0^yW+bPLlP+F#bVmEk*|TT1{`z-&7r+&4Di{)&@;ZiW zv|GN>bltiwjh5+1+bEfhJM^L;CXo8xd|*B@+7B(KVcg`fEil?NEoaj+n^It+IDjZ{ zG$)Yo%|^kJc3mJnh$zWNe)xq@8eNsI*OxoK?>Yh}29Z&iU?W#8$MUZUoXQjrQ(iXP zGM6n2#8%w8R56U>8eYMez;Gs8R**VeL&z|J34yub_u%o~FMGf4{T%EDe+JvZ~&yFaY!MmL1J%P(nn*Ay37ZmZ#9Tk0z^ixTYoQA9TfTpo6{Rk{D z{eP*L+=l|-ZsavAb5|8Q%x&U?s~SE+fd5BOO1NJ*dZiP{GFnnZuJQ zAJBm|yD4gD(Q5nBk)DbhxXGn!+}omtTevNdq)YQP-*TOOoWT463Sl;55E0J(ac=7E zPO~b#l3BIMlBuFwGwrhJS-kHDWBzwmn?~n|fd)KJW{XwHQ8dX%fT7dKj8T86$)Oa7 zx^{33IT;(5T~yI0h2_RF_u2pIhTHLKvS6_U{A1yt)e;XksZ33!|K2c$*s1h3#MTQ} z@>IAAZV2ICrQP3zVf>GJ56AQ!BrB=$9!_i_O`Fq|v56keZefNtbCuM&9xiNQVF#JY z4)n@XTaBRZhj(u2m%4ag{{u6rYh7H|`K^nUyR_1Q8i>G z=MvEYP9jE%B$2{2#<7Sr@;HS8&F?zS;2zGRfhn{wgFA$tjY#8Dd`3H>j}4Tlq&!*r zbCjuQfx8&%7ikij%z%q@d3vOad%Wshe8KF}NpU@if4caRH?c0heL-!KGz4jyz&ueq XN7T+^0T)6FtRSWAQxK@rZV2)}$HK2P literal 0 HcmV?d00001