infomat.view.picture
Class SparsePicture

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by infomat.view.picture.SparsePicture
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class SparsePicture
extends javax.swing.JPanel
implements java.awt.event.MouseMotionListener, java.awt.event.MouseListener

A SparsePicture is a projection of a IMatrix meant to be visualized as a picture. It consists of one or several SparsePartPictures which depicts part of the projection. Each SparsePartPictures is composed of many SparsePixels, the non zero pixels of the picture.

See Also:
Serialized Form

Nested Class Summary
private  class SparsePicture.PixelPopupMenu
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  int colFrom
           
private  int colTo
           
private  DoubleHashMap coordToPixelMap
           
(package private)  IObject dragStartColObject
           
(package private)  IObject dragStartRowObject
           
private  java.awt.Color gridColor
           
private static int gridSize
           
private  Guide guide
           
private  GUIIMatrix guimatrix
           
private static PixelInfoFrame holdPixelInfoFrame
           
private  java.awt.Dimension imageDimension
           
private  boolean overviewPicture
           
private  SparsePartPicture[][] partPictureArray
           
private  SparsePicture.PixelPopupMenu popup
           
private  int rowFrom
           
private  int rowTo
           
private  ToolbarView toolbarView
           
private  InfomatView view
           
 
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
SparsePicture(GUIIMatrix guimatrix, java.awt.Dimension imageDimension, int colFrom, int colTo, int rowFrom, int rowTo)
           
 
Method Summary
 void addPartPictureArray(SparsePartPicture[][] arr)
           
 void adjustColumnColorOpacity(float newMinWeight, float newMaxWeight)
           
 void adjustOpacity(float newMinWeight, float newMaxWeight)
          Change the distribution to be more even over 0.0 ..
 void drawZoomRect(java.awt.Graphics g)
           
private  float[] findMinAndMaxInPixelVectorPart(java.util.Vector<SparsePixel> pixels)
           
 java.util.Vector<SparsePixel> getAllColumnColorPixelsInPartPictures()
           
 java.util.Vector<SparsePixel> getAllPixelsInPartPictures()
           
private  IObject getClosestColumnIObject(int x)
           
private  IObject getClosestRowIObject(int y)
           
private  int getClosestXPixelForColumn(int col)
           
private  int getClosestYPixelForRow(int row)
           
 int getColFrom()
           
 int getColTo()
           
 IObjectGroup getColumnGroup()
           
private  IObjectGroup getColumnIObjects(int x)
           
protected  int getColumnPartPictureNumberForColumnIndex(int ci)
           
 java.awt.Color getGridColor()
           
static int getGridSize()
           
 Guide getGuide()
           
 GUIIMatrix getGUIIMatrix()
           
private  IObject getLastColumnIObject(int x)
           
private  IObject getLastRowIObject(int y)
           
 boolean getOverviewPicture()
           
protected  SparsePartPicture[][] getPartPictureArray()
           
private  SparsePixel getPixel(int x, int y)
           
 SparsePixel getPixelForObjects(IObject rowObject, IObject colObject)
           
 int getRowFrom()
           
 IObjectGroup getRowGroup()
           
private  IObjectGroup getRowIObjects(int y)
           
 int getRowTo()
           
 InfomatView getView()
           
private  java.awt.Color getZoomRectColor()
           
private  boolean isPopup(java.awt.event.MouseEvent e)
           
 void makeAverageColor()
           
 void makeAverageColumnColor()
           
 void makeCoordToPixelMap()
           
 void makeImage()
           
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void paintComponent(java.awt.Graphics g)
           
 void saveIMatrixPicture(java.io.File file)
           
private  void setDragStart(IObject colObject, IObject rowObject)
           
private  void setInfoPixelFrame(int x, int y)
           
 void setOverviewPicture(boolean overviewPicture)
           
private  void setSelectAreaPixelFrame(IObject lastRowObject, IObject lastColObject)
           
private  void setSelectPixelFrame(int x, int y)
           
 void setToolbarView(ToolbarView toolbarView)
           
 void setView(InfomatView view)
           
 void update(java.util.Observable o, java.lang.Object arg)
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, 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, doLayout, 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

view

private InfomatView view

toolbarView

private ToolbarView toolbarView

holdPixelInfoFrame

private static PixelInfoFrame holdPixelInfoFrame

imageDimension

private java.awt.Dimension imageDimension

partPictureArray

private SparsePartPicture[][] partPictureArray

gridColor

private java.awt.Color gridColor

gridSize

private static int gridSize

overviewPicture

private boolean overviewPicture

coordToPixelMap

private DoubleHashMap coordToPixelMap

guimatrix

private GUIIMatrix guimatrix

rowFrom

private int rowFrom

rowTo

private int rowTo

colFrom

private int colFrom

colTo

private int colTo

guide

private Guide guide

popup

private SparsePicture.PixelPopupMenu popup

dragStartColObject

IObject dragStartColObject

dragStartRowObject

IObject dragStartRowObject
Constructor Detail

SparsePicture

public SparsePicture(GUIIMatrix guimatrix,
                     java.awt.Dimension imageDimension,
                     int colFrom,
                     int colTo,
                     int rowFrom,
                     int rowTo)
Method Detail

setView

public void setView(InfomatView view)

setToolbarView

public void setToolbarView(ToolbarView toolbarView)

addPartPictureArray

public void addPartPictureArray(SparsePartPicture[][] arr)

makeCoordToPixelMap

public void makeCoordToPixelMap()

getPixelForObjects

public SparsePixel getPixelForObjects(IObject rowObject,
                                      IObject colObject)

setOverviewPicture

public void setOverviewPicture(boolean overviewPicture)

getOverviewPicture

public boolean getOverviewPicture()

getZoomRectColor

private java.awt.Color getZoomRectColor()

getRowFrom

public int getRowFrom()

getRowTo

public int getRowTo()

getColFrom

public int getColFrom()

getColTo

public int getColTo()

getView

public InfomatView getView()

getGridColor

public java.awt.Color getGridColor()

getGridSize

public static int getGridSize()

getRowGroup

public IObjectGroup getRowGroup()

getColumnGroup

public IObjectGroup getColumnGroup()

getGUIIMatrix

public GUIIMatrix getGUIIMatrix()

makeImage

public void makeImage()

findMinAndMaxInPixelVectorPart

private float[] findMinAndMaxInPixelVectorPart(java.util.Vector<SparsePixel> pixels)

adjustOpacity

public void adjustOpacity(float newMinWeight,
                          float newMaxWeight)
Change the distribution to be more even over 0.0 .. 1.0


adjustColumnColorOpacity

public void adjustColumnColorOpacity(float newMinWeight,
                                     float newMaxWeight)

makeAverageColumnColor

public void makeAverageColumnColor()

makeAverageColor

public void makeAverageColor()

getAllColumnColorPixelsInPartPictures

public java.util.Vector<SparsePixel> getAllColumnColorPixelsInPartPictures()

getAllPixelsInPartPictures

public java.util.Vector<SparsePixel> getAllPixelsInPartPictures()

getClosestRowIObject

private IObject getClosestRowIObject(int y)

getLastRowIObject

private IObject getLastRowIObject(int y)

getLastColumnIObject

private IObject getLastColumnIObject(int x)

getClosestColumnIObject

private IObject getClosestColumnIObject(int x)

getClosestXPixelForColumn

private int getClosestXPixelForColumn(int col)

getClosestYPixelForRow

private int getClosestYPixelForRow(int row)

getPixel

private SparsePixel getPixel(int x,
                             int y)

getColumnIObjects

private IObjectGroup getColumnIObjects(int x)

getRowIObjects

private IObjectGroup getRowIObjects(int y)

getPartPictureArray

protected SparsePartPicture[][] getPartPictureArray()

getColumnPartPictureNumberForColumnIndex

protected int getColumnPartPictureNumberForColumnIndex(int ci)

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

setInfoPixelFrame

private void setInfoPixelFrame(int x,
                               int y)

setSelectPixelFrame

private void setSelectPixelFrame(int x,
                                 int y)

setSelectAreaPixelFrame

private void setSelectAreaPixelFrame(IObject lastRowObject,
                                     IObject lastColObject)

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

isPopup

private boolean isPopup(java.awt.event.MouseEvent e)

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface java.awt.event.MouseListener

setDragStart

private void setDragStart(IObject colObject,
                          IObject rowObject)

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

paintComponent

public void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

drawZoomRect

public void drawZoomRect(java.awt.Graphics g)

update

public void update(java.util.Observable o,
                   java.lang.Object arg)

saveIMatrixPicture

public void saveIMatrixPicture(java.io.File file)

getGuide

public Guide getGuide()