com.objex.panywhere
Class Individual

java.lang.Object
  extended by com.objex.panywhere.Individual
All Implemented Interfaces:
RelationshipConstants, java.io.Serializable

public class Individual
extends java.lang.Object
implements RelationshipConstants, java.io.Serializable

Class describes the properties of an Individual object which is part of a family within a Pedigree. Every Individual must at the minimum, must have knowledge of its direct relatives and also have the ability to search and find direct and not so direct relatives such as ancestors and uncles. The Individual class also includes properties that will be used by the PedigreeViewer to paint Individual Icons on the Pedigree surface.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface com.objex.panywhere.RelationshipConstants
BROTHER, DAUGHTER, FATHER, FEMALE_GENDER, MALE_GENDER, MOTHER, SISTER, SON, SPOUSE, TWINBROTHER, TWINSISTER, UNKNOWN_GENDER
 
Constructor Summary
Individual()
          Creates new Individual.
Individual(double x, double y)
          Creates an Individual whose initial location on the Pedigree is specified by xy coordinates.
Individual(double x, double y, java.lang.String upn, java.lang.String fid, java.lang.String mid, java.lang.String gender)
          Creates an Individual with specified UPN, father ID, mother ID, gender and location.
Individual(Individual ao_father, Individual ao_mother)
          Creates an individual whose father and mother are specified.
Individual(java.lang.String upn, java.lang.String fid, java.lang.String mid, java.lang.String gender)
          Creates an Individual with specified UPN, father ID, mother ID and gender.
 
Method Summary
 void addChild(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a child.
 void addFather(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a father.
 void addMother(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a mother.
 void addPropertyChangeListener(java.beans.PropertyChangeListener lstnr)
          Allows this Bean to register for property change events
 void addSibling(Individual as_relative, java.lang.String as_relationship)
          Connects this Individual to "as_relative" as siblings.
 void addSpouse(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a spouse.
 java.lang.String ancestors(boolean includeAdopted)
          Gets a semi-colon delimited list of Unique Person Numbers (UPN's) for all ancestors of this Individual
 Individual cloneInd()
          Creates a new Individual whose primitive properties (non object properies) are copied from this Individual.
 Individual cloneInd(java.lang.String newupn)
          Clone and return a new Individual with the UPN supplied.
 void deleteself()
          Disconnects this Individual from all his/her direct relatives (Siblings, Parents and Kids and SPouses) by removing this Individual from their relationship tables.
 java.lang.String findMatchingAncestor(java.awt.Paint matchcol, java.lang.String markername, Allele allele)
          Finds an ancestor from whom the specified Allele could possibly have been inherited.
 int getAdjustedGeneration(int oldestgen)
           
 Individual getAncestor()
           
 int getAncestorDOR()
          Determines the degree of relation from this Individual to furthest known ancestor.
 Individual getAnykid()
          Gets any one Individual who is this Individual's child
 Individual getAnykid(Individual as_spouse)
          Gets any one child / kid shared between this Individual and specified spouse.
 java.lang.String getAnysibling()
           
 java.awt.geom.Line2D getChildline()
           
 RelationshipLine getChildlineRL()
          Getter for property childlineRL.
 java.util.Vector getChildren()
           
 java.util.Vector getChildren(Individual as_spouse, PedigreeComparator aComparator)
           
 Chromosome getChromosome()
          Getter for property chromosome.
 Data getData(int ai_fieldid)
           
 Data getData(java.lang.String fieldname)
          Deprecated. Retrieves the field value for an item with the specified field name.
 java.util.Map<java.lang.Integer,Data> getDataitems()
          Getter for property dataitems.
 java.lang.String getExternalkey()
          Getter for property externalkey.
 java.lang.String getFamilyID()
           
 Individual getFather()
           
 java.lang.String getFatherid()
           
 java.lang.String getFirstName()
           
 java.lang.String getGender()
           
 int getGeneration()
           
 java.lang.String getIconsubtext()
          The current Iconsubtext string.
 java.lang.String[] getIconSubtext(SubtextLegend aLegend, DataDictionary aDict)
           
 java.lang.String getIcontext()
           
 Individual getKid(java.lang.String as_upn)
          Retrieves an Individual whose UPN equals the supplied parameter and is a child of this Individual
 java.util.Hashtable getKids()
           
 java.util.Vector getKids(Individual as_spouse)
          Deprecated.  
 java.lang.String getLastName()
           
 Individual getLeftkid(Individual as_spouse)
          Finds a child of this Individual's whose X-Coordinate is the leftmost in the decreasing X-direction on the Pedigree space
 Individual getLeftMostSibling()
           
 Individual getLeftMostTwin()
           
 java.lang.String getMarkedby()
           
 Individual getMother()
           
 java.lang.String getMotherid()
           
 java.awt.geom.Line2D getParentline(Individual as_person)
          Returns the current parent relationship line between this Individual and the specified spouse.
 java.util.Hashtable getParentlines()
           
static Individual getProband()
          Returns a reference to the Individual who is the proband for the Family .
 java.util.Hashtable getRelationships()
           
 Individual getRelative(java.lang.String as_upn)
          Retrieves this Individual's relative whose UPN is specified.
 java.util.Vector getRelatives(java.lang.String as_relationship)
          Deprecated. Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship".
 java.util.Vector getRelatives(java.lang.String as_relationship, PedigreeComparator aComparator)
          Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship".
 java.util.Vector getRelatives(java.lang.String as_relationship1, java.lang.String as_relationship2)
          Deprecated. Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship1" and "as_relationship2". Only Sons and Daughters or Brothers and Sisters can be retrieved this way.
 java.util.Vector getRelatives(java.lang.String as_relationship1, java.lang.String as_relationship2, PedigreeComparator aComparator)
          Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship1" and "as_relationship2".
 Individual getRightkid(Individual as_spouse)
          Returns a child of this Individual's whose X-Coordinate is the rightmost in the increasing X-direction on the Pedigree space
 Individual getRightMostSibling()
           
 Individual getRightMostTwin()
           
 java.lang.String getShadowupn()
          Getter for property shadowupn.
 java.awt.geom.Line2D getSiblingline()
          Fetch and return a line2d object rep's the sibling line for this Individual
 RelationshipLine getSiblinglineRL()
          Getter for property siblinglineRL.
 java.util.Hashtable getSiblings()
           
 Individual getSpouse()
           
 java.util.Hashtable getSpouseindex()
           
 java.awt.geom.Line2D getSpouseline(Individual as_person)
          Returns a Line2D object representing the spouse relationship line between this Individual and specified spouse.
 java.util.Hashtable getSpouselines()
           
 java.util.Hashtable getSpouses()
           
 Subtext getSubtext()
           
 Symbol getSymbol()
          Retrieves the current symbol object.
 java.lang.String getTag()
           
 java.lang.String getTree()
          Returns the Tree ID of this Individual.
 java.util.Hashtable getTwinindex()
           
 java.awt.geom.Line2D getTwinline()
           
 RelationshipLine getTwinlineRL()
          Getter for property twinlineRL.
 java.util.Vector getTwins()
          Returns a Vector of UPN's for Individuals who may be twins or quadruplets of current individual.
 java.lang.String getUpn()
           
 double getX()
           
 double getXcoordinate()
           
 double getY()
           
 double getYcoordinate()
           
 boolean hasBothparents()
           
 boolean hasKids()
           
 boolean hasOneparent()
           
 boolean hasParents()
           
 boolean hasSiblings()
           
 boolean hasSpouses()
           
 int indexOf(Individual ind, int direction, int count, boolean found, boolean falldown, boolean didfalldown, boolean includeAdopted)
          Returns the degree of relation of Individual "ind" from this Individual or -1 if they are not relatives.
 java.lang.String inheritedHaplotype(Individual parent)
           
 boolean isAdopted()
          Determines if Individual is adopted or not.
 boolean isAdoptedIn()
          Determines if Individual is adopted in or not
 boolean isAdoptedOut()
          Determines if Individual is adopted out or not
 boolean isAncestorOf(Individual as_grantchild, boolean includeAdopted)
          Returns true if this Individual is ancestor of "as_grandchild"
 boolean isAuntOf(Individual ind, boolean includeAdopted)
          Returns true if this Individual is an Aunt of "ind".
 boolean isCasual(Individual as_spouse)
          Returns the "Casual" status of this Individual's relationship with specified spouse.
 boolean isChanged()
          Not used
 boolean isConsanguineous(Individual as_spouse)
          Returns the Consanguineous status of this Individual's relationship with specified spouse.
 boolean isDeceased()
           
 boolean isDivorced(Individual as_spouse)
          Returns the Divorced status of this Individual's relationship with specified spouse.
 boolean isDizygotic()
          Getter for property dizygotic.
 boolean isFemale()
           
 boolean isGenderunknown()
          Retrieves the unknown gender status of this Individual.
 boolean isHalfBrother(Individual ind)
           
 boolean isHalfSister(Individual ind)
           
 boolean isHighlighted()
           
 boolean isInfertile()
          Returns the infertifility indicator for an Individual
 boolean isInfertile(Individual as_spouse)
          Returns the infertility Indicator for the Relationship between this Individual and his spouse.
 boolean isKidOf(Individual as_person)
           
 boolean isMale()
           
 boolean isMarried(Individual as_spouse)
          Returns the "Married" or "Normal" status of this Individual's relationship with specified spouse.
 boolean isMonozygotic()
          Getter for property monozygotic.
 boolean isNoissue()
           
 boolean isNoissue(Individual as_spouse)
          Returns the "No Issue" status of the this Individual's relationship with specified spouse.
 boolean isOwnparent()
          Reserved for ver1.1 True of this Individual has is his own parent (plants will do this )
 boolean isParentOf(Individual kid, boolean includeAdopted)
          Returns true If this Individual is a parent to "kid"
 boolean isProband()
           
 boolean isRelativeOf(Individual ind, boolean includeAdopted)
           
 boolean isSAB()
           
 boolean isSeparated(Individual as_spouse)
          Returns the Separated status of this Individual's relationship with specified spouse.
 boolean isShadow()
           
 boolean isSiblingOf(Individual as_person, boolean includeAdopted)
          Determines if current Individual is a sibling of the specified Individual
 boolean isSpouseOf(Individual as_person)
           
 boolean isTraversed()
           
 boolean isTwin()
           
 boolean isTwinOf(Individual twin)
          Returns true if the Individual "twin" is a twin one of this Individual
 boolean isTwintypeunknown()
          Getter for property twintypeunknown.
 boolean isUncleOf(Individual ind, boolean includeAdopted)
          Returns true if this Individual is an Uncle of "ind".
 java.util.Vector myAncestors(boolean includeAdopted)
          Returns a vector whose elements are Individual objects being ancestors of this person
 java.util.Vector myAncestors(int degree, boolean includeAdopted)
          Retrievs a list of ancestors fo this Individual whose degree of relation from this Individual is as specified
 java.util.Vector myDescendants(boolean includeAdopted)
          Recursive lookup of all descendants of this Individual.
 java.util.Vector myDescendants(int degree, boolean includeAdopted)
          Returns a vector with all descendants of this Individual followed down to the specified degree of relation.
 java.lang.String myGeneration()
           
 java.util.Vector myRelatives(int degree, int direction, int count, boolean falldown, boolean didfalldown, boolean includeAdopted)
          Finds and returns all relatives this Individual who are at the specified degree of relation from this Individual.
 java.util.Vector mySiblings(boolean includeAdopted)
           
 java.util.Vector myUncles(boolean includeAdopted)
          Returns a list Individuals who are indirect Ancestors (Aunts and Uncles) of this Individual.
 int numKids()
           
 int numKids(Individual as_spouse)
           
 int numSiblings()
           
 int numSpouses()
           
 java.lang.String passedHaplotype(Individual child)
           
 void removePropertyChangeListener(java.beans.PropertyChangeListener lstnr)
          Allows this Bean to de-register for property change events
static void resetOldestGeneration()
          Resets the oldest generation to its default value.
static void resetYoungestGeneration()
          Resets the generation of the youngest Individual in this family/pedigree.
 void setAdopted(boolean rhs)
          Sets or unsets the adopted status of this Individual.
 void setAdoptedIn(boolean rhs)
          Sets or unsets the adoption status of this Individual
 void setAdoptedOut(boolean rhs)
          Sets or unsets the adoption status of this Individual.
 void setCasual(Individual as_spouse, boolean casual)
          Sets or unsets the spouse "Casual Status" of the relationship between this Individual and specified spouse.
 void setChanged(boolean ab_changed)
          Not Used
 void setChildline(java.awt.geom.Line2D as_line)
          Sets child line for this Individual to the specified value
 void setChildlineRL(RelationshipLine childlineRL)
          Setter for property childlineRL.
 void setChromosome(Chromosome rhs)
          Setter for property chromosome.
 void setConsanguineous(Individual as_spouse, boolean incest)
          Sets or unsets the "Consanguineous" status of this Individual's relationship with specified spouse.
 void setData(Data data)
          Adds the specified data item to the Individual database using the specified field name as the column heading or fieldname.
 void setData(java.lang.String fieldname, Data data)
          Deprecated. Adds the specified data item to the Individual database using the specified field name as the column heading or fieldname. If data exists in this field already, it will be overitten without warning.
 void setDataitems(java.util.Map<java.lang.Integer,Data> rhs)
          Setter for property dataitems.
 void setDeceased(boolean rhs)
          Set or unsets the deceased status for this individual to deceased or alive.
 void setDivorced(Individual as_spouse, boolean d)
          Sets or unsets the "Divorced" status of this Individual's relationship with specified spouse.
 void setDizygotic(boolean rhs)
          Setter for property dizygotic.
 void setExternalkey(java.lang.String externalkey)
          Setter for property externalkey.
 void setFamilyID(java.lang.String rhs)
          Sets the family ID of this Individual to supplied text string.
 void setFather(Individual pa)
          Sets Individual "pa" as the father of this Individual.
 void setFatherid(java.lang.String rhs)
          Sets the FatherID of this Individual to supplied value.
 void setFirstName(java.lang.String fname)
          Sets the 1st name of the Individual to value .
 void setGender(java.lang.String rhs)
          Sets the Gender of this Individual to supplied String.
 void setGenderunknown(boolean rhs)
          Sets or unsets the unknown gender property.
 void setGeneration(int rhs)
          Sets this Individual's generation to value specified.
 void setHighlighted(boolean rhs)
          Sets or unsets the hilighted status of the Individual.
 void setIconsubtext(java.lang.String subtext)
          Sets the Iconsubtext property.
 void setIcontext(java.lang.String text)
          Sets the Icontext property to specified value.
 void setInfertile(boolean fertile)
          Sets the infertility indicator for this Individual
 void setInfertile(Individual as_spouse, boolean fertile)
          Sets the infertility Indicator for the Relationship between this Individual and specified spouse.
 void setKids(java.util.Hashtable rhs)
          Assigns the Individual's kids relationships to the supplied hashmap.
 void setLastName(java.lang.String rhs)
          Sets the last name of the Individual to value .
 void setMarkedby(java.lang.String marker)
          Sets the marker text for this Individual.
 void setMarried(Individual as_spouse, boolean normal)
          Sets or unsets the "Married" status of this Individual's relationship with specified spouse.
 void setMonozygotic(boolean rhs)
          Setter for property monozygotic.
 void setMother(Individual ma)
          Sets Individual "ma" as the mother of this Individual.
 void setMotherid(java.lang.String rhs)
          Sets the MotherID of this Individual to supplied UPN
 void setNoissue(boolean rhs)
          Sets or usets the "No Issue" status of an Individual.
 void setNoissue(Individual as_spouse, boolean ni)
          Sets or unsets the relationship between this Individual and specified spouse as a "No Issue" type relatiosnhip A relationship is considered as "No Issue" if the two Individuals may not have kids together.
 void setParentlines(java.util.Hashtable rhs)
          Sets this Individual's parent relationship lines container to specified hashmap.
 void setPoint(double xc, double yc)
          Sets the current location of an Individual object to supplied xy coordinates.
 boolean setProband(boolean rhs)
          Sets or usets the proband status of an Individual.
 void setQuadrant(int quadrant, int qColorRGB)
          Sets the color for a specified quantrant of this Individual's Symbol object to the specified value.
 void setRelationships(java.util.Hashtable rhs)
          Assigns the Individual's relationships container to the supplied hashmap.
 void setSAB(boolean rhs)
          Sets or usets the SAB status of an Individual.
 void setSeparated(Individual as_spouse, boolean s)
          Sets or unsets the "Separated" status of this Individual's relationship with specified spouse.
 void setShadow(boolean rhs)
          Sets or unsets the boolean flag indicating whether or not this Individual is a shadow or not.
 void setShadowupn(java.lang.String rhs)
          Setter for property shadowupn.
 void setSiblingline(java.awt.geom.Line2D as_line)
          Sets the sibling line for this Individual to supplied line2D object
 void setSiblinglineRL(RelationshipLine siblinglineRL)
          Setter for property siblinglineRL.
 void setSiblings(java.util.Hashtable rhs)
          Assigns the Individual's siblings relationships index to the supplied hashmap contents.
 void setSpouse(Individual sp)
          Sets the main spouse reference for this Individual.
 void setSpouseindex(java.util.Hashtable rhs)
          Assigns the spouse relationship table to specified hashmap.
 void setSpouselines(java.util.Hashtable rhs)
          Sets this Individual's spouse relationship lines property.
 void setSpouses(java.util.Hashtable rhs)
          Assigns the Individual's spouses relationships container to the supplied hashmap.
 void setSubtext(Subtext aSubtext)
          Sets the new Subtext object for this Individual
 void setSymbol(Symbol sym)
          Assigns this Individual's symbol object to the supplied object.
 void setTag(java.lang.String rhs)
          Sets the tag property value to supplied string
 void setTraversed(boolean rhs)
          Set a marker flag to true of false.
 void setTree(java.lang.String rhs)
          Sets the Tree ID of this Individual to supplied text string.
 void setTwinindex(java.util.Hashtable rhs)
          Assigns the twin relationship table to specified hashmap
 void setTwinline(java.awt.geom.Line2D as_line)
          Sets twin line property for this Individual
 void setTwinlineRL(RelationshipLine twinlineRL)
          Setter for property twinlineRL.
 void setTwins(Individual as_relative, java.lang.String as_relationship)
          Add a twin (triplet or quadruplet) brother or sister to this Individual.
 void setTwintypeunknown(boolean rhs)
          Setter for property twintypeunknown.
 void setUpn(int rhs)
          Sets the Unique Number for this Individual to supplied value
 void setUpn(java.lang.String rhs)
          Sets the Unique Number for this Individual to supplied value
 void setX(double xc)
          Sets the X-Coordinate for this Individual's Icon
 void setXcoordinate(double x)
          Sets the X coordinate position at which this Individual's Icon will be drawn.
 void setY(double yc)
          Sets the Y-Coordinate for this Individual's Icon
 void setYcoordinate(double y)
          Sets the Y coordinate position at which this Individual's Icon will be drawn.
 void updateSubtext(SubtextLegend aLegend, DataDictionary aDict)
          This method must be called whenever the subtext for the Individual needs to be update before the next painting of the Pedigre is done.
 void updateSymbol(Legend aLegend)
          This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done.
 void updateSymbol(LegendItem aLegendItem, boolean ab_unassign)
          This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done.
 void updateSymbol(LegendItem aLegendItem, boolean ab_unassign, boolean ab_symbol_linkedtodata)
          Deprecated.  
 void updateSymbol(long al_symbol)
          Updates Individual's symbol object by decoding the Long Integer passed as parameter.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Individual

public Individual()
           throws java.lang.Exception
Creates new Individual. All properties are set to default values.

Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(Individual ao_father,
                  Individual ao_mother)
           throws java.lang.Exception
Creates an individual whose father and mother are specified.

Parameters:
ao_father - The Individual's father
ao_mother - The Individual's mother
Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(java.lang.String upn,
                  java.lang.String fid,
                  java.lang.String mid,
                  java.lang.String gender)
           throws java.lang.Exception
Creates an Individual with specified UPN, father ID, mother ID and gender.

Parameters:
upn - A Unique Number for the new Individual
fid - The UPN of Individual's father
mid - The UPN of Individual's mother
gender - The gender status of new Individual
Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(double x,
                  double y)
           throws java.lang.Exception
Creates an Individual whose initial location on the Pedigree is specified by xy coordinates.

Parameters:
x - The X position for new Individual
y - The Y position for new Individual
Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(double x,
                  double y,
                  java.lang.String upn,
                  java.lang.String fid,
                  java.lang.String mid,
                  java.lang.String gender)
           throws java.lang.Exception
Creates an Individual with specified UPN, father ID, mother ID, gender and location. I

Parameters:
x - The X position for new Individual
y - The Y position for new Individual
upn - Unique Number for the new Individual
fid - The UPN of Individual's father
mid - The UPN of the Individual's mother
gender - The gender of the new Individual
Throws:
java.lang.Exception - If there was an error in creating the Individual.
Method Detail

cloneInd

public Individual cloneInd()
                    throws java.lang.Exception
Creates a new Individual whose primitive properties (non object properies) are copied from this Individual. All non primitive properties except Symbol, Chromosome, dataItems, Father, Mother and Main Spouse are not copied but are instead set to null values. All Individuals are created with a default generation of "999999".

Returns:
A new Individual whose properties are similar to this Individual.
Throws:
java.lang.Exception - if there is a problem with the cloning / copying operation

cloneInd

public Individual cloneInd(java.lang.String newupn)
                    throws java.lang.Exception
Clone and return a new Individual with the UPN supplied. No relationships are copied as a result of this cloning operation.

Parameters:
newupn - The new UPN for the cloned Individual
Returns:
A new Individual whose properties are similar to this Individual except for non-primitive properties such as relationships pointers. Symbols and quadrants are however copied. Null is returned if the cloning operation failed for some reason.
Throws:
java.lang.Exception - if there is a problem with the cloning / copying operation
Since:
ver1.01 To include the cloning of the Chromsome and dataitems fields

getData

public Data getData(int ai_fieldid)
Parameters:
ai_fieldid - The fieldid that corresponds to a database field for which data has been loaded into this Individual object.
Returns:
The data item for the specified data fieldid

getIconSubtext

public java.lang.String[] getIconSubtext(SubtextLegend aLegend,
                                         DataDictionary aDict)
Parameters:
aLegend - The Progeny Anywhere control's SubtextLegend containing the SubtextLegendItems that may be assigned to this Individual's Subtext based on a pre-set list of conditions that must be satisfied by the this Individual.
aDict - The data dictionary from which the fields making up the Data for the individuals are derived
Returns:
An array of subtext lines if this Individual has any otherwise an empty array

updateSubtext

public void updateSubtext(SubtextLegend aLegend,
                          DataDictionary aDict)
This method must be called whenever the subtext for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the SubtextLegend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the SubtextLegend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegend - The Progeny Anywhere control's SubtextLegend containing the SubtextLegendItems that may be assigned to this Individual's Subtext based on a pre-set list of conditions that must be satisfied by the this Individual.
aDict - The data dictionary from which the fields making up the Data for the individuals are derived

updateSymbol

public void updateSymbol(Legend aLegend)
This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the Symbols Legend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the Symbols Legend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegend - The Progeny Anywhere control's Legend containing the LegendItems that may be assigned to this Individual's Symbol based on a pre-set list of conditions that must be satisfied by the this Individual.

updateSymbol

public void updateSymbol(LegendItem aLegendItem,
                         boolean ab_unassign)
This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the Symbols Legend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the Symbols Legend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegendItem - The item to be assigned or unassigned from this Individual's Symbol
ab_unassign - If true, the legend item was removed otherwise it would have been added and/or changed

updateSymbol

public void updateSymbol(LegendItem aLegendItem,
                         boolean ab_unassign,
                         boolean ab_symbol_linkedtodata)
Deprecated. 

This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the Symbols Legend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the Symbols Legend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegendItem - The item to be assigned or unassigned from this Individual's Symbol
ab_unassign - If true, the legend item was removed otherwise it would have been added and/or changed
ab_symbol_linkedtodata - If TRUE then the symbol will only be updated if the set of conditions laid out on the LegendItem are fully satisfied by the corresponding data items for this Individual.

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener lstnr)
Allows this Bean to register for property change events


removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener lstnr)
Allows this Bean to de-register for property change events


setAdoptedIn

public void setAdoptedIn(boolean rhs)
Sets or unsets the adoption status of this Individual

Parameters:
rhs - Boolean indicating whether the Individual is adopted into another family. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

setAdoptedOut

public void setAdoptedOut(boolean rhs)
Sets or unsets the adoption status of this Individual.

Parameters:
rhs - Boolean indicating whether the Individual is adopted out to another family. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

isAdoptedIn

public boolean isAdoptedIn()
Determines if Individual is adopted in or not

Returns:
True If the this Individual is Adopted in from another Family, False otherwise. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

isAdoptedOut

public boolean isAdoptedOut()
Determines if Individual is adopted out or not

Returns:
True If the this Individual is Adopted out to another Family, False otherwise. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

setGenderunknown

public void setGenderunknown(boolean rhs)
Sets or unsets the unknown gender property. An Individual whose gender is set to unknown is rendered differently than an Individual whose status is set to false. In either case, the underlying gender of the Individual will be either male or female but can be changed one way or the other depending on whether the Individual has spousal relationships or has children.

Parameters:
rhs - The new boolean indicating whether the Individual's unknown gender status

isGenderunknown

public boolean isGenderunknown()
Retrieves the unknown gender status of this Individual. An Individual whose gender is set to unknown is rendered differently than an Individual whose status is set to false. In either case, the underlying gender of the Individual will be either male or female but can be changed one way or the other depending on whether the Individual has spousal relationships or has children.

Returns:
True if the this gendederunknown status is set and false otherwise

setSymbol

public void setSymbol(Symbol sym)
Assigns this Individual's symbol object to the supplied object. The Icon for this Individual will be drawn / decorated and /or painted using the color coding schemes defined by the Symbol object. Both quadrants and Symbols (as defined in Progeny5) are contained in this symbol object and the system uses code/decode algorithms to determine which parts of the symbols are qaudrants and which parts are Symbols also as defined in Progeny5.

Parameters:
sym - The new Symbol object to assign

getSymbol

public Symbol getSymbol()
Retrieves the current symbol object. The Icon for this Individual will be drawn / decorated and /or painted using the color coding schemes defined by the Symbol object. Both quadrants and Symbols (as defined in Progeny5) are contained in this symbol object and the system uses code/decode algorithms to determine which parts of the symbols are qaudrants and which parts are Symbols also as defined in Progeny5.

Returns:
The Symbol object for this Individual

updateSymbol

public void updateSymbol(long al_symbol)
Updates Individual's symbol object by decoding the Long Integer passed as parameter. The symbol's new color scheme will be defined by decoding the bit segments of the 32 bit Long integer as described below.

BITSITEM VALUE
------------------- -----------------
1-3Quadrant 1 color See “colors” below
4-6Quadrant 2 color See “colors” below
7-9 Quadrant 3 color See “colors” below
10-12Quadrant 4 color See “colors” below
13-15Center circle color See “colors” below
16-18 Center square color See “colors” below
19 Show quadrant 1 1=show 0=hide
20 Show quadrant 2 1=show 0=hide
21 Show quadrant 3 1=show 0=hide
22Show quadrant 4 1=show 0=hide
23 Show circle 1=show 0=hide
24 Show square 1=show 0=hide
25 Show horizontal line 1=show 0=hide
26 Show vertical line 1=show 0=hide
27 Show quadrant1 dot 1=show 0=hide
28 Show quadrant2 dot 1=show 0=hide
29 Show quadrant3 dot 1=show 0=hide
30 Show quadrant4 dot 1=show 0=hide


Symbol color for each quadrant or part thereof, can be any one of the following predefined colors. A value of ranging from 0 - 7 will determine the color used to paint a quadrant of this symbol.

ValueColor
----------
0 black
1 blue
2 yellow
3 green
4 red
5 gray
6 cyan
7 pink


Example
--------
An icon that is shaded pink on the top, black on the bottom and has a yellow dot at the center is define