List of usage examples for org.eclipse.jface.viewers ITreePathContentProvider ITreePathContentProvider
ITreePathContentProvider
From source file:de.dentrassi.eclipse.rpm.editor.ContentTable.java
License:Open Source License
public ContentTable(final Composite parent) { this.wrapper = new Composite(parent, SWT.NO_BACKGROUND); parent.setLayout(new FillLayout()); this.resourceManager = new LocalResourceManager(JFaceResources.getResources(parent.getDisplay())); this.wrapper.addDisposeListener((evt) -> this.resourceManager.dispose()); this.dimmedColor = this.resourceManager.createColor(new RGB(127, 127, 127)); final ImageDescriptor fileIconDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "$nl$/icons/obj16/file.png"); //$NON-NLS-1$ final ImageDescriptor folderIconDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "$nl$/icons/obj16/folder.png"); //$NON-NLS-1$ final ImageDescriptor linkIconDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "$nl$/icons/obj16/link.png"); //$NON-NLS-1$ this.viewer = new TreeViewer(this.wrapper, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); final TreeColumnLayout layout = new TreeColumnLayout(); createColumn(layout, "Name", 4, SWT.NONE, (node, cell) -> { cell.setText(node.getName());// w ww. j a v a 2s .c o m final MetaInformation meta = ContentTable.this.meta.get(node.getFullName()); if (meta != null && meta.getMode() != null) { if ((meta.getMode() & 0x8000) > 0) { cell.setImage(this.resourceManager.createImage(fileIconDescriptor)); } else if ((meta.getMode() & 0x4000) > 0) { cell.setImage(this.resourceManager.createImage(folderIconDescriptor)); } else if ((meta.getMode() & 0xA000) > 0) { cell.setImage(this.resourceManager.createImage(linkIconDescriptor)); } } }); createColumn(layout, "Size", 1, SWT.RIGHT, (node, cell) -> cell.setText(NumberFormat.getIntegerInstance().format(node.getSize()))); createMetaColumn(layout, "User", 1, SWT.NONE, (meta, cell) -> cell.setText(meta.getUser())); createMetaColumn(layout, "Group", 1, SWT.NONE, (meta, cell) -> cell.setText(meta.getGroup())); createMetaColumn(layout, "Mode", 1, SWT.NONE, (meta, cell) -> cell.setText(makeMode(meta.getMode()))); createMetaColumn(layout, "Link", 1, SWT.NONE, (meta, cell) -> cell.setText(meta.getLinkTo())); createColumn(layout, "Timestamp", 1, SWT.NONE, (node, cell) -> { Instant ts = null; final MetaInformation meta = ContentTable.this.meta.get(node.getFullName()); if (meta != null) { // use meta entry ts = meta.getTimestamp(); } if (ts == null && node instanceof File) { // use CPIO entry ts = ((File) node).getFile().getTimestamp(); } if (ts != null) { cell.setText(DATETIME_FORMATTER.format(ts.atZone(ZoneId.systemDefault()))); } }); this.wrapper.setLayout(layout); this.viewer.getTree().setHeaderVisible(true); final ITreePathContentProvider p = new ITreePathContentProvider() { @Override public boolean hasChildren(final TreePath path) { final Object[] children = getChildren(path); return children != null && children.length > 0; } @Override public TreePath[] getParents(final Object element) { return new TreePath[0]; } @Override public Object[] getElements(final Object inputElement) { if (inputElement instanceof Object[]) { return (Object[]) inputElement; } else if (inputElement instanceof Directory) { return ((Directory) inputElement).getChildren(); } return null; } @Override public Object[] getChildren(final TreePath parentPath) { return getElements(parentPath.getLastSegment()); } }; this.viewer.setContentProvider(p); }
From source file:de.dentrassi.eclipse.rpm.editor.DependenciesTable.java
License:Open Source License
public DependenciesTable(final Composite parent) { this.wrapper = new Composite(parent, SWT.NO_BACKGROUND); parent.setLayout(new FillLayout()); this.viewer = new TreeViewer(this.wrapper, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); final TreeColumnLayout layout = new TreeColumnLayout(); {//from w w w . j a va 2 s. c o m final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE); col.getColumn().setText("Name"); col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final Object ele = cell.getElement(); if (ele instanceof Map.Entry<?, ?>) { final String label = ((Map.Entry<?, ?>) ele).getKey().toString(); cell.setText(label); } else if (ele instanceof Dependency) { final Dependency dep = (Dependency) ele; cell.setText(dep.getName()); } } }); layout.setColumnData(col.getColumn(), new ColumnWeightData(5)); } { final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE); col.getColumn().setText("Op"); col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final Object ele = cell.getElement(); if (ele instanceof Dependency) { final Dependency dep = (Dependency) ele; final EnumSet<RpmDependencyFlags> flags = dep.getFlags(); final StringBuilder sb = new StringBuilder(); for (final RpmDependencyFlags flag : flags) { switch (flag) { case LESS: sb.append("<"); break; case EQUAL: sb.append("="); break; case GREATER: sb.append(">"); break; default: break; } } cell.setText(sb.toString()); } } }); layout.setColumnData(col.getColumn(), new ColumnWeightData(1)); } { final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE); col.getColumn().setText("Version"); col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final Object ele = cell.getElement(); if (ele instanceof Dependency) { final Dependency dep = (Dependency) ele; cell.setText(dep.getVersion()); } } }); layout.setColumnData(col.getColumn(), new ColumnWeightData(5)); } { final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE); col.getColumn().setText("Flags"); col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final Object ele = cell.getElement(); if (ele instanceof Dependency) { final Dependency dep = (Dependency) ele; final EnumSet<RpmDependencyFlags> flags = dep.getFlags(); final String text = flags.stream().map(RpmDependencyFlags::name) .collect(Collectors.joining(", ")); cell.setText(text); } } }); layout.setColumnData(col.getColumn(), new ColumnWeightData(5)); } this.wrapper.setLayout(layout); this.viewer.getTree().setHeaderVisible(true); final ITreePathContentProvider p = new ITreePathContentProvider() { @Override public boolean hasChildren(final TreePath path) { final Object[] children = getChildren(path); return children != null && children.length > 0; } @Override public TreePath[] getParents(final Object element) { return new TreePath[0]; } @Override public Object[] getElements(final Object inputElement) { if (inputElement instanceof Map<?, ?>) { return ((Map<?, ?>) inputElement).entrySet().toArray(); } else if (inputElement instanceof Map.Entry<?, ?>) { final Object val = ((Map.Entry<?, ?>) inputElement).getValue(); if (val instanceof Collection<?>) { return ((Collection<?>) val).toArray(); } } return null; } @Override public Object[] getChildren(final TreePath parentPath) { return getElements(parentPath.getLastSegment()); } }; this.viewer.setContentProvider(p); }
From source file:de.dentrassi.eclipse.rpm.editor.HeaderTable.java
License:Open Source License
public HeaderTable(final Composite parent, final Function<Integer, Object> tagNameProvider) { this.tagNameProvider = tagNameProvider; this.wrapper = new Composite(parent, SWT.NO_BACKGROUND); parent.setLayout(new FillLayout()); this.viewer = new TreeViewer(this.wrapper, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); final TreeColumnLayout layout = new TreeColumnLayout(); createColumn(layout, "Tag ID", 1, entry -> String.format("%d", entry.getKey())); createColumnCell(layout, "Tag Name", 2, (entry, cell) -> { makeTagName(entry).ifPresent(cell::setText); });//w w w .j a v a 2 s . co m createStyledColumn(layout, "Type", 1, entry -> makeType(entry)); createColumn(layout, "Count", 1, entry -> String.format("%d", entry.getValue().getCount())); createColumn(layout, "Index", 1, entry -> String.format("%d", entry.getValue().getIndex())); createColumnCell(layout, "Value", 10, HeaderTable::updateCellValue); this.wrapper.setLayout(layout); this.viewer.getTree().setHeaderVisible(true); this.viewer.addDoubleClickListener(this::handleDoubleClick); final ITreePathContentProvider p = new ITreePathContentProvider() { @Override public boolean hasChildren(final TreePath path) { final Object[] children = getChildren(path); return children != null && children.length > 0; } @Override public TreePath[] getParents(final Object element) { return new TreePath[0]; } @Override public Object[] getElements(final Object inputElement) { if (inputElement instanceof Object[]) { return (Object[]) inputElement; } else if (inputElement instanceof Entry) { final Entry entry = (Entry) inputElement; final Object value = entry.getValue().getValue(); final Object[] childs = makeObjects(value).map(Stream::toArray).orElse(null); if (childs != null && childs.length <= 1) { return null; } return childs; } return null; } @Override public Object[] getChildren(final TreePath parentPath) { return getElements(parentPath.getLastSegment()); } }; this.viewer.setContentProvider(p); }
From source file:org.eclipse.tcf.te.tcf.ui.wizards.pages.PeerExportWizardPage.java
License:Open Source License
/** * Creates the checkbox tree and list for selecting peers. * * @param parent the parent control//from w w w . j a va 2s. c o m */ private final void createPeersGroup(Composite parent) { Composite resourcesGroup = new Composite(parent, SWT.NONE); resourcesGroup.setLayout(new GridLayout()); resourcesGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); resourcesGroup.setFont(parent.getFont()); new Label(resourcesGroup, SWT.NONE).setText(Messages.PeerExportWizardPage_peers_label); Table table = new Table(resourcesGroup, SWT.CHECK | SWT.BORDER); table.setLayoutData(new GridData(GridData.FILL_BOTH)); fViewer = new CheckboxTableViewer(table); fViewer.setContentProvider(new ITreePathContentProvider() { @Override public void dispose() { } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof IPeerModel) { IPeerNode[] nodes = ((IPeerModel) inputElement).getPeerNodes(); List<IPeerNode> filteredNodes = new ArrayList<IPeerNode>(); for (IPeerNode node : nodes) { if (node.isVisible()) { filteredNodes.add(node); } } return filteredNodes.toArray(); } return new Object[0]; } @Override public Object[] getChildren(TreePath parentPath) { return null; } @Override public boolean hasChildren(TreePath path) { return false; } @Override public TreePath[] getParents(Object element) { return null; } }); fViewer.setLabelProvider(new DelegatingLabelProvider()); ICheckStateListener checkListener = new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { setPageComplete(isComplete()); } }; fViewer.addCheckStateListener(checkListener); fViewer.setInput(ModelManager.getPeerModel()); // top level group Composite buttonComposite = new Composite(resourcesGroup, SWT.NONE); buttonComposite.setFont(parent.getFont()); GridLayout layout = new GridLayout(2, true); layout.marginHeight = layout.marginWidth = 0; buttonComposite.setLayout(layout); buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL)); Button selectButton = createButton(buttonComposite, IDialogConstants.SELECT_ALL_ID, Messages.PeerExportWizardPage_selectAll, false); selectButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fViewer.setAllChecked(true); setPageComplete(isComplete()); } }); Button deselectButton = createButton(buttonComposite, IDialogConstants.DESELECT_ALL_ID, Messages.PeerExportWizardPage_deselectAll, false); deselectButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fViewer.setAllChecked(false); setPageComplete(isComplete()); } }); }
From source file:org.eclipse.tcf.te.tcf.ui.wizards.pages.PeerImportWizardPage.java
License:Open Source License
/** * Creates the checkbox tree and list for selecting peers. * * @param parent the parent control//from www . j a v a 2 s.c om */ @SuppressWarnings("unused") private final void createPeersGroup(Composite parent) { Composite resourcesGroup = new Composite(parent, SWT.NONE); resourcesGroup.setLayout(new GridLayout()); resourcesGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); resourcesGroup.setFont(parent.getFont()); new Label(resourcesGroup, SWT.NONE).setText(Messages.PeerImportWizardPage_peers_label); Table table = new Table(resourcesGroup, SWT.CHECK | SWT.BORDER); table.setLayoutData(new GridData(GridData.FILL_BOTH)); fViewer = new CheckboxTableViewer(table); fViewer.setContentProvider(new ITreePathContentProvider() { @Override public void dispose() { } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @Override public Object[] getElements(Object inputElement) { List<IPeer> elements = new ArrayList<IPeer>(); File[] candidates = ((IPath) inputElement).toFile().listFiles(new FileFilter() { @Override public boolean accept(File pathname) { IPath path = new Path(pathname.getAbsolutePath()); return path.getFileExtension() != null && path.getFileExtension().toLowerCase().equals("peer"); //$NON-NLS-1$ } }); // If there are "*.peer" files to read, process them if (candidates != null && candidates.length > 0) { for (File candidate : candidates) { try { IURIPersistenceService service = ServiceManager.getInstance() .getService(IURIPersistenceService.class); if (service != null) { IPeer tempPeer = (IPeer) service.read(IPeer.class, candidate.getAbsoluteFile().toURI()); elements.add(tempPeer); } } catch (Exception e) { } } } return elements.toArray(); } @Override public Object[] getChildren(TreePath parentPath) { return null; } @Override public boolean hasChildren(TreePath path) { return false; } @Override public TreePath[] getParents(Object element) { return null; } }); fViewer.setLabelProvider(new DelegatingLabelProvider()); ICheckStateListener checkListener = new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { setPageComplete(isComplete()); } }; fViewer.addCheckStateListener(checkListener); // top level group Composite buttonComposite = new Composite(resourcesGroup, SWT.NONE); buttonComposite.setFont(parent.getFont()); GridLayout layout = new GridLayout(2, true); layout.marginHeight = layout.marginWidth = 0; buttonComposite.setLayout(layout); buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL)); Button selectButton = createButton(buttonComposite, IDialogConstants.SELECT_ALL_ID, Messages.PeerImportWizardPage_selectAll, false); selectButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fViewer.setAllChecked(true); setPageComplete(isComplete()); } }); Button deselectButton = createButton(buttonComposite, IDialogConstants.DESELECT_ALL_ID, Messages.PeerImportWizardPage_deselectAll, false); deselectButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fViewer.setAllChecked(false); setPageComplete(isComplete()); } }); new Label(resourcesGroup, SWT.NONE); fOverwrite = new Button(resourcesGroup, SWT.CHECK); fOverwrite.setText(Messages.PeerImportWizardPage_overwrite_button); fOverwrite.setSelection(getDialogSettings().getBoolean(OVERWRITE)); }