[Avida-cvs] [Avida2-svn] r202 - in branches/brysonda: . documentation/content/using source source/cpu source/event source/main source/python/AvidaGui2
brysonda@myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Fri Jun 10 12:29:26 PDT 2005
Author: brysonda
Date: 2005-06-10 15:29:26 -0400 (Fri, 10 Jun 2005)
New Revision: 202
Added:
branches/brysonda/notes/
branches/brysonda/source/python/AvidaGui2/pyWriteGenesisEvent.py
Removed:
branches/brysonda/source/python/AvidaGui2/pyWriteGenesis.py
Modified:
branches/brysonda/documentation/content/using/events.html
branches/brysonda/documentation/content/using/genesis.html
branches/brysonda/documentation/content/using/inst_set.html
branches/brysonda/source/cpu/hardware_cpu.cc
branches/brysonda/source/cpu/hardware_cpu.hh
branches/brysonda/source/cpu/test_cpu.cc
branches/brysonda/source/defs.hh
branches/brysonda/source/event/cPopulation.events
branches/brysonda/source/main/analyze_util.cc
branches/brysonda/source/main/config.cc
branches/brysonda/source/main/config.hh
branches/brysonda/source/main/environment.cc
branches/brysonda/source/main/environment.hh
branches/brysonda/source/main/organism.cc
branches/brysonda/source/main/organism.hh
branches/brysonda/source/main/phenotype.cc
branches/brysonda/source/main/phenotype.hh
branches/brysonda/source/main/reaction.cc
branches/brysonda/source/main/reaction.hh
branches/brysonda/source/main/reaction_process.hh
branches/brysonda/source/main/reaction_result.cc
branches/brysonda/source/main/reaction_result.hh
branches/brysonda/source/python/AvidaGui2/pyEduWorkspaceCtrl.py
branches/brysonda/source/python/AvidaGui2/pyFreezeDialogCtrl.py
branches/brysonda/source/python/AvidaGui2/pyFreezerCtrl.py
branches/brysonda/source/python/AvidaGui2/pyNavBarCtrl.py
branches/brysonda/source/python/AvidaGui2/pyOneAna_GraphCtrl.py
branches/brysonda/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py
branches/brysonda/source/python/AvidaGui2/pyOneAnalyzeCtrl.py
branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphCtrl.py
branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphView.ui
branches/brysonda/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py
branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsCtrl.py
branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsView.ui
branches/brysonda/source/python/AvidaGui2/pyOnePopulationCtrl.py
branches/brysonda/source/python/AvidaGui2/pyPetriConfigureCtrl.py
branches/brysonda/source/python/AvidaGui2/pyPetriConfigureView.ui
branches/brysonda/source/python/AvidaGui2/pySessionCtrl.py
branches/brysonda/source/python/AvidaGui2/pyTemporaryReloads.py
branches/brysonda/source/python/AvidaGui2/pyWriteToFreezer.py
Log:
Merged trunk r201 into branch.
Modified: branches/brysonda/documentation/content/using/events.html
===================================================================
--- branches/brysonda/documentation/content/using/events.html 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/documentation/content/using/events.html 2005-06-10 19:29:26 UTC (rev 202)
@@ -197,6 +197,7 @@
<A HREF="#set_resource">set_resource</A><br>
<A HREF="#set_reaction_value">set_reaction_value</A><br>
<A HREF="#set_reaction_value_mult">set_reaction_value_mult</A><br>
+ <A HREF="#set_reaction_inst">set_reaction_inst</A><br>
<A HREF="#sever_grid_col">sever_grid_col</A><br>
<A HREF="#task_snapshot">task_snapshot</A><br>
<A HREF="#test_dom">test_dom</A><br>
@@ -828,6 +829,11 @@
<li><b><A NAME="set_reaction_value_mult">set_reaction_value_mult</A></b> [<font color="#008800">reaction_name</font>] [<font color="#008800">value_mult</font>] <br>
Multiply the reaction value ("bonus") by the <b>value_mult</b>. <b>reaction_name</b> must
already exist in the environment file. <b>value_mult</b> can be negative.
+<br>
+<li><b><A NAME="set_reaction_inst">set_reaction_inst</A></b> [<font color="#008800">reaction_name</font>]
+ [<font color="#008800">inst_name</font>] <br>
+ Set the instruction triggered by this reaction. <b>reaction_name</b> must
+ already exist in the environment file. <b>inst_name</b> must be in the instruction set.
</menu>
<p>
Modified: branches/brysonda/documentation/content/using/genesis.html
===================================================================
--- branches/brysonda/documentation/content/using/genesis.html 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/documentation/content/using/genesis.html 2005-06-10 19:29:26 UTC (rev 202)
@@ -164,6 +164,9 @@
<tr><td valign=top><b><tt>REQUIRED_REACTION</tt></b>
<td>Allows the user to set the ID number for a reaction that <i>must</i>
occur for a divide to be successful. At -1, no reactions are required.
+<tr><td valign=top><b><tt>DIE_PROB</tt></b>
+ <td>Determines the probability of organism dieing when 'die' instruction is
+ executed. Set to 0 by default, making the instruction neutral.
</table>
<h3>Mutations</h3>
@@ -429,4 +432,4 @@
<br><hr>
Project hosted by:<br>
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=46761&type=2" width="125" height="37" border="0" alt="SourceForge.net"/></a>
-
\ No newline at end of file
+
Modified: branches/brysonda/documentation/content/using/inst_set.html
===================================================================
--- branches/brysonda/documentation/content/using/inst_set.html 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/documentation/content/using/inst_set.html 2005-06-10 19:29:26 UTC (rev 202)
@@ -252,6 +252,10 @@
no recombination here, but each genome must wait in the birth chamber until
another one arrives before they are both placed into the population.
+<p>
+<b><tt>die</tt></b><br>
+When executed, kills the organism, with the probability set by DIE_PROB in genesis.
+
<br><hr>
Project hosted by:<br>
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=46761&type=2" width="125" height="37" border="0" alt="SourceForge.net"/></a>
Copied: branches/brysonda/notes (from rev 201, trunk/notes)
Modified: branches/brysonda/source/cpu/hardware_cpu.cc
===================================================================
--- branches/brysonda/source/cpu/hardware_cpu.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/cpu/hardware_cpu.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -322,6 +322,7 @@
// Suicide
cInstEntryCPU("kazi", &cHardwareCPU::Inst_Kazi),
+ cInstEntryCPU("die", &cHardwareCPU::Inst_Die),
@@ -2647,6 +2648,13 @@
}
}
+bool cHardwareCPU::Inst_Die()
+{
+ const double die_prob = cConfig::GetDieProb();
+ if(g_random.GetDouble() < die_prob) { organism->Die(); }
+ return true;
+}
+
// The inject instruction can be used instead of a divide command, paired
// with an allocate. Note that for an inject to work, one needs to have a
// broad range for sizes allowed to be allocated.
Modified: branches/brysonda/source/cpu/hardware_cpu.hh
===================================================================
--- branches/brysonda/source/cpu/hardware_cpu.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/cpu/hardware_cpu.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -369,6 +369,7 @@
bool Inst_InjectThread();
bool Inst_Repro();
bool Inst_Kazi();
+ bool Inst_Die();
// I/O and Sensory
bool Inst_TaskGet();
Modified: branches/brysonda/source/cpu/test_cpu.cc
===================================================================
--- branches/brysonda/source/cpu/test_cpu.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/cpu/test_cpu.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -221,7 +221,7 @@
input_array[1] = 0x3308e53e; // 00110011 00001000 11100101 00111110
input_array[2] = 0x556241eb; // 01010101 01100010 01000001 11101011
- receive_array.Resize(3);
+ receive_array.Resize(3);
receive_array[0] = 0x0f139f14; // 00001111 00010011 10011111 00010100
receive_array[1] = 0x33083ee5; // 00110011 00001000 00111110 11100101
receive_array[2] = 0x5562eb41; // 01010101 01100010 11101011 01000001
Modified: branches/brysonda/source/defs.hh
===================================================================
--- branches/brysonda/source/defs.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/defs.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -168,6 +168,8 @@
// Number of distinct input and outputs stored in the IOBufs (to test tasks)
#define INPUT_BUF_SIZE 3
#define OUTPUT_BUF_SIZE 1
+#define SEND_BUF_SIZE 3
+#define RECEIVE_BUF_SIZE 3
// Task Merit Method //
#define TASK_MERIT_NONE 0
Modified: branches/brysonda/source/event/cPopulation.events
===================================================================
--- branches/brysonda/source/event/cPopulation.events 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/event/cPopulation.events 2005-06-10 19:29:26 UTC (rev 202)
@@ -2134,3 +2134,14 @@
double value_mult
:body:
population->GetEnvironment().SetReactionValueMult(reaction_name, value_mult);
+
+set_reaction_inst
+:descr:
+/**
+* Change the instruction triggered by the task **/
+:args:
+cString reaction_name
+cString inst_name
+:body:
+population->GetEnvironment().SetReactionInst(reaction_name, inst_name);
+
Modified: branches/brysonda/source/main/analyze_util.cc
===================================================================
--- branches/brysonda/source/main/analyze_util.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/analyze_util.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -777,27 +777,27 @@
}
void cAnalyzeUtil::TaskGrid(cPopulation * pop, ofstream & fp)
-{
-
+{
for (int i = 0; i < pop->GetWorldX(); i++) {
for (int j = 0; j < pop->GetWorldY(); j++) {
- int task_sum = 0;
- if (pop->GetCell(i).IsOccupied() == true) {
- cOrganism * organism = pop->GetCell(j*pop->GetWorldX()+i).GetOrganism();
+ int task_sum = 0;
+ int cell_num = i*pop->GetWorldX()+j;
+ if (pop->GetCell(cell_num).IsOccupied() == true) {
+ cOrganism * organism = pop->GetCell(cell_num).GetOrganism();
cCPUTestInfo test_info;
cTestCPU::TestGenome( test_info, organism->GetGenome() );
cPhenotype & test_phenotype = test_info.GetTestOrganism()->GetPhenotype();
- int num_tasks = test_phenotype.GetEnvironment().GetTaskLib().GetSize();
+ int num_tasks = test_phenotype.GetEnvironment().GetTaskLib().GetSize();
for (int k = 0; k < num_tasks; k++) {
if (test_phenotype.GetLastTaskCount()[k]>0) {
- task_sum = task_sum + (int)pow(2,k);
+ task_sum = task_sum + (int) pow(2.0,k);
}
}
}
fp << task_sum << " ";
}
fp << endl;
- }
+ }
}
/**
Modified: branches/brysonda/source/main/config.cc
===================================================================
--- branches/brysonda/source/main/config.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/config.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -230,6 +230,7 @@
bool cConfig::log_lineages;
int cConfig::debug_level;
int cConfig::view_mode;
+double cConfig::die_prob;
void cConfig::InitGroupList(){
// Start with the Architecture variables...
@@ -322,8 +323,11 @@
"Task ID required for successful divide.");
div_group->Add(required_reaction, "-1", "REQUIRED_REACTION",
"Reaction ID required for successful divide.");
+ div_group->Add(die_prob, "0", "DIE_PROB",
+ "probability of death when 'die' instruction is executed");
+
// Mutations Group
cConfigGroup * muts_group = new cConfigGroup("Mutations");
group_list.PushRear(muts_group);
@@ -372,9 +376,8 @@
rev_group->Add(sterilize_pos, "0.0", "STERILIZE_BENEFICIAL",
"");
rev_group->Add(fail_implicit, "0", "FAIL_IMPLICIT",
- "Should copies that failed *not* due to mutations\nbe eliminated?");
+ "Should copies that failed *not* due to mutations\nbe eliminated?");
-
// Time slicing group
cConfigGroup * time_group = new cConfigGroup("Time Slicing");
group_list.PushRear(time_group);
Modified: branches/brysonda/source/main/config.hh
===================================================================
--- branches/brysonda/source/main/config.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/config.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -293,6 +293,9 @@
// Viewer
static int view_mode;
+ // Death
+ static double die_prob;
+
// Other functions...
static void ProcessConfiguration(int argc, char* argv[], cGenesis & genesis);
public:
@@ -428,7 +431,9 @@
static int GetViewMode() { return view_mode; }
+ static double GetDieProb() { return die_prob; }
+
// ``Set''
static void SetInstFilename(const cString & in_name)
{ inst_filename = in_name; }
Modified: branches/brysonda/source/main/environment.cc
===================================================================
--- branches/brysonda/source/main/environment.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/environment.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -704,8 +704,10 @@
bool cEnvironment::TestOutput( cReactionResult & result,
- const tBuffer<int> & inputs,
- const tBuffer<int> & outputs,
+ const tBuffer<int> & input_buf,
+ const tBuffer<int> & output_buf,
+ const tBuffer<int> & send_buf,
+ const tBuffer<int> & receive_buf,
const tArray<int> & task_count,
const tArray<int> & reaction_count,
const tArray<double> & resource_count,
@@ -713,7 +715,7 @@
const tList< tBuffer<int> > & output_buffers) const
{
// Do setup for reaction tests...
- task_lib.SetupTests(inputs, outputs, input_buffers, output_buffers);
+ task_lib.SetupTests(input_buf, output_buf, input_buffers, output_buffers);
// Loop through all reactions to see if any have been triggered...
const int num_reactions = reaction_lib.GetSize();
@@ -750,6 +752,34 @@
result.MarkReaction(cur_reaction->GetID());
}
+ // Loop again to check receive tasks...
+ // if (receive_buf.GetSize() != 0)
+ {
+ // Do setup for reaction tests...
+ task_lib.
+ SetupTests(receive_buf, output_buf, input_buffers, output_buffers);
+
+ for (int i = 0; i < num_reactions; i++) {
+ cReaction * cur_reaction = reaction_lib.GetReaction(i);
+ assert(cur_reaction != NULL);
+
+ // Only use active reactions...
+ if (cur_reaction->GetActive() == false) continue;
+
+ // Examine the task trigger associated with this reaction
+ cTaskEntry * cur_task = cur_reaction->GetTask();
+ assert(cur_task != NULL);
+ const double task_quality = task_lib.TestOutput(*cur_task);
+ const int task_id = cur_task->GetID();
+
+ // If this task wasn't performed, move on to the next one.
+ if (task_quality == 0.0) continue;
+
+ // Mark this task as performed...
+ result.MarkReceiveTask(task_id);
+ }
+ }
+
return result.GetActive();
}
@@ -919,3 +949,11 @@
return true;
}
+bool cEnvironment::SetReactionInst(const cString & name, cString inst_name)
+{
+ cReaction * found_reaction = reaction_lib.GetReaction(name);
+ if (found_reaction == NULL) return false;
+ found_reaction->ModifyInst( inst_set.GetInst(inst_name).GetOp() );
+ return true;
+}
+
Modified: branches/brysonda/source/main/environment.hh
===================================================================
--- branches/brysonda/source/main/environment.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/environment.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -108,8 +108,10 @@
const tArray<double> & resource_count ) const;
bool TestOutput( cReactionResult & result,
- const tBuffer<int> & inputs,
- const tBuffer<int> & outputs,
+ const tBuffer<int> & input_buf,
+ const tBuffer<int> & output_buf,
+ const tBuffer<int> & send_buf,
+ const tBuffer<int> & receive_buf,
const tArray<int> & task_count,
const tArray<int> & reaction_count,
const tArray<double> & resource_count,
@@ -132,6 +134,7 @@
double GetReactionValue(int & reaction_id);
bool SetReactionValue(const cString & name, double value);
bool SetReactionValueMult(const cString & name, double value_mult);
+ bool SetReactionInst(const cString & name, cString inst_name);
};
#endif
Modified: branches/brysonda/source/main/organism.cc
===================================================================
--- branches/brysonda/source/main/organism.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/organism.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -45,6 +45,8 @@
, input_pointer(0)
, input_buf(INPUT_BUF_SIZE)
, output_buf(OUTPUT_BUF_SIZE)
+ , send_buf(SEND_BUF_SIZE)
+ , receive_buf(RECEIVE_BUF_SIZE)
, sent_value(0)
, sent_active(false)
, test_receive_pos(0)
@@ -92,7 +94,9 @@
int cOrganism::ReceiveValue()
{
- return pop_interface.ReceiveValue();
+ const int out_value = pop_interface.ReceiveValue();
+ receive_buf.Add(out_value);
+ return out_value;
}
@@ -137,8 +141,9 @@
output_buf.Add(value);
tArray<double> res_change(resource_count.GetSize());
tArray<int> insts_triggered;
- phenotype.TestOutput(input_buf, output_buf, resource_count, res_change,
- insts_triggered, other_input_list, other_output_list);
+ phenotype.TestOutput(input_buf, output_buf, send_buf, receive_buf,
+ resource_count, res_change, insts_triggered,
+ other_input_list, other_output_list);
pop_interface.UpdateResources(res_change);
for (int i = 0; i < insts_triggered.GetSize(); i++) {
Modified: branches/brysonda/source/main/organism.hh
===================================================================
--- branches/brysonda/source/main/organism.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/organism.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -74,6 +74,8 @@
int input_pointer;
tBuffer<int> input_buf;
tBuffer<int> output_buf;
+ tBuffer<int> send_buf;
+ tBuffer<int> receive_buf;
// Communication
int sent_value; // What number is this org sending?
Modified: branches/brysonda/source/main/phenotype.cc
===================================================================
--- branches/brysonda/source/main/phenotype.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/phenotype.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -493,7 +493,8 @@
return false; // Nothing happened...
}
-bool cPhenotype::TestOutput(tBuffer<int> & inputs, tBuffer<int> & outputs,
+bool cPhenotype::TestOutput(tBuffer<int> & input_buf, tBuffer<int> &output_buf,
+ tBuffer<int> & send_buf, tBuffer<int> &receive_buf,
const tArray<double> & res_in,
tArray<double> & res_change,
tArray<int> & insts_triggered,
@@ -509,8 +510,9 @@
cReactionResult result(num_resources, num_tasks, num_reactions);
// Run everything through the environment.
- bool found = environment.TestOutput(result, inputs, outputs, cur_task_count,
- cur_reaction_count, res_in, other_inputs, other_outputs);
+ bool found = environment.TestOutput(result, input_buf, output_buf, send_buf,
+ receive_buf, cur_task_count, cur_reaction_count,
+ res_in, other_inputs, other_outputs);
// If nothing was found, stop here.
if (found == false) {
Modified: branches/brysonda/source/main/phenotype.hh
===================================================================
--- branches/brysonda/source/main/phenotype.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/phenotype.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -147,7 +147,8 @@
// Input and Output Reaction Tests
bool TestInput(tBuffer<int> & inputs, tBuffer<int> & outputs);
- bool TestOutput(tBuffer<int> & inputs, tBuffer<int> & outputs,
+ bool TestOutput(tBuffer<int> & input_buf, tBuffer<int> & output_buf,
+ tBuffer<int> & send_buf, tBuffer<int> & receive_buf,
const tArray<double> & res_in, tArray<double> & res_change,
tArray<int> & insts_triggered,
tList<tBuffer<int> > & other_inputs,
Modified: branches/brysonda/source/main/reaction.cc
===================================================================
--- branches/brysonda/source/main/reaction.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/reaction.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -65,6 +65,14 @@
return true;
}
+bool cReaction::ModifyInst(int inst_id, int process_num)
+{
+ if (process_num >= process_list.GetSize() || process_num < 0) return false;
+ process_list.GetPos(process_num)->SetInstID(inst_id);
+ return true;
+}
+
+
double cReaction::GetValue(int process_num)
{
if (process_num >= process_list.GetSize() || process_num < 0) return false;
Modified: branches/brysonda/source/main/reaction.hh
===================================================================
--- branches/brysonda/source/main/reaction.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/reaction.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -50,6 +50,9 @@
bool ModifyValue(double new_value, int process_num=0);
bool MultiplyValue(double value_mult, int process_num=0);
+ // This method will modify the instruction triggered by this process
+ bool ModifyInst(int inst_id, int process_num=0);
+
double GetValue(int process_num=0);
};
Modified: branches/brysonda/source/main/reaction_process.hh
===================================================================
--- branches/brysonda/source/main/reaction_process.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/reaction_process.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -8,6 +8,10 @@
#ifndef REACTION_PROCESS_HH
#define REACTION_PROCESS_HH
+#include <iostream>
+
+using namespace std;
+
class cResource;
class cReactionProcess {
private:
@@ -38,7 +42,7 @@
double GetMaxFraction() const { return max_fraction; }
cResource * GetProduct() const { return product; }
double GetConversion() const { return conversion; }
- bool GetInstID() const { return inst_id; }
+ int GetInstID() const { return inst_id; }
bool GetLethal() const { return lethal; }
cResource * GetDetect() const { return detect; }
double GetDetectionThreshold() const { return detection_threshold; }
Modified: branches/brysonda/source/main/reaction_result.cc
===================================================================
--- branches/brysonda/source/main/reaction_result.cc 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/reaction_result.cc 2005-06-10 19:29:26 UTC (rev 202)
@@ -15,6 +15,8 @@
, resources_produced(num_resources)
, resources_detected(num_resources)
, tasks_done(num_tasks)
+ , receive_tasks_done(num_tasks)
+ , send_tasks_done(num_tasks)
, reactions_triggered(num_reactions)
, bonus_add(0.0)
, bonus_mult(1.0)
@@ -24,17 +26,6 @@
{
}
-// cReactionResult::cReactionResult(const cReactionResult & _in)
-// : resources_consumed(_in.resources_consumed)
-// , resources_produced(_in.resources_produced)
-// , tasks_done(_in.tasks_done)
-// , reactions_triggered(_in.reactions_triggered)
-// , bonus_add(_in.bonus_add)
-// , bonus_mult(_in.bonus_mult)
-// , active_reaction(_in.active_reaction)
-// {
-// }
-
cReactionResult::~cReactionResult()
{
}
@@ -50,6 +41,8 @@
resources_produced.SetAll(0.0);
resources_detected.SetAll(-1.0);
tasks_done.SetAll(false);
+ receive_tasks_done.SetAll(false);
+ send_tasks_done.SetAll(false);
reactions_triggered.SetAll(false);
// And finally note that this is indeed already active.
@@ -90,6 +83,20 @@
}
+void cReactionResult::MarkReceiveTask(int id)
+{
+ ActivateReaction();
+ receive_tasks_done[id] = true;
+}
+
+
+void cReactionResult::MarkSendTask(int id)
+{
+ ActivateReaction();
+ send_tasks_done[id] = true;
+}
+
+
void cReactionResult::MarkReaction(int id)
{
ActivateReaction();
Modified: branches/brysonda/source/main/reaction_result.hh
===================================================================
--- branches/brysonda/source/main/reaction_result.hh 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/main/reaction_result.hh 2005-06-10 19:29:26 UTC (rev 202)
@@ -20,6 +20,8 @@
tArray<double> resources_produced;
tArray<double> resources_detected; //Initialize to -1.0
tArray<bool> tasks_done;
+ tArray<bool> receive_tasks_done;
+ tArray<bool> send_tasks_done;
tArray<bool> reactions_triggered;
double bonus_add;
double bonus_mult;
@@ -40,6 +42,8 @@
void Detect(int id, double num);
void Lethal(bool flag);
void MarkTask(int id);
+ void MarkReceiveTask(int id);
+ void MarkSendTask(int id);
void MarkReaction(int id);
void AddBonus(double value);
void MultBonus(double value);
Modified: branches/brysonda/source/python/AvidaGui2/pyEduWorkspaceCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyEduWorkspaceCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyEduWorkspaceCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -10,6 +10,7 @@
from pyTwoPopulationCtrl import pyTwoPopulationCtrl
from pyPetriConfigureCtrl import pyPetriConfigureCtrl
from pyQuitDialogCtrl import pyQuitDialogCtrl
+import os.path
from qt import *
@@ -37,11 +38,11 @@
for (cli, ctrl) in (
(self.m_nav_bar_ctrl.m_one_population_cli, self.m_one_population_ctrl),
- (self.m_nav_bar_ctrl.m_two_population_cli, self.m_two_population_ctrl),
+# (self.m_nav_bar_ctrl.m_two_population_cli, self.m_two_population_ctrl),
(self.m_nav_bar_ctrl.m_one_organism_cli, self.m_one_organism_ctrl),
- (self.m_nav_bar_ctrl.m_two_organism_cli, self.m_two_organism_ctrl),
+# (self.m_nav_bar_ctrl.m_two_organism_cli, self.m_two_organism_ctrl),
(self.m_nav_bar_ctrl.m_one_analyze_cli, self.m_one_analyze_ctrl),
- (self.m_nav_bar_ctrl.m_two_analyze_cli, self.m_two_analyze_ctrl),
+# (self.m_nav_bar_ctrl.m_two_analyze_cli, self.m_two_analyze_ctrl),
):
self.m_cli_to_ctrl_dict[cli] = ctrl
self.m_ctrl_to_cli_dict[ctrl] = cli
@@ -145,8 +146,8 @@
workspace_dir = str(workspace_dir)
if workspace_dir.strip() != "":
- self.m_session_mdl.m_current_workspce = str(workspace_dir) + "/"
- self.m_session_mdl.m_current_freezer = self.m_session_mdl.m_current_workspce + "freezer/"
+ self.m_session_mdl.m_current_workspce = str(workspace_dir)
+ self.m_session_mdl.m_current_freezer = os.path.join(self.m_session_mdl.m_current_workspce, "freezer")
self.m_session_mdl.m_session_mdtr.emit(
PYSIGNAL("doRefreshFreezerInventorySig"), ())
@@ -161,7 +162,7 @@
True);
freezer_dir = str(freezer_dir)
if freezer_dir.strip() != "":
- self.m_session_mdl.m_current_freezer = str(freezer_dir) + "/"
+ self.m_session_mdl.m_current_freezer = str(freezer_dir)
self.m_session_mdl.m_session_mdtr.emit(
PYSIGNAL("doRefreshFreezerInventorySig"), ())
Modified: branches/brysonda/source/python/AvidaGui2/pyFreezeDialogCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyFreezeDialogCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyFreezeDialogCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -28,7 +28,7 @@
if self.EmptyRadioButton.isChecked():
if (tmp_name.endswith(".empty") == False):
tmp_name = tmp_name + ".empty"
- tmp_name = freezer_dir + tmp_name
+ tmp_name = os.path.join(freezer_dir, tmp_name)
if os.path.exists(tmp_name):
found_valid_name = False
self.MainMessageTextLabel.setText("Petri Dish Exists, Please Enter a Different Name")
@@ -38,7 +38,7 @@
else:
if (tmp_name.endswith(".full") == False):
tmp_name = tmp_name + ".full"
- tmp_name = freezer_dir + tmp_name
+ tmp_name = os.path.join(freezer_dir, tmp_name)
if os.path.exists(tmp_name):
found_valid_name = False
self.MainMessageTextLabel.setText("Petri Dish Exists, Please Enter a Different Name")
Modified: branches/brysonda/source/python/AvidaGui2/pyFreezerCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyFreezerCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyFreezerCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -4,18 +4,19 @@
from qt import *
from pyFreezerView import pyFreezerView
from pyReadFreezer import pyReadFreezer
+import os.path
class pyFreezerCtrl(pyFreezerView):
def __init__(self,parent = None,name = None,fl = 0):
pyFreezerView.__init__(self,parent,name,fl)
self.m_list_view.setSelectionMode(QListView.Extended)
- # self.connect(self.m_list_view,
- # SIGNAL("doubleClicked(QListViewItem, QPoint, int)"),
- # self.clicked_item)
self.connect(self.m_list_view,
- SIGNAL("clicked(QListViewItem*, const QPoint &, int )"),
+ SIGNAL("doubleClicked(QListViewItem*, const QPoint &, int)"),
self.clicked_itemSlot)
+ # self.connect(self.m_list_view,
+ # SIGNAL("clicked(QListViewItem*, const QPoint &, int )"),
+ # self.clicked_itemSlot)
self.connect(self.m_list_view,
SIGNAL("pressed(QListViewItem*, const QPoint &, int )"),
self.pressed_itemSlot)
@@ -64,10 +65,21 @@
def pressed_itemSlot(self, item):
if item != None and item.depth() > 0:
- print "mouse pressed"
- print item.text(0)
+ top_level = item
+ while top_level.parent():
+ top_level = top_level.parent()
- dragHolder = self.itemDrag( item.text(0), self )
+ # Rebuild the file name
+
+ if str(top_level.text(0)).startswith(" Empty Petri"):
+ file_name = str(item.text(0)) + ".empty"
+ elif str(top_level.text(0)).startswith(" Full Petri"):
+ file_name = str(item.text(0)) + ".full"
+ elif str(top_level.text(0)).startswith(" Organism"):
+ file_name = str(item.text(0)) + ".organism"
+ file_name = os.path.join(self.m_session_mdl.m_current_freezer, file_name)
+
+ dragHolder = self.itemDrag( file_name, self )
# maybe play with iconView
# dragHolder.dragEnabled()
dragHolder.dragCopy()
@@ -90,10 +102,11 @@
if str(top_level.text(0)).startswith(" Empty Petri"):
file_name = str(item.text(0)) + ".empty"
elif str(top_level.text(0)).startswith(" Full Petri"):
- file_name = str(item.text(0)) + ".full/petri_dish"
+ file_name = str(item.text(0)) + ".full"
+ file_name = os.path.join(file_name, "petri_dish")
elif str(top_level.text(0)).startswith(" Organism"):
file_name = str(item.text(0)) + ".organism"
- file_name = self.m_session_mdl.m_current_freezer + file_name
+ file_name = os.path.join(self.m_session_mdl.m_current_freezer, file_name)
thawed_item = pyReadFreezer(file_name)
self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("doDefrostDishSig"),
(item.text(0), thawed_item,))
Modified: branches/brysonda/source/python/AvidaGui2/pyNavBarCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyNavBarCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyNavBarCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -10,30 +10,41 @@
pyNavBarView.__init__(self,parent,name,fl)
def construct(self, session_mdl):
- def generateCLIGroup(list_view, group_name, first_name, second_name):
+# def generateCLIGroup(list_view, group_name, first_name, second_name):
+ def generateCLIGroup(list_view, group_name, first_name):
group_lvi = QCheckListItem(list_view, group_name, QCheckListItem.RadioButtonController)
group_lvi.setSelectable(False)
group_lvi.setOpen(True)
#
- second_cli = QCheckListItem(group_lvi, second_name, QCheckListItem.RadioButton)
- second_cli.setSelectable(False)
+# second_cli = QCheckListItem(group_lvi, second_name, QCheckListItem.RadioButton)
+# second_cli.setSelectable(False)
first_cli = QCheckListItem(group_lvi, first_name, QCheckListItem.RadioButton)
first_cli.setSelectable(False)
#
- return (group_lvi, first_cli, second_cli)
+# return (group_lvi, first_cli, second_cli)
+ return (group_lvi, first_cli)
self.m_list_view.setSortColumn(-1)
self.m_list_view.clear()
- (self.m_analyze_lvi, self.m_one_analyze_cli, self.m_two_analyze_cli) = generateCLIGroup(
- self.m_list_view, " Analysis", "Analyze One", "Compare Two")
+# (self.m_analyze_lvi, self.m_one_analyze_cli, self.m_two_analyze_cli) = generateCLIGroup(
+# self.m_list_view, " Analysis", "Analyze One", "Compare Two")
- (self.m_organism_lvi, self.m_one_organism_cli, self.m_two_organism_cli) = generateCLIGroup(
- self.m_list_view, " Organisms", "View One", "Compare Two")
+ (self.m_analyze_lvi, self.m_one_analyze_cli) = generateCLIGroup(
+ self.m_list_view, " Analysis", "Analyze One")
- (self.m_population_lvi, self.m_one_population_cli, self.m_two_population_cli) = generateCLIGroup(
- self.m_list_view, " Populations", "View One", "Compare Two")
+# (self.m_organism_lvi, self.m_one_organism_cli, self.m_two_organism_cli) = generateCLIGroup(
+# self.m_list_view, " Organisms", "View One", "Compare Two")
+ (self.m_organism_lvi, self.m_one_organism_cli) = generateCLIGroup(
+ self.m_list_view, " Organisms", "View One")
+
+# (self.m_population_lvi, self.m_one_population_cli, self.m_two_population_cli) = generateCLIGroup(
+# self.m_list_view, " Populations", "View One", "Compare Two")
+
+ (self.m_population_lvi, self.m_one_population_cli) = generateCLIGroup(
+ self.m_list_view, " Populations", "View One")
+
self.m_population_lvi.setPixmap(0, self.image0)
self.m_organism_lvi.setPixmap(0, self.image1)
self.m_analyze_lvi.setPixmap(0, self.image2)
Modified: branches/brysonda/source/python/AvidaGui2/pyOneAna_GraphCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOneAna_GraphCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOneAna_GraphCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -6,8 +6,10 @@
from pyOneAna_GraphView import pyOneAna_GraphView
from qt import *
from qwt import *
-import os
+import os.path
+import os.path
+
class PrintFilter(QwtPlotPrintFilter):
def __init__(self):
QwtPlotPrintFilter.__init__(self)
@@ -45,7 +47,6 @@
self.m_combo_box_2.clear()
self.m_combo_box_1.setInsertionPolicy(QComboBox.AtBottom)
self.m_combo_box_2.setInsertionPolicy(QComboBox.AtBottom)
-#jmc this should be made so it starts with no graph
self.m_petri_dish_dir_path = ' '
self.m_petri_dish_dir_exists_flag = False
@@ -77,7 +78,7 @@
self.m_combo_box_1_color, SIGNAL("activated(int)"), self.modeActivatedSlot)
self.connect(
self.m_combo_box_2_color, SIGNAL("activated(int)"), self.modeActivatedSlot)
- self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedSig"),
+ self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezerItemDroppedInOneAnalyzeSig"),
self.petriDropped)
self.m_graph_ctrl.setAxisTitle(QwtPlot.xBottom, "Time (updates)")
self.m_graph_ctrl.setAxisAutoScale(QwtPlot.xBottom)
@@ -99,21 +100,23 @@
self.printGraphSlot)
def load(self, filename, colx, coly):
- init_file = cInitFile(cString('default.workspace/freezer/' + str(self.m_petri_dish_dir_path) + '.full/' + filename))
+
+ # Brian's old code, delete
+ # init_file_name_str = os.path.join(self.m_session_mdl.m_current_freezer, str(self.m_petri_dish_dir_path) + '.full', filename)
+ # init_file = cInitFile(cString(init_file_name_str))
+ #
+ # print "loading"
+ # if not init_file.IsOpen():
+ # print "the file you are looking for does not exist"
+ # return
- print "loading"
- if not init_file.IsOpen():
- print "the file you are looking for does not exist"
- return
-
+ init_file = cInitFile(cString(os.path.join(str(self.m_petri_dish_dir_path), filename)))
init_file.Load()
init_file.Compress()
x_array = zeros(init_file.GetNumLines(), Float)
y_array = zeros(init_file.GetNumLines(), Float)
- print "init_file.GetNumLines() is "
- print init_file.GetNumLines()
for line_id in range(init_file.GetNumLines()):
line = init_file.GetLine(line_id)
@@ -123,7 +126,7 @@
def modeActivatedSlot(self, index = None): #note: index is not used
self.m_graph_ctrl.clear()
-
+
#check to see if we have a valid directory path to analyze
if self.m_petri_dish_dir_exists_flag == False:
return
@@ -132,14 +135,27 @@
if self.m_combo_box_1.currentItem():
index_1 = self.m_combo_box_1.currentItem()
+
+ #check to see if the file exists
+ if os.path.isfile(os.path.join(str(self.m_petri_dish_dir_path), self.m_avida_stats_interface.m_entries[index_1][1])):
+ pass
+ else:
+ print "error: there is no data file in the directory to load from"
+ self.m_graph_ctrl.setTitle(self.m_avida_stats_interface.m_entries[0][0])
+ self.m_graph_ctrl.setAxisTitle(QwtPlot.yLeft, self.m_avida_stats_interface.m_entries[0][0])
+ self.m_graph_ctrl.replot()
+ return
self.m_graph_ctrl.setAxisTitle(QwtPlot.yLeft, self.m_avida_stats_interface.m_entries[index_1][0])
self.m_graph_ctrl.enableYLeftAxis(True)
self.m_graph_ctrl.setAxisAutoScale(QwtPlot.yLeft)
+ print "index_1[2] is"
+ print self.m_avida_stats_interface.m_entries[index_1][2]
self.m_curve_1_arrays = self.load(
- self.m_avida_stats_interface.m_entries[index_1][1],
+ os.path.join(self.m_session_mdl.m_tempdir_out, self.m_avida_stats_interface.m_entries[index_1][1]),
1,
self.m_avida_stats_interface.m_entries[index_1][2]
)
+
self.m_graph_ctrl.m_curve_1 = self.m_graph_ctrl.insertCurve(self.m_avida_stats_interface.m_entries[index_1][0])
self.m_graph_ctrl.setCurveData(self.m_graph_ctrl.m_curve_1, self.m_curve_1_arrays[0], self.m_curve_1_arrays[1])
self.m_graph_ctrl.setCurvePen(self.m_graph_ctrl.m_curve_1, QPen(self.m_Colors[self.m_combo_box_1_color.currentItem()][1]))
@@ -157,10 +173,11 @@
self.m_graph_ctrl.enableYRightAxis(True)
self.m_graph_ctrl.setAxisAutoScale(QwtPlot.yRight)
self.m_curve_2_arrays = self.load(
- self.m_avida_stats_interface.m_entries[index_2][1],
+ os.path.join(self.m_session_mdl.m_tempdir_out, self.m_avida_stats_interface.m_entries[index_2][1]),
1,
self.m_avida_stats_interface.m_entries[index_2][2]
)
+
self.m_graph_ctrl.m_curve_2 = self.m_graph_ctrl.insertCurve(self.m_avida_stats_interface.m_entries[index_2][0])
self.m_graph_ctrl.setCurveData(self.m_graph_ctrl.m_curve_2, self.m_curve_2_arrays[0], self.m_curve_2_arrays[1])
if self.m_Colors[self.m_combo_box_2_color.currentItem()][0] is 'thick':
@@ -202,16 +219,16 @@
self.m_graph_ctrl.printPlot(printer, filter)
- def gotIt( self, e):
- print "got it"
+# def gotIt( self, e):
+# print "got it"
def petriDropped(self, e):
# a check in pyOneAnalyzeCtrl.py makes sure this is a valid path
self.m_petri_dish_dir_exists_flag = True
# Try to decode to the data you understand...
- str = QString()
- if ( QTextDrag.decode( e, str ) ) :
- self.m_petri_dish_dir_path = str
+ freezer_item_name = QString()
+ if ( QTextDrag.decode( e, freezer_item_name ) ) :
+ self.m_petri_dish_dir_path = freezer_item_name
self.modeActivatedSlot()
return
@@ -236,9 +253,6 @@
# for (QStringList.Iterator i=files.begin() i!=files.end() ++i)
for i in files:
m = m + " " + i + '\n'
-#jmc delete
-# self.setText( m )
-# self.setMinimumSize(self.minimumSize().expandedTo(self.sizeHint()))
return
str = decode( e )
Modified: branches/brysonda/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOneAna_PetriDishCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -2,8 +2,8 @@
from qt import *
from pyOneAna_PetriDishView import pyOneAna_PetriDishView
+import os
-
class pyOneAna_PetriDishCtrl(pyOneAna_PetriDishView):
def __init__(self,parent = None,name = None,fl = 0):
@@ -12,13 +12,13 @@
def construct(self, session_mdl):
self.m_session_mdl = session_mdl
- self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedSig"),
- self.petriDropped)
+ self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezerItemDroppedInOneAnalyzeSig"),
+ self.freezerItemDropped)
- def petriDropped(self, e):
+ def freezerItemDropped(self, e):
# Try to decode to the data you understand...
- string = QString()
- if ( QTextDrag.decode( e, string ) ) :
- self.m_one_ana_pop_name.setText(string)
+ freezer_item_name = QString()
+ if ( QTextDrag.decode( e, freezer_item_name ) ) :
+ self.m_one_ana_pop_name.setText(os.path.splitext((os.path.split(str(freezer_item_name))[1]))[0])
Modified: branches/brysonda/source/python/AvidaGui2/pyOneAnalyzeCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOneAnalyzeCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOneAnalyzeCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -2,7 +2,7 @@
from qt import *
from pyOneAnalyzeView import pyOneAnalyzeView
-import os
+import os.path
class pyOneAnalyzeCtrl(pyOneAnalyzeView):
@@ -14,24 +14,24 @@
self.m_session_mdl = session_mdl
self.m_one_ana_graph_ctrl.construct(self.m_session_mdl)
self.m_one_ana_petri_ctrl.construct(self.m_session_mdl)
- self.connect( self, PYSIGNAL("petriDishDroppedSig"), self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedSig"))
+ self.connect( self, PYSIGNAL("freezerItemDroppedInOneAnalyzeSig"), self.m_session_mdl.m_session_mdtr, PYSIGNAL("freezerItemDroppedInOneAnalyzeSig"))
print "self"
print self
def dropEvent( self, e ):
- string = QString()
-
- if ( QTextDrag.decode( e, string ) ) :
- if os.path.exists(str('default.workspace/freezer/' + str(string) + '.full/')) == False:
- print "that was not a valid path"
+ freezer_item_name = QString()
+ print "something was dropped"
+ if ( QTextDrag.decode( e, freezer_item_name ) ) :
+ if os.path.exists( str(freezer_item_name)) == False:
+ print "that was not a valid path(3)"
else:
- self.emit(PYSIGNAL("petriDishDroppedSig"), (e,))
+ self.emit(PYSIGNAL("freezerItemDroppedInOneAnalyzeSig"), (e,))
- def dragEnterEvent( self, e ):
+# def dragEnterEvent( self, e ):
# # Check if you want the drag...
# if (secret.canDecode( e ) or
# QTextDrag.canDecode( e ) or
# QImageDrag.canDecode( e ) or
# QUriDrag.canDecode( e )):
- e.accept()
\ No newline at end of file
+# e.accept()
Modified: branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -6,6 +6,7 @@
from pyOnePop_GraphView import pyOnePop_GraphView
from qt import *
from qwt import *
+import os.path
class PrintFilter(QwtPlotPrintFilter):
def __init__(self):
@@ -65,7 +66,7 @@
self.printGraphSlot)
def load(self, filename, colx, coly):
- print "pyOnePop_GraphCtrl.load"
+ print "pyOnePop_GraphCtrl.load file name = " + filename
if (self.m_avida is None) or (self.m_avida.m_population.GetStats().GetUpdate() == 0):
print " m_avida is None, or update is zero. Not loading from file."
self.m_x_array = zeros(1, Float)
@@ -89,7 +90,7 @@
self.m_graph_ctrl.clear()
if index:
self.load(
- self.m_avida_stats_interface.m_entries[index][1],
+ os.path.join(self.m_session_mdl.m_tempdir_out, self.m_avida_stats_interface.m_entries[index][1]),
1,
self.m_avida_stats_interface.m_entries[index][2]
)
Modified: branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphView.ui
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphView.ui 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOnePop_GraphView.ui 2005-06-10 19:29:26 UTC (rev 202)
@@ -10,10 +10,24 @@
<rect>
<x>0</x>
<y>0</y>
- <width>147</width>
- <height>202</height>
+ <width>574</width>
+ <height>743</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>200</height>
+ </size>
+ </property>
<property name="caption">
<string>pyOnePop_GraphView</string>
</property>
@@ -238,7 +252,7 @@
</sizehint>
<container>0</container>
<sizepolicy>
- <hordata>3</hordata>
+ <hordata>0</hordata>
<verdata>0</verdata>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
@@ -251,6 +265,16 @@
<property type="3">-1</property>
<property type="1">pyGraphCtrl</property>
<property type="4">-1</property>
+ <property type="1">pyGraphCtrl</property>
+ <property type="4">-1</property>
+ <property type="1">pyGraphCtrl</property>
+ <property type="0">-1</property>
+ <property type="1">pyGraphCtrl</property>
+ <property type="0">-1</property>
+ <property type="1">pyGraphCtrl</property>
+ <property type="0">-1</property>
+ <property type="1">pyGraphCtrl</property>
+ <property type="0">-1</property>
<property type="pyGraphCtrl"></property>
<property type="-1">1</property>
</customwidget>
Modified: branches/brysonda/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOnePop_PetriDishCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -3,8 +3,9 @@
from qt import *
from pyMapProfile import pyMapProfile
from pyOnePop_PetriDishView import pyOnePop_PetriDishView
+import os
+from pyReadFreezer import pyReadFreezer
-
class pyOnePop_PetriDishCtrl(pyOnePop_PetriDishView):
def __init__(self,parent = None,name = None,fl = 0):
@@ -31,6 +32,8 @@
self.connect(self.m_zoom_spinbox, SIGNAL("valueChanged(int)"), self.m_petri_dish_ctrl.zoomSlot)
self.connect(self.m_petri_dish_ctrl, PYSIGNAL("zoomSig"), self.m_zoom_spinbox.setValue)
self.connect(self.m_mode_combobox, SIGNAL("activated(int)"), self.modeActivatedSlot)
+ self.connect( self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedInPopViewSig"),
+ self.petriDropped)
self.m_mode_combobox.clear()
self.m_mode_combobox.setInsertionPolicy(QComboBox.AtBottom)
@@ -77,7 +80,7 @@
return
current_page = self.m_petri_dish_widget_stack.visibleWidget()
current_page_int = self.m_petri_dish_widget_stack.id(current_page)
- if (current_page_int == 0):
+ if (current_page_int != 1):
self.m_petri_dish_widget_stack.raiseWidget(1)
def SetDishDisabledSlot(self):
@@ -130,3 +133,19 @@
print "send_reset_signal = " + str(send_reset_signal)
print "send_quit_signal = " + str(send_quit_signal)
+ def petriDropped(self, e):
+ # Try to decode to the data you understand...
+ print "*** Entered petriDropped"
+ freezer_item_name = QString()
+ if ( QTextDrag.decode( e, freezer_item_name ) ) :
+ if freezer_item_name[-4:] == 'full':
+ freezer_item_name_temp = os.path.join(str(freezer_item_name), 'petri_dish')
+ else:
+ freezer_item_name_temp = str(freezer_item_name)
+ thawed_item = pyReadFreezer(freezer_item_name_temp)
+ self.m_session_mdl.m_session_mdtr.emit(PYSIGNAL("doDefrostDishSig"),
+ (os.path.splitext((os.path.split(str(freezer_item_name))[1]))[0], thawed_item,))
+
+ current_page = self.m_petri_dish_widget_stack.visibleWidget()
+ current_page_int = self.m_petri_dish_widget_stack.id(current_page)
+ self.MakeConfigVisiableSlot()
Modified: branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -56,13 +56,13 @@
avg_fitness = "%.2g" %(stats.GetAveFitness())
self.m_avg_fitness.setText(avg_fitness)
-
- dom_fitness = str(stats.GetDomFitness())
+ # i got rid of dominant stats, jmc
+# dom_fitness = str(stats.GetDomFitness())
# string_length = len(dom_fitness)
# while string_length < string_output_length:
# dom_fitness = dom_fitness + '0'
# string_length = string_length+1
- self.m_dom_fitness.setText(dom_fitness[0:string_output_length])
+# self.m_dom_fitness.setText(dom_fitness[0:string_output_length])
num_orgs = stats.GetNumCreatures()
self.m_num_orgs.setText(QString("%1").arg(num_orgs))
@@ -73,8 +73,17 @@
# avg_gest = avg_gest + '0'
# string_length = string_length+1
self.m_avg_gest.setText(QString("%1").arg(avg_gest))
+
+ avg_merit = "%d" %(stats.GetAveMerit())
+ self.m_avg_merit.setText(QString("%1").arg(avg_merit))
+ avg_age = "%d" %(stats.GetAveCreatureAge())
+ self.m_avg_age.setText(QString("%1").arg(avg_age))
+ avg_genome_length = "%d" %(stats.GetAveSize())
+ self.m_avg_genome_length.setText(QString("%1").arg(avg_genome_length))
+
+
#TASK OUTLOOK
# #if num_orgs_doing_a_given_task is above this number, we say the pop is doing this task
Modified: branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsView.ui
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsView.ui 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOnePop_StatsView.ui 2005-06-10 19:29:26 UTC (rev 202)
@@ -9,485 +9,482 @@
</property>
<property name="geometry">
<rect>
- <x>0</x>
- <y>0</y>
- <width>485</width>
- <height>743</height>
+ <x>87</x>
+ <y>171</y>
+ <width>400</width>
+ <height>400</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy>
- <hsizetype>3</hsizetype>
- <vsizetype>3</vsizetype>
+ <hsizetype>0</hsizetype>
+ <vsizetype>5</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>400</width>
+ <height>400</height>
+ </size>
+ </property>
<property name="caption">
<string>pyOnePop_StatsView</string>
</property>
- <vbox>
+ <hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QLayoutWidget">
+ <widget class="QGroupBox">
<property name="name">
- <cstring>layout49</cstring>
+ <cstring>groupBox4</cstring>
</property>
- <hbox>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>350</width>
+ <height>30000</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="title">
+ <string>Org. Clicked on Report</string>
+ </property>
+ <vbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QGroupBox">
+ <widget class="QLayoutWidget">
<property name="name">
- <cstring>groupBox4</cstring>
+ <cstring>layout40</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3_3_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_org_name</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>70</width>
+ <height>15</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>70</width>
+ <height>10</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ <widget class="pyOrgSquareCtrl">
+ <property name="name">
+ <cstring>m_org_square_ctrl</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout42</cstring>
</property>
- <property name="font">
- <font>
- <pointsize>11</pointsize>
- </font>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3_3_2_2_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>10</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Fitness:</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>5</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_org_fitness</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout44</cstring>
</property>
- <property name="title">
- <string>Org. Clicked on Report</string>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Metabolic Rate:</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>5</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_org_merit</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout45</cstring>
</property>
- <vbox>
+ <hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QLayoutWidget">
+ <widget class="QLabel">
<property name="name">
- <cstring>layout48</cstring>
+ <cstring>textLabel14_3_3_2_2_2_2</cstring>
</property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout40</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel14_3_3_3</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>40</height>
- </size>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Name:</string>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_org_name</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>70</width>
- <height>15</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>70</width>
- <height>15</height>
- </size>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- <widget class="pyOrgSquareCtrl">
- <property name="name">
- <cstring>m_org_square_ctrl</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout42</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel14_3_3_2_2_3</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>40</height>
- </size>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Fitness:</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer6</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_org_fitness</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout44</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1_2</cstring>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Merit:</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer7</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_org_merit</cstring>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout45</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel14_3_3_2_2_2_2</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>40</height>
- </size>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Gestation (instructions):</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer10</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_org_gestation_time</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout46</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel3</cstring>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Genome Length:</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer9</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_org_genome_length</cstring>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout47</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1</cstring>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>Age (updates):</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer8</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_org_age</cstring>
- </property>
- <property name="font">
- <font>
- <pointsize>10</pointsize>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>10</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Gestation (instructions):</string>
+ </property>
</widget>
<spacer>
<property name="name">
- <cstring>spacer5</cstring>
+ <cstring>spacer10</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
- <enum>Preferred</enum>
+ <enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
- <width>215</width>
+ <width>40</width>
<height>5</height>
</size>
</property>
</spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_org_gestation_time</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout46</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Genome Length:</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer9</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>5</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_org_genome_length</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout47</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Age (updates):</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer8</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>5</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_org_age</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout33</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
<widget class="QLayoutWidget">
<property name="name">
- <cstring>layout53_2</cstring>
+ <cstring>layout32</cstring>
</property>
<vbox>
<property name="name">
@@ -511,7 +508,7 @@
</font>
</property>
<property name="text">
- <string>Task</string>
+ <string>Functions</string>
</property>
</widget>
<widget class="QLabel">
@@ -524,7 +521,7 @@
</font>
</property>
<property name="text">
- <string>times performed</string>
+ <string>Times Performed</string>
</property>
</widget>
</hbox>
@@ -551,6 +548,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -571,6 +569,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -593,6 +592,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -608,6 +608,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -630,6 +631,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -645,6 +647,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -667,6 +670,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -682,6 +686,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -704,6 +709,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -719,6 +725,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -741,6 +748,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -756,6 +764,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -778,6 +787,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -793,6 +803,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -815,6 +826,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -830,6 +842,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -852,6 +865,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -867,6 +881,7 @@
</property>
<property name="font">
<font>
+ <pointsize>10</pointsize>
</font>
</property>
<property name="text">
@@ -879,17 +894,52 @@
</widget>
</vbox>
</widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>350</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>GroupBoxPanel</enum>
+ </property>
+ <property name="title">
+ <string>Population Statistics</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
<widget class="QLayoutWidget">
<property name="name">
- <cstring>layout46</cstring>
+ <cstring>layout56</cstring>
</property>
- <vbox>
+ <hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QGroupBox">
+ <widget class="QLabel">
<property name="name">
- <cstring>groupBox3</cstring>
+ <cstring>textLabel14_3_3_2_2</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
@@ -899,433 +949,48 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>20</height>
+ </size>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
- <property name="title">
- <string>Population Task Report</string>
+ <property name="text">
+ <string>Population Size:</string>
</property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout53</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout20</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel14</cstring>
- </property>
- <property name="font">
- <font>
- <underline>1</underline>
- </font>
- </property>
- <property name="text">
- <string>Task</string>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel14_2</cstring>
- </property>
- <property name="font">
- <font>
- <underline>1</underline>
- </font>
- </property>
- <property name="text">
- <string>orgs performing</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout51</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel14_3</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>not</string>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_not</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout52</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel4</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>nand</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_nand</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout9</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel6</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>and</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_and</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout10</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel17</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>ornot</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_ornot</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout11</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel10</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>or</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_or</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout12</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel12</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>andnot</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_andnot</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout13</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel14_4</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>nor</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_nor</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout14</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel16</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>xor</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_xor</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout15</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel18</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>equals</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignVCenter|AlignLeft</set>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>m_num_equals</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="text">
- <string>-</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer1</cstring>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>Minimum</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>16</width>
- <height>16</height>
- </size>
- </property>
- </spacer>
- </vbox>
</widget>
- <widget class="QGroupBox">
+ <spacer>
<property name="name">
- <cstring>groupBox5</cstring>
+ <cstring>spacer6_2</cstring>
</property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_orgs</cstring>
+ </property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>5</hsizetype>
@@ -1336,20 +1001,454 @@
</property>
<property name="font">
<font>
- <pointsize>11</pointsize>
+ <pointsize>10</pointsize>
</font>
</property>
- <property name="title">
- <string>Population Statistics</string>
+ <property name="text">
+ <string>-</string>
</property>
- <grid>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout64</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Avg. Fitness:</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_2_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>85</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_avg_fitness</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>3000</width>
+ <height>3000</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout59</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3_3_2_2_2_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Avg. Metabolic Rate:</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_2_2_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_avg_merit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout60</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3_3_2_2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Avg. Gestation (instructions):</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_2_2_2_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_avg_gest</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout61</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3_3_2_2_2_4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Avg. Genome Length:</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_2_2_2_3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_avg_genome_length</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout62</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3_3_2_2_2_4_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Avg. Age (updates):</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_2_2_2_3_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_avg_age</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout53</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout20</cstring>
+ </property>
+ <hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QLabel" row="1" column="1">
+ <widget class="QLabel">
<property name="name">
- <cstring>m_dom_fitness</cstring>
+ <cstring>textLabel14</cstring>
</property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ <underline>1</underline>
+ </font>
+ </property>
+ <property name="text">
+ <string>Functions</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_2</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ <underline>1</underline>
+ </font>
+ </property>
+ <property name="text">
+ <string>Orgs Performing</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout51</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel14_3</cstring>
+ </property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>5</hsizetype>
@@ -1364,84 +1463,138 @@
</font>
</property>
<property name="text">
- <string>-</string>
+ <string>not</string>
</property>
</widget>
- <widget class="QLabel" row="0" column="1">
+ <widget class="QLabel">
<property name="name">
- <cstring>m_avg_fitness</cstring>
+ <cstring>m_num_not</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="minimumSize">
- <size>
- <width>45</width>
- <height>10</height>
- </size>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
</property>
- <property name="maximumSize">
- <size>
- <width>45</width>
- <height>5</height>
- </size>
+ <property name="text">
+ <string>-</string>
</property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout52</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
- <property name="lineWidth">
- <number>7</number>
+ <property name="text">
+ <string>nand</string>
</property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_nand</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
<property name="text">
<string>-</string>
</property>
</widget>
- <widget class="QLabel" row="1" column="0">
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout9</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
<property name="name">
- <cstring>textLabel14_3_3_2</cstring>
+ <cstring>textLabel6</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
</property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>40</height>
- </size>
+ <property name="text">
+ <string>and</string>
</property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_and</cstring>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
- <string>Dominant Org. Fitness:</string>
+ <string>-</string>
</property>
</widget>
- <widget class="QLabel" row="2" column="1">
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
<property name="name">
- <cstring>m_num_orgs</cstring>
+ <cstring>textLabel17</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
</property>
+ <property name="text">
+ <string>ornot</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_ornot</cstring>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
@@ -1451,72 +1604,114 @@
<string>-</string>
</property>
</widget>
- <widget class="QLabel" row="0" column="0">
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
<property name="name">
- <cstring>textLabel14_3_3</cstring>
+ <cstring>textLabel10</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
</property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>40</height>
- </size>
+ <property name="text">
+ <string>or</string>
</property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_or</cstring>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
- <string>Avg. Fitness:</string>
+ <string>-</string>
</property>
</widget>
- <widget class="QLabel" row="3" column="0">
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout12</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
<property name="name">
- <cstring>textLabel14_3_3_2_2_2</cstring>
+ <cstring>textLabel12</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
</property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>40</height>
- </size>
+ <property name="text">
+ <string>andnot</string>
</property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_andnot</cstring>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
- <string>Avg. Gestation (instructions):</string>
+ <string>-</string>
</property>
</widget>
- <widget class="QLabel" row="3" column="1">
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout13</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
<property name="name">
- <cstring>m_avg_gest</cstring>
+ <cstring>textLabel14_4</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
</property>
+ <property name="text">
+ <string>nor</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_nor</cstring>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
@@ -1526,40 +1721,91 @@
<string>-</string>
</property>
</widget>
- <widget class="QLabel" row="2" column="0">
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout14</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
<property name="name">
- <cstring>textLabel14_3_3_2_2</cstring>
+ <cstring>textLabel16</cstring>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
</property>
- <property name="maximumSize">
- <size>
- <width>32767</width>
- <height>40</height>
- </size>
+ <property name="text">
+ <string>xor</string>
</property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_xor</cstring>
+ </property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
- <string>Population Size:</string>
+ <string>-</string>
</property>
</widget>
- </grid>
+ </hbox>
</widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout15</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel18</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>equals</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>m_num_equals</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>10</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>-</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
</vbox>
</widget>
- </hbox>
+ </vbox>
</widget>
- </vbox>
+ </hbox>
</widget>
<customwidgets>
<customwidget>
Modified: branches/brysonda/source/python/AvidaGui2/pyOnePopulationCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyOnePopulationCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyOnePopulationCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -2,12 +2,13 @@
from qt import *
from pyOnePopulationView import pyOnePopulationView
+import os.path
-
class pyOnePopulationCtrl(pyOnePopulationView):
def __init__(self,parent = None,name = None,fl = 0):
pyOnePopulationView.__init__(self,parent,name,fl)
+ self.setAcceptDrops(1)
def construct(self, session_mdl):
self.m_session_mdl = session_mdl
@@ -15,3 +16,14 @@
self.m_one_pop_graph_ctrl.construct(self.m_session_mdl)
self.m_one_pop_stats_ctrl.construct(self.m_session_mdl)
self.m_one_pop_timeline_ctrl.hide()
+ self.connect( self, PYSIGNAL("petriDishDroppedInPopViewSig"), self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedInPopViewSig"))
+
+ def dropEvent( self, e ):
+ freezer_item_name = QString()
+ print "dropEvent"
+ if ( QTextDrag.decode( e, freezer_item_name ) ) : #freezer_item_name is a string...the file name
+ if os.path.exists(str(freezer_item_name)) == False:
+ print "that was not a valid path (1)"
+ else:
+ self.emit(PYSIGNAL("petriDishDroppedInPopViewSig"), (e,))
+ print "emitted"
Modified: branches/brysonda/source/python/AvidaGui2/pyPetriConfigureCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyPetriConfigureCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyPetriConfigureCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -3,20 +3,21 @@
from pyAvida import pyAvida
from pyFreezeDialogCtrl import pyFreezeDialogCtrl
from pyPetriConfigureView import pyPetriConfigureView
-from pyWriteGenesis import pyWriteGenesis
+from pyWriteGenesisEvent import pyWriteGenesisEvent
from pyWriteToFreezer import pyWriteToFreezer
from AvidaCore import cGenesis, cString
from qt import *
-import os
+import os, os.path, shutil
import math
class pyPetriConfigureCtrl(pyPetriConfigureView):
def __init__(self,parent = None,name = None,fl = 0):
pyPetriConfigureView.__init__(self,parent,name,fl)
+ self.setAcceptDrops(1)
def setAvidaSlot(self, avida):
@@ -62,6 +63,7 @@
self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"), self.setAvidaSlot)
self.connect(self.m_session_mdl.m_session_mdtr, PYSIGNAL("doInitializeAvidaPhaseIISig"),
self.doLoadPetriDishConfigFileSlot)
+ self.connect( self, PYSIGNAL("petriDishDroppedInPopViewSig"), self.m_session_mdl.m_session_mdtr, PYSIGNAL("petriDishDroppedInPopViewSig"))
self.ChangeMutationTextSlot()
self.ChangeWorldSizeTextSlot()
self.populated = False
@@ -195,12 +197,18 @@
PYSIGNAL("doDisablePetriDishSig"), ())
def CreateFilesFromPetriSlot(self, out_dir = None):
+
+ # The input files will be placed in a python generated temporary directory
+ # ouput files will be stored in tmp_dir/output until the data is frozen
+ # (ie saved)
+
self.full_petri_dict["SETTINGS"] = self.Form2Dictionary()
- write_object = pyWriteGenesis(self.full_petri_dict,
+ write_object = pyWriteGenesisEvent(self.full_petri_dict,
self.m_session_mdl.m_current_workspace,
- self.m_session_mdl.m_current_freezer, self.m_session_mdl.m_tempdir)
+ self.m_session_mdl.m_current_freezer, self.m_session_mdl.m_tempdir,
+ self.m_session_mdl.m_tempdir_out)
self.m_session_mdl.m_session_mdtr.emit(
- PYSIGNAL("doInitializeAvidaPhaseIISig"), (self.m_session_mdl.m_tempdir + "genesis.avida",))
+ PYSIGNAL("doInitializeAvidaPhaseIISig"), (os.path.join(self.m_session_mdl.m_tempdir, "genesis.avida"),))
def Form2Dictionary(self):
settings_dict = {}
@@ -238,12 +246,23 @@
tmp_dict["SETTINGS"] = self.Form2Dictionary()
m_pop_up_freezer_file_name = pyFreezeDialogCtrl()
file_name = m_pop_up_freezer_file_name.showDialog(self.m_session_mdl.m_current_freezer)
+
+ # If the user is saving a full population expand the name and insert
+ # the population dictionary into the temporary dictionary
+
if (m_pop_up_freezer_file_name.isEmpty() == False):
os.mkdir(file_name)
- file_name = file_name + "/petri_dish"
+
+ # Copy the average and count files from the teporary output directory
+ # to the Freezer directory
+
+ shutil.copyfile(os.path.join(self.m_session_mdl.m_tempdir_out, "average.dat"), os.path.join(file_name, "average.dat"))
+ shutil.copyfile(os.path.join(self.m_session_mdl.m_tempdir_out, "count.dat"), os.path.join(file_name, "count.dat"))
+ file_name = os.path.join(file_name, "petri_dish")
tmp_dict["POPULATION"] = population_dict
is_empty_dish = m_pop_up_freezer_file_name.EmptyRadioButton.isChecked()
freezer_file = pyWriteToFreezer(tmp_dict, is_empty_dish, file_name)
+
self.m_session_mdl.m_session_mdtr.emit(
PYSIGNAL("doRefreshFreezerInventorySig"), ())
if send_reset_signal:
@@ -275,3 +294,15 @@
self.m_session_mdl.m_session_mdtr, PYSIGNAL("setAvidaSig"),
self.setAvidaSlot)
+ def dropEvent( self, e ):
+ freezer_item_name = QString()
+ print "dropEvent"
+ if ( QTextDrag.decode( e, freezer_item_name ) ) :
+ print "in here"
+ print freezer_item_name
+# if os.path.exists(str('default.workspace/freezer/' + str(string) + '.full/')) == False:
+ if os.path.exists(str(freezer_item_name)) == False:
+ print "that was not a valid path (2)"
+ else:
+ self.emit(PYSIGNAL("petriDishDroppedInPopViewSig"), (e,))
+ print "emitted(1)"
Modified: branches/brysonda/source/python/AvidaGui2/pyPetriConfigureView.ui
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyPetriConfigureView.ui 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyPetriConfigureView.ui 2005-06-10 19:29:26 UTC (rev 202)
@@ -9,7 +9,7 @@
<x>0</x>
<y>0</y>
<width>377</width>
- <height>591</height>
+ <height>626</height>
</rect>
</property>
<property name="font">
@@ -248,6 +248,86 @@
</widget>
<spacer>
<property name="name">
+ <cstring>spacer15</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QFrame">
+ <property name="name">
+ <cstring>AncestorFrame</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>GroupBoxPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AncestorHeadTextLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <bold>1</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Ancestral Organism(s)</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>default.organism</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>AncestorComboBox</cstring>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="acceptDrops">
+ <bool>true</bool>
+ </property>
+ <property name="editable">
+ <bool>true</bool>
+ </property>
+ <property name="currentItem">
+ <number>0</number>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property name="name">
<cstring>spacer13_2</cstring>
</property>
<property name="orientation">
@@ -519,7 +599,7 @@
</spacer>
<widget class="QFrame">
<property name="name">
- <cstring>frame12</cstring>
+ <cstring>RandomNumFrame</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
@@ -631,6 +711,26 @@
<property name="enabled">
<bool>false</bool>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>70</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>90</width>
+ <height>32767</height>
+ </size>
+ </property>
<property name="font">
<font>
</font>
@@ -670,86 +770,6 @@
</widget>
<spacer>
<property name="name">
- <cstring>spacer15</cstring>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>16</height>
- </size>
- </property>
- </spacer>
- <widget class="QFrame">
- <property name="name">
- <cstring>AncestorFrame</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="frameShape">
- <enum>GroupBoxPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>Sunken</enum>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>AncestorHeadTextLabel</cstring>
- </property>
- <property name="font">
- <font>
- <bold>1</bold>
- </font>
- </property>
- <property name="text">
- <string>Ancestral Organism(s)</string>
- </property>
- <property name="alignment">
- <set>WordBreak|AlignCenter</set>
- </property>
- </widget>
- <widget class="QComboBox">
- <item>
- <property name="text">
- <string>default.organism</string>
- </property>
- </item>
- <property name="name">
- <cstring>AncestorComboBox</cstring>
- </property>
- <property name="font">
- <font>
- </font>
- </property>
- <property name="acceptDrops">
- <bool>true</bool>
- </property>
- <property name="editable">
- <bool>true</bool>
- </property>
- <property name="currentItem">
- <number>0</number>
- </property>
- </widget>
- </vbox>
- </widget>
- <spacer>
- <property name="name">
<cstring>spacer16</cstring>
</property>
<property name="orientation">
@@ -767,7 +787,7 @@
</spacer>
<widget class="QFrame">
<property name="name">
- <cstring>frame27</cstring>
+ <cstring>BirthPlaceFrame</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
@@ -797,7 +817,7 @@
</font>
</property>
<property name="text">
- <string>Where should new organism be placed?</string>
+ <string>Where should new offspring be placed?</string>
</property>
<property name="alignment">
<set>WordBreak|AlignCenter</set>
Modified: branches/brysonda/source/python/AvidaGui2/pySessionCtrl.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pySessionCtrl.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pySessionCtrl.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -9,7 +9,7 @@
import qt
-import os
+import os, os.path
import tempfile
class pySessionCtrl(qt.QObject):
@@ -39,11 +39,13 @@
# Create "model" for storing state data.
class pyMdl: pass
self.m_session_mdl = pyMdl()
- self.m_session_mdl.m_current_workspace = "default.workspace/"
- self.m_session_mdl.m_current_freezer = self.m_session_mdl.m_current_workspace + "freezer/"
+ self.m_session_mdl.m_current_workspace = "default.workspace"
+ self.m_session_mdl.m_current_freezer = os.path.join(self.m_session_mdl.m_current_workspace, "freezer")
# Create a temporary subdirectory for general use in this session.
- self.m_session_mdl.m_tempdir = tempfile.mkdtemp('','AvidaEd-pid%d-'%os.getpid()) + "/"
+ self.m_session_mdl.m_tempdir = tempfile.mkdtemp('','AvidaEd-pid%d-'%os.getpid())
+ self.m_session_mdl.m_tempdir_out = os.path.join(self.m_session_mdl.m_tempdir, "output")
+ os.mkdir(self.m_session_mdl.m_tempdir_out)
# Create session mediator.
self.m_session_mdl.m_session_mdtr = pyMdtr()
Modified: branches/brysonda/source/python/AvidaGui2/pyTemporaryReloads.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyTemporaryReloads.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyTemporaryReloads.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -75,7 +75,7 @@
"AvidaGui2.pyReadFreezer",
"AvidaGui2.pyTimelineView",
"AvidaGui2.pyTimelineCtrl",
- "AvidaGui2.pyWriteGenesis",
+ "AvidaGui2.pyWriteGenesisEvent",
"AvidaGui2.pyWriteToFreezer",
"AvidaGui2.pyOneAna_GraphView",
Deleted: branches/brysonda/source/python/AvidaGui2/pyWriteGenesis.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyWriteGenesis.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyWriteGenesis.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -1,83 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import shutil, string, pyInstructionSet
-
-class pyWriteGenesis:
-
- def __init__(self, in_dict = None, workspace_dir = None, freeze_dir = None,
- out_dir = None):
-
- settings_dict = in_dict["SETTINGS"]
-
- # Copies default event and environment files and adds names to the
- # incoming dictionary
-
- shutil.copyfile(workspace_dir + "events.default", out_dir + "events.cfg")
-
- # If this is a full petri dish inject all the organisms otherwise
- # inject the start creature in the center of the grid
-
- if in_dict.has_key("CELLS"):
- cells_dict = in_dict["CELLS"]
- organisms_dict = in_dict["ORGANISMS"]
- else:
- cells_dict = {}
- organisms_dict = {}
- if settings_dict.has_key("START_CREATURE"):
- world_x = settings_dict["WORLD-X"]
- world_y = settings_dict["WORLD-Y"]
- self.start_cell_location = int(((world_y/2) * world_x) +(world_x/2))
- cells_dict[str(self.start_cell_location)] = str(1)
- tmp_inst_set = pyInstructionSet.pyInstructionSet(workspace_dir + "inst_set.default")
- org_string = tmp_inst_set.OrgFile2LetterString(freeze_dir + settings_dict["START_CREATURE"])
- organisms_dict[str(1)] = org_string
- self.createInjects(cells_dict, organisms_dict, out_dir + "events.cfg")
-
- shutil.copyfile(workspace_dir + "environment.default", out_dir + "environment.cfg")
- shutil.copyfile(workspace_dir + "inst_set.default", out_dir + "inst_set.default")
-
- # shutil.copyfile(freeze_dir + settings_dict["START_CREATURE"],
- # out_dir + settings_dict["START_CREATURE"])
- settings_dict["EVENT_FILE"] = out_dir + "events.cfg"
- settings_dict["ENVIRONMENT_FILE"] = out_dir + "environment.cfg"
- settings_dict["INST_SET"] = out_dir + "inst_set.default"
- # settings_dict["START_CREATURE"] = out_dir + settings_dict["START_CREATURE"]
-
- # Read the default genesis file, if there is a equivilent line in the
- # dictionary replace it the new values, otherwise just copy the line
-
- orig_genesis_file = open(workspace_dir + "genesis.default")
- lines = orig_genesis_file.readlines()
- orig_genesis_file.close()
- out_genesis_file = open(out_dir + "genesis.avida", "w")
- for line in lines:
- comment_start = line.find("#")
- if comment_start > -1:
- if comment_start == 0:
- clean_line = ""
- else:
- clean_line = line[:comment_start]
- else:
- clean_line = line;
- clean_line = clean_line.strip()
- if len(clean_line) > 0:
- var_name, value = string.split(clean_line)
- var_name = var_name.upper()
- if settings_dict.has_key(var_name) == True:
- out_genesis_file.write(var_name + " " + str(settings_dict[var_name]) + "\n")
- else:
- out_genesis_file.write(line)
- else:
- out_genesis_file.write(line)
- out_genesis_file.close()
-
- def createInjects(self, cells_dict, organisms_dict, out_file):
- event_out_file = open(out_file, 'a')
- for cell in cells_dict.keys():
- part1 = "u 0 inject_sequence " + organisms_dict[cells_dict[cell]] + " "
- part2 = cell + " " + str(int(cell)+1) + " -1 "
- part3 = cells_dict[cell] + "\n"
- event_out_file.write(part1 + part2 + part3)
- event_out_file.close()
-
-
Copied: branches/brysonda/source/python/AvidaGui2/pyWriteGenesisEvent.py (from rev 201, trunk/source/python/AvidaGui2/pyWriteGenesisEvent.py)
Modified: branches/brysonda/source/python/AvidaGui2/pyWriteToFreezer.py
===================================================================
--- branches/brysonda/source/python/AvidaGui2/pyWriteToFreezer.py 2005-06-10 19:24:15 UTC (rev 201)
+++ branches/brysonda/source/python/AvidaGui2/pyWriteToFreezer.py 2005-06-10 19:29:26 UTC (rev 202)
@@ -48,4 +48,4 @@
curr_genome_num = organism_dict[genome]
in_dict["CELLS"][cell] = curr_genome_num
-
\ No newline at end of file
+
More information about the Avida-cvs
mailing list