You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
5.5 KiB
131 lines
5.5 KiB
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; |
|
} |
|
|
|
}
|
|
|