[virtualcommons-svn] commit/foraging: alllee: turning rules into an enum to make it a bit more mana
Status: Beta
Brought to you by:
alllee
From: Bitbucket <com...@bi...> - 2011-10-01 05:59:27
|
1 new changeset in foraging: http://bitbucket.org/virtualcommons/foraging/changeset/2198aca323ac/ changeset: 2198aca323ac user: alllee date: 2011-10-01 07:59:16 summary: turning rules into an enum to make it a bit more manageable to work with. Could split into specialized subpackages if it turns out that they are too treatment/experiment specific. affected #: 8 files (-1 bytes) --- a/deploy.bat Fri Sep 30 06:26:15 2011 -0700 +++ b/deploy.bat Fri Sep 30 22:59:16 2011 -0700 @@ -4,4 +4,4 @@ set ANT_HOME=C:\tools\ant set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_26 set PATH=%ANT_HOME%\bin;%JAVA_HOME%\bin;%PATH% -ant deploy +ant clean deploy --- a/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java Fri Sep 30 06:26:15 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java Fri Sep 30 22:59:16 2011 -0700 @@ -14,6 +14,7 @@ import edu.asu.commons.foraging.graphics.Point3D; import edu.asu.commons.foraging.model.ClientData; import edu.asu.commons.foraging.model.EnforcementMechanism; +import edu.asu.commons.foraging.rules.ForagingRule; import edu.asu.commons.net.Identifier; @@ -49,14 +50,7 @@ private static final double DEFAULT_TOKEN_BIRTH_PROBABILITY = 0.01d; - private final static List<String> FIXED_RULES = Arrays.asList( - "Wait 2 minutes for the screen to fill up with green tokens. Then everyone collect tokens for the remaining amount of time.", - "Each person gets a set area within which they can do whatever they want with the green tokens. With four people, each person gets one of the four corners.", - "Each person collects green tokens at a certain rate: 1 token every 3 seconds (i.e., count to 3 between each token you collect).", - "When someone collects from a cluster of green tokens (i.e., 3 or more tokens that are touching each other) that person leaves at least 2 tokens touching each other.", - "Collect green tokens until only about 10 are left; at that point, everyone must wait at least 1 minute before collecting any more tokens.", - "No rule (Everyone can do whatever they want)." - ); + public double getTrustGamePayoffIncrement() { return getDoubleProperty("trust-game-payoff", 0.25d); @@ -534,9 +528,9 @@ public String getInitialVotingInstructions() { return getProperty("initial-voting-instructions", "<h1>Notice</h1><hr><p>You will be given the ability to vote for rules in the next screen.</p>"); } - - public List<String> getFixedRules() { - return FIXED_RULES; + + public List<ForagingRule> getForagingRules() { + return Arrays.asList(ForagingRule.values()); } public boolean isVotingAndRegulationEnabled() { --- a/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java Fri Sep 30 06:26:15 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java Fri Sep 30 22:59:16 2011 -0700 @@ -25,6 +25,7 @@ import edu.asu.commons.foraging.event.SynchronizeClientEvent; import edu.asu.commons.foraging.event.TokenCollectedEvent; import edu.asu.commons.foraging.event.UnlockResourceRequest; +import edu.asu.commons.foraging.rules.ForagingRule; import edu.asu.commons.foraging.ui.Circle; import edu.asu.commons.net.Identifier; @@ -68,6 +69,8 @@ private SanctionMechanism activeSanctionMechanism = SanctionMechanism.NONE; private RegulationData activeRegulation; + private Map<ForagingRule, Integer> ruleTallyMap = new HashMap<ForagingRule, Integer>(); + private List<ClientData> waitingMonitors; private ClientData activeMonitor; --- a/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java Fri Sep 30 06:26:15 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java Fri Sep 30 22:59:16 2011 -0700 @@ -56,14 +56,13 @@ import edu.asu.commons.foraging.event.ResetTokenDistributionRequest; import edu.asu.commons.foraging.event.RoundStartedEvent; import edu.asu.commons.foraging.event.SanctionAppliedEvent; -import edu.asu.commons.foraging.event.ShowInstructionsRequest; import edu.asu.commons.foraging.event.ShowRequest; -import edu.asu.commons.foraging.event.ShowTrustGameRequest; import edu.asu.commons.foraging.event.SurveyIdSubmissionRequest; import edu.asu.commons.foraging.event.SynchronizeClientEvent; import edu.asu.commons.foraging.event.TrustGameSubmissionEvent; import edu.asu.commons.foraging.event.TrustGameSubmissionRequest; import edu.asu.commons.foraging.event.UnlockResourceRequest; +import edu.asu.commons.foraging.event.VoteRuleRequest; import edu.asu.commons.foraging.model.ClientData; import edu.asu.commons.foraging.model.Direction; import edu.asu.commons.foraging.model.EnforcementMechanism; @@ -364,6 +363,7 @@ addEventProcessor(new EventTypeProcessor<CollectTokenRequest>(CollectTokenRequest.class) { public void handle(CollectTokenRequest event) { ClientData clientData = clients.get(event.getId()); + // FIXME: change this to collect the token immediately clientData.setCollecting(); } }); @@ -372,6 +372,13 @@ resourceDispenser.resetTokenDistribution(event); } }); + addEventProcessor(new EventTypeProcessor<VoteRuleRequest>(VoteRuleRequest.class) { + @Override + public void handle(VoteRuleRequest request) { + + + } + }); addEventProcessor(new EventTypeProcessor<RealTimeSanctionRequest>(RealTimeSanctionRequest.class) { @Override public void handleInExperimentThread(final RealTimeSanctionRequest request) { --- a/src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java Fri Sep 30 06:26:15 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java Fri Sep 30 22:59:16 2011 -0700 @@ -779,12 +779,13 @@ JScrollPane scrollPane = new JScrollPane(instructionsEditorPane); instructionsEditorPane.setText(client.getCurrentRoundConfiguration().getVotingInstructions()); votingPanel.add(scrollPane); - VotingForm votingForm = new VotingForm(dataModel.getRoundConfiguration().getFixedRules()); + VotingForm votingForm = new VotingForm(client); votingPanel.add(votingForm); votingPanel.setName(VotingForm.NAME); } return votingPanel; } + public void showVoteScreen() { add(getVotingPanel()); showPanel(VotingForm.NAME); --- a/src/main/java/edu/asu/commons/foraging/ui/VotingForm.java Fri Sep 30 06:26:15 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/ui/VotingForm.java Fri Sep 30 22:59:16 2011 -0700 @@ -27,6 +27,7 @@ import edu.asu.commons.foraging.client.ForagingClient; import edu.asu.commons.foraging.event.VoteRuleRequest; +import edu.asu.commons.foraging.rules.ForagingRule; /** * @@ -34,31 +35,23 @@ */ public class VotingForm extends javax.swing.JPanel { + private static final long serialVersionUID = 3871660663519284024L; + public final static String NAME = "Voting form"; private ForagingClient client; private List<JRadioButton> radioButtons = new ArrayList<JRadioButton>(); private List<JLabel> labels = new ArrayList<JLabel>(); - private List<String> rules = new ArrayList<String>(); - /** Creates new form VotingForm */ - public VotingForm() { - this(Arrays.asList("Rule 1", "Rule 2", "Rule 3", "Rule 4")); - } - + public VotingForm(ForagingClient client) { - this(client.getCurrentRoundConfiguration().getFixedRules()); this.client = client; - } - - public VotingForm(List<String> rules) { initComponents(); - this.rules.addAll(rules); - initForm(rules); + initForm(ForagingRule.values()); setName(NAME); } - private void initForm(List<String> rules) { + private void initForm(ForagingRule... rules) { GroupLayout groupLayout = new GroupLayout(this); setLayout(groupLayout); groupLayout.setAutoCreateGaps(true); @@ -81,7 +74,7 @@ verticalGroup.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(ruleHeaderLabel).addGap(10).addComponent(buttonHeaderLabel)); - for (String rule: rules) { + for (ForagingRule rule: rules) { JRadioButton radioButton = new JRadioButton(); radioButton.setActionCommand(String.valueOf(radioButtons.size())); radioButtons.add(radioButton); @@ -111,7 +104,7 @@ } String selectedRule = model.getActionCommand(); int selectedRuleIndex = Integer.parseInt(selectedRule); - client.transmit(new VoteRuleRequest(client.getId(), selectedRuleIndex, rules.get(selectedRuleIndex))); + client.transmit(new VoteRuleRequest(client.getId(), selectedRuleIndex, ForagingRule.values()[selectedRuleIndex])); } }); return submitButton; @@ -133,7 +126,7 @@ public static void main(String[] args) { JFrame frame = new JFrame(); - frame.add(new VotingForm()); + frame.add(new VotingForm(null)); frame.pack(); frame.setVisible(true); Repository URL: https://bitbucket.org/virtualcommons/foraging/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. |