Adds more than just a TA dialog #4
			
				
			
		
		
		
	| 
						 | 
					@ -3,6 +3,7 @@ package nl.andrewlalis.model;
 | 
				
			||||||
import org.kohsuke.github.GHTeam;
 | 
					import org.kohsuke.github.GHTeam;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -31,6 +32,14 @@ public class TATeam extends Team {
 | 
				
			||||||
        this.name = name;
 | 
					        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() {
 | 
					    public String getName() {
 | 
				
			||||||
        return this.name;
 | 
					        return this.name;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
package nl.andrewlalis.ui.view;
 | 
					package nl.andrewlalis.ui.view;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import nl.andrewlalis.git_api.GithubManager;
 | 
					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.TATeamListModel;
 | 
				
			||||||
import nl.andrewlalis.ui.view.list_models.TeachingAssistantListCellRenderer;
 | 
					import nl.andrewlalis.ui.view.list_models.TeachingAssistantListCellRenderer;
 | 
				
			||||||
import nl.andrewlalis.ui.view.list_models.TeachingAssistantsListModel;
 | 
					import nl.andrewlalis.ui.view.list_models.TeachingAssistantsListModel;
 | 
				
			||||||
| 
						 | 
					@ -18,6 +19,8 @@ import java.awt.*;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class DefineTaTeamsDialog extends JDialog {
 | 
					public class DefineTaTeamsDialog extends JDialog {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final Dimension LIST_SIZE = new Dimension(200, -1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * The manager used to manipulate the organization.
 | 
					     * The manager used to manipulate the organization.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					@ -63,6 +66,8 @@ public class DefineTaTeamsDialog extends JDialog {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ListModel model = new TATeamListModel(this.manager.getTeams());
 | 
					        ListModel model = new TATeamListModel(this.manager.getTeams());
 | 
				
			||||||
        JList teamsList = new JList(model);
 | 
					        JList teamsList = new JList(model);
 | 
				
			||||||
 | 
					        teamsList.setCellRenderer(new TATeamListCellRenderer());
 | 
				
			||||||
 | 
					        teamsList.setPreferredSize(LIST_SIZE);
 | 
				
			||||||
        teamsList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
 | 
					        teamsList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        JScrollPane teamsListScrollPane = new JScrollPane(teamsList);
 | 
					        JScrollPane teamsListScrollPane = new JScrollPane(teamsList);
 | 
				
			||||||
| 
						 | 
					@ -84,6 +89,7 @@ public class DefineTaTeamsDialog extends JDialog {
 | 
				
			||||||
        JList membersList = new JList();
 | 
					        JList membersList = new JList();
 | 
				
			||||||
        membersList.setModel(model);
 | 
					        membersList.setModel(model);
 | 
				
			||||||
        membersList.setCellRenderer(new TeachingAssistantListCellRenderer());
 | 
					        membersList.setCellRenderer(new TeachingAssistantListCellRenderer());
 | 
				
			||||||
 | 
					        membersList.setPreferredSize(LIST_SIZE);
 | 
				
			||||||
        membersList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
 | 
					        membersList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        JScrollPane membersListScrollPane = new JScrollPane(membersList);
 | 
					        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 javax.swing.*;
 | 
				
			||||||
import java.awt.*;
 | 
					import java.awt.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Controls what is rendered in a single list cell when displaying a list of TeachingAssistants.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
public class TeachingAssistantListCellRenderer extends DefaultListCellRenderer {
 | 
					public class TeachingAssistantListCellRenderer extends DefaultListCellRenderer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue