use of bndtools.editor.project.RunFrameworkPart in project bndtools by bndtools.
the class ProjectRunPage method createFormContent.
@Override
protected void createFormContent(IManagedForm managedForm) {
managedForm.setInput(model);
FormToolkit tk = managedForm.getToolkit();
final ScrolledForm form = managedForm.getForm();
form.setText("Resolve/Run");
Central.onWorkspaceInit(new Success<Workspace, Void>() {
@Override
public Promise<Void> call(Promise<Workspace> resolved) throws Exception {
final Deferred<Void> completion = new Deferred<>();
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
try {
updateFormImage(form);
completion.resolve(null);
} catch (Exception e) {
completion.fail(e);
}
}
});
return completion.getPromise();
}
});
tk.decorateFormHeading(form.getForm());
form.getForm().addMessageHyperlinkListener(new MessageHyperlinkAdapter(getEditor()));
// Toolbar Actions
RunAction runAction = new RunAction(this, "run");
runAction.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Plugin.PLUGIN_ID, "icons/run.gif"));
runAction.setText("Run OSGi");
ActionContributionItem runContrib = new ActionContributionItem(runAction);
runContrib.setMode(ActionContributionItem.MODE_FORCE_TEXT);
form.getToolBarManager().add(runContrib);
RunAction debugAction = new RunAction(this, "debug");
debugAction.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Plugin.PLUGIN_ID, "icons/debug.gif"));
debugAction.setText("Debug OSGi");
ActionContributionItem debugContrib = new ActionContributionItem(debugAction);
debugContrib.setMode(ActionContributionItem.MODE_FORCE_TEXT);
form.getToolBarManager().add(debugContrib);
ExportAction exportAction = new ExportAction(getEditorSite().getShell(), getEditor(), model);
exportAction.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Plugin.PLUGIN_ID, "icons/run_export.png"));
exportAction.setText("Export");
ActionContributionItem exportContrib = new ActionContributionItem(exportAction);
exportContrib.setMode(ActionContributionItem.MODE_FORCE_TEXT);
if (exportAction.shouldEnable())
form.getToolBarManager().add(exportContrib);
form.getToolBarManager().update(true);
GridLayout gl;
GridData gd;
// Create Controls
final Composite body = form.getBody();
MDSashForm sashForm = new MDSashForm(body, SWT.HORIZONTAL, managedForm);
sashForm.setSashWidth(6);
tk.adapt(sashForm);
final Composite left = tk.createComposite(sashForm);
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
left.setLayoutData(gd);
gl = new GridLayout(1, true);
left.setLayout(gl);
final Composite right = tk.createComposite(sashForm);
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
right.setLayoutData(gd);
gl = new GridLayout(1, true);
right.setLayout(gl);
// First column
RepositorySelectionPart reposPart = new RepositorySelectionPart(getEditor(), left, tk, Section.TITLE_BAR | Section.TWISTIE);
managedForm.addPart(reposPart);
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
gd.widthHint = 50;
gd.heightHint = 50;
reposPart.getSection().setLayoutData(PageLayoutUtils.createCollapsed());
AvailableBundlesPart availableBundlesPart = new AvailableBundlesPart(left, tk, Section.TITLE_BAR | Section.EXPANDED);
managedForm.addPart(availableBundlesPart);
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
gd.widthHint = 50;
gd.heightHint = 50;
availableBundlesPart.getSection().setLayoutData(PageLayoutUtils.createExpanded());
RunFrameworkPart runFwkPart = new RunFrameworkPart(left, tk, Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED);
managedForm.addPart(runFwkPart);
gd = new GridData(SWT.FILL, SWT.FILL, true, false);
runFwkPart.getSection().setLayoutData(gd);
RunPropertiesPart runPropertiesPart = new RunPropertiesPart(left, tk, Section.TITLE_BAR | Section.TWISTIE);
managedForm.addPart(runPropertiesPart);
gd = new GridData(SWT.FILL, SWT.FILL, true, false);
runPropertiesPart.getSection().setLayoutData(gd);
// SECOND COLUMN
if (supportsResolve) {
RunRequirementsPart requirementsPart = new RunRequirementsPart(right, tk, Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED | Section.DESCRIPTION);
managedForm.addPart(requirementsPart);
requirementsPart.getSection().setLayoutData(PageLayoutUtils.createExpanded());
requirementsPart.getSection().addExpansionListener(new ResizeExpansionAdapter(requirementsPart.getSection()));
RunBlacklistPart blacklistPart = new RunBlacklistPart(right, tk, Section.TITLE_BAR | Section.TWISTIE | Section.COMPACT | Section.DESCRIPTION);
managedForm.addPart(blacklistPart);
blacklistPart.getSection().setLayoutData(PageLayoutUtils.createCollapsed());
blacklistPart.getSection().addExpansionListener(new ResizeExpansionAdapter(blacklistPart.getSection()));
RunBundlesPart runBundlesPart = new RunBundlesPart(right, tk, Section.TITLE_BAR | Section.TWISTIE);
managedForm.addPart(runBundlesPart);
runBundlesPart.getSection().setLayoutData(PageLayoutUtils.createCollapsed());
runBundlesPart.getSection().addExpansionListener(new ResizeExpansionAdapter(runBundlesPart.getSection()));
} else {
RunBundlesPart runBundlesPart = new RunBundlesPart(right, tk, Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED);
managedForm.addPart(runBundlesPart);
runBundlesPart.getSection().setLayoutData(PageLayoutUtils.createExpanded());
runBundlesPart.getSection().addExpansionListener(new ResizeExpansionAdapter(runBundlesPart.getSection()));
}
// Listeners
model.addPropertyChangeListener(BndEditModel.PROP_WORKSPACE, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
updateFormImage(form);
}
});
}
});
sashForm.setWeights(new int[] { 1, 1 });
sashForm.hookResizeListener();
body.setLayout(new FillLayout());
}
Aggregations