[kepler-code] r28819 - in trunk/modules: science-pipes/workflows/dev science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship science-pipes-frontend/WebContent/editor/parts

barseghian at ecoinformatics.org barseghian at ecoinformatics.org
Wed Oct 19 17:10:12 PDT 2011


Author: barseghian
Date: 2011-10-19 17:10:12 -0700 (Wed, 19 Oct 2011)
New Revision: 28819

Added:
   trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/Histogram.java
   trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.Histogram.meta.xml
Modified:
   trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/SurvivalCurveCalc.java
   trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.SurvivalCurveCalc.meta.xml
   trunk/modules/science-pipes-frontend/WebContent/editor/parts/survivorship-actors.xml
   trunk/modules/science-pipes/workflows/dev/survivorship_actors_test.xml
Log:
Histogram actor
minor adjustments to SurvivalCurveCalc actor
comment out actors not yet usable w/ DP1

Modified: trunk/modules/science-pipes/workflows/dev/survivorship_actors_test.xml
===================================================================
--- trunk/modules/science-pipes/workflows/dev/survivorship_actors_test.xml	2011-10-19 14:03:31 UTC (rev 28818)
+++ trunk/modules/science-pipes/workflows/dev/survivorship_actors_test.xml	2011-10-20 00:10:12 UTC (rev 28819)
@@ -97,7 +97,7 @@
         </property>
     </entity>
     <entity name="ImageDisplay3" class="ptolemy.actor.lib.image.ImageDisplay">
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={112, 22, 128, 44}, maximized=false}">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={112, 22, 700, 544}, maximized=false}">
         </property>
         <property name="_pictureSize" class="ptolemy.actor.gui.SizeAttribute" value="[700, 500]">
         </property>
@@ -112,6 +112,28 @@
         <property name="_location" class="ptolemy.kernel.util.Location" value="[110.0, 475.0]">
         </property>
     </entity>
+    <entity name="Histogram" class="edu.cornell.birds.is.bap.actor.survivorship.Histogram">
+        <property name="group" class="edu.cornell.birds.is.bap.ptolemy.StringChoiceParameter" value="Death Year">
+<display name="Column"/>        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[30.0, 710.0]">
+        </property>
+    </entity>
+    <entity name="ImageDisplay4" class="ptolemy.actor.lib.image.ImageDisplay">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={112, 22, 700, 544}, maximized=false}">
+        </property>
+        <property name="_pictureSize" class="ptolemy.actor.gui.SizeAttribute" value="[700, 500]">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[180.0, 745.0]">
+        </property>
+    </entity>
+    <entity name="Display3" class="ptolemy.actor.lib.gui.Display">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={65, 305, 1189, 542}, maximized=false}">
+        </property>
+        <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[1189, 498]">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[245.0, 670.0]">
+        </property>
+    </entity>
     <relation name="relation6" class="ptolemy.actor.TypedIORelation">
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
@@ -170,6 +192,14 @@
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
     </relation>
+    <relation name="relation14" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
+    </relation>
+    <relation name="relation15" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
+    </relation>
     <link port="Display.input" relation="relation4"/>
     <link port="Display2.input" relation="relation"/>
     <link port="Life Table Display.input" relation="relation2"/>
@@ -200,4 +230,9 @@
     <link port="AgePyramidPlot.out" relation="relation13"/>
     <link port="ImageDisplay3.input" relation="relation13"/>
     <link port="AgePyramid Display.input" relation="relation9"/>
+    <link port="Histogram.output" relation="relation15"/>
+    <link port="Histogram.dataPort" relation="relation7"/>
+    <link port="Histogram.out" relation="relation14"/>
+    <link port="ImageDisplay4.input" relation="relation14"/>
+    <link port="Display3.input" relation="relation15"/>
 </entity>

Added: trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/Histogram.java
===================================================================
--- trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/Histogram.java	                        (rev 0)
+++ trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/Histogram.java	2011-10-20 00:10:12 UTC (rev 28819)
@@ -0,0 +1,248 @@
+/**
+ *    '$RCSfile: RExpression.java,v $'
+ *
+ *     '$Author: pea1 $'
+ *       '$Date: 2009/03/25 15:51:49 $'
+ *   '$Revision: 1.2 $'
+ *
+ *  For Details: http://kepler.ecoinformatics.org
+ *
+ * Copyright (c) 2003 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Permission is hereby granted, without written agreement and without
+ * license or royalty fees, to use, copy, modify, and distribute this
+ * software and its documentation for any purpose, provided that the
+ * above copyright notice and the following two paragraphs appear in
+ * all copies of this software.
+ *
+ * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
+ * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
+ * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY
+ * OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
+ * UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ */
+
+package edu.cornell.birds.is.bap.actor.survivorship;
+
+
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+
+import javax.imageio.ImageIO;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.ecoinformatics.seek.R.RExpression;
+import org.jfree.chart.ChartUtilities;
+
+import edu.cornell.birds.is.bap.actor.WorkflowOutputRepositoryActorHelper;
+import edu.cornell.birds.is.bap.ptolemy.StringChoiceParameter;
+import edu.cornell.birds.is.bap.ptolemy.StringChoiceProvider;
+
+import ptolemy.actor.TypedIOPort;
+import ptolemy.actor.parameters.PortParameter;
+import ptolemy.data.AWTImageToken;
+import ptolemy.data.StringToken;
+import ptolemy.data.Token;
+import ptolemy.data.expr.Parameter;
+import ptolemy.data.type.BaseType;
+import ptolemy.kernel.CompositeEntity;
+import ptolemy.kernel.util.IllegalActionException;
+
+import ptolemy.kernel.util.NameDuplicationException;
+
+
+public class Histogram extends RExpression implements StringChoiceProvider {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -607356176739963444L;
+
+	public static Log log = LogFactory.getLog(Histogram.class);
+
+	public TypedIOPort outPort;
+	public PortParameter titlePort;
+	public PortParameter subTitlePort;
+	public Parameter widthParameter;
+	public Parameter heightParameter;
+	public Parameter numBinsParameter;
+	public TypedIOPort dataPort;
+	
+    public StringChoiceParameter dataColumnText = null;
+    public StringChoiceParameter nBinsText = null;
+	
+	protected WorkflowOutputRepositoryActorHelper outputServiceHelper = 
+		new WorkflowOutputRepositoryActorHelper();
+	
+
+	/** Construct an actor with the given container and name.
+	 *  @param container The container.
+	 *  @param name The name of this actor.
+	 *  @exception IllegalActionException If the actor cannot be contained
+	 *   by the proposed container.
+	 *  @exception NameDuplicationException If the container already has an
+	 *   actor with this name.
+	 */
+	public Histogram(CompositeEntity container, String name)
+	throws NameDuplicationException, IllegalActionException  {
+		super(container, name);
+		
+        dataPort = new TypedIOPort(this, "dataPort", true, false);
+		
+		titlePort = new PortParameter(this, "title");
+		titlePort.setDisplayName("Title");
+		titlePort.setStringMode(true);
+		
+		subTitlePort = new PortParameter(this, "subTitle");
+		subTitlePort.setDisplayName("Auxiliary Title");
+		subTitlePort.setStringMode(true);
+
+		widthParameter = new Parameter(this, "width");
+		widthParameter.setTypeEquals(BaseType.INT);
+		widthParameter.setExpression("700");
+		
+		heightParameter = new Parameter(this, "height");
+		heightParameter.setTypeEquals(BaseType.INT);
+		heightParameter.setExpression("500");
+		
+		dataColumnText = new StringChoiceParameter(this, "dataColumn", this);
+		dataColumnText.setDisplayName("Column");
+		dataColumnText.setExpression(dataColumnText.getChoices()[0]);
+		
+		numBinsParameter = new Parameter(this, "numBins");
+		numBinsParameter.setDisplayName("Suggested Bin number or method");
+		numBinsParameter.setStringMode(true);
+		numBinsParameter.setExpression("Scott");
+		
+		outPort = new TypedIOPort(this, "out", false, true);
+		outPort.setTypeEquals(BaseType.OBJECT);
+		
+		
+		expression.setExpression("this is filled in at fire()");
+	}
+
+	public void fire() throws IllegalActionException {
+
+		// XXX currently we want png not pdf. see about support for pdf later.
+		forcePDFForOSX = false;
+		
+		String dataColumnChoice = dataColumnText.getKeyForCurrentChoice();
+		// R replaces spaces with a period in column names
+		String dataColumn = dataColumnChoice.replace(" ", ".");
+		
+		String title = getCompoundTitle();
+		
+    	StringToken dataToken = (StringToken) dataPort.get(0);
+    	String demographyFileString = dataToken.stringValue();
+    	File demographyFile = new File(demographyFileString);
+    	if (!demographyFile.canRead()){
+    		System.out.println("Histogram.fire() failed to get readable file from dataPort input port");
+    		return;
+    	}
+    	
+    	// nbins can be either an int or string (binning method)
+    	String nbins = numBinsParameter.getExpression();
+    	try{
+    		Integer.parseInt(nbins);
+    	}catch(NumberFormatException nfe){
+    		nbins = "\"".concat(nbins).concat("\"");
+    	}
+		
+        //XXX a bit hacky:
+        numXPixels.setExpression(widthParameter.getExpression());
+		numYPixels.setExpression(heightParameter.getExpression());
+		
+		String agePyramidRcode = 
+			"demographyData <- read.table(\"" + demographyFile.toString() + "\", sep=\",\", quote=\"\\\"\", " +
+				"header = TRUE)\n" + 
+			"library(MASS)\n" +
+			"attach(demographyData)\n" +
+			"truehist("+dataColumn+", prob=FALSE, nbins="+nbins+", xlab=\""+dataColumnChoice+"\", ylab=\"Frequency\", main=\""+title+"\")\n" +
+			"library(Hmisc)\n" +
+			"minor.tick(nx=2, ny=2, tick.ratio=.5)\n";
+		
+		expression.setExpression(agePyramidRcode);
+		
+        // *****
+		super.fire();
+        // *****
+		        
+        BufferedImage bufferedImage = null;
+        try {
+        	bufferedImage = ImageIO.read(new File(home+graphicsOutputFile));
+        	if (bufferedImage == null){
+				System.out.println("Histogram.fire bufferedImage == null ERROR");
+        	}
+        	storeOutput(bufferedImage);
+        	outPort.send(0, new AWTImageToken(bufferedImage));
+        } catch (IOException e) {
+        	// TODO Auto-generated catch block
+        	e.printStackTrace();
+        }
+        
+	}
+	
+	
+	protected void storeOutput(BufferedImage image) {
+		if (outputServiceHelper.isActive()) {
+			try {
+				byte[] bytes = ChartUtilities.encodeAsPNG(image);
+				outputServiceHelper.storeOutput(this, "image/png", null, bytes);
+			}
+			catch (IOException e) {
+				log.warn("IOException trying to encode image for storage", e);
+			}
+		}
+	}
+	
+    protected String getCompoundTitle() throws IllegalActionException {
+
+    	StringBuffer b = new StringBuffer();
+    	
+    	titlePort.update();
+    	Token titleToken = titlePort.getToken();
+    	
+    	subTitlePort.update();
+    	Token auxTitleToken = subTitlePort.getToken(); 
+    	
+    	if (titleToken != null) { 
+    		b.append(((StringToken)titleToken).stringValue());
+    	}
+    	
+    	if (auxTitleToken != null) {
+    		if (b.length() > 0) b.append("\n");
+    		b.append(((StringToken)auxTitleToken).stringValue());
+    	}
+    	
+    	return b.toString();
+    }
+
+	// XXX would be nice to utilize names or colnames of table for providing choices,
+	// but only get data on fire. possible to change when port gets connected?
+	private String[] choices = new String[] {
+		"Age",
+		"Birth Year",
+		"Death Year",
+	};
+	public String[] getChoices() {
+		return choices;
+	}
+	public String getValueForChoice(String choice) {
+		return choice;
+	}
+	public String getChoiceForValue(String value) {
+		return value;
+	}
+	
+	
+}


Property changes on: trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/Histogram.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/SurvivalCurveCalc.java
===================================================================
--- trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/SurvivalCurveCalc.java	2011-10-19 14:03:31 UTC (rev 28818)
+++ trunk/modules/science-pipes-backend/src/edu/cornell/birds/is/bap/actor/survivorship/SurvivalCurveCalc.java	2011-10-20 00:10:12 UTC (rev 28819)
@@ -82,7 +82,7 @@
 		outPort = new TypedIOPort(this, "out", false, true);
 		outPort.setTypeEquals(BaseType.OBJECT);
 		
-		groupByText = new StringChoiceParameter(this, "group", this);
+		groupByText = new StringChoiceParameter(this, "groupBy", this);
 		groupByText.setDisplayName("Group By Column");
 		groupByText.setExpression(groupByText.getChoices()[0]);
 
@@ -91,9 +91,8 @@
 
 	public void fire() throws IllegalActionException {
 		
-		String groupByChoice = groupByText.stringValue();
-		String key = groupByText.getKeyForCurrentChoice();
-		log.debug("groupByText: " + key);
+		String groupByChoice = groupByText.getKeyForCurrentChoice();
+		log.debug("groupByChoice: " + groupByChoice);
 		
     	StringToken dataToken = (StringToken) dataPort.get(0);
     	String demographyFileString = dataToken.stringValue();

Added: trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.Histogram.meta.xml
===================================================================
--- trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.Histogram.meta.xml	                        (rev 0)
+++ trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.Histogram.meta.xml	2011-10-20 00:10:12 UTC (rev 28819)
@@ -0,0 +1,144 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN" "http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
+<entity name="Histogram" class="edu.cornell.birds.is.bap.actor.survivorship.Histogram">
+	<display name="Histogram"/>
+
+	<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+		<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Given demography data, creates a histogram plot for selected column.</configure>
+		</property>
+		<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"/>
+		<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"/>
+		<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"/>
+		<property name="port:image" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Histogram image.</configure>
+		</property>
+		<property name="port:subTitle" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Text to use for secondary plot title</configure>
+		</property>
+		<property name="port:out" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Typically, this port should remain unused</configure>
+		</property>
+		<property name="port:title" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Text to use for primary plot title</configure>
+		</property>
+		<property name="port:dataPort" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Data from which a column will be plotted.</configure>
+		</property>
+		<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Width of chart, in pixels (hint: try 700 to start with)</configure>
+		</property>
+		<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Height of chart, in pixels (hint: try 500 to start with)</configure>
+		</property>
+		<property name="prop:auxiliaryTitle" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Text to use for secondary chart title</configure>
+		</property>
+		<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Text to use for primary chart title</configure>
+		</property>
+		<property name="prop:numBins" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Suggested number of Bins or bin method(Scott or FD/Freedman-Diaconis)</configure>
+		</property>
+		<property name="prop:dataColumn" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>The data column to plot.</configure>
+		</property>
+	</property>
+	<property name="_iconSmall" class="ptolemy.kernel.util.StringAttribute" value="icon_bar_chart.png">
+    </property>
+	<property name="_iconMedium" class="ptolemy.kernel.util.StringAttribute" value="icon_bar_chart.png">
+    </property>
+	<property name="_iconLarge" class="ptolemy.kernel.util.StringAttribute" value="icon_bar_chart.png">
+    </property>
+	<property name="_iconXLarge" class="ptolemy.kernel.util.StringAttribute" value="icon_bar_chart.png">
+    </property>
+	
+	<property name="title" class="ptolemy.actor.parameters.PortParameter" value="">
+		<display name="Title"/>
+		<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+        </property>
+		<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+        </property>
+	</property>
+	<property name="subTitle" class="ptolemy.actor.parameters.PortParameter" value="">
+		<display name="Sub-Title"/>
+		<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+        </property>
+		<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+        </property>
+	</property>
+	<property name="width" class="ptolemy.data.expr.Parameter" value="700">
+		<display name="Width (px)"/>
+		<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+        </property>
+		<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+        </property>
+	</property>
+	<property name="height" class="ptolemy.data.expr.Parameter" value="500">
+		<display name="Height (px)"/>
+		<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+        </property>
+		<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+        </property>
+	</property>
+	<port name="dataPort" class="ptolemy.actor.TypedIOPort">
+		<property name="input"/>
+		<display name="Data Input"/>
+	</port>
+	<port name="out" class="ptolemy.actor.TypedIOPort">
+		<property name="output"/>
+		<display name="Image"/>
+	</port>
+	<port name="title" class="ptolemy.actor.parameters.ParameterPort">
+		<property name="input"/>
+		<display name="Title"/>
+		<property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+			<display name="tokenConsumptionRate"/>
+			<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+            </property>
+			<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+            </property>
+		</property>
+	</port>
+	<port name="subTitle" class="ptolemy.actor.parameters.ParameterPort">
+		<property name="input"/>
+		<display name="Sub-Title"/>
+		<property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+			<display name="tokenConsumptionRate"/>
+			<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+            </property>
+			<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+            </property>
+		</property>
+	</port>
+	
+	<property name="numBins" class="ptolemy.data.expr.Parameter" value="Scott">
+		<display name="Bins"/>
+		<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+        </property>
+		<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+        </property>
+	</property>
+	
+	<property name="dataColumn" class="edu.cornell.birds.is.bap.ptolemy.StringChoiceParameter" value="Age">
+		<display name="Data Column"/>
+		<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
+        </property>
+		<property name="_visibilityHint" class="ptolemy.kernel.util.StringAttribute" value="full">
+        </property>
+		<property name="_uiHint" class="ptolemy.kernel.util.StringAttribute" value="default">
+        </property>
+		<property name="style" class="ptolemy.actor.gui.style.ChoiceStyle">
+			<property name="Age" class="ptolemy.kernel.util.ConfigurableAttribute">
+				<configure>Age</configure>
+			</property>
+			<property name="Birth Year" class="ptolemy.kernel.util.ConfigurableAttribute">
+				<configure>Birth Year</configure>
+			</property>
+			<property name="Death Year" class="ptolemy.kernel.util.ConfigurableAttribute">
+				<configure>Death Year</configure>
+			</property>
+		</property>
+	</property>
+	
+</entity>
\ No newline at end of file


Property changes on: trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.Histogram.meta.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.SurvivalCurveCalc.meta.xml
===================================================================
--- trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.SurvivalCurveCalc.meta.xml	2011-10-19 14:03:31 UTC (rev 28818)
+++ trunk/modules/science-pipes-frontend/WebContent/editor/parts/edu.cornell.birds.is.bap.actor.survivorship.SurvivalCurveCalc.meta.xml	2011-10-20 00:10:12 UTC (rev 28819)
@@ -16,6 +16,9 @@
 		<property name="port:dataPort" class="ptolemy.kernel.util.ConfigurableAttribute">
 			<configure>Demography data to operate on.</configure>
 		</property>
+		<property name="port:groupBy" class="ptolemy.kernel.util.ConfigurableAttribute">
+			<configure>Group by column.</configure>
+		</property>
 	</property>
 	<property name="_iconSmall" class="ptolemy.kernel.util.StringAttribute" value="icon_calculator.png">
     </property>
@@ -34,7 +37,8 @@
 		<property name="output"/>
 		<display name="Out"/>
 	</port>
-		<property name="groupByText" class="edu.cornell.birds.is.bap.ptolemy.StringChoiceParameter" value="Gender">
+	
+	<property name="groupBy" class="edu.cornell.birds.is.bap.ptolemy.StringChoiceParameter" value="Gender">
 		<display name="Group By"/>
 		<property name="_parameterHint" class="ptolemy.kernel.util.StringAttribute">
         </property>

Modified: trunk/modules/science-pipes-frontend/WebContent/editor/parts/survivorship-actors.xml
===================================================================
--- trunk/modules/science-pipes-frontend/WebContent/editor/parts/survivorship-actors.xml	2011-10-19 14:03:31 UTC (rev 28818)
+++ trunk/modules/science-pipes-frontend/WebContent/editor/parts/survivorship-actors.xml	2011-10-20 00:10:12 UTC (rev 28819)
@@ -11,13 +11,17 @@
 	<actor class="edu.cornell.birds.is.bap.actor.crossingboundaries.calc.DistinctDataUnion" name="Data Union" guid="edu.cornell.birds.is.bap.actor.crossingboundaries.calc.DistinctDataUnion"/>  	
   </group>
   <group name="Output" expanded="true" id="output">
+    <actor class="edu.cornell.birds.is.bap.actor.survivorship.Histogram" name="Histogram" guid="edu.cornell.birds.is.bap.actor.survivorship.Histogram"/>
     <actor class="edu.cornell.birds.is.bap.actor.survivorship.AgePyramidPlot" name="Age Pyramid Plot" guid="edu.cornell.birds.is.bap.actor.survivorship.AgePyramidPlot"/>
     <actor class="edu.cornell.birds.is.bap.actor.survivorship.LifeTable" name="Life Table" guid="edu.cornell.birds.is.bap.actor.survivorship.LifeTable"/>
     <actor class="edu.cornell.birds.is.bap.actor.survivorship.SurvivalCurvePlot" name="Survival Curve Plot" guid="edu.cornell.birds.is.bap.actor.survivorship.SurvivalCurvePlot"/>
+	<actor class="ptolemy.actor.lib.gui.Display" name="Data Viewer" guid="ptolemy.actor.lib.gui.Display"/>
+	
+	<!--
 	<actor class="edu.cornell.birds.is.bap.actor.jfreechart.DataSeriesLabeler" name="Data Labeler" guid="edu.cornell.birds.is.bap.actor.jfreechart.DataSeriesLabeler"/>	
 	<actor class="edu.cornell.birds.is.bap.actor.jfreechart.GraphSeriesUnion" name="Bar Chart Series Union" guid="edu.cornell.birds.is.bap.actor.jfreechart.GraphSeriesUnion"/>		
 	<actor class="edu.cornell.birds.is.bap.actor.jfreechart.BarChart" name="Bar Chart" guid="edu.cornell.birds.is.bap.actor.jfreechart.BarChart"/>
 	<actor class="edu.cornell.birds.is.bap.actor.jfreechart.PieChart" name="Pie Chart" guid="edu.cornell.birds.is.bap.actor.jfreechart.PieChart"/>
-	<actor class="ptolemy.actor.lib.gui.Display" name="Data Viewer" guid="ptolemy.actor.lib.gui.Display"/>
+	-->
   </group>
 </actorList>
\ No newline at end of file



More information about the Kepler-cvs mailing list