[virtualcommons-svn] SF.net SVN: virtualcommons:[407] foraging/branches/deepak-branch-fall-09/ src
Status: Beta
Brought to you by:
alllee
From: <al...@us...> - 2009-12-04 17:05:40
|
Revision: 407 http://virtualcommons.svn.sourceforge.net/virtualcommons/?rev=407&view=rev Author: alllee Date: 2009-12-04 17:05:29 +0000 (Fri, 04 Dec 2009) Log Message: ----------- latest update of code so deepak can help debug the RegulationPanel and EnforcementPanel voting (selecting any vote clears the entire screen). Modified Paths: -------------- foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/ChatPanel.java foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/EnforcementPanel.java foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/RegulationPanel.java foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/RegulationData.java Modified: foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/ChatPanel.java =================================================================== --- foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/ChatPanel.java 2009-12-04 16:16:38 UTC (rev 406) +++ foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/ChatPanel.java 2009-12-04 17:05:29 UTC (rev 407) @@ -250,13 +250,12 @@ chatInstructionsPane.setContentType("text/html"); chatInstructionsPane.setEditorKit(new HTMLEditorKit()); chatInstructionsPane.setEditable(false); + chatInstructionsPane.setBackground(Color.WHITE); JScrollPane chatInstructionsScrollPane = new JScrollPane(chatInstructionsPane); chatInstructionsPane.setText(client.getDataModel().getRoundConfiguration().getChatInstructions()); add(chatInstructionsScrollPane, BorderLayout.NORTH); add(messageScrollPane, BorderLayout.CENTER); - // if (client.getDataModel().getRoundConfiguration().shouldD - // add(participantButtonPanel, BorderLayout.EAST); add(textEntryPanel, BorderLayout.SOUTH); textEntryPanel.setChatFieldFocus(); } Modified: foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/EnforcementPanel.java =================================================================== --- foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/EnforcementPanel.java 2009-12-04 16:16:38 UTC (rev 406) +++ foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/EnforcementPanel.java 2009-12-04 17:05:29 UTC (rev 407) @@ -20,6 +20,7 @@ import javax.swing.ScrollPaneConstants; import edu.asu.commons.foraging.event.EnforcementRankingRequest; +import edu.asu.commons.foraging.model.EnforcementMechanism; import edu.asu.commons.net.Identifier; /** @@ -38,12 +39,13 @@ private String[] votes = { "1", "2", "3","4"}; - private String[] enforcementOptions = { - "No Enforcement - Click here for more info ", - "Everyone sanctions - Click here for more info ", - "Randomly picked monitering - Click here for more info", - "Random sanctioning - Click here for more info " - }; + private EnforcementMechanism[] enforcementOptions = EnforcementMechanism.values(); + // private String[] enforcementOptions = { + // "No Enforcement - Click here for more info ", + // "Everyone sanctions - Click here for more info ", + // "Randomly picked monitering - Click here for more info", + // "Random sanctioning - Click here for more info " + // }; private String[] enforcementText = { "Everybody can harvest. Nobody can subtract tokens<br>" + @@ -79,61 +81,61 @@ private JPanel instructionsPanel; private SixChoicePanel[] newPanel; - private int noOfEnforcements; + private int noOfEnforcements = EnforcementMechanism.values().length; private int currentRankingInformation[]; private JPanel buttonPanel; - public EnforcementPanel () - { - newPanel = new SixChoicePanel[4]; - } + public EnforcementPanel () + { + newPanel = new SixChoicePanel[4]; + } public String getVotedEnforcementOptions(int index){ return this.enforcementText[index]; } - private JPanel getInstructionPanel() - { - JPanel instructionPanel = new JPanel(); - - //instructionPanel.setBackground(color); - instructionPanel.setLayout(new BoxLayout(instructionPanel, BoxLayout.X_AXIS)); - instructionPanel.setBorder(BorderFactory.createTitledBorder("Regulation Instruction")); - - //create Text area and JSCroll pane for it - String instructions = client.getDataModel().getRoundConfiguration().getVotingInstructions(); + private JPanel getInstructionPanel() + { + JPanel instructionPanel = new JPanel(); - JTextArea instructionText = new JTextArea(instructions,3,50); - JScrollPane scrollForRegulationText = new JScrollPane(instructionText,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - instructionPanel.add(scrollForRegulationText); - - return instructionPanel; + //instructionPanel.setBackground(color); + instructionPanel.setLayout(new BoxLayout(instructionPanel, BoxLayout.X_AXIS)); + instructionPanel.setBorder(BorderFactory.createTitledBorder("Enforcement Instructions")); - } + //create Text area and JSCroll pane for it + String instructions = client.getDataModel().getRoundConfiguration().getVotingInstructions(); - private Color getColor(int i) - { - Color color = null; - if(i==0) color = new Color(153,153,204); - if(i==1) color = new Color(204,153,153); - if(i==2) color = new Color(153,204,102); - if(i==3) color = new Color(204,204,102); - if(i==4) color = new Color(255,255,153); - return color; - } + JTextArea instructionText = new JTextArea(instructions,3,50); + JScrollPane scrollForRegulationText = new JScrollPane(instructionText); + instructionPanel.add(scrollForRegulationText); - // FIXME: this is extremely inefficient, reimplement later + return instructionPanel; + + } + + private Color getColor(int i) + { + Color color = null; + if(i==0) color = new Color(153,153,204); + if(i==1) color = new Color(204,153,153); + if(i==2) color = new Color(153,204,102); + if(i==3) color = new Color(204,204,102); + if(i==4) color = new Color(255,255,153); + return color; + } + + // FIXME: this is extremely inefficient, reimplement later private void updateVotingPanel(int currentActive){ int r,c,i; SixChoicePanel temp = null; boolean enableSendButton = true; - + for(r = 0; r < noOfEnforcements; r++) { - + if(newPanel[r].currentRanking == -1)enableSendButton = false; if((newPanel[currentActive].currentRanking == newPanel[r].currentRanking) && (r != currentActive)) @@ -167,27 +169,27 @@ // System.out.print(newPanel[c].getCurrentRanking() +" "); } - votingPanel.setVisible(false); - remove(votingPanel); - votingPanel = new JPanel(); - votingPanel.setLayout(new BoxLayout(votingPanel, BoxLayout.Y_AXIS)); + votingPanel.setVisible(false); + remove(votingPanel); + votingPanel = new JPanel(); + votingPanel.setLayout(new BoxLayout(votingPanel, BoxLayout.Y_AXIS)); - votingPanel.add(getInstructionPanel()); + votingPanel.add(getInstructionPanel()); - for(i=0; i < noOfEnforcements; i++) { - votingPanel.add(newPanel[i].enforcementPanel); - } + for(i=0; i < noOfEnforcements; i++) { + votingPanel.add(newPanel[i].enforcementPanel); + } - votingPanel.setVisible(true); - add(votingPanel, BorderLayout.CENTER); + votingPanel.setVisible(true); + add(votingPanel, BorderLayout.CENTER); - if(enableSendButton) { - sendMyVotes.setEnabled(true); - buttonPanel.setVisible(true); - add(buttonPanel, BorderLayout.SOUTH); - } - revalidate(); + if(enableSendButton) { + sendMyVotes.setEnabled(true); + buttonPanel.setVisible(true); + add(buttonPanel, BorderLayout.SOUTH); + } + revalidate(); } private String getVoteString(){ @@ -221,18 +223,18 @@ setBackground(Color.lightGray); setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); - votingPanel = new JPanel(); - votingPanel.setLayout(new BoxLayout(votingPanel, BoxLayout.Y_AXIS)); + votingPanel = new JPanel(); + votingPanel.setLayout(new BoxLayout(votingPanel, BoxLayout.Y_AXIS)); - //add the instruction panel as the first panel in voting panel. - instructionsPanel = getInstructionPanel(); - votingPanel.add(instructionsPanel); + //add the instruction panel as the first panel in voting panel. + instructionsPanel = getInstructionPanel(); + votingPanel.add(instructionsPanel); for(int i=0; i<noOfEnforcements; i++) { - + //newPanel[i] = new SixChoicePanel(s, votes, enforcementData.getEnforcementID(), getColor(i)); //newPanel[i] = new SixChoicePanel(s, votes, client.getEnforcementID(), getColor(i)); newPanel[i] = new SixChoicePanel(enforcementOptions[i], votes, i, getColor(i)); @@ -288,20 +290,23 @@ public void initialize() { initGuiComponents(); } - private class SixChoicePanel implements ActionListener{ - String title; - String [] buttonLabels; - int enforcementID; - int currentRanking; - JPanel enforcementPanel; - JPanel rankPanel; - ButtonGroup group; - JRadioButton option []; - Color color; + + private class SixChoicePanel implements ActionListener{ + String title; + String description; + String [] buttonLabels; + int enforcementID; + int currentRanking; + JPanel enforcementPanel; + JPanel rankPanel; + ButtonGroup group; + JRadioButton option []; + Color color; - public SixChoicePanel(String title, String[] buttonLabels, int enforcementID, Color color ) { - this.title = title; + public SixChoicePanel(EnforcementMechanism enforcementMechanism, String[] buttonLabels, int enforcementID, Color color ) { + this.title = enforcementMechanism.getTitle(); + this.description = enforcementMechanism.getDescription(); this.buttonLabels = buttonLabels; this.enforcementID = enforcementID; this.color = color; @@ -313,46 +318,47 @@ } public void actionPerformed(ActionEvent e) { - String choice = group.getSelection().getActionCommand(); - int buttonNo = Integer.parseInt(choice); - System.out.println("ACTION Choice Selected: " + choice); - System.out.println("Bno: " + buttonNo); - System.out.println("CurrentActive : "+this.enforcementID); - this.currentRanking = buttonNo; - updateVotingPanel(this.enforcementID); - } + String choice = group.getSelection().getActionCommand(); + int buttonNo = Integer.parseInt(choice); + System.out.println("ACTION Choice Selected: " + choice); + System.out.println("Bno: " + buttonNo); + System.out.println("CurrentActive : "+this.enforcementID); + this.currentRanking = buttonNo; + updateVotingPanel(this.enforcementID); + } - - public JPanel getEnforcementPanel(int i){ - enforcementPanel = new JPanel(); - enforcementPanel.setBackground(color); - enforcementPanel.setLayout(new BoxLayout(enforcementPanel, BoxLayout.X_AXIS)); - enforcementPanel.setBorder(BorderFactory.createTitledBorder("Enforcement "+(i+1))); - //create Text area and JSCroll pane for it + public JPanel getEnforcementPanel(int i){ + enforcementPanel = new JPanel(); + enforcementPanel.setBackground(color); + enforcementPanel.setLayout(new BoxLayout(enforcementPanel, BoxLayout.X_AXIS)); + enforcementPanel.setBorder(BorderFactory.createTitledBorder(title)); - JTextArea regulationText = new JTextArea(title,3,50); - JScrollPane scrollForRegulationText = new JScrollPane(regulationText,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - enforcementPanel.add(scrollForRegulationText); + //create Text area and JSCroll pane for it - rankPanel = new JPanel(); - rankPanel.setBackground(color); - rankPanel.setLayout(new BoxLayout(rankPanel, BoxLayout.Y_AXIS)); - rankPanel.setBorder(BorderFactory.createTitledBorder("Ranks")); - group = new ButtonGroup(); - int length = buttonLabels.length; // Assumes even length + JTextArea regulationText = new JTextArea(title,3,50); + regulationText.setText(description); + JScrollPane scrollForRegulationText = new JScrollPane(regulationText,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + enforcementPanel.add(scrollForRegulationText); - for(int j=0; j<length; j++) { - option[j] = new JRadioButton(buttonLabels[j]); - option[j].setActionCommand(buttonLabels[j]); - group.add(option[j]); - option[j].addActionListener(this); - rankPanel.add(option[j]); - } - enforcementPanel.add(rankPanel); - return enforcementPanel; - } + rankPanel = new JPanel(); + rankPanel.setBackground(color); + rankPanel.setLayout(new BoxLayout(rankPanel, BoxLayout.Y_AXIS)); + rankPanel.setBorder(BorderFactory.createTitledBorder("Ranks")); + group = new ButtonGroup(); + int length = buttonLabels.length; // Assumes even length - } + for(int j=0; j<length; j++) { + option[j] = new JRadioButton(buttonLabels[j]); + option[j].setActionCommand(buttonLabels[j]); + group.add(option[j]); + option[j].addActionListener(this); + rankPanel.add(option[j]); + } + enforcementPanel.add(rankPanel); + return enforcementPanel; + } + } + } Modified: foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/RegulationPanel.java =================================================================== --- foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/RegulationPanel.java 2009-12-04 16:16:38 UTC (rev 406) +++ foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/client/RegulationPanel.java 2009-12-04 17:05:29 UTC (rev 407) @@ -146,6 +146,7 @@ .addStyle("italic", defaultStyle), true); } + // FIXME: extremely inefficient, refactor after experiment. private void updateVotingPanel(int currentActive){ int r,c,i; SixChoicePanel temp = null; @@ -190,11 +191,6 @@ } } - for(c = 0; c < noOfRegulations; c++) - { - // System.out.print(newPanel[c].getCurrentRanking() +" "); - } - votingPanel.setVisible(false); remove(votingPanel); votingPanel = new JPanel(); @@ -357,10 +353,8 @@ instructionPanel.setBorder(BorderFactory.createTitledBorder("Regulation Instruction")); String instructions = client.getDataModel().getRoundConfiguration().getVotingInstructions(); - - //create Text area and JSCroll pane for it - - JTextArea instructionText = new JTextArea(instructions,3,50); + JTextArea instructionText = new JTextArea(instructions); + instructionText.setWrapStyleWord(true); JScrollPane scrollForRegulationText = new JScrollPane(instructionText,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); instructionPanel.add(scrollForRegulationText); Modified: foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java =================================================================== --- foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java 2009-12-04 16:16:38 UTC (rev 406) +++ foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java 2009-12-04 17:05:29 UTC (rev 407) @@ -243,7 +243,7 @@ } public String getVotingInstructions() { - return getProperty("voting-instructions", "You may rank the below options from 1 to 5, where 1 is the most favorable and 5 is the least favorable. When you rank a given option it will be sorted automatically."); + return getProperty("voting-instructions", "You may rank the options below from 1 to 5, where 1 is the most favorable and 5 is the least favorable. When you rank a given option it will be sorted automatically."); } public String getLastRoundDebriefing() { Modified: foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java =================================================================== --- foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java 2009-12-04 16:16:38 UTC (rev 406) +++ foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java 2009-12-04 17:05:29 UTC (rev 407) @@ -152,6 +152,7 @@ logger.info("client: " + clientData.getId() + " ranked regulations: "+ regulationRankings); for (int index = 0; index < numberOfRegulations; index++) { regulationVotingTally[index] += rankToValue(regulationRankings[index]); + submittedRegulations.get(index).setRank(regulationVotingTally[index]); if (regulationVotingTally[index] > maxRankingValue) { maxRankingValue = regulationVotingTally[index]; maxRankingIndex = index; @@ -171,12 +172,13 @@ this.activeRegulation = activeRegulation; } + // FIXME: this algorithm is very similar to generateRegulationRankings, extract to other method. public EnforcementMechanism generateEnforcementRankings() { resetEnforcementRankingCount(); // FIXME: change to round config parameter instead? double[] enforcementVotingTally = new double[EnforcementMechanism.values().length]; Arrays.fill(enforcementVotingTally, 0.0d); - int maxRankingEnforcementIndex = 0; + int maxRankingIndex = 0; double maxRankingValue = 0.0d; for (ClientData clientData: clients.values()) { int[] enforcementRankings = clientData.getEnforcementRankings(); @@ -185,12 +187,12 @@ // keep a tally of the max index so we don't have to make another pass. if (enforcementVotingTally[index] > maxRankingValue) { maxRankingValue = enforcementVotingTally[index]; - maxRankingEnforcementIndex = index; + maxRankingIndex = index; } } } - activeEnforcementMechanism = EnforcementMechanism.get(maxRankingEnforcementIndex); - logger.info("Active enforcement mechanism: " + activeEnforcementMechanism + " with index " + maxRankingEnforcementIndex); + activeEnforcementMechanism = EnforcementMechanism.get(maxRankingIndex); + logger.info("Active enforcement mechanism: " + activeEnforcementMechanism + " with rank " + maxRankingValue); if (activeEnforcementMechanism.hasMonitor()) { // pick a random person from the clients ArrayList<ClientData> clientDataList = new ArrayList<ClientData>(clients.values()); Modified: foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/RegulationData.java =================================================================== --- foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/RegulationData.java 2009-12-04 16:16:38 UTC (rev 406) +++ foraging/branches/deepak-branch-fall-09/src/main/java/edu/asu/commons/foraging/model/RegulationData.java 2009-12-04 17:05:29 UTC (rev 407) @@ -20,7 +20,7 @@ private Identifier id; private String text; - private int rank; + private double rank; private int index; public RegulationData(Identifier id, String text) { @@ -49,11 +49,11 @@ return text; } - public int getRank() { + public double getRank() { return rank; } - public void setRank(int rank) { + public void setRank(double rank) { this.rank = rank; } @@ -67,7 +67,7 @@ } public int hashCode() { - return text.hashCode() ^ id.hashCode() * (rank + 34); + return text.hashCode() ^ id.hashCode() * ((int) rank + 34); } public String toString() { @@ -75,7 +75,7 @@ } public int compareTo(RegulationData regulationData) { - int comparison = Integer.valueOf(rank).compareTo(regulationData.rank); + int comparison = Double.valueOf(rank).compareTo(regulationData.rank); if (comparison == 0) { if (equals(regulationData)) { return comparison; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |