Disable palette entry [message #240231] |
Mon, 10 December 2007 13:55 |
Eclipse User |
|
|
|
Originally posted by: robert.moestl.joanneum.at
Hello guys!
I have already searched this newsgroup how to disable a palette entry.
Seemingly it was not possible in former versions of GEF. Is it planned
to implement this functionality in future releases?
Kind regards,
Robert
|
|
|
Re: Disable palette entry [message #240277 is a reply to message #240231] |
Thu, 13 December 2007 10:14 |
Eclipse User |
|
|
|
Originally posted by: lifesting.gmail.com
Robert Möstl wrote:
> Hello guys!
>
> I have already searched this newsgroup how to disable a palette entry.
> Seemingly it was not possible in former versions of GEF. Is it planned
> to implement this functionality in future releases?
>
> Kind regards,
> Robert
look into the ToolEntryEditPart, locate at the method createFigure,
you'll see this:
public IFigure createFigure() {
class InactiveToggleButton extends ToggleButton {
InactiveToggleButton(IFigure contents) {
super(contents);
setOpaque(false);
setEnabled(true);
}
public IFigure findMouseEventTargetAt(int x, int y) {
return null;
}
public IFigure getToolTip() {
return createToolTip();
}
public void setEnabled(boolean value) {
super.setEnabled(value);
if (isEnabled()) {
setRolloverEnabled(true);
setBorder(BORDER_TOGGLE);
setForegroundColor(null);
} else {
setBorder(null);
setRolloverEnabled(false);
setForegroundColor(ColorConstants.gray);
}
}
}
customLabel = new DetailedLabelFigure();
Clickable button = new InactiveToggleButton(customLabel);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
getPaletteViewer().setActiveTool(getToolEntry());
}
});
return button;
}
so you first need create a disabled figure for the toolentry, then
override the setActiveTool of PaletteViewer like below:
{
MyToolEntry tool = (MyToolEntry) getToolEntry();
if (!tool.isEnabled) return;
super.setActiveTool(tool)
}
Hope this help you!
|
|
|
Powered by
FUDForum. Page generated in 0.03057 seconds