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.ObjectA PaletteEntryFactory creates certain type ofPaletteEntries.This class only creates
PaletteEntriesinPaletteContainersand 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 andPaletteContainerFactoryto 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 booleancanCreate(PaletteEntry selected)This method is called by thePaletteCustomizerDialogto determine whether to enable or disable this action on the toolbar and the context menu.protected abstract PaletteEntrycreateNewEntry(Shell shell)Create the PaletteEntryPaletteEntrycreateNewEntry(Shell shell, PaletteEntry selected)This method is called when a new palette entry of the type supported by thisPaletteEntryFactoryis to be created.protected PaletteContainerdetermineContainerForNewEntry(PaletteEntry selected)Given the current selection, this method determines the parent for the new entry to be created.protected intdetermineIndexForNewEntry(PaletteContainer c, PaletteEntry selected)Calculates the index at which the new entry is to be created, given the current selection.protected java.lang.ObjectdetermineTypeForNewEntry(PaletteEntry selected)Given the current selection, this method determines the type of the new entry to be created.ImageDescriptorgetImageDescriptor()java.lang.StringgetLabel()voidsetImageDescriptor(ImageDescriptor imgDesc)Sets theImageDescriptorused to create the image to represent this factoryvoidsetLabel(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 thisPaletteEntryFactoryis to be created.- Parameters:
shell- TheShellof thePaletteCustomizerDialogselected- ThePaletteEntrythat 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- TheShellof 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 thePaletteCustomizerDialogto 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
PaletteContainers with the following user permission:PERMISSION_FULL_MODIFICATION- Parameters:
selected- The selectedPaletteEntry(Will never benull)- Returns:
trueif, given the current selection, thisPaletteEntryFactorycan 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:
ImageDescriptorused 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 theImageDescriptorused 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
-
-