kiyut.citra 2.5

kiyut.citra.canvas
Class FXCanvas

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by kiyut.citra.canvas.FXCanvas
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable

public class FXCanvas
extends JComponent

FXCanvas component which represents a blank rectangular area of the screen onto which the application can draw or from which the component can trap input events from the user. Note: this component capture Esc key to clear the selection if any

Author:
Kiyut
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  boolean backgroundCheckerboard
          flag for checkerboard background
protected  Stroke borderStroke
          border Stroke
protected  Color checkerColor1
          background checker color 1 for alpha
protected  Color checkerColor2
          background checker color 2 for alpha
protected  FXContext context
          context
static String FILTER_OP_PROPERTY
          Identifies a change to filterOp
protected  boolean fitSize
          the fit size for this component.
static String IMAGE_FILE_PROPERTY
          Identifies a change to image file
protected  Rectangle2D imageBounds
          imageBounds
protected  boolean openFile
          boolean indicate opening new File
protected  FXRenderer renderer
          FXRenderer
protected  Thread renderThread
          render thread
protected  FXSelectionModel selectionModel
          selection model
protected  AffineTransform transform
          this canvas current transform
protected  boolean transformValid
          flag for canvas current transform validity
static String ZOOM_FACTOR_PROPERTY
          Identifies a change to setZoomFactor factor
protected  double zoomFactor
          the zoomFactor for this component.
 
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
FXCanvas()
          Create new instance of FXCanvas
 
Method Summary
 void addProgressListener(ProgressListener listener)
          Registers listener so that it will receive ProgressEvents when this component process the Image Filter Operation.
 void apply()
          Replace the source Image with Rendered Image
 void crop(Area area)
          Crop Rendered Image
 void discard()
          Discard the Rendered Image
protected  void fireProgressCancelled()
          Notifies all listeners that have registered interest for notification on this event type.
protected  void fireProgressCompleted()
          Notifies all listeners that have registered interest for notification on this event type.
protected  void fireProgressFailed()
          Notifies all listeners that have registered interest for notification on this event type.
protected  void fireProgressStarted()
          Notifies all listeners that have registered interest for notification on this event type.
 FXContext getContext()
          Return FXContext
 BufferedImageOp getFilterOp()
          Return current filterOp
 File getImageFile()
          Return File
 BufferedImage getRenderedImage()
          Return rendered image
 FXSelectionModel getSelectionModel()
          Return current selection model
 BufferedImage getSourceImage()
          Return source image
 AffineTransform getTransform()
          Return a copy of this canvas transform, incase the transform is modified externally
 double getZoomFactor()
          Return Zoom Factor
 boolean isBackgroundCheckerboard()
          Return true or false
 boolean isOpenFile()
          Return openFile status, the status is resetted at first render process.
protected  void paintCanvasBackground(Graphics2D g2d)
          paint background
protected  void paintCanvasBorder(Graphics2D g2d)
           
 void paintComponent(Graphics g)
           
protected  void paintImage(Graphics2D g2d)
           
protected  void paintTool(Graphics2D g2d)
          paint tool
protected  void processComponentEvent(ComponentEvent evt)
           
 void removeProgressListener(ProgressListener listener)
          Unregisters listener so that it will receive ProgressEvents when this component process the Image Filter Operation.
 void render()
          Render will notify the interested listener using the addProgressListener.
 void setBackgroundCheckerboard(boolean checkerboard)
          Set the background checkerboard true or false
 void setContext(FXContext context)
          Set Context
 void setFilterOp(BufferedImageOp filterOp)
          Set the filterOp
 void setImageFile(File file, boolean open)
          set the Image File
 void setZoomFactor(double zoomFactor)
          set the Zoom Factor
protected  void updateTransform()
          Update the transform
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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, 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

ZOOM_FACTOR_PROPERTY

public static final String ZOOM_FACTOR_PROPERTY
Identifies a change to setZoomFactor factor

See Also:
Constant Field Values

IMAGE_FILE_PROPERTY

public static final String IMAGE_FILE_PROPERTY
Identifies a change to image file

See Also:
Constant Field Values

FILTER_OP_PROPERTY

public static final String FILTER_OP_PROPERTY
Identifies a change to filterOp

See Also:
Constant Field Values

zoomFactor

protected double zoomFactor
the zoomFactor for this component.


fitSize

protected boolean fitSize
the fit size for this component.


renderer

protected FXRenderer renderer
FXRenderer


context

protected FXContext context
context


transform

protected AffineTransform transform
this canvas current transform


imageBounds

protected Rectangle2D imageBounds
imageBounds


transformValid

protected boolean transformValid
flag for canvas current transform validity


backgroundCheckerboard

protected boolean backgroundCheckerboard
flag for checkerboard background


checkerColor1

protected Color checkerColor1
background checker color 1 for alpha


checkerColor2

protected Color checkerColor2
background checker color 2 for alpha


borderStroke

protected Stroke borderStroke
border Stroke


selectionModel

protected FXSelectionModel selectionModel
selection model


renderThread

protected Thread renderThread
render thread


openFile

protected boolean openFile
boolean indicate opening new File

Constructor Detail

FXCanvas

public FXCanvas()
Create new instance of FXCanvas

Method Detail

paintComponent

public void paintComponent(Graphics g)
Overrides:
paintComponent in class JComponent

paintCanvasBackground

protected void paintCanvasBackground(Graphics2D g2d)
paint background

Parameters:
g2d - Graphics2D

paintImage

protected void paintImage(Graphics2D g2d)

paintTool

protected void paintTool(Graphics2D g2d)
paint tool

Parameters:
g2d - Graphics2D

paintCanvasBorder

protected void paintCanvasBorder(Graphics2D g2d)

getSourceImage

public BufferedImage getSourceImage()
Return source image

Returns:
BufferedImage
See Also:
apply(), discard()

getRenderedImage

public BufferedImage getRenderedImage()
Return rendered image

Returns:
BufferedImage
See Also:
apply(), discard()

getTransform

public AffineTransform getTransform()
Return a copy of this canvas transform, incase the transform is modified externally

Returns:
AffineTransform

setZoomFactor

public void setZoomFactor(double zoomFactor)
set the Zoom Factor

Parameters:
zoomFactor - the Zoom Factor
See Also:
getZoomFactor()

getZoomFactor

public double getZoomFactor()
Return Zoom Factor

Returns:
Zoom Factor
See Also:
setZoomFactor(double)

processComponentEvent

protected void processComponentEvent(ComponentEvent evt)
Overrides:
processComponentEvent in class Component

updateTransform

protected void updateTransform()
Update the transform


setImageFile

public void setImageFile(File file,
                         boolean open)
set the Image File

Parameters:
file - The File Image
open - flag whether the image will be opened
See Also:
getImageFile()

getImageFile

public File getImageFile()
Return File

Returns:
File
See Also:
setImageFile(File,boolean)

isOpenFile

public boolean isOpenFile()
Return openFile status, the status is resetted at first render process.

Returns:
true or false

setFilterOp

public void setFilterOp(BufferedImageOp filterOp)
Set the filterOp

Parameters:
filterOp - BufferedImageOp

getFilterOp

public BufferedImageOp getFilterOp()
Return current filterOp

Returns:
BufferedImageOp
See Also:
setFilterOp(BufferedImageOp)

setContext

public void setContext(FXContext context)
Set Context

Parameters:
context - FXContext
See Also:
getContext()

getContext

public FXContext getContext()
Return FXContext

Returns:
FXContext
See Also:
setContext(FXContext)

setBackgroundCheckerboard

public void setBackgroundCheckerboard(boolean checkerboard)
Set the background checkerboard true or false

Parameters:
checkerboard - true or false
See Also:
isBackgroundCheckerboard()

isBackgroundCheckerboard

public boolean isBackgroundCheckerboard()
Return true or false

Returns:
true or false
See Also:
setBackgroundCheckerboard(boolean)

getSelectionModel

public FXSelectionModel getSelectionModel()
Return current selection model

Returns:
FXSelectionModel

render

public void render()
Render will notify the interested listener using the addProgressListener. If there is a selected area, it will only render the selected area, otherwise the whole image. The rendering process is done in a thread.

See Also:
addProgressListener(ProgressListener)

apply

public void apply()
Replace the source Image with Rendered Image

See Also:
discard(), getSourceImage(), getRenderedImage()

discard

public void discard()
Discard the Rendered Image

See Also:
apply(), getSourceImage(), getRenderedImage()

crop

public void crop(Area area)
Crop Rendered Image

Parameters:
area - the specified area for cropping

addProgressListener

public void addProgressListener(ProgressListener listener)
Registers listener so that it will receive ProgressEvents when this component process the Image Filter Operation.

Parameters:
listener - the ProgressListener to register

removeProgressListener

public void removeProgressListener(ProgressListener listener)
Unregisters listener so that it will receive ProgressEvents when this component process the Image Filter Operation.

Parameters:
listener - the ProgressListener to unregister

fireProgressStarted

protected void fireProgressStarted()
Notifies all listeners that have registered interest for notification on this event type.


fireProgressCompleted

protected void fireProgressCompleted()
Notifies all listeners that have registered interest for notification on this event type.


fireProgressCancelled

protected void fireProgressCancelled()
Notifies all listeners that have registered interest for notification on this event type.


fireProgressFailed

protected void fireProgressFailed()
Notifies all listeners that have registered interest for notification on this event type.


kiyut.citra 2.5