subMenu.setRemoveAllWhenShown(true);
subMenu.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
UIJob loadJob = new UIJob("Loading data...") {
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
List<Node> versions = getFabric().getVersionsNode().getChildrenList();
for (final Node node : versions) {
if (node != null && node instanceof VersionNode) {
final VersionNode version = (VersionNode)node;
Action action = new Action(version.getVersionId(), versionImage) {
@Override
public void run() {
getContainer().setVersion(version.getVersion());
getFabric().getVersionsNode().refresh();
}
};
if (matches(version.getVersion())) {
action.setEnabled(false);
}
subMenu.add(action);
}
}
subMenu.update(true);
return Status.OK_STATUS;
}
};
loadJob.schedule();
subMenu.setVisible(true);
}
});
Action startStopAction;