com.alee.extended.ninepatch
Class NinePatchEditor

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by com.alee.extended.ninepatch.NinePatchEditor
All Implemented Interfaces:
SizeMethods<NinePatchEditor>, SwingMethods, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class NinePatchEditor
extends javax.swing.JComponent
implements SizeMethods<NinePatchEditor>

This editor is not based on the Android dev kit editor - NinePatchEditor is much more advanced and user-friendly. It allows fully visual and quick nine-patch editing, nine-patch information copying and also creation of new nine-patch files based on any image file that could be loaded by WebLookAndFeel library.

Android dev kit editor: http://developer.android.com/guide/developing/tools/draw9patch.html

Author:
Mikle Garin
See Also:
NinePatchEditorPanel, Serialized Form

Nested Class Summary
 
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
static int ADDITIONAL_SPACE
           
static java.awt.Color CONTENT_COLOR
           
static java.awt.Color CONTENT_GUIDELINES_COLOR
           
static int MAX_ZOOM
           
static java.awt.Color METRICS_BORDER
           
static java.awt.Color METRICS_BOTTOM
           
static java.awt.Color METRICS_TOP
           
static int MIN_ZOOM
           
static int RULER_LENGTH
           
static int SNAP
           
static java.awt.Color STRETCH_COLOR
           
static java.awt.Color STRETCH_GUIDELINES_COLOR
           
 
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
NinePatchEditor()
           
 
Method Summary
 void addChangeListener(javax.swing.event.ChangeListener changeListener)
           
 void addZoomChangeListener(ZoomChangeListener zoomChangeListener)
           
 java.awt.Dimension getActualPreferredSize()
           
 java.util.List<javax.swing.event.ChangeListener> getChangeListeners()
           
 int getMinimumHeight()
          Returns component minimum height.
 int getMinimumWidth()
          Returns component minimum width.
 NinePatchIcon getNinePatchIcon()
           
 java.awt.image.BufferedImage getNinePatchImage()
           
 NinePatchInfo getNinePatchInfo()
           
 int getPreferredHeight()
          Returns component preferred height.
 java.awt.Dimension getPreferredSize()
          Returns component preferred size.
 int getPreferredWidth()
          Returns component preferred width.
 java.awt.image.BufferedImage getRawImage()
           
 WebScrollPane getView()
           
 int getZoom()
           
 java.util.List<ZoomChangeListener> getZoomChangeListeners()
           
 boolean isChanged()
           
 boolean isFillContentArea()
           
 boolean isFillStretchAreas()
           
 boolean isShowAreaCursorPosition()
           
 boolean isShowGuideSpacing()
           
 boolean isShowRuler()
           
 boolean isShowRulerCursorPosition()
           
 boolean isSomeDragged()
           
protected  void paintComponent(java.awt.Graphics g)
           
 void redo()
           
 void removeChangeListener(javax.swing.event.ChangeListener changeListener)
           
 void removeZoomChangeListener(ZoomChangeListener zoomChangeListener)
           
 void setChanged(boolean changed)
           
 void setFillContentArea(boolean fillContentArea)
           
 void setFillStretchAreas(boolean fillStretchAreas)
           
 NinePatchEditor setMinimumHeight(int minimumHeight)
          Sets component minimum height.
 NinePatchEditor setMinimumWidth(int minimumWidth)
          Sets component minimum width.
 void setNinePatchIcon(NinePatchIcon ninePatchIcon)
           
 void setNinePatchImage(java.awt.image.BufferedImage ninePatchImage)
           
 void setNinePatchInfo(NinePatchInfo ninePatchInfo)
           
 NinePatchEditor setPreferredHeight(int preferredHeight)
          Sets component preferred height.
 NinePatchEditor setPreferredWidth(int preferredWidth)
          Sets component preferred width.
 void setShowAreaCursorPosition(boolean showAreaCursorPosition)
           
 void setShowGuideSpacing(boolean showGuideSpacing)
           
 void setShowRuler(boolean showRuler)
           
 void setShowRulerCursorPosition(boolean showRulerCursorPosition)
           
 void setZoom(int zoom)
           
 void undo()
           
 
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, 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, 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

STRETCH_GUIDELINES_COLOR

public static final java.awt.Color STRETCH_GUIDELINES_COLOR

STRETCH_COLOR

public static final java.awt.Color STRETCH_COLOR

CONTENT_GUIDELINES_COLOR

public static final java.awt.Color CONTENT_GUIDELINES_COLOR

CONTENT_COLOR

public static final java.awt.Color CONTENT_COLOR

METRICS_BORDER

public static final java.awt.Color METRICS_BORDER

METRICS_TOP

public static final java.awt.Color METRICS_TOP

METRICS_BOTTOM

public static final java.awt.Color METRICS_BOTTOM

RULER_LENGTH

public static final int RULER_LENGTH
See Also:
Constant Field Values

ADDITIONAL_SPACE

public static final int ADDITIONAL_SPACE
See Also:
Constant Field Values

SNAP

public static final int SNAP
See Also:
Constant Field Values

MIN_ZOOM

public static final int MIN_ZOOM
See Also:
Constant Field Values

MAX_ZOOM

public static final int MAX_ZOOM
See Also:
Constant Field Values
Constructor Detail

NinePatchEditor

public NinePatchEditor()
Method Detail

getView

public WebScrollPane getView()

isSomeDragged

public boolean isSomeDragged()

isChanged

public boolean isChanged()

setChanged

public void setChanged(boolean changed)

getZoom

public int getZoom()

setZoom

public void setZoom(int zoom)

isFillStretchAreas

public boolean isFillStretchAreas()

setFillStretchAreas

public void setFillStretchAreas(boolean fillStretchAreas)

isFillContentArea

public boolean isFillContentArea()

setFillContentArea

public void setFillContentArea(boolean fillContentArea)

isShowRulerCursorPosition

public boolean isShowRulerCursorPosition()

setShowRulerCursorPosition

public void setShowRulerCursorPosition(boolean showRulerCursorPosition)

isShowAreaCursorPosition

public boolean isShowAreaCursorPosition()

setShowAreaCursorPosition

public void setShowAreaCursorPosition(boolean showAreaCursorPosition)

isShowGuideSpacing

public boolean isShowGuideSpacing()

setShowGuideSpacing

public void setShowGuideSpacing(boolean showGuideSpacing)

isShowRuler

public boolean isShowRuler()

setShowRuler

public void setShowRuler(boolean showRuler)

getRawImage

public java.awt.image.BufferedImage getRawImage()

getNinePatchImage

public java.awt.image.BufferedImage getNinePatchImage()

setNinePatchImage

public void setNinePatchImage(java.awt.image.BufferedImage ninePatchImage)

setNinePatchIcon

public void setNinePatchIcon(NinePatchIcon ninePatchIcon)

setNinePatchInfo

public void setNinePatchInfo(NinePatchInfo ninePatchInfo)

getNinePatchInfo

public NinePatchInfo getNinePatchInfo()

getNinePatchIcon

public NinePatchIcon getNinePatchIcon()

undo

public void undo()

redo

public void redo()

paintComponent

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

getChangeListeners

public java.util.List<javax.swing.event.ChangeListener> getChangeListeners()

addChangeListener

public void addChangeListener(javax.swing.event.ChangeListener changeListener)

removeChangeListener

public void removeChangeListener(javax.swing.event.ChangeListener changeListener)

getZoomChangeListeners

public java.util.List<ZoomChangeListener> getZoomChangeListeners()

addZoomChangeListener

public void addZoomChangeListener(ZoomChangeListener zoomChangeListener)

removeZoomChangeListener

public void removeZoomChangeListener(ZoomChangeListener zoomChangeListener)

getPreferredWidth

public int getPreferredWidth()
Returns component preferred width.

Specified by:
getPreferredWidth in interface SizeMethods<NinePatchEditor>
Returns:
component preferred width

setPreferredWidth

public NinePatchEditor setPreferredWidth(int preferredWidth)
Sets component preferred width. Pass -1 to let component choose preferred width on its own.

Specified by:
setPreferredWidth in interface SizeMethods<NinePatchEditor>
Parameters:
preferredWidth - new component preferred width
Returns:
modified component

getPreferredHeight

public int getPreferredHeight()
Returns component preferred height.

Specified by:
getPreferredHeight in interface SizeMethods<NinePatchEditor>
Returns:
component preferred height

setPreferredHeight

public NinePatchEditor setPreferredHeight(int preferredHeight)
Sets component preferred height. Pass -1 to let component choose preferred height on its own.

Specified by:
setPreferredHeight in interface SizeMethods<NinePatchEditor>
Parameters:
preferredHeight - new component preferred height
Returns:
modified component

getMinimumWidth

public int getMinimumWidth()
Returns component minimum width.

Specified by:
getMinimumWidth in interface SizeMethods<NinePatchEditor>
Returns:
component minimum width

setMinimumWidth

public NinePatchEditor setMinimumWidth(int minimumWidth)
Sets component minimum width. Pass -1 to let component choose minimum width on its own.

Specified by:
setMinimumWidth in interface SizeMethods<NinePatchEditor>
Parameters:
minimumWidth - new component minimum width
Returns:
modified component

getMinimumHeight

public int getMinimumHeight()
Returns component minimum height.

Specified by:
getMinimumHeight in interface SizeMethods<NinePatchEditor>
Returns:
component minimum height

setMinimumHeight

public NinePatchEditor setMinimumHeight(int minimumHeight)
Sets component minimum height. Pass -1 to let component choose minimum height on its own.

Specified by:
setMinimumHeight in interface SizeMethods<NinePatchEditor>
Parameters:
minimumHeight - new component minimum height
Returns:
modified component

getPreferredSize

public java.awt.Dimension getPreferredSize()
Returns component preferred size.

Specified by:
getPreferredSize in interface SizeMethods<NinePatchEditor>
Overrides:
getPreferredSize in class javax.swing.JComponent
Returns:
component preferred size

getActualPreferredSize

public java.awt.Dimension getActualPreferredSize()