diff options
Diffstat (limited to 'dsf/org.eclipse.cdt.examples.dsf/src/org/eclipse/cdt/examples/dsf/timers/AlarmsVMNode.java')
-rw-r--r-- | dsf/org.eclipse.cdt.examples.dsf/src/org/eclipse/cdt/examples/dsf/timers/AlarmsVMNode.java | 140 |
1 files changed, 66 insertions, 74 deletions
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src/org/eclipse/cdt/examples/dsf/timers/AlarmsVMNode.java b/dsf/org.eclipse.cdt.examples.dsf/src/org/eclipse/cdt/examples/dsf/timers/AlarmsVMNode.java index 6617b6ed9d9..8a19832188a 100644 --- a/dsf/org.eclipse.cdt.examples.dsf/src/org/eclipse/cdt/examples/dsf/timers/AlarmsVMNode.java +++ b/dsf/org.eclipse.cdt.examples.dsf/src/org/eclipse/cdt/examples/dsf/timers/AlarmsVMNode.java @@ -7,7 +7,7 @@ * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 - * + * * Contributors: * Wind River Systems - initial API and implementation *******************************************************************************/ @@ -30,84 +30,76 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate; import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta; /** - * View model node that determines whether an "alarm triggered" indicator is - * shown in the tree. This indicator is only shown if a given alarm is + * View model node that determines whether an "alarm triggered" indicator is + * shown in the tree. This indicator is only shown if a given alarm is * triggered for a given timer. - * + * * @see AlarmDMContext */ @SuppressWarnings("restriction") -class AlarmsVMNode extends AbstractDMVMNode - implements IElementLabelProvider -{ - public AlarmsVMNode(AbstractDMVMProvider provider, DsfSession session) { - super(provider, session, AlarmDMContext.class); - } - - @Override - public String toString() { - return "AlarmsVMNode(" + getSession().getId() + ")"; - } - +class AlarmsVMNode extends AbstractDMVMNode implements IElementLabelProvider { + public AlarmsVMNode(AbstractDMVMProvider provider, DsfSession session) { + super(provider, session, AlarmDMContext.class); + } + + @Override + public String toString() { + return "AlarmsVMNode(" + getSession().getId() + ")"; + } + + @Override + protected void updateElementsInSessionThread(final IChildrenUpdate update) { + // Check that the service is available and find the trigger and timer contexts. + // If not found, fail. + AlarmService alarmService = getServicesTracker().getService(AlarmService.class, null); + TriggerDMContext alarmDmc = findDmcInPath(update.getViewerInput(), update.getElementPath(), + TriggerDMContext.class); + TimerDMContext timerDmc = findDmcInPath(update.getViewerInput(), update.getElementPath(), TimerDMContext.class); + if (alarmService == null || alarmDmc == null || timerDmc == null) { + update.setStatus( + new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Required elements not found in path")); + update.done(); + return; + } + + // Get the alarm context then check the triggered value. + final AlarmDMContext alarmStatusDmc = alarmService.getAlarm(alarmDmc, timerDmc); + boolean triggered = alarmService.isAlarmTriggered(alarmStatusDmc); + + // Only return the alarm in list of elements if it is triggered. + if (triggered) { + update.setChild(createVMContext(alarmStatusDmc), 0); + } + update.done(); + } - @Override - protected void updateElementsInSessionThread(final IChildrenUpdate update) { - // Check that the service is available and find the trigger and timer contexts. - // If not found, fail. - AlarmService alarmService = getServicesTracker().getService(AlarmService.class, null); - TriggerDMContext alarmDmc = findDmcInPath( - update.getViewerInput(), update.getElementPath(), TriggerDMContext.class); - TimerDMContext timerDmc = findDmcInPath( - update.getViewerInput(), update.getElementPath(), TimerDMContext.class); - if (alarmService == null || alarmDmc == null || timerDmc == null) { - update.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Required elements not found in path")); - update.done(); - return; - } - - // Get the alarm context then check the triggered value. - final AlarmDMContext alarmStatusDmc = alarmService.getAlarm(alarmDmc, timerDmc); - boolean triggered = alarmService.isAlarmTriggered(alarmStatusDmc); - - // Only return the alarm in list of elements if it is triggered. - if (triggered) { - update.setChild(createVMContext(alarmStatusDmc), 0); - } - update.done(); - } + @Override + public void update(ILabelUpdate[] updates) { + for (ILabelUpdate update : updates) { + update.setLabel("ALARM TRIGGERED", 0); + update.setImageDescriptor(DsfExamplesPlugin.getDefault().getImageRegistry() + .getDescriptor(DsfExamplesPlugin.IMG_ALARM_TRIGGERED), 0); + update.done(); + } + } - @Override - public void update(ILabelUpdate[] updates) { - for (ILabelUpdate update : updates) { - update.setLabel("ALARM TRIGGERED", 0); - update.setImageDescriptor( - DsfExamplesPlugin.getDefault().getImageRegistry().getDescriptor( - DsfExamplesPlugin.IMG_ALARM_TRIGGERED), - 0); - update.done(); - } - } - - - @Override - public int getDeltaFlags(Object e) { - if (e instanceof AlarmService.AlarmTriggeredDMEvent) { - return IModelDelta.ADDED | IModelDelta.SELECT | IModelDelta.EXPAND; - } - return IModelDelta.NO_CHANGE; - } + @Override + public int getDeltaFlags(Object e) { + if (e instanceof AlarmService.AlarmTriggeredDMEvent) { + return IModelDelta.ADDED | IModelDelta.SELECT | IModelDelta.EXPAND; + } + return IModelDelta.NO_CHANGE; + } - @Override - public void buildDelta(Object e, VMDelta parentDelta, int nodeOffset, RequestMonitor requestMonitor) { - // The alarm element is added when and selected upon a triggered event. - // Parent element is also expanded allow the alarm to be selected. - if (e instanceof AlarmService.AlarmTriggeredDMEvent) { - parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.EXPAND); - parentDelta.addNode( - createVMContext( ((AlarmService.AlarmTriggeredDMEvent)e).getDMContext() ), - 0, - IModelDelta.ADDED | IModelDelta.SELECT); - } - requestMonitor.done(); - } + @Override + public void buildDelta(Object e, VMDelta parentDelta, int nodeOffset, RequestMonitor requestMonitor) { + // The alarm element is added when and selected upon a triggered event. + // Parent element is also expanded allow the alarm to be selected. + if (e instanceof AlarmService.AlarmTriggeredDMEvent) { + parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.EXPAND); + parentDelta.addNode(createVMContext(((AlarmService.AlarmTriggeredDMEvent) e).getDMContext()), 0, + IModelDelta.ADDED | IModelDelta.SELECT); + } + requestMonitor.done(); + } } |