package edu.pdx.cs410J.grader.poa.ui;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import edu.pdx.cs410J.grader.poa.StudentsView;
import javax.swing.*;
import java.awt.*;
import java.util.List;
@Singleton
public class StudentsWidget extends JPanel implements StudentsView {
private final JComboBox<String> students;
@Inject
public StudentsWidget() {
students = new JComboBox<>();
students.setEditable(false);
this.setLayout(new BorderLayout());
this.add(new JLabel("Student: "), BorderLayout.WEST);
this.add(students, BorderLayout.CENTER);
}
@Override
public void setStudents(List<String> students) {
String[] array = students.toArray(new String[students.size()]);
this.students.setModel(new DefaultComboBoxModel<>(array));
}
@Override
public void setSelectedStudentIndex(int index) {
this.students.setSelectedIndex(index);
}
@Override
public void addSelectStudentHandler(SelectStudentHandler handler) {
this.students.addActionListener(e -> {
int index = students.getSelectedIndex();
handler.studentSelected(index);
});
}
}