Class WorkbenchPartReference
- All Implemented Interfaces:
ISizeProvider
,IWorkbenchPartReference
- Direct Known Subclasses:
EditorReference
,ViewReference
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Internal property ID: Indicates that the part has an active child and the active child has changed.static final int
Internal property ID: Indicates that the underlying part was destroyedstatic final int
Internal property ID: Indicates that changed in the min / max state has changedstatic final int
Internal property ID: Indicates that the underlying part was createdstatic final int
Internal property ID: Indicates that the result of IEditorReference.isPinned()static final int
Internal property ID: Indicates that the result of getVisible() has changedstatic final int
Internal property ID: Indicates that the result of isZoomed() has changedprotected IWorkbenchPart
static int
State constant indicating that the part has been createdstatic int
State constant indicating that the part is in the process of being createdstatic int
State constant indicating that the reference has been disposed (the reference shouldn't be used anymore)static int
State constant indicating that the part is not created yetFields inherited from interface org.eclipse.ui.ISizeProvider
INFINITE
-
Constructor Summary
ConstructorDescriptionWorkbenchPartReference
(IEclipseContext windowContext, IWorkbenchPage page, MPart part) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a listener for changes in the arbitrary properties set.void
addPropertyListener
(IPropertyListener listener) protected void
int
computePreferredSize
(boolean width, int availableParallel, int availablePerpendicular, int preferredResult) Returns the best size for this part, given the available width and height and the workbench's preferred size for the part.protected String
Computes a new title for the part.abstract IWorkbenchPart
createErrorPart
(IStatus status) abstract IWorkbenchPart
protected void
createPartProperties
(IWorkbenchPart3 workbenchPart) protected void
protected void
fireInternalPropertyChange
(int id) protected void
protected void
firePropertyChange
(int id) Returns the content description for the part (or the empty string if none)getId()
getModel()
getPage()
final PartPane
getPane()
final IWorkbenchPart
getPart
(boolean restore) Returns the IWorkbenchPart referenced by this object.Returns the name of the part, as it should be shown in tabs.getPartProperty
(String key) Return an arbitrary property from the reference.protected final String
Returns the unmodified title for the part, or the empty string if noneabstract PartSite
getSite()
int
getSizeFlags
(boolean width) Returns a bitwise combination of flags indicating how and when computePreferredSize should be used.getTitle()
final Image
abstract void
initialize
(IWorkbenchPart part) void
boolean
isDirty()
Returns whether the part is dirty (i.e. has unsaved changes).boolean
boolean
isPinned()
protected void
partPropertyChanged
(Object source, int propId) protected void
protected void
Releases any references maintained by this part reference when its actual part becomes known (not called when it is disposed).void
Remove a listener for changes in the arbitrary properties set.void
removePropertyListener
(IPropertyListener listener) void
setPage
(IWorkbenchPage newPage) void
setPinned
(boolean newPinned) void
void
-
Field Details
-
INTERNAL_PROPERTY_OPENED
public static final int INTERNAL_PROPERTY_OPENEDInternal property ID: Indicates that the underlying part was created- See Also:
-
INTERNAL_PROPERTY_CLOSED
public static final int INTERNAL_PROPERTY_CLOSEDInternal property ID: Indicates that the underlying part was destroyed- See Also:
-
INTERNAL_PROPERTY_PINNED
public static final int INTERNAL_PROPERTY_PINNEDInternal property ID: Indicates that the result of IEditorReference.isPinned()- See Also:
-
INTERNAL_PROPERTY_VISIBLE
public static final int INTERNAL_PROPERTY_VISIBLEInternal property ID: Indicates that the result of getVisible() has changed- See Also:
-
INTERNAL_PROPERTY_ZOOMED
public static final int INTERNAL_PROPERTY_ZOOMEDInternal property ID: Indicates that the result of isZoomed() has changed- See Also:
-
INTERNAL_PROPERTY_ACTIVE_CHILD_CHANGED
public static final int INTERNAL_PROPERTY_ACTIVE_CHILD_CHANGEDInternal property ID: Indicates that the part has an active child and the active child has changed. (fired by PartStack)- See Also:
-
INTERNAL_PROPERTY_MAXIMIZED
public static final int INTERNAL_PROPERTY_MAXIMIZEDInternal property ID: Indicates that changed in the min / max state has changed- See Also:
-
STATE_LAZY
public static int STATE_LAZYState constant indicating that the part is not created yet -
STATE_CREATION_IN_PROGRESS
public static int STATE_CREATION_IN_PROGRESSState constant indicating that the part is in the process of being created -
STATE_CREATED
public static int STATE_CREATEDState constant indicating that the part has been created -
STATE_DISPOSED
public static int STATE_DISPOSEDState constant indicating that the reference has been disposed (the reference shouldn't be used anymore) -
legacyPart
-
propertyCache
-
-
Constructor Details
-
WorkbenchPartReference
-
-
Method Details
-
subscribe
public void subscribe() -
unsubscribe
public void unsubscribe() -
isDisposed
public boolean isDisposed() -
checkReference
protected void checkReference() -
getModel
-
partPropertyChanged
- Parameters:
source
- used for IPropertyListener
-
partPropertyChanged
-
releaseReferences
protected void releaseReferences()Releases any references maintained by this part reference when its actual part becomes known (not called when it is disposed). -
fireInternalPropertyChange
protected void fireInternalPropertyChange(int id) -
addPropertyListener
- Specified by:
addPropertyListener
in interfaceIWorkbenchPartReference
- Parameters:
listener
- the property listener- See Also:
-
removePropertyListener
- Specified by:
removePropertyListener
in interfaceIWorkbenchPartReference
- Parameters:
listener
- the poperty listener to remove- See Also:
-
getTitle
- Specified by:
getTitle
in interfaceIWorkbenchPartReference
- Returns:
- the title of the part
- See Also:
-
getTitleToolTip
- Specified by:
getTitleToolTip
in interfaceIWorkbenchPartReference
- Returns:
- the title tooltip
- See Also:
-
getId
- Specified by:
getId
in interfaceIWorkbenchPartReference
- Returns:
- the ID of the part
- See Also:
-
computeTitle
Computes a new title for the part. Subclasses may override to change the default behavior.- Returns:
- the title for the part
-
getRawTitle
Returns the unmodified title for the part, or the empty string if none- Returns:
- the unmodified title, as set by the IWorkbenchPart. Returns the empty string if none.
-
getTitleImage
- Specified by:
getTitleImage
in interfaceIWorkbenchPartReference
- Returns:
- the title image of the part
- See Also:
-
firePropertyChange
protected void firePropertyChange(int id) -
getSite
-
initialize
- Throws:
PartInitException
-
getPart
Description copied from interface:IWorkbenchPartReference
Returns the IWorkbenchPart referenced by this object.- Specified by:
getPart
in interfaceIWorkbenchPartReference
- Parameters:
restore
- tries to restore the part iftrue
.- Returns:
- the part, or
null
if the part was not instantiated or it failed to be restored.
-
createPart
- Throws:
PartInitException
-
createErrorPart
-
doDisposeNestedParts
protected void doDisposeNestedParts() -
setPinned
public void setPinned(boolean newPinned) -
isPinned
public boolean isPinned() -
getPartProperty
Description copied from interface:IWorkbenchPartReference
Return an arbitrary property from the reference. If the part has been instantiated, it just delegates to the part. If not, then it looks in its own cache of properties. If the property is not available or the part has never been instantiated, it can returnnull
.- Specified by:
getPartProperty
in interfaceIWorkbenchPartReference
- Parameters:
key
- The property to return. Must not benull
.- Returns:
- The String property, or
null
.
-
addPartPropertyListener
Description copied from interface:IWorkbenchPartReference
Add a listener for changes in the arbitrary properties set.- Specified by:
addPartPropertyListener
in interfaceIWorkbenchPartReference
- Parameters:
listener
- Must not benull
.
-
removePartPropertyListener
Description copied from interface:IWorkbenchPartReference
Remove a listener for changes in the arbitrary properties set.- Specified by:
removePartPropertyListener
in interfaceIWorkbenchPartReference
- Parameters:
listener
- Must not benull
.
-
firePartPropertyChange
-
createPartProperties
-
computePreferredSize
public int computePreferredSize(boolean width, int availableParallel, int availablePerpendicular, int preferredResult) Description copied from interface:ISizeProvider
Returns the best size for this part, given the available width and height and the workbench's preferred size for the part. Parts can overload this to enforce a minimum size, maximum size, or a quantized set of preferred sizes. If width == true, this method computes a width in pixels. If width == false, this method computes a height. availableParallel and availablePerpendicular contain the space available, and preferredParallel contains the preferred result.
This method returns an answer that is less than or equal to availableParallel and as close to preferredParallel as possible. Return values larger than availableParallel will be truncated.
Most presentations will define a minimum size at all times, and a maximum size that only applies when maximized.
The getSizeFlags method controls how frequently this method will be called and what information will be available when it is. Any subclass that specializes this method should also specialize getSizeFlags. computePreferredSize(width, INFINITE, someSize, 0) returns the minimum size of the control (if any). computePreferredSize(width, INFINITE, someSize, INFINITE) returns the maximum size of the control.
Examples:
- To maintain a constant size of 100x300 pixels: {return width ? 100 : 300}, getSizeFlags(boolean) must return SWT.MIN | SWT.MAX
- To grow without constraints: {return preferredResult;}, getSizeFlags(boolean) must return 0.
- To enforce a width that is always a multiple of 100 pixels, to a minimum
of 100 pixels:
{ if (width && preferredResult != INFINITE) { int result = preferredResult - ((preferredResult + 50) % 100) + 50; result = Math.max(100, Math.min(result, availableParallel - (availableParallel % 100))); return result; } return preferredResult; }
- To maintain a minimum area of 100000 pixels:
{return availablePerpendicular < 100 ? 1000 : 100000 / availablePerpendicular;}
getSizeFlags(boolean width) must return SWT.WRAP | SWT.MIN;
- Specified by:
computePreferredSize
in interfaceISizeProvider
- Parameters:
width
- indicates whether a width (iftrue
) or a height (iffalse
) is being computedavailableParallel
- available space. This is a width (pixels) if width == true, and a height (pixels) if width == false. A return value larger than this will be ignored.availablePerpendicular
- available space perpendicular to the direction being measured or INFINITE if unbounded (pixels). This is a height if width == true, or a height if width == false. Implementations will generally ignore this argument unless they contain wrapping widgets. Note this argument will only contain meaningful information if the part returns the SWT.WRAP flag from getSizeFlags(width)preferredResult
- preferred size of the control (pixels, <= availableParallel). Set to INFINITE if unknown or unbounded.- Returns:
- returns the preferred size of the control (pixels). This is a width if width == true or a height if width == false. Callers are responsible for rounding down the return value if it is larger than availableParallel. If availableParallel is INFINITE, then a return value of INFINITE is permitted, indicating that the preferred size of the control is unbounded.
- See Also:
-
getSizeFlags
public int getSizeFlags(boolean width) Description copied from interface:ISizeProvider
Returns a bitwise combination of flags indicating how and when computePreferredSize should be used. When called with horizontal=true, this indicates the usage of computePreferredSize(true,...) for computing widths. When called with horizontal=false, this indicates the usage of computeSize(false,...) for computing heights. These flags are used for optimization. Each flag gives the part more control over its preferred size but slows down the layout algorithm. Parts should return the minimum set of flags necessary to specify their constraints.If the return value of this function ever changes, the part must call
flushLayout
before the changes will take effect.- SWT.MAX: The part has a maximum size that will be returned by computePreferredSize(horizontal, INFINITE, someWidth, INFINITE)
- SWT.MIN: The part has a minimum size that will be returned by computePreferredSize(horizontal, INFINITE, someWidth, 0)
- SWT.WRAP: Indicates that computePreferredSize makes use of the availablePerpendicular argument. If this flag is not specified, then the third argument to computePreferredSize will always be set to INFINITE. The perpendicular size is expensive to compute, and it is usually only used for wrapping parts.
- SWT.FILL: The part may not return the preferred size verbatim when computePreferredSize is is given a value between the minimum and maximum sizes. This is commonly used if the part wants to use a set of predetermined sizes instead of using the workbench-provided size. For example, computePreferredSize(horizontal, availableSpace, someWidth, preferredSize) may return the nearest predetermined size. Note that this flag should be used sparingly. It can prevent layout caching and cause the workbench layout algorithm to degrade to exponential worst-case runtime. If this flag is omitted, then computePreferredSize may be used to compute the minimum and maximum sizes, but not for anything in between.
- Specified by:
getSizeFlags
in interfaceISizeProvider
- Parameters:
width
- a value of true or false determines whether the return value applies when computing widths or heights respectively. That is, getSizeFlags(true) will be used when calling computePreferredSize(true,...)- Returns:
- any bitwise combination of SWT.MAX, SWT.MIN, SWT.WRAP, and SWT.FILL
-
getPage
- Specified by:
getPage
in interfaceIWorkbenchPartReference
- Returns:
- the workbench page that contains this part
-
setPage
-
getPartName
Description copied from interface:IWorkbenchPartReference
Returns the name of the part, as it should be shown in tabs.- Specified by:
getPartName
in interfaceIWorkbenchPartReference
- Returns:
- the part name
-
getContentDescription
Description copied from interface:IWorkbenchPartReference
Returns the content description for the part (or the empty string if none)- Specified by:
getContentDescription
in interfaceIWorkbenchPartReference
- Returns:
- the content description for the part
-
isDirty
public boolean isDirty()Description copied from interface:IWorkbenchPartReference
Returns whether the part is dirty (i.e. has unsaved changes).- Specified by:
isDirty
in interfaceIWorkbenchPartReference
- Returns:
true
if the part is dirty,false
otherwise
-
invalidate
public void invalidate() -
getPane
-