From ef7dc93db0dd732e69f692549dad335351904bbd Mon Sep 17 00:00:00 2001 From: esoe Date: Sun, 24 Apr 2022 22:54:21 +0300 Subject: [PATCH] curr --- drow/model.drawio | 10 +++ src/main/java/ru/egspt/moodle/Base.java | 4 +- src/main/java/ru/egspt/moodle/UsersModel.java | 82 ++++++++++++++++++ .../java/ru/egspt/moodle/panel/TagPane.java | 2 +- .../ru/egspt/moodle/panel/UserByTagPane.java | 18 ++-- target/classes/ru/egspt/moodle/Base.class | Bin 15118 -> 15163 bytes .../classes/ru/egspt/moodle/UsersModel.class | Bin 0 -> 2565 bytes .../ru/egspt/moodle/panel/UserByTagPane.class | Bin 1054 -> 1068 bytes 8 files changed, 107 insertions(+), 9 deletions(-) create mode 100644 drow/model.drawio create mode 100644 src/main/java/ru/egspt/moodle/UsersModel.java create mode 100644 target/classes/ru/egspt/moodle/UsersModel.class diff --git a/drow/model.drawio b/drow/model.drawio new file mode 100644 index 0000000..e59c804 --- /dev/null +++ b/drow/model.drawio @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/ru/egspt/moodle/Base.java b/src/main/java/ru/egspt/moodle/Base.java index 1b7b70e..c6d9eec 100644 --- a/src/main/java/ru/egspt/moodle/Base.java +++ b/src/main/java/ru/egspt/moodle/Base.java @@ -42,7 +42,9 @@ public class Base { public Base(){ - + users = new ArrayList<>(); + results = new ArrayList<>(); + quizes = new ArrayList<>(); } /** diff --git a/src/main/java/ru/egspt/moodle/UsersModel.java b/src/main/java/ru/egspt/moodle/UsersModel.java new file mode 100644 index 0000000..d9b66a1 --- /dev/null +++ b/src/main/java/ru/egspt/moodle/UsersModel.java @@ -0,0 +1,82 @@ +package ru.egspt.moodle; + +import javax.swing.table.TableModel; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.swing.event.TableModelListener; + +public class UsersModel implements TableModel{ + private Set listeners = new HashSet(); + private List users; + + public UsersModel(List users) { + this.users = users; + } + + public void addTableModelListener(TableModelListener listener) { + listeners.add(listener); + } + + + public Class getColumnClass(int columnIndex) { + switch (columnIndex) { + case 0: + return int.class; + case 1: + return String.class; + case 2: + return String.class; + } + return String.class; + } + + public int getColumnCount() { + return 3; + } + + public String getColumnName(int columnIndex) { + switch (columnIndex) { + case 0: + return "id"; + case 1: + return "name"; + case 2: + return "mail"; + } + return ""; + } + + public int getRowCount() { + return users.size(); + } + + public Object getValueAt(int rowIndex, int columnIndex) { + User user = users.get(rowIndex); + switch (columnIndex) { + case 0: + return user.getId(); + case 1: + return user.getName(); + case 2: + return user.getMail(); + } + return ""; + } + + public boolean isCellEditable(int rowIndex, int columnIndex) { + return false; + } + + public void removeTableModelListener(TableModelListener listener) { + listeners.remove(listener); + } + + public void setValueAt(Object value, int rowIndex, int columnIndex) { + + } + + + +} diff --git a/src/main/java/ru/egspt/moodle/panel/TagPane.java b/src/main/java/ru/egspt/moodle/panel/TagPane.java index 9037e82..e401e05 100644 --- a/src/main/java/ru/egspt/moodle/panel/TagPane.java +++ b/src/main/java/ru/egspt/moodle/panel/TagPane.java @@ -29,6 +29,6 @@ public class TagPane extends JPanel{ TagAddButton.addActionListener(new TagButtonListener(base, tagField.getText())); this.add(TagAddButton); //this.add(TagDelButton); - this.add(usersPane);//данные надо передать тоже!!!!!!!!!!!!!! + this.add(usersPane); } } diff --git a/src/main/java/ru/egspt/moodle/panel/UserByTagPane.java b/src/main/java/ru/egspt/moodle/panel/UserByTagPane.java index feabff9..5489962 100644 --- a/src/main/java/ru/egspt/moodle/panel/UserByTagPane.java +++ b/src/main/java/ru/egspt/moodle/panel/UserByTagPane.java @@ -4,22 +4,26 @@ import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.JTable; import javax.swing.JTextArea; +import javax.swing.table.TableModel; import ru.egspt.moodle.Base; +import ru.egspt.moodle.UsersModel; public class UserByTagPane extends JPanel{ JTextArea ta; JScrollPane sp; + /** + * данные надо в таблицу отображать, а не в текстовой области + * [хороший пример модели данных, подходит для работы с jtable и xlsx в перспективе] + * https://javaswing.wordpress.com/2010/05/05/jtabletablemodel/ + */ UserByTagPane(Base base){ - String text = "s;dfkjg s;dfhg so soigspoig psoigspfg ps sigh sp oigpssp oigspih soupsht"; - ta = new JTextArea(); - ta.setText(text); - ta.append(text); - ta.append(text);ta.append(text);ta.append(text);ta.append(text);ta.append(text); - - sp = new JScrollPane(ta); + TableModel model = new UsersModel(base.getUsers()); + JTable table = new JTable(model); + sp = new JScrollPane(table); setLayout(new BorderLayout()); add(sp, BorderLayout.CENTER); } diff --git a/target/classes/ru/egspt/moodle/Base.class b/target/classes/ru/egspt/moodle/Base.class index eacd176b4fac10c73bc1fe480438df8e0a52f7d4..84a3313efada625a5ab462d6b3820593c2a617e5 100644 GIT binary patch delta 6733 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 DhGfz# delta 6821 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 literal 0 HcmV?d00001 diff --git a/target/classes/ru/egspt/moodle/panel/UserByTagPane.class b/target/classes/ru/egspt/moodle/panel/UserByTagPane.class index 5fce4b498c75e9a2ae8cc5a04ef9ddc87408401c..c9649ce6f4122a80ce25201766556d2fcedb1bf1 100644 GIT binary patch delta 571 zcmZ{hOKTHR6vuyev`#uqX-uPO(=@fUk7Sy9tMwfp*y2XgZmL3-BOO8{$&{I?)m8B$ z$SegvfVdGf0fT-3@!JS4#WNGSP>=(cd(Zj(&+ER+e8^bee}DM~T;={7>+7*eR#6NN zwbu#{BHi`<{f?)fgkBKt`1@YRB1hh2N|FB;+HynB<{al0nU)u&8bzT}Z9I2hxcV?^ zcl3iGa9=grVN|!6WZGt&8O2oP1lbcN4OgF<%qnt;^ra4u+P#*3^w@pY@hpnWCBm{| zVI({Oq9m?UDs8r&WVsN(RwX^pVxqa2G&Cya9z}ZF?;iL)uNMh9j$+xyBxAA~|4_w= z6(%fkIyP(6;-9LPzoa;`Ew~pXfeo9>T!}Z0_YcRq$#N9sH1~h|QH-TM%J%*ON0Y_B zjK=X>PK!a^8DI~YY_9b=JD{*Lq}Z$tDD65!=9}vS7Cy5i_m$>=N}sCZd}1lL-ba5F zxxuEKWf=zwl5muL=8|S9SOzziE3viuECAH@KbmgsDnM%rhuOYmDgav_ox%vVp0hO!FkUT-VjX$53kDXQ@ckR<JYG&zb$+#4`+WZx&JuIH-_p*mkcu`?-=`i9C!Ske@?N{ zXY!1a|D95`$J7Pc%;A6{XTzpK( ywTrmYXPKlziA|