Class PShelf
- java.lang.Object
-
- org.eclipse.swt.widgets.Widget
-
- org.eclipse.swt.widgets.Control
-
- org.eclipse.swt.widgets.Scrollable
-
- org.eclipse.swt.widgets.Composite
-
- org.eclipse.swt.widgets.Canvas
-
- org.eclipse.nebula.widgets.pshelf.PShelf
-
- All Implemented Interfaces:
org.eclipse.swt.graphics.Drawable
public class PShelf extends org.eclipse.swt.widgets.Canvas
NOTE: THIS WIDGET AND ITS API ARE STILL UNDER DEVELOPMENT. THIS IS A PRE-RELEASE ALPHA VERSION. USERS SHOULD EXPECT API CHANGES IN FUTURE VERSIONS.
Instances of this class implement a selectable accordion metaphor, where each shelf contains a client area.The item children that may be added to instances of this class must be of type
PShelfItem
.Control
children are created on the body composite of each items accessed viaPShelfItem#getBody
.- Styles:
- BORDER, SIMPLE
- Events:
- Selection
IMPORTANT: This class is not intended to be subclassed.
-
-
Field Summary
Fields Modifier and Type Field Description private double
animationSpeed
private PShelfItem
focusItem
private PShelfItem
hoverItem
private int
itemHeight
private java.util.ArrayList<PShelfItem>
items
private PShelfItem
mouseDownItem
private PShelfItem
openItem
private boolean
redrawOnAnimation
private AbstractRenderer
renderer
private java.util.ArrayList<java.lang.Integer>
yCoordinates
-
Constructor Summary
Constructors Constructor Description PShelf(org.eclipse.swt.widgets.Composite parent, int style)
Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSelectionListener(org.eclipse.swt.events.SelectionListener listener)
Adds the listener to the collection of listeners who will be notified when the receiver's selection changes, by sending it one of the messages defined in theSelectionListener
interface.private void
animateOpen(PShelfItem previousItem, PShelfItem newItem, boolean openFromBottom)
private static int
checkStyle(int style)
(package private) void
computeItemHeight()
private void
computeItemYCoordinates()
org.eclipse.swt.graphics.Point
computeSize(int wHint, int hHint, boolean changed)
(package private) void
createItem(PShelfItem item, int index)
PShelfItem
getItem(org.eclipse.swt.graphics.Point point)
Returns the item at the given location.PShelfItem[]
getItems()
Returns an array ofPShelfItem
s which are the items in the receiver.AbstractRenderer
getRenderer()
Returns the renderer.PShelfItem
getSelection()
Returns thePShelfItem
that is currently selected in the receiver.private void
onDispose()
private void
onPaint(org.eclipse.swt.graphics.GC gc)
(package private) void
onResize()
private void
openItem(PShelfItem item, boolean animation)
void
removeAll()
Removes all PShelfItems.(package private) void
removeItem(PShelfItem item)
void
removeSelectionListener(org.eclipse.swt.events.SelectionListener listener)
Removes the listener from the collection of listeners who will be notified when the receiver's selection changes.void
setAnimationSpeed(double animationSpeed)
Sets the speed of animation.void
setRedrawOnAmination(boolean redrawOnAnimation)
Sets whether to redraw the items (previous and next item) when the open animation occours.void
setRenderer(AbstractRenderer renderer)
Sets the renderer.void
setSelection(PShelfItem item)
Sets the receiver's selection to the given item.private void
sizeClients()
-
Methods inherited from class org.eclipse.swt.widgets.Canvas
drawBackground, getCaret, getIME, scroll, setCaret, setFont, setIME
-
Methods inherited from class org.eclipse.swt.widgets.Composite
changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList
-
Methods inherited from class org.eclipse.swt.widgets.Scrollable
computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
-
Methods inherited from class org.eclipse.swt.widgets.Control
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isAutoScalable, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
-
Methods inherited from class org.eclipse.swt.widgets.Widget
addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString
-
-
-
-
Field Detail
-
items
private java.util.ArrayList<PShelfItem> items
-
renderer
private AbstractRenderer renderer
-
openItem
private PShelfItem openItem
-
focusItem
private PShelfItem focusItem
-
mouseDownItem
private PShelfItem mouseDownItem
-
hoverItem
private PShelfItem hoverItem
-
itemHeight
private int itemHeight
-
yCoordinates
private java.util.ArrayList<java.lang.Integer> yCoordinates
-
animationSpeed
private double animationSpeed
-
redrawOnAnimation
private boolean redrawOnAnimation
-
-
Constructor Detail
-
PShelf
public PShelf(org.eclipse.swt.widgets.Composite parent, int style)
Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.The style value is either one of the style constants defined in class
SWT
which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using theint
"|" operator) two or more of thoseSWT
style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.- Parameters:
parent
- a composite control which will be the parent of the new instance (cannot be null)style
- the style of control to construct- Throws:
java.lang.IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the parent is null
org.eclipse.swt.SWTException
-- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
- ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
-
-
Method Detail
-
checkStyle
private static int checkStyle(int style)
-
setRenderer
public void setRenderer(AbstractRenderer renderer)
Sets the renderer.- Parameters:
renderer
- the new renderer- Throws:
java.lang.IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the renderer is null
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver or the renderer has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
-
getRenderer
public AbstractRenderer getRenderer()
Returns the renderer.- Returns:
- the renderer
- Throws:
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
-
computeSize
public org.eclipse.swt.graphics.Point computeSize(int wHint, int hHint, boolean changed)
- Overrides:
computeSize
in classorg.eclipse.swt.widgets.Control
-
onDispose
private void onDispose()
-
onPaint
private void onPaint(org.eclipse.swt.graphics.GC gc)
-
computeItemYCoordinates
private void computeItemYCoordinates()
-
createItem
void createItem(PShelfItem item, int index)
-
removeItem
void removeItem(PShelfItem item)
-
openItem
private void openItem(PShelfItem item, boolean animation)
-
animateOpen
private void animateOpen(PShelfItem previousItem, PShelfItem newItem, boolean openFromBottom)
-
onResize
void onResize()
-
sizeClients
private void sizeClients()
-
computeItemHeight
void computeItemHeight()
-
getItem
public PShelfItem getItem(org.eclipse.swt.graphics.Point point)
Returns the item at the given location.- Parameters:
point
- location- Throws:
java.lang.IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the point is null
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver or the renderer has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
-
setSelection
public void setSelection(PShelfItem item)
Sets the receiver's selection to the given item.- Parameters:
item
- the item to select- Throws:
java.lang.IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the item is null
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
-
getSelection
public PShelfItem getSelection()
Returns thePShelfItem
that is currently selected in the receiver.- Returns:
- the currently selected item
- Throws:
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
-
getItems
public PShelfItem[] getItems()
Returns an array ofPShelfItem
s which are the items in the receiver.Note: This is not the actual structure used by the receiver to maintain its list of items, so modifying the array will not affect the receiver.
- Returns:
- the items in the receiver
- Throws:
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
-
addSelectionListener
public void addSelectionListener(org.eclipse.swt.events.SelectionListener listener)
Adds the listener to the collection of listeners who will be notified when the receiver's selection changes, by sending it one of the messages defined in theSelectionListener
interface.When
widgetSelected
is called, the item field of the event object is valid.widgetDefaultSelected
is not called.- Parameters:
listener
- the listener which should be notified- Throws:
java.lang.IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the listener is null
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
SelectionListener
,removeSelectionListener(org.eclipse.swt.events.SelectionListener)
,SelectionEvent
-
removeSelectionListener
public void removeSelectionListener(org.eclipse.swt.events.SelectionListener listener)
Removes the listener from the collection of listeners who will be notified when the receiver's selection changes.- Parameters:
listener
- the listener which should no longer be notified- Throws:
java.lang.IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the listener is null
org.eclipse.swt.SWTException
-- ERROR_WIDGET_DISPOSED - if the receiver has been disposed
- ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
- See Also:
SelectionListener
,addSelectionListener(org.eclipse.swt.events.SelectionListener)
-
removeAll
public void removeAll()
Removes all PShelfItems.
-
setAnimationSpeed
public void setAnimationSpeed(double animationSpeed)
Sets the speed of animation. This value indicates the relative growing/shrinking value for one step. Values between 0.0 and 1.0 are allowed.- Parameters:
animationSpeed
-- Since:
- 05.02.2016
-
setRedrawOnAmination
public void setRedrawOnAmination(boolean redrawOnAnimation)
Sets whether to redraw the items (previous and next item) when the open animation occours.- Parameters:
redrawOnAnimation
-- Since:
- 05.02.2016
-
-