import groovy.swing.SwingBuilder import java.awt.GridBagConstraints as GBC import javax.swing.ListCellRenderer public class TeamMaker { /* ======== MODEL ======== */ public static def swing = new SwingBuilder() public static final String version = "0.2" def frame def team1List def team2List def sittingList class Player { String name int gamesSat } /* ======== VIEW ======== */ /* +--------------------------------------------------+ | JDB TeamMaker v0.2 _[]X | +--------------------------------------------------+ | | | +-Current-Game--------------+ +-Sitting-Players+ | | | | | | | | | Team 1 Team 2 | | Jeptha 3 | | | | Derrick Eric | | Jack 2 | | | | Shane Brandon | | Sam 2 | | | | Shane Darren | | Greg 2 | | | | Christian Brett | | Frank 1 | | | +---------------------------+ | Chris D 1 | | | | Joshua 1 | | | | | | | | | | | | | | | | | | | | | | | +----------------+ | +--------------------------------------------------+ */ private void init() { frame = swing.frame(title: "JDB TeamMaker v$version", size: [600, 400], locationRelativeTo: null) { panel() { gridBagLayout() panel(constraints: gbc(gridx: 0, gridy: 0, insets: [5, 5, 5, 5]), border: titleBorder(title: 'Current Game')) { gridBagLayout() label('Team A', constraints: gbc(gridx: 0, gridy: 0, fill: GBC.BOTH, insets: [5, 5, 0, 0])) label('Team B', constraints: gbc(gridx: 1, gridy: 0, fill: GBC.BOTH, insets: [5, 5, 0, 5])) def teamListRenderer = new PlayerRenderer(showStats: false colored: false) team1List = list(cellRenderer: teamListRenderer, constraints: gbc(gridx: 0, gridy: 0, fill: GBC.BOTH, insets: [5, 5, 5, 0], weightx: 2, weighty: 2)) team2List = list(cellRenderer: teamListRenderer, constraints: gbc(gridx: 1, gridy: 1, fill: GBC.BOTH, insets: [5, 5, 5, 5], weightx: 2, weighty: 2)) } } sittingList = list( cellRenderer: new PlayerRenderer( showStats: true, colored: true), constraints: gbc(gridx: 1, gridy: 0, gridheight: 2) { } } } class PlayerRenderer implements ListCellRenderer extends JLabel { boolean showStats boolean colored PlayerRenderer } /* ======== CONTROLLER ======== */ public static void main(String[] args) { def inst = new TeamMaker() inst.frame.show() } TeamMaker() { } }