Adds more than just a TA dialog #4
|
@ -3,6 +3,7 @@ package nl.andrewlalis.model;
|
|||
import org.kohsuke.github.GHTeam;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -31,6 +32,14 @@ public class TATeam extends Team {
|
|||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of teaching assistants, as a convenience method to avoid having to do an array cast.
|
||||
* @return An array of all teaching assistant members of this team.
|
||||
*/
|
||||
public TeachingAssistant[] getTeachingAssistants() {
|
||||
return Arrays.copyOf(this.getMembers(), this.memberCount(), TeachingAssistant[].class);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package nl.andrewlalis.ui.view;
|
||||
|
||||
import nl.andrewlalis.git_api.GithubManager;
|
||||
import nl.andrewlalis.ui.view.list_models.TATeamListCellRenderer;
|
||||
import nl.andrewlalis.ui.view.list_models.TATeamListModel;
|
||||
import nl.andrewlalis.ui.view.list_models.TeachingAssistantListCellRenderer;
|
||||
import nl.andrewlalis.ui.view.list_models.TeachingAssistantsListModel;
|
||||
|
@ -18,6 +19,8 @@ import java.awt.*;
|
|||
*/
|
||||
public class DefineTaTeamsDialog extends JDialog {
|
||||
|
||||
private static final Dimension LIST_SIZE = new Dimension(200, -1);
|
||||
|
||||
/**
|
||||
* The manager used to manipulate the organization.
|
||||
*/
|
||||
|
@ -63,6 +66,8 @@ public class DefineTaTeamsDialog extends JDialog {
|
|||
|
||||
ListModel model = new TATeamListModel(this.manager.getTeams());
|
||||
JList teamsList = new JList(model);
|
||||
teamsList.setCellRenderer(new TATeamListCellRenderer());
|
||||
teamsList.setPreferredSize(LIST_SIZE);
|
||||
teamsList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
||||
|
||||
JScrollPane teamsListScrollPane = new JScrollPane(teamsList);
|
||||
|
@ -84,6 +89,7 @@ public class DefineTaTeamsDialog extends JDialog {
|
|||
JList membersList = new JList();
|
||||
membersList.setModel(model);
|
||||
membersList.setCellRenderer(new TeachingAssistantListCellRenderer());
|
||||
membersList.setPreferredSize(LIST_SIZE);
|
||||
membersList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
||||
|
||||
JScrollPane membersListScrollPane = new JScrollPane(membersList);
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
package nl.andrewlalis.ui.view.list_models;
|
||||
|
||||
import nl.andrewlalis.model.TATeam;
|
||||
import nl.andrewlalis.model.TeachingAssistant;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* Determines how list cells are rendered for a list of TATeams. In this case, it shows the team name, and the tooltip
|
||||
* text provides a list of members.
|
||||
*/
|
||||
public class TATeamListCellRenderer extends DefaultListCellRenderer {
|
||||
|
||||
@Override
|
||||
public Component getListCellRendererComponent(JList<?> jList, Object o, int i, boolean b, boolean b1) {
|
||||
super.getListCellRendererComponent(jList, o, i, b, b1);
|
||||
if (o instanceof TATeam) {
|
||||
TATeam team = (TATeam) o;
|
||||
this.setText(team.getName());
|
||||
StringBuilder sb = new StringBuilder();
|
||||
TeachingAssistant[] teachingAssistants = team.getTeachingAssistants();
|
||||
for (int j = 0; j < teachingAssistants.length; j++) {
|
||||
sb.append(teachingAssistants[j].getGithubUsername());
|
||||
if (j < teachingAssistants.length - 1) {
|
||||
sb.append('\n');
|
||||
}
|
||||
}
|
||||
this.setToolTipText(sb.toString());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}
|
|
@ -5,6 +5,9 @@ import nl.andrewlalis.model.TeachingAssistant;
|
|||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
/**
|
||||
* Controls what is rendered in a single list cell when displaying a list of TeachingAssistants.
|
||||
*/
|
||||
public class TeachingAssistantListCellRenderer extends DefaultListCellRenderer {
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue