private void doNewButtonPressed() { Object newElement = fCreateTargetQuery.getCreatedTarget(fDestination); if (newElement != null) { TreeViewer viewer = getTreeViewer(); ITreeContentProvider contentProvider = (ITreeContentProvider) viewer.getContentProvider(); viewer.refresh(contentProvider.getParent(newElement)); viewer.setSelection(new StructuredSelection(newElement), true); viewer.getTree().setFocus(); } }
@Override protected Control addLabel(Composite parent) { if (fCreateTargetQuery != null) { Composite firstLine = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(2, false); layout.marginHeight = layout.marginWidth = 0; firstLine.setLayout(layout); firstLine.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Control label = super.addLabel(firstLine); label.addTraverseListener( new TraverseListener() { @Override public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_MNEMONIC && e.doit) { e.detail = SWT.TRAVERSE_NONE; getTreeViewer().getTree().setFocus(); } } }); Button newButton = new Button(firstLine, SWT.PUSH); newButton.setText(fCreateTargetQuery.getNewButtonLabel()); GridData gd = new GridData( GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING); gd.widthHint = SWTUtil.getButtonWidthHint(newButton); newButton.setLayoutData(gd); newButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { doNewButtonPressed(); } }); return firstLine; } else { return super.addLabel(parent); } }