1 11 12 package org.eclipse.debug.internal.ui.actions.context; 13 14 import org.eclipse.jface.action.IAction; 15 import org.eclipse.jface.viewers.ISelection; 16 import org.eclipse.swt.widgets.Event; 17 import org.eclipse.ui.IActionDelegate2; 18 import org.eclipse.ui.IWorkbenchWindow; 19 import org.eclipse.ui.IWorkbenchWindowActionDelegate; 20 21 public abstract class AbstractDebugContextActionDelegate implements IWorkbenchWindowActionDelegate, IActionDelegate2 { 22 23 26 private AbstractDebugContextAction fDebugAction; 27 28 31 private IAction fWindowAction; 32 33 37 private boolean fInitialized = false; 38 39 public AbstractDebugContextActionDelegate() { 40 } 41 42 46 public void dispose() { 47 fDebugAction.dispose(); 48 49 } 50 51 55 public void init(IAction action) { 56 fWindowAction = action; 57 } 58 59 63 public void init(IWorkbenchWindow window) { 64 setWindow(window); 65 fDebugAction.init(window); 66 } 67 68 72 public synchronized void run(IAction action) { 73 if (!fInitialized) { 74 try { 75 wait(); 76 } catch (InterruptedException e) { 77 } 78 } 79 fDebugAction.run(); 80 } 81 82 83 87 public void runWithEvent(IAction action, Event event) { 88 run(action); 89 } 90 91 95 public void selectionChanged(IAction action, ISelection s) { 96 } 98 99 protected AbstractDebugContextAction getAction() { 100 return fDebugAction; 101 } 102 103 protected void setAction(AbstractDebugContextAction action) { 104 fDebugAction = action; 105 action.setDelegate(this); 106 } 107 108 protected IWorkbenchWindow getWindow() { 109 return fDebugAction.getWindow(); 110 } 111 112 protected void setWindow(IWorkbenchWindow window) { 113 fDebugAction.setWindow(window); 114 } 115 116 public synchronized void setEnabled(boolean enabled) { 117 if (!fInitialized) { 118 fInitialized = true; 119 notifyAll(); 120 } 121 fWindowAction.setEnabled(enabled); 122 } 123 124 protected IAction getWindowAction() 125 { 126 return fWindowAction; 127 } 128 129 130 } 131 | Popular Tags |