public void createControl()

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;
	}