Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 196801 Details for
Bug 325768
'Toggle Mark Occurrences' tool bar button not in enabled state
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Praveen's patch v02
bug325768-v02.txt (text/plain), 5.78 KB, created by
Paul Webster
on 2011-05-27 15:06:52 EDT
(
hide
)
Description:
Praveen's patch v02
Filename:
MIME Type:
Creator:
Paul Webster
Created:
2011-05-27 15:06:52 EDT
Size:
5.78 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.e4.ui.workbench.renderers.swt >Index: src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java >=================================================================== >RCS file: /cvsroot/eclipse/e4/org.eclipse.e4.ui/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java,v >retrieving revision 1.9 >diff -u -r1.9 HandledContributionItem.java >--- src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java 26 May 2011 18:21:57 -0000 1.9 >+++ src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java 27 May 2011 18:59:52 -0000 >@@ -69,9 +69,7 @@ > import org.eclipse.swt.widgets.Widget; > > public class HandledContributionItem extends ContributionItem { >- /** >- * >- */ >+ private static final String DISPOSABLE_CHECK = "IDisposable"; //$NON-NLS-1$ > private static final String HCI_STATIC_CONTEXT = "HCI-staticContext"; //$NON-NLS-1$ > private MHandledItem model; > private Widget widget; >@@ -217,6 +215,8 @@ > } > item.setData(this); > >+ hookCheckListener(); >+ > item.addListener(SWT.Dispose, getItemListener()); > item.addListener(SWT.Selection, getItemListener()); > item.addListener(SWT.DefaultSelection, getItemListener()); >@@ -267,6 +267,37 @@ > updateIcons(); > } > >+ private void hookCheckListener() { >+ if (model.getType() != ItemType.CHECK) { >+ return; >+ } >+ Object obj = model.getTransientData().get(ItemType.CHECK.toString()); >+ if (obj instanceof IContextFunction) { >+ IEclipseContext context = getContext(model); >+ IContextFunction func = (IContextFunction) obj; >+ try { >+ context.set(MHandledItem.class, model); >+ obj = func.compute(context); >+ if (obj != null) { >+ model.getTransientData().put(DISPOSABLE_CHECK, obj); >+ } >+ } finally { >+ context.remove(MHandledItem.class); >+ } >+ } >+ } >+ >+ private void unhookCheckListener() { >+ if (model.getType() != ItemType.CHECK) { >+ return; >+ } >+ final Object obj = model.getTransientData().remove(DISPOSABLE_CHECK); >+ if (obj == null) { >+ return; >+ } >+ ((Runnable) obj).run(); >+ } >+ > private void updateVisible() { > setVisible((model).isVisible()); > final IContributionManager parent = getParent(); >@@ -459,6 +490,7 @@ > > private void handleWidgetDispose(Event event) { > if (event.widget == widget) { >+ unhookCheckListener(); > widget.removeListener(SWT.Selection, getItemListener()); > widget.removeListener(SWT.Dispose, getItemListener()); > widget.removeListener(SWT.DefaultSelection, getItemListener()); >#P org.eclipse.ui.workbench >Index: Eclipse UI/org/eclipse/ui/internal/menus/MenuHelper.java >=================================================================== >RCS file: /cvsroot/eclipse/e4/org.eclipse.e4.compatibility/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/menus/MenuHelper.java,v >retrieving revision 1.24 >diff -u -r1.24 MenuHelper.java >--- Eclipse UI/org/eclipse/ui/internal/menus/MenuHelper.java 17 May 2011 19:01:36 -0000 1.24 >+++ Eclipse UI/org/eclipse/ui/internal/menus/MenuHelper.java 27 May 2011 18:59:52 -0000 >@@ -43,6 +43,7 @@ > import org.eclipse.e4.ui.model.application.ui.menu.ItemType; > import org.eclipse.e4.ui.model.application.ui.menu.MDirectMenuItem; > import org.eclipse.e4.ui.model.application.ui.menu.MDirectToolItem; >+import org.eclipse.e4.ui.model.application.ui.menu.MHandledItem; > import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem; > import org.eclipse.e4.ui.model.application.ui.menu.MHandledToolItem; > import org.eclipse.e4.ui.model.application.ui.menu.MMenu; >@@ -58,6 +59,8 @@ > import org.eclipse.jface.action.IMenuCreator; > import org.eclipse.jface.action.MenuManager; > import org.eclipse.jface.resource.ImageDescriptor; >+import org.eclipse.jface.util.IPropertyChangeListener; >+import org.eclipse.jface.util.PropertyChangeEvent; > import org.eclipse.swt.widgets.Control; > import org.eclipse.swt.widgets.Menu; > import org.eclipse.ui.IActionDelegate; >@@ -475,6 +478,52 @@ > item.setType(ItemType.PUSH); > } else if (IWorkbenchRegistryConstants.STYLE_TOGGLE.equals(style)) { > item.setType(ItemType.CHECK); >+ IContextFunction generator = new ContextFunction() { >+ private ActionDescriptor descriptor = null; >+ >+ private ActionDescriptor getDescriptor(IWorkbenchWindow window) { >+ if (descriptor == null) { >+ descriptor = new ActionDescriptor(element, ActionDescriptor.T_WORKBENCH, >+ window); >+ } >+ return descriptor; >+ } >+ >+ @Override >+ public Object compute(IEclipseContext context) { >+ IWorkbenchWindow window = context.get(IWorkbenchWindow.class); >+ if (window == null) { >+ return null; >+ } >+ final MHandledItem model = context.get(MHandledItem.class); >+ if (model == null) { >+ return null; >+ } >+ ActionDescriptor desc = getDescriptor(window); >+ final IAction action = desc.getAction(); >+ final IPropertyChangeListener propListener = new IPropertyChangeListener() { >+ public void propertyChange(PropertyChangeEvent event) { >+ if (IAction.CHECKED.equals(event.getProperty())) { >+ boolean checked = false; >+ if (event.getNewValue() instanceof Boolean) { >+ checked = ((Boolean) event.getNewValue()).booleanValue(); >+ } >+ model.setSelected(checked); >+ } >+ } >+ }; >+ action.addPropertyChangeListener(propListener); >+ Runnable obj = new Runnable() { >+ @Execute >+ public void run() { >+ action.removePropertyChangeListener(propListener); >+ } >+ }; >+ model.setSelected(action.isChecked()); >+ return obj; >+ } >+ }; >+ item.getTransientData().put(ItemType.CHECK.toString(), generator); > } else if (IWorkbenchRegistryConstants.STYLE_RADIO.equals(style)) { > item.setType(ItemType.RADIO); > } else if (IWorkbenchRegistryConstants.STYLE_PULLDOWN.equals(style)) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 325768
:
196446
| 196801