biggests.tables
Class TableColors

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTable
                  extended by biggests.tables.TableValues
                      extended by biggests.tables.TableColors
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.CellEditorListener, javax.swing.event.ListSelectionListener, javax.swing.event.TableColumnModelListener, javax.swing.event.TableModelListener, javax.swing.Scrollable
Direct Known Subclasses:
TableColorsWithMissingValues

public class TableColors
extends TableValues

Title: Colors Table

Description:

Defines a table of colors with the following data:
- header -> conditions' names (more widely, Strings)
- first column -> genes' names (more widely, Strings)
- all other columns' cells -> gene expression values (more widely, float values)

A table of colors has a vertical text header and each of its cells is colored according to the float value that holds in it.

Each one of the matrix's cells is colored according to its expression value.

The cells whose value is situated in the interval:
[minValue, meanValue[ are colored green (different shades of green, according to the exact value)
{meanValue} are colored black
]meanValue, maxValue] are colored red (different shades of red, according to the exact value)

This table also displays the terms annotated with each gene (when a specific table's row is clicked by the user).

This kind of table implements sorting functionality on the columns, i.e., allows the reordering of the rows, sorting them by a specific column's cells values in ascending or descending order.

Copyright: Copyright (C) 2007 Joana Gonçalves This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class biggests.tables.TableValues
TableValues.FloatCellRenderer, TableValues.NumberCellRenderer
 
Nested classes/interfaces inherited from class javax.swing.JTable
javax.swing.JTable.AccessibleJTable, javax.swing.JTable.PrintMode
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  float divider
          Used to calculate the red or green component value of each colored matrix's cell.
protected  float meanValue
          The mean of the node object matrix's values.
 
Fields inherited from class biggests.tables.TableValues
goFrontEnd, goProperties, parent
 
Fields inherited from class javax.swing.JTable
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader
 
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.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
  TableColors(NodeObjectInterface nodeObject)
          Creates a new colored table with data from the the given node object's matrix.
  TableColors(NodeObjectInterface nodeObject, GOFrontEnd go, java.awt.Component parent)
          Creates a new colored table with data from the the given node object's matrix.
protected TableColors(java.lang.Object[][] rowData, java.lang.Object[] columnNames, boolean meanDivider)
          Creates a new colored table with the given row data and columns' names.
 
Method Summary
 void exportToImage()
          Exports this table to an image file.
 float getDivider()
          Returns the divider value for the float values in the table, that is, the value that will be used to divide the difference between the true float value of a cell and the meanValue to find the red or green color component to colorize the cell.
 float getMeanValue()
          Returns the mean value of the float values in the table.
 java.awt.Component prepareRenderer(javax.swing.table.TableCellRenderer renderer, int row, int column)
          Overrides TableValues's prepareRenderer method.
 void this_mouseClicked(java.awt.event.MouseEvent e)
          Handles a mouse click in this table of colors.
 
Methods inherited from class biggests.tables.TableValues
constructColumnNames, constructRowData, createDefaultTableHeader, getToolTipText
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellRenderer, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getEditingColumn, getEditingRow, getEditorComponent, getGridColor, getIntercellSpacing, getModel, getPreferredScrollableViewportSize, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getUI, getUIClassID, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setEditingColumn, setEditingRow, setGridColor, setIntercellSpacing, setModel, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setValueAt, sizeColumnsToFit, sizeColumnsToFit, tableChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, 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, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, 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, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, 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, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

meanValue

protected float meanValue
The mean of the node object matrix's values. It is used to calculate the red or green component value of each colored matrix's cell.
The mean value is calculated like this:
(maxValue + minValue)/2
in which the maxValue is the maximum value of all the node object matrix cells' values and the minValue is the minimum value of all.


divider

protected float divider
Used to calculate the red or green component value of each colored matrix's cell.
The divider value is calculated like this:
(maxValue - meanValue)/255
in which maxValue is the maximum value of all the node object matrix cells' values, the minValue is the minimum value of all and meanValue is the mean value (the value which is exactly in the middle between maximum and minimum values).

Constructor Detail

TableColors

public TableColors(NodeObjectInterface nodeObject,
                   GOFrontEnd go,
                   java.awt.Component parent)
            throws InvalidNodeObjectTypeException
Creates a new colored table with data from the the given node object's matrix.

Parameters:
nodeObject - the NodeObjectInterface from which the colored table will be created
go - the GOFrontEnd
parent - the GUI's parent Component
Throws:
InvalidNodeObjectTypeException - when the type of the node object is not valid
See Also:
TableColors(NodeObjectInterface nodeObject)

TableColors

public TableColors(NodeObjectInterface nodeObject)
            throws InvalidNodeObjectTypeException
Creates a new colored table with data from the the given node object's matrix.

Parameters:
nodeObject - the NodeObjectInterface from which the colored table will be created
Throws:
InvalidNodeObjectTypeException - when the type of the node object is not valid
See Also:
#TableColors(Object[][] rowData, Object[] columnNames), TableValues.constructRowData(NodeObjectInterface nodeObject), TableValues.constructColumnNames(NodeObjectInterface nodeObject)

TableColors

protected TableColors(java.lang.Object[][] rowData,
                      java.lang.Object[] columnNames,
                      boolean meanDivider)
Creates a new colored table with the given row data and columns' names.

Parameters:
rowData - the Object[][] array with the data to fill the rows of the table
columnNames - the Object[][] array with the data to fill the header of the table
meanDivider - boolean true if mean and divider values should be calculated over the rowData
Throws:
InvalidNodeObjectTypeException - when the type of the node object is not valid
See Also:
calcMeanDividerValues(Object[][] rowData), TableValues#TableValues(TableSorter tableSorterModel), DefaultTableModel.DefaultTableModel(Object[][] rowData, Object[] columnNames)
Method Detail

prepareRenderer

public java.awt.Component prepareRenderer(javax.swing.table.TableCellRenderer renderer,
                                          int row,
                                          int column)
Overrides TableValues's prepareRenderer method. Prepares the renderer by querying the data model for the value and selection state of the cell at row, column. Returns the component (may be a Component or a JComponent) under the event location.

Overrides:
prepareRenderer in class TableValues
Parameters:
renderer - the TableCellRenderer to prepare
row - the row of the cell to render, where 0 is the first row
column - the column of the cell to render, where 0 is the first column
Returns:
the Component under the event location
See Also:
TableValues.prepareRenderer(TableCellRenderer renderer, int row, int column)

exportToImage

public void exportToImage()
Exports this table to an image file. Allows the user to select the image's filepath in a file chooser dialog and choose the image format (PNG or JPG).


getMeanValue

public float getMeanValue()
Returns the mean value of the float values in the table.

Returns:
the float mean of the float values in the table

getDivider

public float getDivider()
Returns the divider value for the float values in the table, that is, the value that will be used to divide the difference between the true float value of a cell and the meanValue to find the red or green color component to colorize the cell.

Returns:
the float divider value

this_mouseClicked

public void this_mouseClicked(java.awt.event.MouseEvent e)
Handles a mouse click in this table of colors. If the click is in the mouse's left button, calls TableValues this_mouseClicked method to display the terms annotated with the gene in the clicked row of the table. If the click is in the mouse's right button, shows 'Export to image' popup menu.

Overrides:
this_mouseClicked in class TableValues
Parameters:
e - the MouseEvent fired when the user clicks this table