use of org.eclipse.e4.ui.model.application.ui.menu.MItem in project ACS by ACS-Community.
the class PeriodicRefreshHandler method execute.
/**
* Starts a {@link NotifyServiceUpdateJob} with 10 seconds refresh period,
* which will notify the interested parts via the IEventBroker.
* <p>
* An alternative implementation could get parameter <code>@Active MPart part</code> injected
* and notify the part directly, without IEventBroker.
*/
@Execute
public void execute(MHandledItem handledItem) {
// sync menu item state
sharedIsSelected = handledItem.isSelected();
for (MItem menuItem : menuItemsToSync.values()) {
menuItem.setSelected(sharedIsSelected);
}
// start or stop the periodic refresh job
if (sharedIsSelected) {
if (job == null) {
// start periodic refreshes
job = new NotifyServiceUpdateJob(eventModel, sync, statusLineWriter, eventBroker, refreshDelaySeconds * 1000);
job.schedule();
System.out.println("Scheduled refresh job.");
} else {
System.out.println("Error: refresh job is already running!");
}
} else {
if (job != null) {
job.cancel();
job = null;
System.out.println("Cancelled refresh job.");
} else {
System.out.println("Error: refresh job is already cancelled!");
}
}
}
Aggregations