package ru.egspt; import java.awt.Color; import java.awt.BorderLayout; 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 DataPane extends JPanel{ private JPanel controlPane = new JPanel();//панель кнопок - пока не надо private JButton generateXLSXButton = new JButton("create xlsx"); private JButton generateTXTButton = new JButton("create txt"); private JPanel usersPane = new JPanel();//панель пользователей private JPanel quizesPane = new JPanel();//панель опросов private JPanel resultsPane = new JPanel();//панель результатов private JTable usersTable; private JTable quizesTable; private JTable resultsTable; private UsersTableModel usersTableModel; private QuizesTableModel quizesTableModel; private ResultsTableModel resultsTableModel; public DataPane(){} public DataPane(App app){ setupUsersPane(app); setupQuizesPane(app); setupResultsPane(app); } public void init(){ this.setupControlPane(); this.setLayout(new BorderLayout()); this.add(controlPane, BorderLayout.NORTH); this.add(usersPane, BorderLayout.WEST); this.add(quizesPane, BorderLayout.CENTER); this.add(resultsPane, BorderLayout.EAST); TitledBorder border = new TitledBorder(new LineBorder(Color.black), "data", TitledBorder.CENTER, TitledBorder.CENTER); this.setBorder(border); this.setVisible(true); } public void setupControlPane(){ controlPane.add(generateXLSXButton); controlPane.add(generateTXTButton); TitledBorder border = new TitledBorder(new LineBorder(Color.black), "data-controls-pane", TitledBorder.CENTER, TitledBorder.CENTER); controlPane.setBorder(border); controlPane.setVisible(false); } /** * Настройка панели пользователей */ public void setupUsersPane(App app){ usersTableModel = new UsersTableModel(app.getData()); usersTable = new JTable(usersTableModel); //настройка заголовков int i = 0; while (i < usersTable.getColumnCount()){ usersTable.getColumnModel().getColumn(i).setHeaderValue(usersTableModel.getHeader()[i]); i++; } JScrollPane scrollPane = new JScrollPane(usersTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); usersPane.setLayout(new BorderLayout()); usersPane.add(scrollPane); usersPane.add(app.getTagPane(), BorderLayout.NORTH);//добавили панель тегов TitledBorder border = new TitledBorder(new LineBorder(Color.black), "Users", TitledBorder.CENTER, TitledBorder.CENTER); usersPane.setBorder(border); } /** * Настройка панели опросов */ public void setupQuizesPane(App app){ quizesTableModel = new QuizesTableModel(app.getData()); quizesTable = new JTable(quizesTableModel); //настройка заголовков int i = 0; while (i < quizesTable.getColumnCount()){ quizesTable.getColumnModel().getColumn(i).setHeaderValue(quizesTableModel.getHeader()[i]); i++; } JScrollPane scrollPane = new JScrollPane(quizesTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); quizesPane.setLayout(new BorderLayout()); quizesPane.add(scrollPane, BorderLayout.CENTER); TitledBorder border = new TitledBorder(new LineBorder(Color.black), "Quizes", TitledBorder.CENTER, TitledBorder.CENTER); quizesPane.setBorder(border); } /** * Настройка панели результатов */ public void setupResultsPane(App app){ resultsTableModel = new ResultsTableModel(app.getData()); resultsTable = new JTable(resultsTableModel); //настройка заголовков int i = 0; while (i < resultsTable.getColumnCount()){ resultsTable.getColumnModel().getColumn(i).setHeaderValue(resultsTableModel.getHeader()[i]); i++; } JScrollPane scrollPane = new JScrollPane(resultsTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); resultsPane.setLayout(new BorderLayout()); resultsPane.add(scrollPane, BorderLayout.CENTER); TitledBorder border = new TitledBorder(new LineBorder(Color.black), "Results", TitledBorder.CENTER, TitledBorder.CENTER); resultsPane.setBorder(border); } public void setQuizes(Data data){ getQuizesTableModel().setData(data); } public void setUsers(Data data){ getUsersTableModel().setData(data); } public void setResults(Data data){ getResultsTableModel().setData(data); } /** * @return the tableModel */ public UsersTableModel getUsersTableModel() { return usersTableModel; } /** * @return the quizesTableModel */ public QuizesTableModel getQuizesTableModel() { return quizesTableModel; } public ResultsTableModel getResultsTableModel() { return resultsTableModel; } }