workspace
Class TrashCan

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by workspace.TrashCan
All Implemented Interfaces:
java.awt.event.ComponentListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, WorkspaceWidget

public class TrashCan
extends javax.swing.JComponent
implements java.awt.event.MouseListener, WorkspaceWidget, java.awt.event.ComponentListener

See Also:
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
 
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
TrashCan(java.awt.Image trashCanImage, java.awt.Image openedTrashCanImage)
           
 
Method Summary
 void addBlock(RenderableBlock block)
          Adds the specified block to this widget interally and graphically.
 void addBlocks(java.util.Collection<RenderableBlock> block)
          Adds a collection of blocks to this widget internally and graphically.
 void blockDragged(RenderableBlock block)
          Called by RenderableBlocks as they are dragged over this Widget.
 void blockDropped(RenderableBlock block)
          Called by RenderableBlocks that get "dropped" onto this Widget
 void blockEntered(RenderableBlock block)
          Called when a RenderableBlock is being dragged and goes from being outside this Widget to being inside the Widget.
 void blockExited(RenderableBlock block)
          Called when a RenderableBlock that was being dragged over this Widget goes from being inside this Widget to being outside the Widget.
 void componentHidden(java.awt.event.ComponentEvent e)
          Component Listeners
 void componentMoved(java.awt.event.ComponentEvent e)
           
 void componentResized(java.awt.event.ComponentEvent e)
           
 void componentShown(java.awt.event.ComponentEvent e)
           
 java.util.Collection<RenderableBlock> getBlocks()
          Returns the set of blocks that abstract "lives" inside this widget.
 javax.swing.JComponent getJComponent()
          Very Java Swing dependent method
 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 paint(java.awt.Graphics g)
           
 void removeBlock(RenderableBlock block)
          Used by RenderableBlocks to tell their originating Widgets that they're moving somewhere else and so should be removed.
 
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, paintBorder, paintChildren, paintComponent, 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
 
Methods inherited from interface workspace.WorkspaceWidget
contains
 

Constructor Detail

TrashCan

public TrashCan(java.awt.Image trashCanImage,
                java.awt.Image openedTrashCanImage)
Method Detail

paint

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

blockDropped

public void blockDropped(RenderableBlock block)
Description copied from interface: WorkspaceWidget
Called by RenderableBlocks that get "dropped" onto this Widget

Specified by:
blockDropped in interface WorkspaceWidget
Parameters:
block - the RenderableBlock that is "dropped" onto this Widget

addBlock

public void addBlock(RenderableBlock block)
Description copied from interface: WorkspaceWidget
Adds the specified block to this widget interally and graphically. The difference between this method and blockDropped is that blockDropped is activated by user actions, such as mouse drag and drop or typeblocking. Use this method only for single blocks, as it may cause repainting! For adding several blocks at once use addBlocks, which delays graphical updates until after the blocks have all been added.

Specified by:
addBlock in interface WorkspaceWidget
Parameters:
block - the desired RenderableBlock to add to this

addBlocks

public void addBlocks(java.util.Collection<RenderableBlock> block)
Description copied from interface: WorkspaceWidget
Adds a collection of blocks to this widget internally and graphically. This method adds blocks internally first, and only updates graphically once all of the blocks have been added. It is therefore preferable to use this method rather than addBlock whenever multiple blocks will be added.

Specified by:
addBlocks in interface WorkspaceWidget
Parameters:
block - the Collection of RenderableBlocks to add

removeBlock

public void removeBlock(RenderableBlock block)
Description copied from interface: WorkspaceWidget
Used by RenderableBlocks to tell their originating Widgets that they're moving somewhere else and so should be removed.

Specified by:
removeBlock in interface WorkspaceWidget
Parameters:
block - the RenderableBlock

blockDragged

public void blockDragged(RenderableBlock block)
Description copied from interface: WorkspaceWidget
Called by RenderableBlocks as they are dragged over this Widget.

Specified by:
blockDragged in interface WorkspaceWidget
Parameters:
block - the RenderableBlock being dragged

blockEntered

public void blockEntered(RenderableBlock block)
Called when a RenderableBlock is being dragged and goes from being outside this Widget to being inside the Widget.

Specified by:
blockEntered in interface WorkspaceWidget
Parameters:
block - the RenderableBlock being dragged

blockExited

public void blockExited(RenderableBlock block)
Called when a RenderableBlock that was being dragged over this Widget goes from being inside this Widget to being outside the Widget.

Specified by:
blockExited in interface WorkspaceWidget
Parameters:
block - the RenderableBlock being dragged

getJComponent

public javax.swing.JComponent getJComponent()
Description copied from interface: WorkspaceWidget
Very Java Swing dependent method

Specified by:
getJComponent in interface WorkspaceWidget
Returns:
the JComponent-ized cast of this widget.

getBlocks

public java.util.Collection<RenderableBlock> getBlocks()
Description copied from interface: WorkspaceWidget
Returns the set of blocks that abstract "lives" inside this widget. Does not return all the blocks that exists in thsi component, or return all the blocks that are handled by this widget. Rather, the set of blocks returned all the blocks that "lives" in this widget.

Specified by:
getBlocks in interface WorkspaceWidget

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Component Listeners

Specified by:
componentHidden in interface java.awt.event.ComponentListener

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Specified by:
componentMoved in interface java.awt.event.ComponentListener

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Specified by:
componentResized in interface java.awt.event.ComponentListener

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Specified by:
componentShown in interface java.awt.event.ComponentListener

mousePressed

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

mouseClicked

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

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)

mouseReleased

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

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)

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