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

Quick Search    Search Deep

edu.stanford.genetics.treeview.karyoview
Class KaryoView  view KaryoView download KaryoView.java

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byedu.stanford.genetics.treeview.ModelView
                      extended byedu.stanford.genetics.treeview.karyoview.KaryoView
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.util.Observer, java.io.Serializable

public class KaryoView
extends edu.stanford.genetics.treeview.ModelView
implements java.util.Observer

This class is a model view that displays the karyoscope view for a single experiment in the dataset. There is really quite a lot of complexity involved. I have decided to factor out all knowledge of where things are positioned into the KaryoDrawer class. I have retained knowledge of averaging in this class, as well as most of the component mechanics. This is to facilitate the use of KaryoDrawer for drawing to images with configurable parameters.


Nested Class Summary
private  class KaryoView.AveragerSettingsPanel
          Inner class to manage the settings of the extant averagers.
(package private)  class KaryoView.AveragerTask
           
(package private)  class KaryoView.MouseTracker
          follows mouse around, communicates with KaryoView by calling drawBad and being called by paintComposite()
(package private)  class KaryoView.TimerListener
           
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private)  Averager averager
           
(package private)  javax.swing.ProgressMonitor averagerMonitor
           
private  KaryoView.AveragerSettingsPanel averagerSettingsPanel
           
(package private)  KaryoView.AveragerTask averagerTask
           
(package private)  javax.swing.Timer averageTimer
           
(package private)  java.awt.Rectangle clipRect
           
private  edu.stanford.genetics.treeview.ConfigNode configNode
           
private  int currentCol
          current experiment column to view
private  edu.stanford.genetics.treeview.DataMatrix dataMatrix
           
private  int defaultAverager
           
private  edu.stanford.genetics.treeview.HeaderInfo experimentInfo
           
private  edu.stanford.genetics.treeview.HeaderInfo geneInfo
           
private  IntervalAverager intervalAverager
           
private  boolean justZoomed
           
private  KaryoDrawer karyoDrawer
           
(package private)  KaryoView.MouseTracker mouseTracker
           
private  NearestAverager nearestAverager
           
private  NeighborAverager neighborAverager
           
private  double nodata
           
private  int numRow
           
private  KaryoViewParameterPanel parameterPanel
           
(package private)  java.awt.Rectangle repaintRect
          This method is called to make the karyoview fit on the screen.
private  javax.swing.JScrollPane scrollPane
           
private  Averager simpleAverager
           
private  java.lang.String[] statusText
           
private  java.awt.Point zoomPoint
           
 
Fields inherited from class edu.stanford.genetics.treeview.ModelView
hasMouse, hint, offscreenChanged, offscreenSize, offscreenValid, panel, status, viewFrame
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
KaryoView(KaryoDrawer karyoDrawer, edu.stanford.genetics.treeview.DataModel tvmodel)
          for viewing DataModels
 
Method Summary
 void bindConfig(edu.stanford.genetics.treeview.ConfigNode configNode)
          Setter for configNode
 void cleanup()
          removes any pointers to exteral objects to aid GC
private  Averager getAverager(int type)
           
 edu.stanford.genetics.treeview.SettingsPanel getAveragerSettingsPanel()
           
 java.lang.String getAveragingArg()
           
 int getAveragingType()
           
private  int getClosest(int chr, int arm, double pos)
           
 edu.stanford.genetics.treeview.ConfigNode getConfigNode()
          Getter for configNode
 int getCurrentCol()
           
 edu.stanford.genetics.treeview.DataMatrix getDataMatrix()
          Getter for dataMatrix
 java.lang.String[] getExperiments()
           
private  edu.stanford.genetics.treeview.ConfigNode getFirst(java.lang.String name)
          always returns an instance of the node, even if it has to create it.
 edu.stanford.genetics.treeview.HeaderInfo getGeneInfo()
          Getter for geneInfo
 KaryoDrawer getKaryoDrawer()
          Getter for karyoDrawer
 double getNodata()
          Getter for nodata
 int getNumCol()
          Getter for numCol
 KaryoViewParameterPanel getParameterPanel()
           
 java.awt.Dimension getPreferredSize()
          Get the component's preferred size.
 java.lang.String[] getStatus()
          Strings describing status to user, suitable for display.
 boolean isChromosomeVisible(int i)
           
 void paintComponent(java.awt.Graphics g)
          override parent so as to avoid running out of memory at high zooms.
 void paintComposite(java.awt.Graphics g)
          This call is to be used to add a quick addition to the component which you don't want to put on the doublebuffer.
 void recalculateAverages()
           
 void redoScale()
           
 void setCurrentCol(int n)
           
 void setDataMatrix(edu.stanford.genetics.treeview.DataMatrix dataMatrix)
          Setter for dataMatrix
 void setGeneInfo(edu.stanford.genetics.treeview.HeaderInfo geneInfo)
          Setter for geneInfo
 void setIntervalAveraging(double width)
           
 void setKaryoDrawer(KaryoDrawer karyoDrawer)
          Setter for karyoDrawer
 void setNearestAveraging(int num)
           
 void setNeighborAveraging(int num)
           
 void setNodata(double nodata)
          Setter for nodata
 void setParameterPanel(KaryoViewParameterPanel p)
           
 void setSimpleAveraging()
           
 void update(java.util.Observable o, java.lang.Object arg)
          This method is called whenever the observable object changes, and has called notifyObservers.
 void updateBuffer(java.awt.Graphics g)
          Update the double buffer, if buffered Otherwise, just called by paintComponent to paint the main component.
private  void updateStatus(ChromosomeLocus locus)
           
 java.lang.String viewName()
          viewName, returns name of view suitable for printing perhaps this should be replaced by reflection?
private  void zoomFactor(double factor, java.awt.Point point)
          Zoom with the specified factor, keeping the specified point in the same relative place.
private  void zoomRectangle(java.awt.Rectangle r)
           
 
Methods inherited from class edu.stanford.genetics.treeview.ModelView
addNotify, getComponent, getHints, getViewFrame, keyReleased, keyTyped, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, setHintPanel, setStatusPanel, setViewFrame
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

parameterPanel

private KaryoViewParameterPanel parameterPanel

currentCol

private int currentCol
current experiment column to view


karyoDrawer

private KaryoDrawer karyoDrawer

averagerSettingsPanel

private KaryoView.AveragerSettingsPanel averagerSettingsPanel

defaultAverager

private int defaultAverager

simpleAverager

private Averager simpleAverager

neighborAverager

private NeighborAverager neighborAverager

nearestAverager

private NearestAverager nearestAverager

intervalAverager

private IntervalAverager intervalAverager

scrollPane

private javax.swing.JScrollPane scrollPane

dataMatrix

private edu.stanford.genetics.treeview.DataMatrix dataMatrix

numRow

private int numRow

nodata

private double nodata

experimentInfo

private edu.stanford.genetics.treeview.HeaderInfo experimentInfo

geneInfo

private edu.stanford.genetics.treeview.HeaderInfo geneInfo

averagerMonitor

javax.swing.ProgressMonitor averagerMonitor

averageTimer

javax.swing.Timer averageTimer

averagerTask

KaryoView.AveragerTask averagerTask

averager

Averager averager

mouseTracker

KaryoView.MouseTracker mouseTracker

clipRect

java.awt.Rectangle clipRect

repaintRect

java.awt.Rectangle repaintRect
This method is called to make the karyoview fit on the screen. It will set the desired width and height, and then ask the KaryoDrawer to adjust the pixels per value and pixels per row to something sensible.


justZoomed

private boolean justZoomed

zoomPoint

private java.awt.Point zoomPoint

statusText

private java.lang.String[] statusText

configNode

private edu.stanford.genetics.treeview.ConfigNode configNode
Constructor Detail

KaryoView

public KaryoView(KaryoDrawer karyoDrawer,
                 edu.stanford.genetics.treeview.DataModel tvmodel)
for viewing DataModels

Method Detail

getParameterPanel

public KaryoViewParameterPanel getParameterPanel()

setParameterPanel

public void setParameterPanel(KaryoViewParameterPanel p)

getCurrentCol

public int getCurrentCol()

setCurrentCol

public void setCurrentCol(int n)

setKaryoDrawer

public void setKaryoDrawer(KaryoDrawer karyoDrawer)
Setter for karyoDrawer


getKaryoDrawer

public KaryoDrawer getKaryoDrawer()
Getter for karyoDrawer


getAveragerSettingsPanel

public edu.stanford.genetics.treeview.SettingsPanel getAveragerSettingsPanel()

getAveragingType

public int getAveragingType()

getAveragingArg

public java.lang.String getAveragingArg()

setSimpleAveraging

public void setSimpleAveraging()

setNearestAveraging

public void setNearestAveraging(int num)

setNeighborAveraging

public void setNeighborAveraging(int num)

setIntervalAveraging

public void setIntervalAveraging(double width)

getAverager

private Averager getAverager(int type)

setDataMatrix

public void setDataMatrix(edu.stanford.genetics.treeview.DataMatrix dataMatrix)
Setter for dataMatrix


getDataMatrix

public edu.stanford.genetics.treeview.DataMatrix getDataMatrix()
Getter for dataMatrix


getNumCol

public int getNumCol()
Getter for numCol


setNodata

public void setNodata(double nodata)
Setter for nodata


getNodata

public double getNodata()
Getter for nodata


setGeneInfo

public void setGeneInfo(edu.stanford.genetics.treeview.HeaderInfo geneInfo)
Setter for geneInfo


getGeneInfo

public edu.stanford.genetics.treeview.HeaderInfo getGeneInfo()
Getter for geneInfo


cleanup

public void cleanup()
removes any pointers to exteral objects to aid GC


update

public void update(java.util.Observable o,
                   java.lang.Object arg)
Description copied from interface: java.util.Observer
This method is called whenever the observable object changes, and has called notifyObservers. The Observable object can pass arbitrary information in the second parameter.

Specified by:
update in interface java.util.Observer

recalculateAverages

public void recalculateAverages()

paintComposite

public void paintComposite(java.awt.Graphics g)
Description copied from class: edu.stanford.genetics.treeview.ModelView
This call is to be used to add a quick addition to the component which you don't want to put on the doublebuffer. The composite could potentially be another buffer. Currently, this is only used by globalview for adding the zoom rect and focus rect.


paintComponent

public void paintComponent(java.awt.Graphics g)
override parent so as to avoid running out of memory at high zooms.


updateBuffer

public void updateBuffer(java.awt.Graphics g)
Description copied from class: edu.stanford.genetics.treeview.ModelView
Update the double buffer, if buffered Otherwise, just called by paintComponent to paint the main component. called only when offscreen buffer is marked as invalid, or if the onscreen size has changed. note: now actually called by paintcomponent to update the swing double buffer.


viewName

public java.lang.String viewName()
Description copied from class: edu.stanford.genetics.treeview.ModelView
viewName, returns name of view suitable for printing perhaps this should be replaced by reflection?


redoScale

public void redoScale()

getExperiments

public java.lang.String[] getExperiments()

getPreferredSize

public java.awt.Dimension getPreferredSize()
Description copied from class: javax.swing.JComponent
Get the component's preferred size. If the JComponent.preferredSize>JComponent.preferredSize 55 property has been explicitly set, it is returned. If the JComponent.preferredSize>JComponent.preferredSize 55 property has not been set but the JComponent.ui>JComponent.ui 55 property has been, the result of ComponentUI.getPreferredSize(javax.swing.JComponent)>ComponentUI.getPreferredSize(javax.swing.JComponent) 55 is returned. If neither property has been set, the result of Container.getPreferredSize()>Container.getPreferredSize() 55 is returned.


isChromosomeVisible

public boolean isChromosomeVisible(int i)

zoomRectangle

private void zoomRectangle(java.awt.Rectangle r)

zoomFactor

private void zoomFactor(double factor,
                        java.awt.Point point)
Zoom with the specified factor, keeping the specified point in the same relative place. If the point is null, it keeps the center in the same place.


updateStatus

private void updateStatus(ChromosomeLocus locus)

getStatus

public java.lang.String[] getStatus()
Description copied from class: edu.stanford.genetics.treeview.ModelView
Strings describing status to user, suitable for display.


getClosest

private int getClosest(int chr,
                       int arm,
                       double pos)

bindConfig

public void bindConfig(edu.stanford.genetics.treeview.ConfigNode configNode)
Setter for configNode


getConfigNode

public edu.stanford.genetics.treeview.ConfigNode getConfigNode()
Getter for configNode


getFirst

private edu.stanford.genetics.treeview.ConfigNode getFirst(java.lang.String name)
always returns an instance of the node, even if it has to create it.