List of usage examples for org.eclipse.jface.viewers TableViewer getControl
@Override
public Control getControl()
From source file:org.eclipse.egit.ui.internal.staging.StagingView.java
License:Open Source License
private void createPopupMenu(final TableViewer tableViewer) { final MenuManager menuMgr = new MenuManager(); menuMgr.setRemoveAllWhenShown(true); Control control = tableViewer.getControl(); control.setMenu(menuMgr.createContextMenu(control)); menuMgr.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); if (selection.isEmpty()) return; boolean submoduleSelected = false; for (Object item : selection.toArray()) if (((StagingEntry) item).isSubmodule()) { submoduleSelected = true; break; }/* w ww.ja v a2 s. co m*/ Action openWorkingTreeVersion = new Action( UIText.CommitFileDiffViewer_OpenWorkingTreeVersionInEditorMenuLabel) { @Override public void run() { openSelectionInEditor(tableViewer.getSelection()); } }; openWorkingTreeVersion.setEnabled(!submoduleSelected); menuMgr.add(openWorkingTreeVersion); Set<StagingEntry.Action> availableActions = getAvailableActions(selection); boolean addReplaceWithFileInGitIndex = availableActions .contains(StagingEntry.Action.REPLACE_WITH_FILE_IN_GIT_INDEX); boolean addReplaceWithHeadRevision = availableActions .contains(StagingEntry.Action.REPLACE_WITH_HEAD_REVISION); boolean addStage = availableActions.contains(StagingEntry.Action.STAGE); boolean addUnstage = availableActions.contains(StagingEntry.Action.UNSTAGE); boolean addDelete = availableActions.contains(StagingEntry.Action.DELETE); boolean addIgnore = availableActions.contains(StagingEntry.Action.IGNORE); boolean addLaunchMergeTool = availableActions.contains(StagingEntry.Action.LAUNCH_MERGE_TOOL); if (addStage) menuMgr.add(new Action(UIText.StagingView_StageItemMenuLabel) { @Override public void run() { stage((IStructuredSelection) tableViewer.getSelection()); } }); if (addUnstage) menuMgr.add(new Action(UIText.StagingView_UnstageItemMenuLabel) { @Override public void run() { unstage((IStructuredSelection) tableViewer.getSelection()); } }); boolean selectionIncludesNonWorkspaceResources = selectionIncludesNonWorkspaceResources( tableViewer.getSelection()); if (addReplaceWithFileInGitIndex) if (selectionIncludesNonWorkspaceResources) menuMgr.add( new ReplaceAction(UIText.StagingView_replaceWithFileInGitIndex, selection, false)); else menuMgr.add(createItem(ActionCommands.DISCARD_CHANGES_ACTION, tableViewer)); // replace with index if (addReplaceWithHeadRevision) if (selectionIncludesNonWorkspaceResources) menuMgr.add(new ReplaceAction(UIText.StagingView_replaceWithHeadRevision, selection, true)); else menuMgr.add(createItem(ActionCommands.REPLACE_WITH_HEAD_ACTION, tableViewer)); if (addIgnore) menuMgr.add(new IgnoreAction(selection)); if (addDelete) menuMgr.add(new DeleteAction(selection)); if (addLaunchMergeTool) menuMgr.add(createItem(ActionCommands.MERGE_TOOL_ACTION, tableViewer)); menuMgr.add(new Separator()); menuMgr.add(createShowInMenu()); } }); }
From source file:org.eclipse.emf.cdo.security.internal.ui.editor.RoleDetailsPage.java
License:Open Source License
protected OneToManyTableBlock.ITableConfiguration createTableConfiguration() { return new OneToManyTableBlock.TableConfiguration(getManagedForm(), SecurityPackage.Literals.ROLE__PERMISSIONS, SecurityPackage.Literals.FILTER_PERMISSION) { private static final int COL_ACCESS = 0; private static final int COL_PATTERN_STYLE = 1; private static final int COL_PATH = 2; private final String[] columnTitles = { Messages.RoleDetailsPage_5, Messages.RoleDetailsPage_6, Messages.RoleDetailsPage_7 }; private final CellEditor[] cellEditors = new CellEditor[3]; public String[] getColumnTitles() { return columnTitles; }/* w w w . j a v a 2 s . co m*/ public int getColumnWeight(int index) { switch (index) { case COL_ACCESS: return 15; case COL_PATTERN_STYLE: return 15; case COL_PATH: return 70; default: throw new IllegalArgumentException("index"); //$NON-NLS-1$ } } public int getColumnMinimumSize(int index) { switch (index) { case COL_ACCESS: return 30; case COL_PATTERN_STYLE: return 30; case COL_PATH: return 120; default: throw new IllegalArgumentException("index"); //$NON-NLS-1$ } } public boolean isColumnResizable(int index) { switch (index) { case COL_ACCESS: return false; case COL_PATTERN_STYLE: return false; case COL_PATH: return true; default: throw new IllegalArgumentException("index"); //$NON-NLS-1$ } } public CellLabelProvider getLabelProvider(TableViewer viewer, final int columnIndex) { return new ColumnLabelProvider() { @Override public String getText(Object element) { final FilterPermission perm = (FilterPermission) element; final ResourceFilter filter = perm.getFilters().isEmpty() ? null : (ResourceFilter) perm.getFilters().get(0); switch (columnIndex) { case COL_ACCESS: return SecurityEditPlugin.INSTANCE .getString(String.format("_UI_Access_%s_literal", perm.getAccess())); //$NON-NLS-1$ case COL_PATTERN_STYLE: { String result = "=="; //$NON-NLS-1$ if (filter != null && filter.getPatternStyle() != null) { switch (filter.getPatternStyle()) { case EXACT: break; case TREE: result = ">="; //$NON-NLS-1$ break; default: result = "~="; //$NON-NLS-1$ break; } } return result; } case COL_PATH: return filter == null ? "" : filter.getPath(); //$NON-NLS-1$ default: throw new IllegalArgumentException("columnIndex"); //$NON-NLS-1$ } } }; } public boolean canEdit(TableViewer viewer, Object element, int columnIndex) { return true; } public void setValue(TableViewer viewer, Object element, int columnIndex, Object value) { final FilterPermission perm = (FilterPermission) element; final ResourceFilter filter = (ResourceFilter) perm.getFilters().get(0); switch (columnIndex) { case COL_ACCESS: if (perm.getAccess() != value) { execute(SetCommand.create(getEditingDomain(), perm, SecurityPackage.Literals.PERMISSION__ACCESS, value)); viewer.refresh(element); } break; case COL_PATTERN_STYLE: if (filter.getPatternStyle() != value) { execute(SetCommand.create(getEditingDomain(), filter, SecurityPackage.Literals.RESOURCE_FILTER__PATTERN_STYLE, value)); viewer.refresh(element); } break; case COL_PATH: if (!ObjectUtil.equals(filter.getPath(), value)) { execute(SetCommand.create(getEditingDomain(), filter, SecurityPackage.Literals.RESOURCE_FILTER__PATH, value)); viewer.refresh(element); } break; default: throw new IllegalArgumentException("columnIndex"); //$NON-NLS-1$ } } public Object getValue(TableViewer viewer, Object element, int columnIndex) { final FilterPermission perm = (FilterPermission) element; final ResourceFilter filter = (ResourceFilter) perm.getFilters().get(0); switch (columnIndex) { case COL_ACCESS: return perm.getAccess(); case COL_PATTERN_STYLE: return filter.getPatternStyle(); case COL_PATH: return filter.getPath(); default: throw new IllegalArgumentException("columnIndex"); //$NON-NLS-1$ } } public CellEditor getCellEditor(final TableViewer viewer, int columnIndex) { CellEditor result = cellEditors[columnIndex]; if (result == null) { result = createCellEditor(viewer, columnIndex); cellEditors[columnIndex] = result; } return result; } protected CellEditor createCellEditor(TableViewer viewer, int columnIndex) { Composite parent = (Composite) viewer.getControl(); switch (columnIndex) { case COL_ACCESS: { ComboBoxViewerCellEditor result = new ComboBoxViewerCellEditor(parent, SWT.DROP_DOWN | SWT.READ_ONLY); result.setLabelProvider(new AdapterFactoryLabelProvider(getAdapterFactory())); result.setContentProvider(new ArrayContentProvider()); result.setInput(Access.VALUES); return result; } case COL_PATTERN_STYLE: { ComboBoxViewerCellEditor result = new ComboBoxViewerCellEditor(parent, SWT.DROP_DOWN | SWT.READ_ONLY); result.setLabelProvider(new AdapterFactoryLabelProvider(getAdapterFactory())); result.setContentProvider(new ArrayContentProvider()); result.setInput(PatternStyle.VALUES); return result; } case COL_PATH: return new EditableDialogCellEditor(parent) { @Override protected Object openDialogBox(Control cellEditorWindow) { final CDOView view = getInput().cdoView(); @SuppressWarnings({ "rawtypes", "unchecked" }) CDOItemProvider provider = new CDOItemProvider(null) { private boolean connected; { // Connect the input now, because the dialog will try to access the content provider before it has // been set into the tree viewer connectInput((IContainer) view); } @Override protected void connectInput(IContainer<Object> input) { if (!connected) { super.connectInput(input); connected = true; } } @Override protected void disconnectInput(IContainer<Object> input) { if (connected) { connected = false; super.disconnectInput(input); } } }; FilterTreeSelectionDialog dlg = new FilterTreeSelectionDialog( cellEditorWindow.getShell(), provider, provider); dlg.setAllowMultiple(false); dlg.setMessage(Messages.RoleDetailsPage_4); dlg.setTitle(Messages.RoleDetailsPage_8); dlg.setDoubleClickSelects(true); dlg.addFilter( getViewerFilter(getTypeFilter(EresourcePackage.Literals.CDO_RESOURCE_NODE))); dlg.setBlockOnOpen(true); String current = (String) getValue(); dlg.setInput(view); if (current != null && view.hasResource(current)) { dlg.setInitialSelection(view.getResourceNode(current)); } String result = null; if (dlg.open() == Window.OK) { CDOResourceNode node = (CDOResourceNode) dlg.getFirstResult(); if (node != null) { result = node.getPath(); } } return result; } }; default: throw new IllegalArgumentException("columnIndex"); //$NON-NLS-1$ } } }; }
From source file:org.eclipse.emf.cdo.security.internal.ui.editor.TableSection.java
License:Open Source License
protected void configureDropSupport(final TableViewer viewer) { viewer.addDropSupport(DND.DROP_LINK | DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new ViewerDropAdapter(viewer) { {// ww w . jav a2 s . co m // We don't want it to look like you can insert new elements, only drop onto existing elements setFeedbackEnabled(false); } @Override public boolean validateDrop(Object target, int operation, TransferData transferType) { boolean result = false; if (target instanceof EObject && LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) { EObject objectToDrop = getObjectToDrop(transferType); if (objectToDrop != null) { result = getDropReference((EObject) target, objectToDrop) != null; if (result && (getCurrentEvent().operations | DND.DROP_COPY) != 0) { overrideOperation(DND.DROP_COPY); } } } return result; } @Override public boolean performDrop(Object data) { IStructuredSelection selection = (IStructuredSelection) data; EObject objectToDrop = UIUtil.getElement(selection, EObject.class); EObject target = (EObject) getCurrentTarget(); Command command = AddCommand.create(getEditingDomain(), target, getDropReference(target, objectToDrop), selection.toList()); boolean result = execute(command); if (result) { viewer.getControl().setFocus(); viewer.setSelection(new StructuredSelection(target)); } return result; } private EObject getObjectToDrop(TransferData transferType) { return UIUtil.getElement(LocalSelectionTransfer.getTransfer().getSelection(), EObject.class); } }); }
From source file:org.eclipse.emf.cdo.security.internal.ui.util.OneToManyBlock.java
License:Open Source License
protected void configureDropSupport(final TableViewer viewer) { viewer.addDropSupport(DND.DROP_LINK | DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new DropTargetAdapter() { @Override/*from w ww. ja va2s. com*/ public void dragEnter(DropTargetEvent event) { if (!canDrop(event)) { // Reject this drop event.detail = DND.DROP_NONE; } else if ((event.operations | DND.DROP_COPY) != 0) { event.detail = DND.DROP_COPY; } } private boolean canDrop(DropTargetEvent event) { boolean result = false; if (LocalSelectionTransfer.getTransfer().isSupportedType(event.currentDataType)) { result = canPresentAll(LocalSelectionTransfer.getTransfer().getSelection()); } return result; } @Override public void dropAccept(DropTargetEvent event) { if (!canDrop(event)) { // Reject this drop event.detail = DND.DROP_NONE; } else if ((event.operations | DND.DROP_COPY) != 0) { event.detail = DND.DROP_COPY; } } @Override public void drop(DropTargetEvent event) { if (canDrop(event)) { IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer .getTransfer().getSelection(); Command command = AddCommand.create(domain, input.getValue(), getConfiguration().getModelReference(), selection.toList()); if (execute(command)) { viewer.setSelection(selection); viewer.getControl().setFocus(); } } } }); }
From source file:org.eclipse.emf.cdo.ui.internal.team.history.CDOHistoryPage.java
License:Open Source License
@Override public void createControl(Composite parent) { stackComposite = new StackComposite(parent, SWT.NONE); Label label = new Label(stackComposite, SWT.NONE); label.setText(//w ww .ja v a2s .c o m "The selected session belongs to an offline workspace.\nThe remote history cannot be provided."); label.setForeground(label.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE)); offlineControl = label; commitHistoryComposite = new CommitHistoryComposite(stackComposite, SWT.NONE) { @Override protected void doubleClicked(CDOCommitInfo commitInfo) { if (commitOnDoubleClick) { testCommit(commitInfo); } } private void testCommit(CDOCommitInfo commitInfo) { CDOTransaction transaction = null; try { CDOSession session = input.getSession(); CDOBranch branch = commitInfo.getBranch(); final long[] lastCommitTime = { 0 }; CDOCommitInfoManager commitInfoManager = session.getCommitInfoManager(); commitInfoManager.getCommitInfos(branch, Long.MAX_VALUE, null, null, -1, new CDOCommitInfoHandler() { public void handleCommitInfo(CDOCommitInfo commitInfo) { lastCommitTime[0] = commitInfo.getTimeStamp(); } }); long timeStamp = commitInfo.getTimeStamp(); if (timeStamp != lastCommitTime[0]) { String name = "branch-" + (timeStamp - session.getRepositoryInfo().getCreationTime()) / 1000; branch = branch.createBranch(name, timeStamp); } transaction = session.openTransaction(branch); CDOUtil.configureView(transaction); CDOResourceFolder folder = transaction.getOrCreateResourceFolder("test"); folder.addResource("resource-" + folder.getNodes().size()); transaction.commit(); } catch (Exception ex) { ex.printStackTrace(); } finally { LifecycleUtil.deactivate(transaction); } } }; stackComposite.setTopControl(commitHistoryComposite); IPageSite site = getSite(); TableViewer tableViewer = commitHistoryComposite.getTableViewer(); UIUtil.addDragSupport(tableViewer); MenuManager menuManager = new MenuManager(POPUP_ID); menuManager.add(new Separator("compare")); menuManager.add(new Separator("branching")); menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); Menu menu = menuManager.createContextMenu(tableViewer.getControl()); tableViewer.getControl().setMenu(menu); site.registerContextMenu(POPUP_ID, menuManager, tableViewer); site.setSelectionProvider(tableViewer); IActionBars actionBars = site.getActionBars(); setupToolBar(actionBars.getToolBarManager()); setupViewMenu(actionBars.getMenuManager()); }
From source file:org.eclipse.emf.diffmerge.ui.util.InconsistencyDialog.java
License:Open Source License
/** * Create and return a menu item for copying the labels in the given viewer * @param viewer_p a non-null viewer//www .j a v a 2s. co m * @return a non-null menu item */ protected MenuItem createCopyMenuItem(final TableViewer viewer_p) { Menu menu = new Menu(viewer_p.getControl()); final MenuItem result = new MenuItem(menu, SWT.PUSH); result.setText(Messages.InconsistencyDialog_CopyID); result.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_COPY)); viewer_p.addSelectionChangedListener(new ISelectionChangedListener() { /** * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) */ public void selectionChanged(SelectionChangedEvent event_p) { ISelection selection = event_p.getSelection(); boolean enable = selection instanceof IStructuredSelection && !selection.isEmpty(); result.setEnabled(enable); } }); result.addSelectionListener(new SelectionAdapter() { /** * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent e_p) { copySelectionAsText(viewer_p); } }); viewer_p.getControl().setMenu(menu); return result; }
From source file:org.eclipse.emf.diffmerge.ui.util.InconsistencyDialog.java
License:Open Source License
/** * Create and return the area where duplicates for the given role as provided in * the given collection are displayed//from w ww. ja v a 2 s. c om * @param parent_p a non-null composite * @param role_p a non-null role * @param duplicates_p a non-null set of objects */ protected Control createDuplicateArea(Composite parent_p, Role role_p, Collection<Object> duplicates_p) { Group group = new Group(parent_p, SWT.NONE); group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); group.setLayout(new GridLayout(1, false)); String scopeName = (role_p == Role.ANCESTOR) ? Messages.InconsistencyDialog_AncestorScope : (role_p == Role.REFERENCE) ? Messages.InconsistencyDialog_ReferenceScope : Messages.InconsistencyDialog_TargetScope; group.setText(scopeName); TableViewer viewer = new TableViewer(group, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.MULTI); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); viewer.setContentProvider(new ArrayContentProvider()); viewer.setSorter(new ViewerSorter()); createCopyMenuItem(viewer); viewer.setInput(duplicates_p.toArray()); return group; }
From source file:org.eclipse.emf.ecp.ecoreeditor.internal.ui.CreateNewChildDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parentComposite) { final ChildrenDescriptorCollector childrenDescriptorCollector = new ChildrenDescriptorCollector(); final EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(parent); final Dialog currentDialog = this; final List<Action> actions = getNewChildActions(childrenDescriptorCollector.getDescriptors(parent), editingDomain, parent);/* w ww . j ava 2s .c o m*/ final TableViewer list = new TableViewer(parentComposite); list.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); list.setContentProvider(new ArrayContentProvider()); list.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { final Action action = (Action) element; final StringBuilder builder = new StringBuilder(action.getText()); if (action.getAccelerator() > 0) { builder.append(" ["); builder.append(Character.toUpperCase((char) action.getAccelerator())); builder.append("]"); } return builder.toString(); } @Override public Image getImage(Object element) { return ((Action) element).getImageDescriptor().createImage(); } }); list.setInput(actions.toArray()); list.addOpenListener(new IOpenListener() { @Override public void open(OpenEvent event) { final Action action = (Action) ((StructuredSelection) event.getSelection()).getFirstElement(); action.run(); currentDialog.close(); } }); list.getControl().addKeyListener(new KeyListener() { @Override public void keyReleased(KeyEvent e) { // NOP } @Override public void keyPressed(KeyEvent e) { for (final Action a : actions) { if (a.getAccelerator() == e.keyCode) { a.run(); currentDialog.close(); break; } } } }); return parentComposite; }
From source file:org.eclipse.emf.ecp.ide.editor.view.UnknownFeaturesDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { final Composite composite = (Composite) super.createDialogArea(parent); final Label label = new Label(composite, SWT.WRAP); label.setText(getDescription());//w w w. j av a 2 s . c om final TableViewer viewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.BORDER); final Table table = viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(false); table.setToolTipText(""); //$NON-NLS-1$ final Listener tableListener = getTableListener(composite, table); table.addListener(SWT.Dispose, tableListener); table.addListener(SWT.KeyDown, tableListener); table.addListener(SWT.MouseMove, tableListener); table.addListener(SWT.MouseHover, tableListener); viewer.setContentProvider(ArrayContentProvider.getInstance()); viewer.setInput(getInput()); createColumns(parent, viewer); final GridData gridData = new GridData(); gridData.verticalAlignment = GridData.FILL; gridData.horizontalSpan = 2; gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.horizontalAlignment = GridData.FILL; viewer.getControl().setLayoutData(gridData); viewer.refresh(true); composite.layout(); return composite; }
From source file:org.eclipse.emf.ecp.view.custom.ui.swt.test.CustomControlStub3.java
License:Open Source License
/** * {@inheritDoc}/*from ww w . j a v a2s . c o m*/ * * @see org.eclipse.emf.ecp.view.spi.custom.swt.ECPAbstractCustomControlSWT#renderControl(org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell, * org.eclipse.swt.widgets.Composite) */ @Override public Control renderControl(SWTGridCell cell, Composite parent) throws NoRendererFoundException, NoPropertyDescriptorFoundExeption { if (cell.getColumn() == 0) { label = new Label(parent, SWT.NONE); label.setText("Players: "); return label; } if (cell.getColumn() == 1) { final Composite tableParent = new Composite(parent, SWT.NONE); final Composite tableComposite = new Composite(tableParent, SWT.NONE); final TableViewer tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL); tableViewer.getControl().setLayoutData(new GridData()); tableComposite.setLayout(new TableColumnLayout()); final IValueProperty[] valueProperties = EMFProperties.values(BowlingPackage.Literals.PLAYER__NAME, BowlingPackage.Literals.PLAYER__DATE_OF_BIRTH); createViewerBinding(getResolvedDomainModelReference(BowlingPackage.eINSTANCE.getLeague_Players()), tableViewer, valueProperties); registerChangeListener(getResolvedDomainModelReference(BowlingPackage.eINSTANCE.getLeague_Players()), new LeagueChangeListener()); return tableParent; } return null; }