net.grelf.grip
Class ImAddProportionDialogue

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by net.grelf.AbstractDialogue
                          extended by net.grelf.grip.ImAddProportionDialogue
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.RootPaneContainer, javax.swing.WindowConstants, ImPreviewActor

public class ImAddProportionDialogue
extends AbstractDialogue
implements javax.swing.event.ChangeListener, java.awt.event.ActionListener, ImPreviewActor

This class is for adding 2 images in proportion (eg, 1/4 of the first image to 3/4 of the second. A dialogue enables users to adjust the proportion and immediately see the effect in an ImPreview component. 9.7.26: New class.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ImAddProportionDialogue(ImFrame imf1, ImFrame imf2)
          Construct the modal dialogue and make it visible.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ev)
          Implementing java.awt.event.ActionListener
static void add(java.awt.image.BufferedImage im1, java.awt.image.BufferedImage im2, int proportion)
          Add the images in the given proportion (0..100)
static void add(java.awt.image.BufferedImage imOriginal, java.awt.image.BufferedImage imPreview, java.awt.Point centre, int width, int height, int proportion)
          Add the given areas of the two images, in the user-selected proportion (0..100).
 void applyProportion(java.awt.image.BufferedImage im1)
          Apply the user-selected proportion, to add im2 to im1.
static int askProportion(ImFrame imf1, ImFrame imf2)
          For any class to use the present class for doing proportional image addition.
 int getProportion()
          Get the user-selected proportion, on a scale from 0 to 100.
 boolean isAccepted()
          Whether the user has clicked the OK button.
 void previewAction(Accumulator accumOriginal, java.awt.image.BufferedImage imPreview, java.awt.Point centre, int width, int height)
          Implementing ImPreviewActor but does nothing in this class.
 void previewAction(java.awt.image.BufferedImage imOriginal, java.awt.image.BufferedImage imPreview, java.awt.Point centre, int width, int height)
          Implementing ImPreviewActor.
 void stateChanged(javax.swing.event.ChangeEvent ev)
          Implementing javax.swing.event.ChangeListener.
 
Methods inherited from class net.grelf.AbstractDialogue
placeControl, placeControl
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ImAddProportionDialogue

public ImAddProportionDialogue(ImFrame imf1,
                               ImFrame imf2)
Construct the modal dialogue and make it visible.

Method Detail

getProportion

public int getProportion()
Get the user-selected proportion, on a scale from 0 to 100. This will be 50 if the user has not clicked the OK button. 0 means use all of image 1 but none of image 2. 100 means the opposite.


isAccepted

public boolean isAccepted()
Whether the user has clicked the OK button.


applyProportion

public void applyProportion(java.awt.image.BufferedImage im1)
Apply the user-selected proportion, to add im2 to im1.


add

public static void add(java.awt.image.BufferedImage im1,
                       java.awt.image.BufferedImage im2,
                       int proportion)
Add the images in the given proportion (0..100)


previewAction

public void previewAction(java.awt.image.BufferedImage imOriginal,
                          java.awt.image.BufferedImage imPreview,
                          java.awt.Point centre,
                          int width,
                          int height)
Implementing ImPreviewActor. Make imPreview from imOriginal (and the other image). Any bit-shifting due to imPreview and imOriginal having different numbers of bits per channel is carried out on the results.

Specified by:
previewAction in interface ImPreviewActor

previewAction

public void previewAction(Accumulator accumOriginal,
                          java.awt.image.BufferedImage imPreview,
                          java.awt.Point centre,
                          int width,
                          int height)
Implementing ImPreviewActor but does nothing in this class.

Specified by:
previewAction in interface ImPreviewActor

add

public static void add(java.awt.image.BufferedImage imOriginal,
                       java.awt.image.BufferedImage imPreview,
                       java.awt.Point centre,
                       int width,
                       int height,
                       int proportion)
Add the given areas of the two images, in the user-selected proportion (0..100). Note that the preview action does not need to know about the second image which was given us by the constructor of this dialogue.


stateChanged

public void stateChanged(javax.swing.event.ChangeEvent ev)
Implementing javax.swing.event.ChangeListener. Sets the proportion from the slider.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ev)
Implementing java.awt.event.ActionListener

Specified by:
actionPerformed in interface java.awt.event.ActionListener

askProportion

public static int askProportion(ImFrame imf1,
                                ImFrame imf2)
For any class to use the present class for doing proportional image addition. This displays the dialogue and uses the result of the user interaction. The proportion is returned, on a scale from 0 to 100. This will be -1 if the user cancelled.