endrov.typeLineage
Class LineageCommonUI

java.lang.Object
  extended by endrov.typeLineage.LineageCommonUI
All Implemented Interfaces:
java.awt.event.ActionListener, java.util.EventListener

public class LineageCommonUI
extends java.lang.Object
implements java.awt.event.ActionListener

Common GUI functions for Lineage, mainly menus


Field Summary
static java.util.HashSet<LineageSelParticle> hiddenParticles
          Currently hidden particles.
 javax.swing.JMenuItem miPrintAngle
           
 javax.swing.JMenuItem miPrintCountParticlesAtFrame
           
 javax.swing.JMenuItem miPrintCountParticlesUpToFrame
           
 javax.swing.JMenuItem miPrintPos
           
 javax.swing.JMenu miThisMeshRender
           
 javax.swing.JMenuItem miThisMeshRenderNull
           
 javax.swing.JMenuItem miThisMeshRenderOff
           
 javax.swing.JMenuItem miThisMeshRenderSolid
           
 javax.swing.JMenuItem miThisMeshRenderWireframe
           
 
Constructor Summary
LineageCommonUI(javax.swing.JComponent parent, TimedDataWindowInterface fc)
          Currently hovered cell
 
Method Summary
static void actionAssocParent()
          Associate parent
static void actionAssocParent(Lineage lin, java.lang.String parentName, java.util.Collection<java.lang.String> childNames)
          Associate many particles to one parent
static void actionCreateAP(Lineage lin, java.lang.String nucName)
           
static void actionCreateEmptyChild(Lineage lin, java.lang.String nucName)
          Create an empty child (no coordinates)
static void actionDivideParticle(Lineage lin, java.lang.String parentName, EvDecimal frame)
          Divide a particle at the specified frame.
static void actionMergeNuclei()
          Merge the frames etc of two particles
 void actionPerformed(java.awt.event.ActionEvent e)
           
static void actionPrintAngle(EvDecimal frame)
          Calculate angles between selected particles
static void actionPrintPos(EvDecimal frame)
          Show position of selected particles in console
static void actionRecursiveSelectChildren()
          Recursively select children of selected parents.
static void actionRecursiveSelectParents(Lineage lin, java.lang.String nucName)
          Recursively select parents
static void actionRemove(java.util.Collection<LineageSelParticle> nucs)
          Remove selected particles
static void actionSelectAll(Lineage lin)
           
static void actionSetDesc(java.util.Collection<LineageSelParticle> nucs)
          Set description of particle
static void actionSetEndFrame(java.util.Collection<LineageSelParticle> nucs, EvDecimal frame)
           
static void actionSetEndFrameDialog(java.util.Collection<LineageSelParticle> nucs)
          Set override end frame of particle
static void actionSetStartFrame(java.util.Collection<LineageSelParticle> nucs, EvDecimal frame)
           
static void actionSetStartFrameDialog(java.util.Collection<LineageSelParticle> nucs)
          Set override start frame of particle
static void actionSwapChildren()
          Swap the names of two children (but not the tree structure)
static void actionSwapContentsOfTwo(Lineage lin, java.lang.String nucNameA, java.lang.String nucNameB)
          Swap the contents of two particles
static void actionUnassocParent()
          Unassociate parent
 void addToMenu(javax.swing.JComponent menuLineage, boolean addAccel)
           
static Lineage.Particle getHoveredParticle()
           
static Lineage getHoveredParticleLineage()
           
static LineageSelParticle getHoveredParticleSelectedOrNull()
           
static Lineage.ParticlePos getOrInterpolatePosCopy(Lineage lin, java.lang.String name, EvDecimal frame)
          Return a copy of the position at a frame, interpolate if needed
static java.util.HashSet<LineageSelParticle> getSelectedOrHoveredParticle()
           
static java.util.HashSet<LineageSelParticle> getSelectedParticleClone()
          Make sure objects are not modified - at the moment there is no semantic difference compared to the other method but this might change in the future.
static java.util.HashSet<LineageSelParticle> getSelectedParticles()
          Get selected particles.
static javax.swing.JMenu makeSetColorMenu(EvColor... exclude)
          Generate a menu for setting color on particles
static void mapModel(EvContainer con, Lineage lin)
          Map e.g.
static void mouseSelectObject(EvSelection.EvSelectable sel, boolean shift)
          Selection of particles by mouse and keyboard
 void setThisMeshRenderMode(Lineage.MeshRenderMode rm)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

miPrintAngle

public javax.swing.JMenuItem miPrintAngle

miPrintPos

public javax.swing.JMenuItem miPrintPos

miPrintCountParticlesAtFrame

public javax.swing.JMenuItem miPrintCountParticlesAtFrame

miPrintCountParticlesUpToFrame

public javax.swing.JMenuItem miPrintCountParticlesUpToFrame

miThisMeshRender

public javax.swing.JMenu miThisMeshRender

miThisMeshRenderNull

public javax.swing.JMenuItem miThisMeshRenderNull

miThisMeshRenderOff

public javax.swing.JMenuItem miThisMeshRenderOff

miThisMeshRenderSolid

public javax.swing.JMenuItem miThisMeshRenderSolid

miThisMeshRenderWireframe

public javax.swing.JMenuItem miThisMeshRenderWireframe

hiddenParticles

public static java.util.HashSet<LineageSelParticle> hiddenParticles
Currently hidden particles. currently no sample. needed?

Constructor Detail

LineageCommonUI

public LineageCommonUI(javax.swing.JComponent parent,
                       TimedDataWindowInterface fc)
Currently hovered cell

Method Detail

addToMenu

public void addToMenu(javax.swing.JComponent menuLineage,
                      boolean addAccel)

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

setThisMeshRenderMode

public void setThisMeshRenderMode(Lineage.MeshRenderMode rm)

getHoveredParticleSelectedOrNull

public static LineageSelParticle getHoveredParticleSelectedOrNull()

getHoveredParticleLineage

public static Lineage getHoveredParticleLineage()

getHoveredParticle

public static Lineage.Particle getHoveredParticle()

mouseSelectObject

public static void mouseSelectObject(EvSelection.EvSelectable sel,
                                     boolean shift)
Selection of particles by mouse and keyboard

Parameters:
sel - Which particles, never null
shift - True if shift-key held

getSelectedParticleClone

public static java.util.HashSet<LineageSelParticle> getSelectedParticleClone()
Make sure objects are not modified - at the moment there is no semantic difference compared to the other method but this might change in the future. it guarantees that the selection set is really a copy and will not be modified outside the scope


getSelectedParticles

public static java.util.HashSet<LineageSelParticle> getSelectedParticles()
Get selected particles. Also ensures that no invalid selections are included (nuclei that does not exist). If a cell is hovered then


getSelectedOrHoveredParticle

public static java.util.HashSet<LineageSelParticle> getSelectedOrHoveredParticle()

actionDivideParticle

public static void actionDivideParticle(Lineage lin,
                                        java.lang.String parentName,
                                        EvDecimal frame)
Divide a particle at the specified frame. Only works if the cell to divide has no children


actionUnassocParent

public static void actionUnassocParent()
Unassociate parent


actionAssocParent

public static void actionAssocParent()
Associate parent


actionAssocParent

public static void actionAssocParent(Lineage lin,
                                     java.lang.String parentName,
                                     java.util.Collection<java.lang.String> childNames)
Associate many particles to one parent


actionMergeNuclei

public static void actionMergeNuclei()
Merge the frames etc of two particles


actionSwapChildren

public static void actionSwapChildren()
Swap the names of two children (but not the tree structure)


actionSwapContentsOfTwo

public static void actionSwapContentsOfTwo(Lineage lin,
                                           java.lang.String nucNameA,
                                           java.lang.String nucNameB)
Swap the contents of two particles


actionSetEndFrameDialog

public static void actionSetEndFrameDialog(java.util.Collection<LineageSelParticle> nucs)
Set override end frame of particle


actionSetEndFrame

public static void actionSetEndFrame(java.util.Collection<LineageSelParticle> nucs,
                                     EvDecimal frame)

actionSetStartFrameDialog

public static void actionSetStartFrameDialog(java.util.Collection<LineageSelParticle> nucs)
Set override start frame of particle


actionSetStartFrame

public static void actionSetStartFrame(java.util.Collection<LineageSelParticle> nucs,
                                       EvDecimal frame)

actionRemove

public static void actionRemove(java.util.Collection<LineageSelParticle> nucs)
Remove selected particles


actionSetDesc

public static void actionSetDesc(java.util.Collection<LineageSelParticle> nucs)
Set description of particle


actionRecursiveSelectChildren

public static void actionRecursiveSelectChildren()
Recursively select children of selected parents. This is never more than O(number of particles in lineages)


actionRecursiveSelectParents

public static void actionRecursiveSelectParents(Lineage lin,
                                                java.lang.String nucName)
Recursively select parents


actionSelectAll

public static void actionSelectAll(Lineage lin)

actionPrintPos

public static void actionPrintPos(EvDecimal frame)
Show position of selected particles in console

Parameters:
frame -

actionPrintAngle

public static void actionPrintAngle(EvDecimal frame)
Calculate angles between selected particles

Parameters:
frame -

makeSetColorMenu

public static javax.swing.JMenu makeSetColorMenu(EvColor... exclude)
Generate a menu for setting color on particles


getOrInterpolatePosCopy

public static Lineage.ParticlePos getOrInterpolatePosCopy(Lineage lin,
                                                          java.lang.String name,
                                                          EvDecimal frame)
Return a copy of the position at a frame, interpolate if needed


mapModel

public static void mapModel(EvContainer con,
                            Lineage lin)
Map e.g. the c.elegans model onto this lineage


actionCreateEmptyChild

public static void actionCreateEmptyChild(Lineage lin,
                                          java.lang.String nucName)
Create an empty child (no coordinates)


actionCreateAP

public static void actionCreateAP(Lineage lin,
                                  java.lang.String nucName)