diff --git a/Lab2/src/main/java/org/lumijiez/Main.java b/Lab2/src/main/java/org/lumijiez/Main.java index e0ed638..e42ea9b 100644 --- a/Lab2/src/main/java/org/lumijiez/Main.java +++ b/Lab2/src/main/java/org/lumijiez/Main.java @@ -2,11 +2,8 @@ package org.lumijiez; import org.lumijiez.gui.StudentManagementGUI; -import javax.swing.*; - public class Main { - public static void main(String[] args) { - SwingUtilities.invokeLater(StudentManagementGUI::new); + java.awt.EventQueue.invokeLater(() -> new StudentManagementGUI().setVisible(true)); } } diff --git a/Lab2/src/main/java/org/lumijiez/enums/StudyField.java b/Lab2/src/main/java/org/lumijiez/enums/StudyField.java index 508ec22..8306ce9 100644 --- a/Lab2/src/main/java/org/lumijiez/enums/StudyField.java +++ b/Lab2/src/main/java/org/lumijiez/enums/StudyField.java @@ -1,6 +1,8 @@ package org.lumijiez.enums; import java.io.Serializable; +import java.util.Arrays; +import java.util.List; public enum StudyField implements Serializable { DEFAULT_UNASSIGNED("Unassigned", "None"), @@ -19,6 +21,20 @@ public enum StudyField implements Serializable { this.abbreviation = abbreviation; } + public static String getAbbrevFromString(String str) { + for (StudyField st : values()) { + if (st.name.equals(str)) return st.abbreviation; + } + return str; + } + + public static StudyField getEnum(String str) { + for (StudyField st : values()) { + if (st.name.equals(str)) return st; + } + return null; + } + public String getName() { return name; } @@ -26,4 +42,8 @@ public enum StudyField implements Serializable { public String getAbbreviation() { return abbreviation; } + + public static List getAllEnums() { + return Arrays.asList(values()); + } } diff --git a/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java b/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java index 419ec9d..174457c 100644 --- a/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java +++ b/Lab2/src/main/java/org/lumijiez/gui/StudentManagementGUI.java @@ -1,100 +1,294 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ package org.lumijiez.gui; +import org.lumijiez.base.Faculty; import org.lumijiez.data.DataDeserializer; import org.lumijiez.data.DataSerializer; -import org.lumijiez.gui.forms.*; +import org.lumijiez.gui.forms.faculty.AddFacultyForm; +import org.lumijiez.gui.forms.faculty.EditFacultyForm; +import org.lumijiez.gui.forms.faculty.RemoveFacultyForm; +import org.lumijiez.gui.forms.faculty.ShowFacultyForm; +import org.lumijiez.gui.forms.group.AddGroupForm; +import org.lumijiez.gui.forms.group.EditGroupForm; +import org.lumijiez.gui.forms.group.ShowGroupForm; +import org.lumijiez.gui.forms.student.*; import org.lumijiez.managers.Supervisor; import javax.swing.*; -import java.awt.*; - -public class StudentManagementGUI { - private final Supervisor studentManager; - private final JFrame frame; - private final JTextArea outputTextArea; +import java.awt.event.ActionEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +public class StudentManagementGUI extends JFrame { + private Supervisor sv; + JLabel mainTextLabel = new JLabel(); public StudentManagementGUI() { - studentManager = DataDeserializer.deserialize(); + this.sv = sv; + initComponents(); + this.sv = DataDeserializer.deserialize(); + } + private void initComponents() { - frame = new JFrame("Student Management System"); - frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - frame.setSize(800, 600); - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - int centerX = (int) ((screenSize.getWidth() - frame.getWidth()) / 2); - int centerY = (int) ((screenSize.getHeight() - frame.getHeight()) / 2); - frame.setLocation(centerX, centerY); + JMenuBar menuBar = new JMenuBar(); + JMenu fileMenu = new JMenu(); + JMenuItem loadBatchOption = new JMenuItem(); + JMenuItem saveAsOption = new JMenuItem(); + JMenuItem saveAndExitOption = new JMenuItem(); + JMenuItem settingsOption = new JMenuItem(); + JMenu studentMenu = new JMenu(); + JMenuItem showAllStudentsOption = new JMenuItem(); + JMenuItem showParticularStudentOption = new JMenuItem(); + JMenuItem showStudentGrade = new JMenuItem(); + JPopupMenu.Separator studentSeparator = new JPopupMenu.Separator(); + JMenuItem gradeStudentOption = new JMenuItem(); + JMenuItem addStudentOption = new JMenuItem(); + JMenuItem editStudentOption = new JMenuItem(); + JMenuItem deleteStudentOption = new JMenuItem(); + JMenu groupMenu = new JMenu(); + JMenuItem showAllGroupsOption = new JMenuItem(); + JMenuItem showParticularGroupOption = new JMenuItem(); + JPopupMenu.Separator groupSeparator = new JPopupMenu.Separator(); + JMenuItem addGroupOption = new JMenuItem(); + JMenuItem editGroupOption = new JMenuItem(); + JMenuItem deleteGroupOption = new JMenuItem(); + JMenu facultyMenu = new JMenu(); + JMenuItem showAllFacultiesOption = new JMenuItem(); + JMenuItem showParticularFacultyOption = new JMenuItem(); + JPopupMenu.Separator facultySeparator = new JPopupMenu.Separator(); + JMenuItem addFacultyOption = new JMenuItem(); + JMenuItem editFacultyOption = new JMenuItem(); + JMenuItem removeFacultyOption = new JMenuItem(); - JPanel mainPanel = new JPanel(); - mainPanel.setLayout(new BorderLayout()); + setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - outputTextArea = new JTextArea(); - outputTextArea.setEditable(false); - outputTextArea.setText("===== Students =====\n" + studentManager.getStudentsText()); + this.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + int result = JOptionPane.showConfirmDialog( + StudentManagementGUI.this, + "Are you sure you want to exit?", + "Confirmation", + JOptionPane.YES_NO_OPTION + ); - JScrollPane scrollPane = new JScrollPane(outputTextArea); - - mainPanel.add(scrollPane, BorderLayout.CENTER); - - String[] options = {"Option 1", "Option 2", "Option 3"}; - JComboBox dropdown = new JComboBox<>(options); - - JButton button = new JButton("Show Selected Option"); - - button.addActionListener(e -> { - String selectedOption = (String) dropdown.getSelectedItem(); - System.out.println(selectedOption); + if (result == JOptionPane.YES_OPTION) { + DataSerializer.serialize(sv); + dispose(); + } + } }); - button.setSize(new Dimension(100, 100)); + fileMenu.setText("File"); - mainPanel.add(dropdown); - mainPanel.add(button); + loadBatchOption.setText("Load Batch File"); + loadBatchOption.addActionListener(this::loadBatchOptionActionPerformed); + fileMenu.add(loadBatchOption); - JPanel buttonPanel = new JPanel(new GridLayout(0, 1)); + saveAsOption.setText("Save As File"); + saveAsOption.addActionListener(this::saveAsOptionActionPerformed); + fileMenu.add(saveAsOption); - JButton showStudentsBtn = new JButton("Show Students"); - JButton showGroupsBtn = new JButton("Show Groups"); - JButton changeStudentGroup = new JButton("Change group"); - JButton addStudentBtn = new JButton("Add Student"); - JButton addStudentGrade = new JButton("Add Grade"); - JButton deleteStudentBtn = new JButton("Delete Student"); - JButton showStudentGradesBtn = new JButton("Show Student Grades"); - JButton saveAndExitBtn = new JButton("Save and Exit"); + saveAndExitOption.setText("Save And Exit"); + saveAndExitOption.addActionListener(this::saveAndExitOptionActionPerformed); + fileMenu.add(saveAndExitOption); + settingsOption.setText("Settings"); + fileMenu.add(settingsOption); - showStudentsBtn.addActionListener(e -> outputTextArea.setText("===== Students =====\n" + studentManager.getStudentsText())); + menuBar.add(fileMenu); - showGroupsBtn.addActionListener(e -> outputTextArea.setText("===== Groups =====\n" + studentManager.getGroupsText())); + studentMenu.setText("Student Options"); - addStudentBtn.addActionListener(e -> new AddStudentForm(centerX, centerY, studentManager, outputTextArea)); + showAllStudentsOption.setText("Show All Students"); + studentMenu.add(showAllStudentsOption); - changeStudentGroup.addActionListener(e -> new ChangeGroupForm(centerX, centerY, studentManager, outputTextArea)); + showParticularStudentOption.setText("Show Student"); + showParticularStudentOption.addActionListener(this::showParticularStudentOptionActionPerformed); + studentMenu.add(showParticularStudentOption); - showStudentGradesBtn.addActionListener(e -> new ShowGradesForm(centerX, centerY, studentManager, outputTextArea)); + showStudentGrade.setText("Show Student Grades"); + showStudentGrade.addActionListener(this::showStudentGradeActionPerformed); + studentMenu.add(showStudentGrade); + studentMenu.add(studentSeparator); - deleteStudentBtn.addActionListener(e -> new DeleteStudentForm(centerX, centerY, studentManager, outputTextArea)); + gradeStudentOption.setText("Grade Student"); + gradeStudentOption.addActionListener(this::gradeStudentOptionActionPerformed); + studentMenu.add(gradeStudentOption); - addStudentGrade.addActionListener(e -> new AddGradeForm(centerX, centerY, studentManager, outputTextArea)); + addStudentOption.setText("Add Student"); + addStudentOption.addActionListener(this::addStudentOptionActionPerformed); + studentMenu.add(addStudentOption); + editStudentOption.setText("Edit Student"); + editStudentOption.addActionListener(this::editStudentOptionActionPerformed); + studentMenu.add(editStudentOption); - saveAndExitBtn.addActionListener(e -> { - DataSerializer.serialize(studentManager); - frame.dispose(); - System.exit(0); - }); + deleteStudentOption.setText("Delete Student"); + deleteStudentOption.addActionListener(this::deleteStudentOptionActionPerformed); + studentMenu.add(deleteStudentOption); - buttonPanel.add(showStudentsBtn); - buttonPanel.add(showGroupsBtn); - buttonPanel.add(showStudentGradesBtn); - buttonPanel.add(addStudentBtn); - buttonPanel.add(addStudentGrade); - buttonPanel.add(deleteStudentBtn); - buttonPanel.add(saveAndExitBtn); + menuBar.add(studentMenu); - mainPanel.add(buttonPanel, BorderLayout.WEST); + groupMenu.setText("Group Options"); - frame.getContentPane().add(mainPanel); - frame.setVisible(true); + showAllGroupsOption.setText("Show All Groups"); + groupMenu.add(showAllGroupsOption); + + showParticularGroupOption.setText("Show Group"); + showParticularGroupOption.addActionListener(this::showParticularGroupOptionActionPerformed); + groupMenu.add(showParticularGroupOption); + groupMenu.add(groupSeparator); + + addGroupOption.setText("Add Group"); + addGroupOption.addActionListener(this::addGroupOptionActionPerformed); + groupMenu.add(addGroupOption); + + editGroupOption.setText("Edit Group"); + editGroupOption.addActionListener(this::editGroupOptionActionPerformed); + groupMenu.add(editGroupOption); + + deleteGroupOption.setText("Delete Group"); + groupMenu.add(deleteGroupOption); + + menuBar.add(groupMenu); + + facultyMenu.setText("Faculty Options"); + + showAllFacultiesOption.setText("Show Faculties"); + showAllFacultiesOption.addActionListener(this::showAllFacultiesOptionActionPerformed); + facultyMenu.add(showAllFacultiesOption); + + showParticularFacultyOption.setText("Show A Faculty"); + showParticularFacultyOption.addActionListener(this::showParticularFacultyOptionActionPerformed); + facultyMenu.add(showParticularFacultyOption); + facultyMenu.add(facultySeparator); + + addFacultyOption.setText("Add Faculty"); + addFacultyOption.addActionListener(this::addFacultyOptionActionPerformed); + facultyMenu.add(addFacultyOption); + + editFacultyOption.setText("Edit Faculty"); + editFacultyOption.addActionListener(this::editFacultyOptionActionPerformed); + facultyMenu.add(editFacultyOption); + + removeFacultyOption.setText("Remove Faculty"); + removeFacultyOption.addActionListener(this::removeFacultyOptionActionPerformed); + facultyMenu.add(removeFacultyOption); + + menuBar.add(facultyMenu); + + setJMenuBar(menuBar); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(mainTextLabel, GroupLayout.DEFAULT_SIZE, 1280, Short.MAX_VALUE) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(mainTextLabel, GroupLayout.DEFAULT_SIZE, 697, Short.MAX_VALUE) + ); + + pack(); + } + + private void loadBatchOptionActionPerformed(ActionEvent evt) { + + } + + private void saveAndExitOptionActionPerformed(ActionEvent evt) { + int result = JOptionPane.showConfirmDialog( + StudentManagementGUI.this, + "Are you sure you want to exit?", + "Confirmation", + JOptionPane.YES_NO_OPTION + ); + + if (result == JOptionPane.YES_OPTION) { + DataSerializer.serialize(sv); + dispose(); + } + } + + private void showAllFacultiesOptionActionPerformed(ActionEvent evt) { + StringBuilder builder = new StringBuilder(); + for (Faculty fc : sv.getFm().getFaculties()) { + builder.append(fc.getName()).append(" ").append(fc.getAbbreviation()).append(" ").append(fc.getField().getName()); + } + mainTextLabel.setText(builder.toString()); + } + + private void saveAsOptionActionPerformed(ActionEvent evt) { + + } + + private void showParticularGroupOptionActionPerformed(ActionEvent evt) { + ShowGroupForm form = new ShowGroupForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void addFacultyOptionActionPerformed(ActionEvent evt) { + AddFacultyForm form = new AddFacultyForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void addStudentOptionActionPerformed(ActionEvent evt) { + AddStudentForm form = new AddStudentForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void gradeStudentOptionActionPerformed(ActionEvent evt) { + GradeStudentForm form = new GradeStudentForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void editStudentOptionActionPerformed(ActionEvent evt) { + EditStudentForm form = new EditStudentForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void deleteStudentOptionActionPerformed(ActionEvent evt) { + DeleteStudentForm form = new DeleteStudentForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void showStudentGradeActionPerformed(ActionEvent evt) { + ShowStudentGradesForm form = new ShowStudentGradesForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void showParticularStudentOptionActionPerformed(ActionEvent evt) { + ShowStudentForm form = new ShowStudentForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void addGroupOptionActionPerformed(ActionEvent evt) { + AddGroupForm form = new AddGroupForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void editGroupOptionActionPerformed(ActionEvent evt) { + EditGroupForm form = new EditGroupForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void showParticularFacultyOptionActionPerformed(ActionEvent evt) { + ShowFacultyForm form = new ShowFacultyForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void editFacultyOptionActionPerformed(ActionEvent evt) { + EditFacultyForm form = new EditFacultyForm(sv, mainTextLabel); + form.setVisible(true); + } + + private void removeFacultyOptionActionPerformed(ActionEvent evt) { + RemoveFacultyForm form = new RemoveFacultyForm(sv, mainTextLabel); + form.setVisible(true); } } diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/AddGradeForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/AddGradeForm.java deleted file mode 100644 index 8cc0f27..0000000 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/AddGradeForm.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.lumijiez.gui.forms; - -import org.lumijiez.base.Grade; -import org.lumijiez.managers.Supervisor; -import org.lumijiez.util.FullStudentData; - -import javax.swing.*; -import java.awt.*; - -public class AddGradeForm extends JFrame { - public AddGradeForm(int centerX, int centerY, Supervisor sv, JTextArea outputTextArea) { - this.setTitle("Add Grade"); - this.setSize(400, 300); - this.setLocation(centerX, centerY); - - JPanel formPanel = new JPanel(new GridLayout(4, 2)); - - JLabel nameLabel = new JLabel("Name:"); - JTextField nameField = new JTextField(); - JLabel surnameLabel = new JLabel("Surname:"); - JTextField surnameField = new JTextField(); - JLabel groupLabel = new JLabel("Group:"); - JTextField groupField = new JTextField(); - JLabel facultyLabel = new JLabel("Faculty:"); - JTextField facultyField = new JTextField(); - JLabel subjectLabel = new JLabel("Subject:"); - JTextField subjectField = new JTextField(); - JLabel gradeLabel = new JLabel("Grade:"); - JTextField gradeField = new JTextField(); - - JButton submitButton = new JButton("Submit"); - - - formPanel.add(nameLabel); - formPanel.add(nameField); - formPanel.add(surnameLabel); - formPanel.add(surnameField); - formPanel.add(groupLabel); - formPanel.add(groupField); - formPanel.add(facultyLabel); - formPanel.add(facultyField); - formPanel.add(subjectLabel); - formPanel.add(subjectField); - formPanel.add(gradeLabel); - formPanel.add(gradeField); - formPanel.add(submitButton); - - this.add(formPanel); - - submitButton.addActionListener(e -> { - String name = nameField.getText(); - String surname = surnameField.getText(); - String group = groupField.getText(); - String subject = subjectField.getText(); - String grade = gradeField.getText(); - String faculty = facultyField.getText(); - FullStudentData data = new FullStudentData(name, surname, group, faculty); - if (!name.isEmpty() && !surname.isEmpty() && !group.isEmpty() && !subject.isEmpty() && !grade.isEmpty() && !faculty.isEmpty()) { - sv.getFm().getGm().getSm().getStudent(data).addGrade(new Grade(subject, Integer.parseInt(grade))); - outputTextArea.setText("===== Students =====\n" + sv.getStudentsText()); - this.dispose(); - } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); - }); - this.setVisible(true); - } -} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/AddStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/AddStudentForm.java deleted file mode 100644 index 075fd6a..0000000 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/AddStudentForm.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.lumijiez.gui.forms; - -import org.lumijiez.managers.Supervisor; -import org.lumijiez.util.FullStudentData; - -import javax.swing.*; -import java.awt.*; - -public class AddStudentForm extends JFrame { - public AddStudentForm(int centerX, int centerY, Supervisor sv, JTextArea outputTextArea) { - this.setTitle("Add Student"); - this.setSize(400, 300); - this.setLocation(centerX, centerY); - - JPanel formPanel = new JPanel(new GridLayout(4, 2)); - - JLabel nameLabel = new JLabel("Name:"); - JTextField nameField = new JTextField(); - JLabel surnameLabel = new JLabel("Surname:"); - JTextField surnameField = new JTextField(); - JLabel groupLabel = new JLabel("Group:"); - JTextField groupField = new JTextField(); - JLabel facultyLabel = new JLabel("Faculty:"); - JTextField facultyField = new JTextField(); - JButton submitButton = new JButton("Submit"); - - formPanel.add(nameLabel); - formPanel.add(nameField); - formPanel.add(surnameLabel); - formPanel.add(surnameField); - formPanel.add(groupLabel); - formPanel.add(groupField); - formPanel.add(facultyLabel); - formPanel.add(facultyField); - formPanel.add(submitButton); - - this.add(formPanel); - - submitButton.addActionListener(e -> { - String name = nameField.getText(); - String surname = surnameField.getText(); - String group = groupField.getText(); - String faculty = facultyField.getText(); - FullStudentData data = new FullStudentData(name, surname, group, faculty); - if (!name.isEmpty() && !surname.isEmpty() && !group.isEmpty() && !faculty.isEmpty()) { - sv.getFm().getGm().getSm().addStudent(data, sv); - outputTextArea.setText("===== Students =====\n" + sv.getStudentsText()); - System.out.println(data); - System.out.println("LOL"); - System.out.println(sv.getStudentsText()); - this.dispose(); - } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); - }); - this.setVisible(true); - } -} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/ChangeGroupForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/ChangeGroupForm.java deleted file mode 100644 index 789e0ab..0000000 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/ChangeGroupForm.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.lumijiez.gui.forms; - -import org.lumijiez.managers.Supervisor; -import org.lumijiez.util.FullStudentData; - -import javax.swing.*; -import java.awt.*; - -public class ChangeGroupForm extends JFrame { - public ChangeGroupForm(int centerX, int centerY, Supervisor sv, JTextArea outputTextArea) { - this.setTitle("Change Group"); - this.setSize(400, 300); - this.setLocation(centerX, centerY); - - JPanel formPanel = new JPanel(new GridLayout(4, 2)); - - JLabel nameLabel = new JLabel("Name:"); - JTextField nameField = new JTextField(); - JLabel surnameLabel = new JLabel("Surname:"); - JTextField surnameField = new JTextField(); - JLabel groupLabel = new JLabel("Group:"); - JTextField groupField = new JTextField(); - JLabel facultyLabel = new JLabel("Faculty:"); - JTextField facultyField = new JTextField(); - JLabel newgroupLabel = new JLabel("New Group:"); - JTextField newgroupField = new JTextField(); - JButton submitButton = new JButton("Submit"); - - formPanel.add(nameLabel); - formPanel.add(nameField); - formPanel.add(surnameLabel); - formPanel.add(surnameField); - formPanel.add(groupLabel); - formPanel.add(groupField); - formPanel.add(facultyLabel); - formPanel.add(facultyField); - formPanel.add(newgroupLabel); - formPanel.add(newgroupField); - formPanel.add(submitButton); - - this.add(formPanel); - - submitButton.addActionListener(e -> { - String name = nameField.getText(); - String surname = surnameField.getText(); - String group = groupField.getText(); - String newgroup = newgroupField.getText(); - String faculty = facultyField.getText(); - FullStudentData data = new FullStudentData(name, surname, group, faculty); - if (!name.isEmpty() && !surname.isEmpty() && !group.isEmpty() && !newgroup.isEmpty()) { - //studentManager.changeGroup(new NameSurnameGroup(name, surname, group), newgroup); - outputTextArea.setText("===== Groups =====\n" + sv.getGroupsText()); - this.dispose(); - } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); - }); - this.setVisible(true); - } - -} \ No newline at end of file diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/DeleteStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/DeleteStudentForm.java deleted file mode 100644 index cd4ee07..0000000 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/DeleteStudentForm.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.lumijiez.gui.forms; - -import org.lumijiez.managers.Supervisor; -import org.lumijiez.util.FullStudentData; - -import javax.swing.*; -import java.awt.*; - -public class DeleteStudentForm extends JFrame { - public DeleteStudentForm(int centerX, int centerY, Supervisor sv, JTextArea outputTextArea) { - this.setTitle("Delete Student"); - this.setSize(400, 300); - this.setLocation(centerX, centerY); - - JPanel formPanel = new JPanel(new GridLayout(4, 2)); - - JLabel nameLabel = new JLabel("Name:"); - JTextField nameField = new JTextField(); - JLabel surnameLabel = new JLabel("Surname:"); - JTextField surnameField = new JTextField(); - JLabel groupLabel = new JLabel("Group:"); - JTextField groupField = new JTextField(); - JLabel facultyLabel = new JLabel("Faculty:"); - JTextField facultyField = new JTextField(); - JButton submitButton = new JButton("Submit"); - - formPanel.add(nameLabel); - formPanel.add(nameField); - formPanel.add(surnameLabel); - formPanel.add(surnameField); - formPanel.add(groupLabel); - formPanel.add(groupField); - formPanel.add(facultyLabel); - formPanel.add(facultyField); - formPanel.add(submitButton); - - this.add(formPanel); - - submitButton.addActionListener(e -> { - String name = nameField.getText(); - String surname = surnameField.getText(); - String group = groupField.getText(); - String faculty = facultyField.getText(); - FullStudentData data = new FullStudentData(name, surname, group, faculty); - if (!name.isEmpty() && !surname.isEmpty() && !group.isEmpty() && !faculty.isEmpty()) { - sv.getFm().getGm().getSm().deleteStudent(data); - outputTextArea.setText("===== Students =====\n" + sv.getStudentsText()); - this.dispose(); - } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); - }); - this.setVisible(true); - } - -} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/ShowGradesForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/ShowGradesForm.java deleted file mode 100644 index 16a0e2d..0000000 --- a/Lab2/src/main/java/org/lumijiez/gui/forms/ShowGradesForm.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.lumijiez.gui.forms; - -import org.lumijiez.util.FullStudentData; -import org.lumijiez.managers.Supervisor; - -import javax.swing.*; -import java.awt.*; - -public class ShowGradesForm extends JFrame { - public ShowGradesForm(int centerX, int centerY, Supervisor sv, JTextArea outputTextArea) { - this.setTitle("Show Grades Student"); - this.setSize(400, 300); - this.setLocation(centerX, centerY); - - JPanel formPanel = new JPanel(new GridLayout(4, 2)); - - JLabel nameLabel = new JLabel("Name:"); - JTextField nameField = new JTextField(); - JLabel surnameLabel = new JLabel("Surname:"); - JTextField surnameField = new JTextField(); - JLabel groupLabel = new JLabel("Group:"); - JTextField groupField = new JTextField(); - JLabel facultyLabel = new JLabel("Faculty:"); - JTextField facultyField = new JTextField(); - JButton submitButton = new JButton("Submit"); - - formPanel.add(nameLabel); - formPanel.add(nameField); - formPanel.add(surnameLabel); - formPanel.add(surnameField); - formPanel.add(groupLabel); - formPanel.add(groupField); - formPanel.add(facultyLabel); - formPanel.add(facultyField); - formPanel.add(submitButton); - - this.add(formPanel); - - submitButton.addActionListener(e -> { - String name = nameField.getText(); - String surname = surnameField.getText(); - String group = groupField.getText(); - String faculty = facultyField.getText(); - FullStudentData data = new FullStudentData(name, surname, group, faculty); - if (!name.isEmpty() && !surname.isEmpty() && !group.isEmpty() && !faculty.isEmpty()) { - outputTextArea.setText("===== Grades =====\n" + name + " " + surname + "\n" + sv.getGradesText(data)); - this.dispose(); - } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); - }); - this.setVisible(true); - } -} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/AddFacultyForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/AddFacultyForm.java new file mode 100644 index 0000000..11e3bfd --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/AddFacultyForm.java @@ -0,0 +1,133 @@ +package org.lumijiez.gui.forms.faculty; + +import org.lumijiez.base.Faculty; +import org.lumijiez.enums.StudyField; +import org.lumijiez.managers.Supervisor; + +import java.awt.event.ActionEvent; +import java.util.List; +import java.util.Objects; +import javax.swing.*; +import javax.swing.text.Style; + +public class AddFacultyForm extends JFrame { + private final Supervisor sv; + private final JLabel mainTextLabel; + + private JLabel titleLabel = new JLabel(); + private JComboBox specialtyCombo = new JComboBox<>(); + private JTextField nameField = new JTextField(); + private JButton submitButton = new JButton(); + private JButton cancelButton = new JButton(); + private JLabel nameLabel = new JLabel(); + private JTextField abbreviationField = new JTextField(); + private JLabel abbreviationLabel = new JLabel(); + private JLabel specialtyLabel = new JLabel(); + public AddFacultyForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Add a new faculty"); + + String[] enumList = new String[StudyField.getAllEnums().size()]; + List sfl = StudyField.getAllEnums(); + for (int i = 0; i != enumList.length; i++) + enumList[i] = sfl.get(i).getName(); + + specialtyCombo.setModel(new DefaultComboBoxModel<>(enumList)); + specialtyCombo.addActionListener(this::specialtyComboActionPerformed); + + nameField.setText("Name..."); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + nameLabel.setText("Name:"); + + abbreviationField.setText("Abbreviation..."); + + abbreviationLabel.setText("Abbreviation:"); + + specialtyLabel.setText("Specialty Field:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(25, 25, 25) + .addComponent(abbreviationLabel)) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(abbreviationField, GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE) + .addComponent(nameField) + .addGroup(layout.createSequentialGroup() + .addGap(5, 5, 5) + .addComponent(nameLabel))) + .addGap(40, 40, 40) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(specialtyLabel) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addGap(29, 29, 29) + .addComponent(submitButton)) + .addComponent(specialtyCombo, GroupLayout.PREFERRED_SIZE, 173, GroupLayout.PREFERRED_SIZE)))) + .addContainerGap(30, Short.MAX_VALUE)) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(titleLabel) + .addGap(149, 149, 149))); + layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(7, 7, 7) + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameLabel).addComponent(specialtyLabel)) + .addGap(3, 3, 3) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(specialtyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGap(11, 11, 11) + .addComponent(abbreviationLabel) + .addGap(5, 5, 5) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(abbreviationField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(24, Short.MAX_VALUE))); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + String name = nameField.getText(); + String abbreviation = abbreviationField.getText(); + StudyField specialty = StudyField.getEnum(Objects.requireNonNull(specialtyCombo.getSelectedItem()).toString()); + Faculty newFaculty = new Faculty(name, abbreviation, specialty); + sv.getFm().addFaculty(newFaculty); + } + + private void specialtyComboActionPerformed(ActionEvent evt) { + abbreviationField.setText(StudyField.getAbbrevFromString(Objects.requireNonNull(specialtyCombo.getSelectedItem()).toString())); + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/EditFacultyForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/EditFacultyForm.java new file mode 100644 index 0000000..096df2e --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/EditFacultyForm.java @@ -0,0 +1,146 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.faculty; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class EditFacultyForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JTextField abbreviationField; + private JLabel abbreviationLabel; + private JButton cancelButton; + private JComboBox facultyCombo; + private JLabel facultyLabel; + private JTextField nameField; + private JLabel nameLabel; + private JComboBox specialtyCombo; + private JLabel specialtyLabel; + private JButton submitButton; + private JLabel titleLabel; + public EditFacultyForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + submitButton = new JButton(); + cancelButton = new JButton(); + nameLabel = new JLabel(); + nameField = new JTextField(); + facultyCombo = new JComboBox<>(); + facultyLabel = new JLabel(); + abbreviationLabel = new JLabel(); + abbreviationField = new JTextField(); + specialtyCombo = new JComboBox<>(); + specialtyLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Edit a faculty"); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + nameLabel.setText("New name:"); + + nameField.setText("Name..."); + + facultyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + facultyLabel.setText("Faculty:"); + + abbreviationLabel.setText("New abbreviation:"); + + abbreviationField.setText("Abbreviation..."); + + specialtyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + specialtyLabel.setText("New specialty:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addGap(120, 120, 120) + .addComponent(titleLabel)) + .addGroup(layout.createSequentialGroup() + .addGap(25, 25, 25) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(facultyLabel) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(specialtyLabel) + .addComponent(facultyCombo, 0, 115, Short.MAX_VALUE) + .addComponent(specialtyCombo, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(abbreviationLabel) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addComponent(abbreviationField, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addGap(18, 18, 18) + .addComponent(submitButton))) + .addComponent(nameLabel)))))) + .addContainerGap(24, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameLabel) + .addComponent(facultyLabel)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(abbreviationLabel) + .addComponent(specialtyLabel)) + .addGap(5, 5, 5) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(abbreviationField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(specialtyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addGap(14, 14, 14)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/RemoveFacultyForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/RemoveFacultyForm.java new file mode 100644 index 0000000..1efb0d2 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/RemoveFacultyForm.java @@ -0,0 +1,99 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.faculty; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class RemoveFacultyForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox facultyCombo; + private JLabel facultyLabel; + private JButton submitButton; + private JLabel titleLabel; + public RemoveFacultyForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + submitButton = new JButton(); + cancelButton = new JButton(); + facultyCombo = new JComboBox<>(); + facultyLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Remove a faculty"); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + facultyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + facultyLabel.setText("Faculty:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(22, 22, 22) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addGap(38, 38, 38) + .addComponent(submitButton)) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(facultyLabel) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, 181, GroupLayout.PREFERRED_SIZE))) + .addContainerGap(32, Short.MAX_VALUE)) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(titleLabel) + .addGap(48, 48, 48)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addGap(18, 18, 18) + .addComponent(facultyLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(21, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/ShowFacultyForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/ShowFacultyForm.java new file mode 100644 index 0000000..4321ef6 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/faculty/ShowFacultyForm.java @@ -0,0 +1,100 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.faculty; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class ShowFacultyForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox facultyCombo; + private JLabel facultyLabel; + private JButton submitButton; + private JLabel titleLabel; + public ShowFacultyForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + submitButton = new JButton(); + cancelButton = new JButton(); + facultyCombo = new JComboBox<>(); + facultyLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Show a faculty"); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + facultyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + facultyLabel.setText("Faculty:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(46, 46, 46) + .addComponent(titleLabel)) + .addGroup(layout.createSequentialGroup() + .addGap(26, 26, 26) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(facultyLabel) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false) + .addGroup(GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(cancelButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(submitButton)) + .addComponent(facultyCombo, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 171, GroupLayout.PREFERRED_SIZE))))) + .addContainerGap(27, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(13, 13, 13) + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(facultyLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(24, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/group/AddGroupForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/group/AddGroupForm.java new file mode 100644 index 0000000..630defc --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/group/AddGroupForm.java @@ -0,0 +1,107 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.group; + +import org.lumijiez.managers.Supervisor; +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class AddGroupForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + + public AddGroupForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + private void initComponents() { + + JLabel titleLabel = new JLabel(); + JTextField nameField = new JTextField(); + JButton submitButton = new JButton(); + JButton cancelButton = new JButton(); + JLabel nameLabel = new JLabel(); + JComboBox facultyCombo = new JComboBox<>(); + JLabel facultyLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Add a new group"); + + nameField.setText("Name..."); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + nameLabel.setText("Name:"); + + facultyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + facultyLabel.setText("Faculty:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(nameField, GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addGap(5, 5, 5) + .addComponent(nameLabel)) + .addComponent(facultyLabel) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(submitButton)) + .addComponent(facultyCombo, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addGroup(layout.createSequentialGroup() + .addGap(38, 38, 38) + .addComponent(titleLabel))) + .addContainerGap(29, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addGap(13, 13, 13) + .addComponent(nameLabel) + .addGap(3, 3, 3) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(facultyLabel) + .addGap(5, 5, 5) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addGap(15, 15, 15)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/group/DeleteGroupForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/group/DeleteGroupForm.java new file mode 100644 index 0000000..b0e21ee --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/group/DeleteGroupForm.java @@ -0,0 +1,98 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.group; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class DeleteGroupForm extends JFrame { + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox groupCombo; + private JLabel groupLabel; + private JButton submitButton; + private JLabel titleLabel; + public DeleteGroupForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + groupCombo = new JComboBox<>(); + submitButton = new JButton(); + cancelButton = new JButton(); + groupLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Delete a group"); + + groupCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + groupLabel.setText("Group:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(23, 23, 23) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(groupLabel) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false) + .addGroup(GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(cancelButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(submitButton)) + .addComponent(groupCombo, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE)))) + .addGroup(layout.createSequentialGroup() + .addGap(54, 54, 54) + .addComponent(titleLabel))) + .addContainerGap(29, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(groupLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(18, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/group/EditGroupForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/group/EditGroupForm.java new file mode 100644 index 0000000..f8f92c5 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/group/EditGroupForm.java @@ -0,0 +1,133 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.group; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class EditGroupForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox facultyCombo; + private JLabel facultyLabel; + private JComboBox groupCombo; + private JLabel groupLabel; + private JTextField nameField; + private JLabel nameLabel; + private JButton submitButton; + private JLabel titleLabel; + public EditGroupForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + groupCombo = new JComboBox<>(); + nameField = new JTextField(); + submitButton = new JButton(); + cancelButton = new JButton(); + nameLabel = new JLabel(); + facultyCombo = new JComboBox<>(); + groupLabel = new JLabel(); + facultyLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Edit a group"); + + groupCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + nameField.setText("Name..."); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + nameLabel.setText("New name:"); + + facultyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + groupLabel.setText("Group:"); + + facultyLabel.setText("Faculty:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(25, 25, 25) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(129, 129, 129) + .addComponent(titleLabel)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addComponent(cancelButton) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(groupLabel)) + .addGap(34, 34, 34) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE) + .addComponent(nameLabel)))) + .addGap(27, 27, 27) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(facultyLabel) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(submitButton)))) + .addContainerGap(34, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(7, 7, 7) + .addComponent(titleLabel) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(35, 35, 35) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addGap(15, 15, 15) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameLabel) + .addComponent(groupLabel) + .addComponent(facultyLabel)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))) + .addGap(31, 31, 31) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(36, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/group/ShowGroupForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/group/ShowGroupForm.java new file mode 100644 index 0000000..c4c0812 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/group/ShowGroupForm.java @@ -0,0 +1,100 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.group; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + + +public class ShowGroupForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox groupCombo; + private JLabel groupLabel; + private JButton submitButton; + private JLabel titleLabel; + public ShowGroupForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + groupCombo = new JComboBox<>(); + submitButton = new JButton(); + cancelButton = new JButton(); + groupLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Show a group"); + + groupCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + groupLabel.setText("Group:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(25, 25, 25) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(groupLabel) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(submitButton)) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, 169, GroupLayout.PREFERRED_SIZE)))) + .addGroup(layout.createSequentialGroup() + .addGap(47, 47, 47) + .addComponent(titleLabel))) + .addContainerGap(24, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addGap(15, 15, 15) + .addComponent(groupLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(25, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/student/AddStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/student/AddStudentForm.java new file mode 100644 index 0000000..863328a --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/student/AddStudentForm.java @@ -0,0 +1,184 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.student; + +import org.lumijiez.managers.Supervisor; +import org.lumijiez.util.FullStudentData; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class AddStudentForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JTextField emailField; + private JLabel emailLabel; + private JComboBox facultyCombo; + private JLabel facultyLabel; + private JComboBox groupCombo; + private JLabel groupLabel; + private JTextField nameField; + private JLabel nameLabel; + private JButton submitButton; + private JTextField surnameField; + private JLabel surnameLabel; + private JLabel titleLabel; + + public AddStudentForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + groupCombo = new JComboBox<>(); + nameField = new JTextField(); + submitButton = new JButton(); + cancelButton = new JButton(); + nameLabel = new JLabel(); + surnameField = new JTextField(); + emailField = new JTextField(); + surnameLabel = new JLabel(); + emailLabel = new JLabel(); + facultyCombo = new JComboBox<>(); + groupLabel = new JLabel(); + facultyLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Add a new student"); + + groupCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + nameField.setText("Name..."); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + nameLabel.setText("Name:"); + + surnameField.setText("Surname..."); + + emailField.setText("Email..."); + + surnameLabel.setText("Surname:"); + + emailLabel.setText("Email:"); + + facultyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + groupLabel.setText("Group:"); + + facultyLabel.setText("Faculty:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(132, 132, 132) + .addComponent(titleLabel)) + .addGroup(layout.createSequentialGroup() + .addGap(25, 25, 25) + .addComponent(surnameLabel) + .addGap(142, 142, 142) + .addComponent(emailLabel))) + .addGap(69, 138, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(surnameField, GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE) + .addComponent(nameField) + .addGroup(layout.createSequentialGroup() + .addGap(5, 5, 5) + .addComponent(nameLabel))) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(groupLabel) + .addGap(67, 67, 67) + .addComponent(facultyLabel) + .addGap(51, 51, 51)) + .addGroup(layout.createSequentialGroup() + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(submitButton)) + .addGroup(layout.createSequentialGroup() + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(34, 34, 34) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(emailField, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameLabel) + .addComponent(groupLabel) + .addComponent(facultyLabel)) + .addGap(3, 3, 3) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(11, 11, 11) + .addComponent(surnameLabel) + .addGap(5, 5, 5)) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addComponent(emailLabel) + .addGap(4, 4, 4))) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(surnameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(emailField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGap(38, 38, 38) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + + pack(); + } + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + String name = nameField.getText(); + String surname = surnameField.getText(); + FullStudentData data = new FullStudentData(name, surname, "group", "faculty"); + if (!name.isEmpty() && !surname.isEmpty()) { + sv.getFm().getGm().getSm().addStudent(data, sv); + mainTextLabel.setText("===== Students =====\n" + sv.getStudentsText()); + System.out.println(data); + System.out.println("LOL"); + System.out.println(sv.getStudentsText()); + this.dispose(); + } else JOptionPane.showMessageDialog(this, "Please fill in all fields."); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/student/DeleteStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/student/DeleteStudentForm.java new file mode 100644 index 0000000..1c28b01 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/student/DeleteStudentForm.java @@ -0,0 +1,98 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.student; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class DeleteStudentForm extends JFrame { + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox studentCombo; + private JLabel studentLabel; + private JButton submitButton; + private JLabel titleLabel; + public DeleteStudentForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + studentCombo = new JComboBox<>(); + submitButton = new JButton(); + cancelButton = new JButton(); + studentLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Delete Student"); + + studentCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + studentLabel.setText("Student:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(submitButton)) + .addGroup(layout.createSequentialGroup() + .addGap(5, 5, 5) + .addComponent(studentLabel)) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE)) + .addContainerGap(26, Short.MAX_VALUE)) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(titleLabel) + .addGap(51, 51, 51)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(7, 7, 7) + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(studentLabel) + .addGap(3, 3, 3) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(submitButton) + .addComponent(cancelButton)) + .addContainerGap(26, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/student/EditStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/student/EditStudentForm.java new file mode 100644 index 0000000..70c9af0 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/student/EditStudentForm.java @@ -0,0 +1,177 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.student; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class EditStudentForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JTextField emailField; + private JLabel emailLabel; + private JComboBox facultyCombo; + private JLabel facultyLabel; + private JComboBox groupCombo; + private JLabel groupLabel; + private JTextField nameField; + private JLabel nameLabel; + private JComboBox studentCombo; + private JLabel studentLabel; + private JButton submitButton; + private JTextField surnameField; + private JLabel surnameLabel; + private JLabel titleLabel; + public EditStudentForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + studentCombo = new JComboBox<>(); + nameField = new JTextField(); + submitButton = new JButton(); + cancelButton = new JButton(); + studentLabel = new JLabel(); + surnameField = new JTextField(); + emailField = new JTextField(); + nameLabel = new JLabel(); + emailLabel = new JLabel(); + groupCombo = new JComboBox<>(); + groupLabel = new JLabel(); + facultyLabel = new JLabel(); + surnameLabel = new JLabel(); + facultyCombo = new JComboBox<>(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Edit a student"); + + studentCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + nameField.setText("Name..."); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + studentLabel.setText("Student:"); + + surnameField.setText("Surname..."); + + emailField.setText("Email..."); + + nameLabel.setText("New name:"); + + emailLabel.setText("New email:"); + + groupCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + groupLabel.setText("New group:"); + + facultyLabel.setText("New faculty:"); + + surnameLabel.setText("New surname:"); + + facultyCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(26, 26, 26) + .addComponent(studentLabel)) + .addGroup(layout.createSequentialGroup() + .addGap(25, 25, 25) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(surnameLabel) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) + .addComponent(surnameField, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE) + .addComponent(nameLabel) + .addComponent(nameField, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE) + .addComponent(studentCombo, GroupLayout.Alignment.TRAILING, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(36, 36, 36) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(emailLabel) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(submitButton)) + .addComponent(emailField, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(groupLabel)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(facultyLabel) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))))))) + .addGroup(layout.createSequentialGroup() + .addGap(162, 162, 162) + .addComponent(titleLabel))) + .addContainerGap(24, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(13, 13, 13) + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(studentLabel) + .addComponent(groupLabel) + .addComponent(facultyLabel)) + .addGap(3, 3, 3) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(groupCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(facultyCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGap(12, 12, 12) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(emailLabel) + .addComponent(nameLabel)) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(nameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(emailField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(surnameLabel) + .addGap(3, 3, 3) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(surnameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(24, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/student/GradeStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/student/GradeStudentForm.java new file mode 100644 index 0000000..a611e4d --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/student/GradeStudentForm.java @@ -0,0 +1,137 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.student; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class GradeStudentForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JTextField gradeField; + private JLabel gradeLabel; + private JComboBox studentCombo; + private JLabel studentLabel; + private JComboBox subjectCombo; + private JLabel subjectLabel; + private JButton submitButton; + private JLabel titleLabel; + + public GradeStudentForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + studentCombo = new JComboBox<>(); + submitButton = new JButton(); + cancelButton = new JButton(); + subjectLabel = new JLabel(); + subjectCombo = new JComboBox<>(); + studentLabel = new JLabel(); + gradeField = new JTextField(); + gradeLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Grade a student"); + + studentCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + subjectLabel.setText("Subject:"); + + subjectCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + studentLabel.setText("Student:"); + + gradeField.setText("Grade..."); + + gradeLabel.setText("Grade:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(25, 25, 25) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(gradeLabel) + .addContainerGap()) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, 147, GroupLayout.PREFERRED_SIZE) + .addComponent(studentLabel) + .addComponent(gradeField, GroupLayout.PREFERRED_SIZE, 147, GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 37, Short.MAX_VALUE) + .addComponent(subjectLabel) + .addGap(148, 148, 148)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addGap(18, 18, 18) + .addComponent(submitButton)) + .addComponent(subjectCombo, GroupLayout.PREFERRED_SIZE, 160, GroupLayout.PREFERRED_SIZE)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))))) + .addGroup(layout.createSequentialGroup() + .addGap(129, 129, 129) + .addComponent(titleLabel) + .addGap(0, 0, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(7, 7, 7) + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(subjectLabel) + .addComponent(studentLabel)) + .addGap(3, 3, 3) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(subjectCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addComponent(gradeLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(gradeField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(30, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/student/ShowStudentForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/student/ShowStudentForm.java new file mode 100644 index 0000000..21861ed --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/student/ShowStudentForm.java @@ -0,0 +1,103 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.student; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class ShowStudentForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox studentCombo; + private JLabel studentLabel; + private JButton submitButton; + private JLabel titleLabel; + + public ShowStudentForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + studentCombo = new JComboBox<>(); + submitButton = new JButton(); + cancelButton = new JButton(); + studentLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Show Student"); + + studentCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + studentLabel.setText("Student:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(5, 5, 5) + .addComponent(studentLabel)) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addGap(34, 34, 34) + .addComponent(submitButton)) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE)))) + .addGroup(layout.createSequentialGroup() + .addGap(52, 52, 52) + .addComponent(titleLabel))) + .addContainerGap(23, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(titleLabel) + .addGap(13, 13, 13) + .addComponent(studentLabel) + .addGap(3, 3, 3) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(22, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +} diff --git a/Lab2/src/main/java/org/lumijiez/gui/forms/student/ShowStudentGradesForm.java b/Lab2/src/main/java/org/lumijiez/gui/forms/student/ShowStudentGradesForm.java new file mode 100644 index 0000000..0447af6 --- /dev/null +++ b/Lab2/src/main/java/org/lumijiez/gui/forms/student/ShowStudentGradesForm.java @@ -0,0 +1,104 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template + */ +package org.lumijiez.gui.forms.student; + +import org.lumijiez.managers.Supervisor; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +public class ShowStudentGradesForm extends JFrame { + + private final Supervisor sv; + private final JLabel mainTextLabel; + private JButton cancelButton; + private JComboBox studentCombo; + private JLabel studentLabel; + private JButton submitButton; + private JLabel titleLabel; + + + public ShowStudentGradesForm(Supervisor sv, JLabel mainTextLabel) { + this.sv = sv; + this.mainTextLabel = mainTextLabel; + initComponents(); + } + + private void initComponents() { + + titleLabel = new JLabel(); + studentCombo = new JComboBox<>(); + submitButton = new JButton(); + cancelButton = new JButton(); + studentLabel = new JLabel(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + titleLabel.setFont(new java.awt.Font("sansserif", 0, 18)); // NOI18N + titleLabel.setText("Show Grades"); + + studentCombo.setModel(new DefaultComboBoxModel<>(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"})); + + submitButton.setBackground(new java.awt.Color(204, 255, 204)); + submitButton.setText("Submit"); + submitButton.addActionListener(this::submitButtonActionPerformed); + + cancelButton.setBackground(new java.awt.Color(255, 204, 204)); + cancelButton.setText("Cancel"); + cancelButton.addActionListener(this::cancelButtonActionPerformed); + + studentLabel.setText("Student:"); + + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(5, 5, 5) + .addComponent(studentLabel)) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(cancelButton) + .addGap(34, 34, 34) + .addComponent(submitButton)) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE)))) + .addGroup(layout.createSequentialGroup() + .addGap(50, 50, 50) + .addComponent(titleLabel))) + .addContainerGap(30, Short.MAX_VALUE)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(7, 7, 7) + .addComponent(titleLabel) + .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(studentLabel) + .addGap(3, 3, 3) + .addComponent(studentCombo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(cancelButton) + .addComponent(submitButton)) + .addContainerGap(22, Short.MAX_VALUE)) + ); + + pack(); + } + + private void submitButtonActionPerformed(ActionEvent evt) { + + } + + private void cancelButtonActionPerformed(ActionEvent evt) { + this.dispose(); + } + +}