Disable palette entry [message #124102] |
Wed, 24 March 2004 16:43 |
Eclipse User |
|
|
|
Originally posted by: phil.williams.toadmail.com
Is there a way to disable a CombinedTemplateCreationEntry within a GEF
palette. What I am looking for is someway to "grey out" a given tool so
that a user sees that a tool exists, but they can not select or use it
for one reason or another. Currently it looks like the only thing I can
do is call setVisible().
Thanks,
Phil
|
|
|
Re: Disable palette entry [message #124153 is a reply to message #124102] |
Wed, 24 March 2004 19:03 |
Pratik Shah Messages: 1077 Registered: July 2009 |
Senior Member |
|
|
It's not a good idea to call setVisible() for this purpose. While you
cannot disable the entry itself, you can certainly get the figure from the
edit part (ToolEntryEditPart) and disable it.
ToolEntryEditPart's figure is an InactiveToggleButton (inner class).
However, that figure has not been set up to behave properly when disabled.
Once you disable it, the user won't be able to click on it, but it won't
show proper feedback to indicate that it is disabled. So, you might have to
change that class a little bit to disable rollover, change foreground color,
etc. Below is an example of what it might look like. Of course, you can
also do this in a property change listener that you add to that figure.
You should open a feature request to have this supported in GEF.
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 {
setRolloverEnabled(false);
setBorder(null);
setForegroundColor(ColorConstants.gray);
}
}
}
"Phil Williams" <phil.williams@toadmail.com> wrote in message
news:c3sdis$74q$1@eclipse.org...
> Is there a way to disable a CombinedTemplateCreationEntry within a GEF
> palette. What I am looking for is someway to "grey out" a given tool so
> that a user sees that a tool exists, but they can not select or use it
> for one reason or another. Currently it looks like the only thing I can
> do is call setVisible().
>
> Thanks,
> Phil
|
|
|
Re: Disable palette entry [message #230715 is a reply to message #124153] |
Thu, 15 February 2007 12:03 |
Eclipse User |
|
|
|
Originally posted by: nicolas.bleyh.misys.com
Pratik Shah schrieb:
> It's not a good idea to call setVisible() for this purpose. While you
> cannot disable the entry itself, you can certainly get the figure from the
> edit part (ToolEntryEditPart) and disable it.
>
> ToolEntryEditPart's figure is an InactiveToggleButton (inner class).
> However, that figure has not been set up to behave properly when disabled.
> Once you disable it, the user won't be able to click on it, but it won't
> show proper feedback to indicate that it is disabled. So, you might have to
> change that class a little bit to disable rollover, change foreground color,
> etc. Below is an example of what it might look like. Of course, you can
> also do this in a property change listener that you add to that figure.
>
> You should open a feature request to have this supported in GEF.
>
>
> 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 {
> setRolloverEnabled(false);
> setBorder(null);
> setForegroundColor(ColorConstants.gray);
> }
> }
> }
>
>
> "Phil Williams" <phil.williams@toadmail.com> wrote in message
> news:c3sdis$74q$1@eclipse.org...
>> Is there a way to disable a CombinedTemplateCreationEntry within a GEF
>> palette. What I am looking for is someway to "grey out" a given tool so
>> that a user sees that a tool exists, but they can not select or use it
>> for one reason or another. Currently it looks like the only thing I can
>> do is call setVisible().
>>
>> Thanks,
>> Phil
>
>
And how do I get the ToolEntryEditPart from a CombinedTemplateCreationEntry?
Thanks,
Nick
|
|
|
Powered by
FUDForum. Page generated in 0.03837 seconds