diff --git a/src/main/java/ru/egspt/AccessPane.java b/src/main/java/ru/egspt/AccessPane.java index 2970f7c..4f7d437 100644 --- a/src/main/java/ru/egspt/AccessPane.java +++ b/src/main/java/ru/egspt/AccessPane.java @@ -23,7 +23,7 @@ public class AccessPane extends JPanel { private JButton connButton = new JButton("Подключиться"); private JButton DisconnButton = new JButton("Отключиться"); - public AccessPane(Base base){ + public AccessPane(Base base, Data data, ReportPane reportPane){ loginField.setText("esoe");//значения по умолчанию linkField.setText("www.egspt.ru");//значения по умолчанию this.add(loginLabel); @@ -34,7 +34,7 @@ public class AccessPane extends JPanel { this.add(linkField); //настройка кнопки connButton this.add(connButton); - connButton.addActionListener(e -> BaseControls.ConnectToServer(base, this)); + connButton.addActionListener(e -> BaseControls.ConnectToServer(base, data, this, reportPane)); //настройка кнопки отключения от базы this.add(DisconnButton); DisconnButton.addActionListener(e -> BaseControls.DisconnectFromServer(base)); diff --git a/src/main/java/ru/egspt/App.java b/src/main/java/ru/egspt/App.java index ebc0731..8ce63a9 100644 --- a/src/main/java/ru/egspt/App.java +++ b/src/main/java/ru/egspt/App.java @@ -10,10 +10,14 @@ import javax.swing.WindowConstants; public class App extends JPanel{ public Base base = new Base(); public Data data = new Data(); - + public ReportPane rp = new ReportPane(); + public AccessPane ap = new AccessPane(base, data, rp); + public TagPane tp = new TagPane(base, new TagModel()); + public void init(){ - this.add(new AccessPane(base)); - this.add(new TagPane(base, new TagModel())); + this.add(ap); + this.add(tp); + this.add(rp); this.setVisible(true); } public void initFrame(){ diff --git a/src/main/java/ru/egspt/BaseControls.java b/src/main/java/ru/egspt/BaseControls.java index f72f40f..6ae4066 100644 --- a/src/main/java/ru/egspt/BaseControls.java +++ b/src/main/java/ru/egspt/BaseControls.java @@ -2,7 +2,7 @@ package ru.egspt; public class BaseControls { // - public static void ConnectToServer(Base base, AccessPane accessPane){ + public static void ConnectToServer(Base base, Data data, AccessPane accessPane, ReportPane reportPane){ System.out.println("Инициировано событие ConnectToServer ..."); String link = accessPane.getLinkField().getText(); base.getAccess().setLink(link); @@ -11,6 +11,11 @@ public class BaseControls { String password = String.valueOf(accessPane.getPassField().getPassword()); base.getAccess().setPassword(password); base.connect();//подключиться к базе + data.setUsersFromBase(base); + //данные в консоль + //data.getUsersToConsole(data.getUsers()); + //данные в панель отчетов + reportPane.setData(data); } public static void DisconnectFromServer(Base base){ System.out.println("Инициировано событие DisconnectFromServer ..."); diff --git a/src/main/java/ru/egspt/ReportPane.java b/src/main/java/ru/egspt/ReportPane.java new file mode 100644 index 0000000..7d15aa1 --- /dev/null +++ b/src/main/java/ru/egspt/ReportPane.java @@ -0,0 +1,34 @@ +package ru.egspt; + +import java.awt.Dimension; +import java.awt.Color; + +import javax.swing.JButton; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.border.LineBorder; +import javax.swing.border.TitledBorder; + +public class ReportPane extends JPanel{ + JPanel controlPane = new JPanel();//панель кнопок - пока не надо + JButton generateXLSXButton = new JButton("create xlsx"); + JButton generateTXTButton = new JButton("create txt"); + JPanel tabPane = new JPanel();//панель таблицы + public ReportPane(){ + controlPane.add(generateXLSXButton); + controlPane.add(generateTXTButton); + this.add(controlPane); + this.add(tabPane); + TitledBorder border = new TitledBorder(new LineBorder(Color.black), "report", TitledBorder.CENTER, TitledBorder.CENTER); + this.setBorder(border); + this.setVisible(true); + } + public void setData(Data data){ + JTable table = new JTable(new ReportTableModel(data)); + table.setPreferredScrollableViewportSize(new Dimension(500, 70)); + table.setFillsViewportHeight(true); + JScrollPane scrollPane = new JScrollPane(table); + tabPane.add(scrollPane); + } +} diff --git a/src/main/java/ru/egspt/ReportTableModel.java b/src/main/java/ru/egspt/ReportTableModel.java new file mode 100644 index 0000000..a2a6ce1 --- /dev/null +++ b/src/main/java/ru/egspt/ReportTableModel.java @@ -0,0 +1,58 @@ +package ru.egspt; + +import javax.swing.table.AbstractTableModel; + +public class ReportTableModel extends AbstractTableModel{ + private String[] header = {"id", "login", "mail"}; + private Object[][] data; + public ReportTableModel(Data data){ + //заполняем модель данными + int i = 0; + while (i < data.getUsers().size()){ + this.data[0][i] = data.getUsers().get(i).getId(); + this.data[1][i] = data.getUsers().get(i).getLogin(); + this.data[2][i] = data.getUsers().get(i).getMail(); + i++; + } + } + + @Override + public int getRowCount() { + return getData().length; + } + + @Override + public int getColumnCount() { + return getHeader().length; + } + + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + return getData()[rowIndex][columnIndex]; + } + /** + * @return the data + */ + public Object[][] getData() { + return data; + } + /** + * @param data the data to set + */ + public void setData(Object[][] data) { + this.data = data; + } + /** + * @return the header + */ + public String[] getHeader() { + return header; + } + /** + * @param header the header to set + */ + public void setHeader(String[] header) { + this.header = header; + } + +} diff --git a/src/main/java/ru/egspt/UserListModel.java b/src/main/java/ru/egspt/UserListModel.java index b87b7f5..58dee03 100644 --- a/src/main/java/ru/egspt/UserListModel.java +++ b/src/main/java/ru/egspt/UserListModel.java @@ -6,7 +6,6 @@ import java.util.ArrayList; public class UserListModel { private ArrayList users; public UserListModel(){ - users = new ArrayList(); } /** * @return the users @@ -41,6 +40,14 @@ public class UserListModel { } setUsers(us); } + //вывод пользователей в консоль + public void getUsersToConsole(ArrayList ul){ + int i = 0; + while (i < ul.size()){ + System.out.println(ul.get(i).id + " " + ul.get(i).login + " " + ul.get(i).mail ); + i++; + } + } /** * Возвращает список пользователей, отфильтрованный по заданному тегу * @return diff --git a/target/classes/ru/egspt/AccessPane.class b/target/classes/ru/egspt/AccessPane.class index 9ad1a97..ba8412a 100644 Binary files a/target/classes/ru/egspt/AccessPane.class and b/target/classes/ru/egspt/AccessPane.class differ diff --git a/target/classes/ru/egspt/App.class b/target/classes/ru/egspt/App.class index da2ad6d..d00d415 100644 Binary files a/target/classes/ru/egspt/App.class and b/target/classes/ru/egspt/App.class differ diff --git a/target/classes/ru/egspt/BaseControls.class b/target/classes/ru/egspt/BaseControls.class index 22129a4..ac62d07 100644 Binary files a/target/classes/ru/egspt/BaseControls.class and b/target/classes/ru/egspt/BaseControls.class differ diff --git a/target/classes/ru/egspt/ReportPane.class b/target/classes/ru/egspt/ReportPane.class new file mode 100644 index 0000000..8c3f8f4 Binary files /dev/null and b/target/classes/ru/egspt/ReportPane.class differ diff --git a/target/classes/ru/egspt/ReportTableModel.class b/target/classes/ru/egspt/ReportTableModel.class new file mode 100644 index 0000000..e54398c Binary files /dev/null and b/target/classes/ru/egspt/ReportTableModel.class differ diff --git a/target/classes/ru/egspt/UserListModel.class b/target/classes/ru/egspt/UserListModel.class index defa327..86b3de5 100644 Binary files a/target/classes/ru/egspt/UserListModel.class and b/target/classes/ru/egspt/UserListModel.class differ