org.geotools.gui.swing
Class KernelEditor

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byorg.geotools.gui.swing.KernelEditor
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class KernelEditor
extends javax.swing.JComponent

A widget for selecting and/or editing a KernelJAI object. Kernels are used for image convolutions. widgets are initially empty, but a set of default kernels can be added with addDefaultKernels() including (but not limited to) Floyd & Steinberg (1975), Jarvis, Judice & Ninke (1976) and Stucki (1981). Each kernel can belong to an optional category. Example of categories includes "Error filters" and "Gradient masks".

 

 

Since:
2.0
Version:
$Id: KernelEditor.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux
See Also:
GradientKernelEditor, ConvolveDescriptor, GradientMagnitude, Serialized Form

Nested Class Summary
 
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
 
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
KernelEditor()
          Constructs a new kernel editor.
 
Method Summary
 void addDefaultKernels()
          Add a set of predefined kernels.
 void addKernel(java.lang.String category, java.lang.String name, javax.media.jai.KernelJAI kernel)
          Adds a kernel to the list of available kernels.
 javax.media.jai.KernelJAI getKernel()
          Returns the currently edited kernel.
 java.lang.String getKernelCategory()
          Returns the category for the current kernel.
 javax.swing.ComboBoxModel getKernelListModel()
          Returns the list of predefined kernels in the current category.
 java.lang.String[] getKernelNames()
          Returns an array of kernel names in the current category.
 javax.swing.table.TableModel getKernelTableModel()
          Returns the table model containing the current kernel coefficients.
static void main(java.lang.String[] args)
          Show the dialog box.
 void removeAllKernels()
          Removes all kernels and categories.
 void removeKernel(javax.media.jai.KernelJAI kernel)
          Removes a kernel.
 void removeKernel(java.lang.String kernel)
          Removes a kernel by its name.
 void setKernel(javax.media.jai.KernelJAI kernel)
          Set the kernel.
 void setKernel(java.lang.String name)
          Set the kernel by its name.
 void setKernelSize(int width, int height)
          Set the size of the current kernel.
 boolean showDialog(java.awt.Component owner, java.lang.String title)
          Shows a dialog box requesting input from the user.
 void sortKernelNames(java.util.Comparator comparator)
          Sort all kernel names according the specified comparator.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, 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, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, 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, 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, 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
 

Constructor Detail

KernelEditor

public KernelEditor()
Constructs a new kernel editor. No kernel will be initially shown. The method setKernel(javax.media.jai.KernelJAI) must be invoked, or the user must performs a selection in a combo box, in order to make a kernel visible.

Method Detail

addDefaultKernels

public void addDefaultKernels()
Add a set of predefined kernels. Default kernels includes (but is not limited to) Floyd & Steinberg (1975), Jarvis, Judice & Ninke (1976) and Stucki (1981).


addKernel

public void addKernel(java.lang.String category,
                      java.lang.String name,
                      javax.media.jai.KernelJAI kernel)
Adds a kernel to the list of available kernels. The widget list kernels in the same order they were added, unless sortKernelNames(java.util.Comparator) has been invoked. Each kernel can belong to an optional category. Example of categories includes "Error filters" and "Gradient masks".

Parameters:
category - The kernel's category name, or if none.
name - The kernel name. Kernels will be displayed in alphabetic order.
kernel - The kernel. If an other kernel was registered with the same name, the previous kernel will be discarted.

removeKernel

public void removeKernel(javax.media.jai.KernelJAI kernel)
Removes a kernel. If the kernel was the only one in its category, the category is removed as well.


removeKernel

public void removeKernel(java.lang.String kernel)
Removes a kernel by its name. If the kernel was the only one in its category, the category is removed as well.


removeAllKernels

public void removeAllKernels()
Removes all kernels and categories.


setKernel

public void setKernel(javax.media.jai.KernelJAI kernel)
Set the kernel. The table size will be set to the specified kernel size, add all coefficients will be copied in the table. If the specified kernel matches one of the kernel registered with the addKernel method, then the kernel name and category will be updated according.

Parameters:
kernel - The new kernel.

setKernel

public void setKernel(java.lang.String name)
Set the kernel by its name. It must be one of the name registered with addKernel(java.lang.String, java.lang.String, javax.media.jai.KernelJAI). If is not found, then nothing is done.

Parameters:
name - The name of the kernel to select.

setKernelSize

public void setKernelSize(int width,
                          int height)
Set the size of the current kernel.

Parameters:
width - The number of rows.
height - The number of columns.

getKernel

public javax.media.jai.KernelJAI getKernel()
Returns the currently edited kernel.

Returns:
The edited kernel.

getKernelCategory

public java.lang.String getKernelCategory()
Returns the category for the current kernel. This is the argument given to addKernel(category, name, kernel), where is the current kernel.

Returns:
The category for the current kernel, or if none.

sortKernelNames

public void sortKernelNames(java.util.Comparator comparator)
Sort all kernel names according the specified comparator.

Parameters:
comparator - The comparator, or for the natural ordering.

getKernelNames

public java.lang.String[] getKernelNames()
Returns an array of kernel names in the current category. Changes in the returned array will not affect the state.

Returns:
The name of all kernels in the current category.

getKernelListModel

public javax.swing.ComboBoxModel getKernelListModel()
Returns the list of predefined kernels in the current category. The content of this list will changes every time a kernel is added or removed and every time the user selects a new category. The selected item can change at any time as well, according user action.


getKernelTableModel

public javax.swing.table.TableModel getKernelTableModel()
Returns the table model containing the current kernel coefficients. The content of this table will changes every time the user select a new predefined kernel, or when the user edit cell values.


showDialog

public boolean showDialog(java.awt.Component owner,
                          java.lang.String title)
Shows a dialog box requesting input from the user. If is contained into a JDesktopPane, the dialog box will appears as an internal frame. This method can be invoked from any thread (may or may not be the Swing thread).

Parameters:
owner - The parent component for the dialog box, or if there is no parent.
title - The dialog box title.
Returns:
if user pressed the "Ok" button, or otherwise (e.g. pressing "Cancel" or closing the dialog box from the title bar).

main

public static void main(java.lang.String[] args)
Show the dialog box. This method is provided only as an easy way to test the dialog appearance from the command line.



Copyright © GeoTools. All Rights Reserved.