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.4 KiB
131 lines
5.4 KiB
2 years ago
|
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), "ControlPane", TitledBorder.CENTER, TitledBorder.CENTER);
|
||
|
controlPane.setBorder(border);
|
||
|
}
|
||
|
/**
|
||
|
* Настройка панели пользователей
|
||
|
*/
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
}
|