Class PaletteEntryFactory
- java.lang.Object
-
- org.eclipse.gef.ui.palette.customize.PaletteEntryFactory
-
- Direct Known Subclasses:
PaletteContainerFactory
,PaletteSeparatorFactory
,PaletteStackFactory
public abstract class PaletteEntryFactory extends java.lang.Object
A PaletteEntryFactory creates certain type ofPaletteEntries
.This class only creates
PaletteEntries
inPaletteContainers
and not directly in theroot
. It is recommended that sub-classes not do that either.To keep palette customization consistent across different types of editors, it is recommended that a new entry be created after the currently selected entry. If the new entry needs to be created inside the currently selected entry (i.e., if the currently selected entry is a
PaletteContainer
), it should be added as the last child. Look atdetermineContainerForNewEntry(PaletteEntry)
anddetermineIndexForNewEntry(PaletteContainer, PaletteEntry)
in this class andPaletteContainerFactory
to see what the general guidelines are for creating containers and leaf entries.- See Also:
PaletteCustomizer
,PaletteCustomizerDialog
-
-
Constructor Summary
Constructors Constructor Description PaletteEntryFactory()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
canCreate(PaletteEntry selected)
This method is called by thePaletteCustomizerDialog
to determine whether to enable or disable this action on the toolbar and the context menu.protected abstract PaletteEntry
createNewEntry(Shell shell)
Create the PaletteEntryPaletteEntry
createNewEntry(Shell shell, PaletteEntry selected)
This method is called when a new palette entry of the type supported by thisPaletteEntryFactory
is to be created.protected PaletteContainer
determineContainerForNewEntry(PaletteEntry selected)
Given the current selection, this method determines the parent for the new entry to be created.protected int
determineIndexForNewEntry(PaletteContainer c, PaletteEntry selected)
Calculates the index at which the new entry is to be created, given the current selection.protected java.lang.Object
determineTypeForNewEntry(PaletteEntry selected)
Given the current selection, this method determines the type of the new entry to be created.ImageDescriptor
getImageDescriptor()
java.lang.String
getLabel()
void
setImageDescriptor(ImageDescriptor imgDesc)
Sets theImageDescriptor
used to create the image to represent this factoryvoid
setLabel(java.lang.String newLabel)
Sets this factory's name.
-
-
-
Method Detail
-
createNewEntry
public PaletteEntry createNewEntry(Shell shell, PaletteEntry selected)
This method is called when a new palette entry of the type supported by thisPaletteEntryFactory
is to be created.- Parameters:
shell
- TheShell
of thePaletteCustomizerDialog
selected
- ThePaletteEntry
that was selected in the outline when this action was launched. Will never benull
.- Returns:
- PaletteEntry The newly created
PaletteEntry
-
createNewEntry
protected abstract PaletteEntry createNewEntry(Shell shell)
Create the PaletteEntry- Parameters:
shell
- TheShell
of thePaletteCustomizerDialog
; it can be used to create another warning or information dialog.- Returns:
- The newly created entry
-
canCreate
public boolean canCreate(PaletteEntry selected)
This method is called by thePaletteCustomizerDialog
to determine whether to enable or disable this action on the toolbar and the context menu.This default implementation allows the creation of a new entry only in
PaletteContainer
s with the following user permission:PERMISSION_FULL_MODIFICATION
- Parameters:
selected
- The selectedPaletteEntry
(Will never benull
)- Returns:
true
if, given the current selection, thisPaletteEntryFactory
can create a newPaletteEntry
-
determineContainerForNewEntry
protected PaletteContainer determineContainerForNewEntry(PaletteEntry selected)
Given the current selection, this method determines the parent for the new entry to be created.Sub-classes may override this method.
- Parameters:
selected
- The selected entry- Returns:
- The parent of the new entry to be created
-
determineTypeForNewEntry
protected java.lang.Object determineTypeForNewEntry(PaletteEntry selected)
Given the current selection, this method determines the type of the new entry to be created.Sub-classes may override this method.
- Parameters:
selected
- The selected entry- Returns:
- The type of the new entry to be created
-
determineIndexForNewEntry
protected int determineIndexForNewEntry(PaletteContainer c, PaletteEntry selected)
Calculates the index at which the new entry is to be created, given the current selection.Sub-classes may override this method.
- Parameters:
c
- The parent containerselected
- The selected entry- Returns:
- the index at which the new entry should be added in the given container (-1 indicates add at the end)
-
getImageDescriptor
public ImageDescriptor getImageDescriptor()
- Returns:
ImageDescriptor
used to create the image to represent this factory
-
getLabel
public java.lang.String getLabel()
- Returns:
- This factory's name
-
setImageDescriptor
public void setImageDescriptor(ImageDescriptor imgDesc)
Sets theImageDescriptor
used to create the image to represent this factory- Parameters:
imgDesc
- The new ImageDescriptor
-
setLabel
public void setLabel(java.lang.String newLabel)
Sets this factory's name. It will be used to list this factory in the toolbar, context menu, etc.- Parameters:
newLabel
- The new name for this factory
-
-