biggests.tables
Class TableSymbols

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.TableSymbols
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:
TableSymbolsWithMissingValues

public class TableSymbols
extends TableValues

Title: Table of Symbols

Description:

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

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

This table implements sorting functionality on the columns, i.e., allows the reordering of the rows, sorting them by a specific column 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  char[] alphabet
          The alphabet with all discretization symbols used in the discretization technique that gave rise to the set of discrete values that may appear in this symbols table.
protected  java.awt.Color[] colors
          The set of colors.
 
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
  TableSymbols(NodeObjectInterface nodeObject)
          Creates a new table of symbols with data from the the given node object's matrix.
  TableSymbols(NodeObjectInterface nodeObject, GOFrontEnd go, java.awt.Component parent)
          Creates a new table of symbols with data from the the given node object's matrix.
protected TableSymbols(java.lang.Object[][] rowData, java.lang.Object[] columnNames)
          Creates a new table of symbols with data from the the given node object's matrix.
 
Method Summary
protected static java.lang.Object[] constructColumnNames(NodeObjectInterface nodeObject)
          Constructs the column names' array with symbolic data retrieved from the node object's symbolic matrix.
protected static java.lang.Object[][] constructRowData(NodeObjectInterface nodeObject)
          Constructs the row data matrix with symbolic data retrieved from the node object's symbolic matrix.
 void exportToImage()
          Exports this table to an image file.
 char[] getAlphabet()
          Returns the alphabet with all discretization symbols used in the discretization technique that gave rise to the set of discrete values that may appear in this symbols table.
 java.awt.Color[] getColors()
          Returns the set of colors used to color each of the table's cells.
protected  void initializeColors()
          Initializes the array of colors to be used by prepareRenderer to color cells, when the table has to be displayed.
 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
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

alphabet

protected char[] alphabet
The alphabet with all discretization symbols used in the discretization technique that gave rise to the set of discrete values that may appear in this symbols table.


colors

protected java.awt.Color[] colors
The set of colors. Each position contains a color that corresponds to the symbol of the alphabet in the same position.

Constructor Detail

TableSymbols

public TableSymbols(NodeObjectInterface nodeObject,
                    GOFrontEnd go,
                    java.awt.Component parent)
             throws InvalidNodeObjectTypeException
Creates a new table of symbols with data from the the given node object's matrix. Each one of the matrix's cells is colored according to its symbol. Colors are determined according to the number of symbols of the matrix's alphabet.

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:
TableSymbols(Object[][] rowData, Object[] columnNames), constructRowData(NodeObjectInterface nodeObject), constructColumnNames(NodeObjectInterface nodeObject)

TableSymbols

public TableSymbols(NodeObjectInterface nodeObject)
             throws InvalidNodeObjectTypeException
Creates a new table of symbols with data from the the given node object's matrix. Each one of the matrix's cells is colored according to its symbol. Colors are determined according to the number of symbols of the matrix's alphabet.

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:
TableSymbols(Object[][] rowData, Object[] columnNames), constructRowData(NodeObjectInterface nodeObject), constructColumnNames(NodeObjectInterface nodeObject)

TableSymbols

protected TableSymbols(java.lang.Object[][] rowData,
                       java.lang.Object[] columnNames)
Creates a new table of symbols with data from the the given node object's matrix. Each one of the matrix's cells is colored according to its symbol. Colors are determined according to the number of symbols of the matrix's alphabet.
This class is private because it does not set the required alphabet and respective colors for a table of symbols. So, it is only intended to be used by the public constructor of TableSymbols

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
Throws:
InvalidNodeObjectTypeException - when the type of the node object is not valid
See Also:
TableValues#TableValues(TableSorter tableSorterModel), DefaultTableModel.DefaultTableModel(Object[][] rowData, Object[] columnNames)
Method Detail

initializeColors

protected void initializeColors()
Initializes the array of colors to be used by prepareRenderer to color cells, when the table has to be displayed. The Color in colors[i] is the color that will fill the background of the cells that contain the char symbol in alphabet[i].


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)

constructRowData

protected static java.lang.Object[][] constructRowData(NodeObjectInterface nodeObject)
                                                throws InvalidNodeObjectTypeException
Constructs the row data matrix with symbolic data retrieved from the node object's symbolic matrix.

The final structure of the row data is:
- the first column corresponds to the names of the genes
- the other cells of the matrix contain char values, which are the gene expression symbols under certain conditions

protected: it's intended to be used only by the TableSymbols constructor and constructors of TableSymbols's subclasses.
static: because object this cannot be referrenced by the constructor before it is actually created.

Valid node object classes are:
DiscretizedExpressionMatrix
CCC_Bicluster
E_CCC_Bicluster

Parameters:
nodeObject - the NodeObjectInterface which provides the data needed to create the row data matrix
Returns:
the Object[][] row data matrix, ready to be used by TableValues's constructor
Throws:
InvalidNodeObjectTypeException - when the type of the node object is not valid

constructColumnNames

protected static java.lang.Object[] constructColumnNames(NodeObjectInterface nodeObject)
                                                  throws InvalidNodeObjectTypeException
Constructs the column names' array with symbolic data retrieved from the node object's symbolic matrix.

The final structure of the column names' array is:
- the first cell contains the gene column name
- the remaining cells contain the condition names.

protected: it's intended to be used only by the TableValues's constructor and TableValues subclasses' constructors.
static: because object this cannot be referrenced by the constructor before it is actually created.

Valid node object classes are:
DiscretizedExpressionMatrix
CCC_Bicluster
E_CCC_Bicluster

Parameters:
nodeObject - the NodeObjectInterface which provides the data needed to create the column names' array
Returns:
the Object[] array with the column names
Throws:
InvalidNodeObjectTypeException - when the type of the node object is not valid

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).


getAlphabet

public char[] getAlphabet()
Returns the alphabet with all discretization symbols used in the discretization technique that gave rise to the set of discrete values that may appear in this symbols table.

Returns:
char[] the set of symbols of discretization

getColors

public java.awt.Color[] getColors()
Returns the set of colors used to color each of the table's cells. Each position contains a color that corresponds to the symbol of the alphabet in the same position.

Returns:
Color[] the set of Colors that correspond to the respective symbols of the alphabet

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