in org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/issue/IssueLabelAttributeEditor.java [202:254]
public void createControl(Composite parent, FormToolkit toolkit) {
this.toolkit = toolkit;
displayArea = toolkit.createComposite(parent);
displayArea.setBackgroundMode(SWT.INHERIT_FORCE);
GridDataFactory.fillDefaults().grab(true, true).applyTo(displayArea);
GridLayoutFactory.fillDefaults().numColumns(2).applyTo(displayArea);
final ToolBar toolbar = new ToolBar(displayArea, SWT.FLAT);
toolkit.adapt(toolbar, false, false);
final ToolItem addItem = new ToolItem(toolbar, SWT.DROP_DOWN);
addItem.setImage(GitHubImages.get(GitHubImages.GITHUB_ADD_OBJ));
addItem.setToolTipText(Messages.IssueLabelAttributeEditor_TooltipAddLabel);
MenuManager manager = new MenuManager();
manager.setRemoveAllWhenShown(true);
manager.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
manager.add(new NewLabelAction());
manager.add(new Separator());
List<String> labels = new LinkedList<>(getTaskAttribute()
.getOptions().values());
labels.removeAll(getTaskAttribute().getValues());
for (String label : labels)
manager.add(new LabelAction(label));
manager.update();
}
});
final Menu menu = manager.createContextMenu(displayArea);
addItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
Rectangle toolItemBounds = addItem.getBounds();
Point location = toolbar.toDisplay(toolItemBounds.x,
toolItemBounds.y + toolItemBounds.height);
menu.setLocation(location);
menu.setVisible(true);
}
});
labelsArea = toolkit.createComposite(displayArea);
labelsArea.setBackgroundMode(SWT.INHERIT_FORCE);
labelsArea.setBackground(null);
GridLayoutFactory.fillDefaults().numColumns(LABEL_COLUMNS)
.applyTo(labelsArea);
GridDataFactory.swtDefaults().grab(true, true).applyTo(labelsArea);
refreshLabels();
setControl(displayArea);
layout = true;
}