Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

apollo.gui.genomemap
Class FlexibleFeatureTierManager  view FlexibleFeatureTierManager download FlexibleFeatureTierManager.java

java.lang.Object
  extended byapollo.gui.TierManager
      extended byapollo.gui.genomemap.FeatureTierManager
          extended byapollo.gui.genomemap.CollapsedFeatureTierManager
              extended byapollo.gui.genomemap.FlexibleFeatureTierManager
All Implemented Interfaces:
apollo.gui.ControlledObjectI, java.util.EventListener, java.io.Serializable, apollo.gui.event.TypesChangedListener

public class FlexibleFeatureTierManager
extends CollapsedFeatureTierManager
implements apollo.gui.event.TypesChangedListener

A FeatureTierManager which arranges its tiers in the expanded way (no overlapping featuresets). It may seem odd that this class extends CollapsedFeatureTierManager, but the tiers are in basically the same arrangement (tiers ordered by type), it is just that in the expanded view overlaps are not allowed whereas in the collapsed view they are. CollapsedFeatureTierManager actually does the sorting of the DrawableSeqFeatures within the tiers.


Field Summary
(package private) static apollo.gui.drawable.DrawableSeqFeature[] feats
           
protected  java.awt.FontMetrics fm
           
(package private) static int maxOverlapping
           
(package private) static double[] scores
           
protected  boolean textAvoidance
           
protected  apollo.gui.Transformer textTransform
           
 
Fields inherited from class apollo.gui.genomemap.CollapsedFeatureTierManager
tierhash
 
Fields inherited from class apollo.gui.genomemap.FeatureTierManager
debug, fset, tier_properties
 
Fields inherited from class apollo.gui.TierManager
aggregateSizeChange, charHeight, controller, COORDS_PER_PIXEL, offsetPixelHeight, tierManagerListeners, tiers, view, viewHeight, visibleLimits
 
Constructor Summary
FlexibleFeatureTierManager()
           
FlexibleFeatureTierManager(apollo.gui.drawable.DrawableFeatureSet fset)
           
 
Method Summary
protected  void _add(apollo.gui.drawable.DrawableSeqFeature dsf, int tierInd, java.util.Vector newTiers)
          Add a Feature to a tier with which it has no overlaps.
protected  int _addWithAvoidance(apollo.gui.drawable.DrawableSeqFeature dsf, int tierInd, java.util.Vector newTiers)
           
 boolean areAnyTiersLabeled()
           
 boolean checkTiers()
           
 void collapseTier(java.lang.String tier_label)
           
 void expandAll(boolean state)
           
 void expandTier(java.lang.String type)
           
 java.util.Vector getHiddenTiers()
           
 int getIndexForType(java.lang.String type)
           
protected  java.util.Vector getNextOverlap(java.util.Vector typeTiers, int typeTiersSize, int[] startInds, java.util.Vector[] typeTiersFeatures, int[] typeTiersSizes, java.util.Vector overlapEnds)
           
 int getTextEnd(apollo.gui.drawable.DrawableSeqFeature dsf, int start)
           
 int getTextStart(apollo.gui.drawable.DrawableSeqFeature dsf)
           
 boolean handleTiersChangedEvent(apollo.gui.event.TypesChangedEvent evt)
           
 boolean isAvoidingTextOverlaps()
           
 boolean isExpanded(java.lang.String type)
           
 boolean isVisible(java.lang.String type)
           
 void layoutTiers()
          First calls super.layoutTiers() which is CollapsedFeatureTierManager.layoutTiers() CollapsedFeatureTierManager adds all the DSFs to tiers with sorting.
protected  java.util.Vector removeTextOverlapsFromSorted(java.util.Vector sortedTiers, apollo.gui.schemes.TierProperty tp, int[] overlapEnds)
           
 void setAllVisible(boolean state)
           
 void setTextAvoidance(apollo.gui.Transformer trans, java.awt.FontMetrics fm)
           
 void setVisible(java.lang.String type, boolean state)
           
protected  void sortOverlap(java.util.Vector newTiers, java.util.Vector overlap)
           
protected  java.util.Vector sortTierByScore(java.util.Vector oldTiers, apollo.gui.schemes.TierProperty tp, java.util.Vector overlapEnds)
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 void unsetTextAvoidance()
           
 
Methods inherited from class apollo.gui.genomemap.CollapsedFeatureTierManager
clearFeatures, main, moveTier, sortTiers
 
Methods inherited from class apollo.gui.genomemap.FeatureTierManager
getAllFeatures, getCopyOfOrder, getDebug, getPropertyScheme, getTierLabel, getVisibleFeatures, setDebug, setFeatureSet, setTierData, setup, synchDrawablesWithTiers
 
Methods inherited from class apollo.gui.TierManager
addTierManagerListener, decrementTierHeight, doLayoutTiers, fireTierManagerEvent, fireTierManagerEvent, getAggregateSizeChange, getController, getControllerWindow, getLowestVisible, getMaximumVisibleTransformCoord, getMaxTierUserHeight, getMaxUserCoord, getMaxVisibleTierNumber, getMinimumVisibleTransformCoord, getNumTiers, getNumVisible, getTier, getTiers, getTotalHeight, getView, getVisibleUserCoord, getYRange, incrementTierHeight, needsAutoRemoval, setAggregateSizeChange, setCharHeight, setController, setLowestVisible, setOffsetHeight, setView, setViewHeight, toTier, toUser, updateUserCoordBoundaries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface apollo.gui.ControlledObjectI
getController, getControllerWindow, needsAutoRemoval, setController
 

Field Detail

maxOverlapping

static int maxOverlapping

feats

static apollo.gui.drawable.DrawableSeqFeature[] feats

scores

static double[] scores

textTransform

protected apollo.gui.Transformer textTransform

fm

protected java.awt.FontMetrics fm

textAvoidance

protected boolean textAvoidance
Constructor Detail

FlexibleFeatureTierManager

public FlexibleFeatureTierManager()

FlexibleFeatureTierManager

public FlexibleFeatureTierManager(apollo.gui.drawable.DrawableFeatureSet fset)
Method Detail

handleTiersChangedEvent

public boolean handleTiersChangedEvent(apollo.gui.event.TypesChangedEvent evt)
Specified by:
handleTiersChangedEvent in interface apollo.gui.event.TypesChangedListener
Overrides:
handleTiersChangedEvent in class CollapsedFeatureTierManager

isExpanded

public boolean isExpanded(java.lang.String type)

isVisible

public boolean isVisible(java.lang.String type)

getIndexForType

public int getIndexForType(java.lang.String type)

collapseTier

public void collapseTier(java.lang.String tier_label)

expandTier

public void expandTier(java.lang.String type)

setVisible

public void setVisible(java.lang.String type,
                       boolean state)

getHiddenTiers

public java.util.Vector getHiddenTiers()

setAllVisible

public void setAllVisible(boolean state)

expandAll

public void expandAll(boolean state)

areAnyTiersLabeled

public boolean areAnyTiersLabeled()

layoutTiers

public void layoutTiers()
First calls super.layoutTiers() which is CollapsedFeatureTierManager.layoutTiers() CollapsedFeatureTierManager adds all the DSFs to tiers with sorting. FlexibleFeatureTierManager deals with expanding the tiers

Overrides:
layoutTiers in class CollapsedFeatureTierManager

checkTiers

public boolean checkTiers()

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


_add

protected void _add(apollo.gui.drawable.DrawableSeqFeature dsf,
                    int tierInd,
                    java.util.Vector newTiers)
Add a Feature to a tier with which it has no overlaps. This routine is called recursively with each of the tiers that this Feature can be be added to. If no non-overlapping tier is found a new tier is created and added to the newTiers Vector, and the Feature is added to this newly created tier. NOTE: This routine requires that the Features are delivered in sorted order on low. Put in call to DrawableSeqFeature.setYindex to set its tier and keep drawables in synch with tiers - this did not work - not sure why - so im using FeatureTierManager.synchDrawablesWithTiers to do the same task instead. This should be reexamined. This should be the place where the assignment happens but obviously I'm missing something.


sortTierByScore

protected java.util.Vector sortTierByScore(java.util.Vector oldTiers,
                                           apollo.gui.schemes.TierProperty tp,
                                           java.util.Vector overlapEnds)

getNextOverlap

protected java.util.Vector getNextOverlap(java.util.Vector typeTiers,
                                          int typeTiersSize,
                                          int[] startInds,
                                          java.util.Vector[] typeTiersFeatures,
                                          int[] typeTiersSizes,
                                          java.util.Vector overlapEnds)

sortOverlap

protected void sortOverlap(java.util.Vector newTiers,
                           java.util.Vector overlap)

setTextAvoidance

public void setTextAvoidance(apollo.gui.Transformer trans,
                             java.awt.FontMetrics fm)

unsetTextAvoidance

public void unsetTextAvoidance()

isAvoidingTextOverlaps

public boolean isAvoidingTextOverlaps()

getTextStart

public int getTextStart(apollo.gui.drawable.DrawableSeqFeature dsf)

getTextEnd

public int getTextEnd(apollo.gui.drawable.DrawableSeqFeature dsf,
                      int start)

removeTextOverlapsFromSorted

protected java.util.Vector removeTextOverlapsFromSorted(java.util.Vector sortedTiers,
                                                        apollo.gui.schemes.TierProperty tp,
                                                        int[] overlapEnds)

_addWithAvoidance

protected int _addWithAvoidance(apollo.gui.drawable.DrawableSeqFeature dsf,
                                int tierInd,
                                java.util.Vector newTiers)