X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.eclipse.ui%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Ffs%2FFsTableViewer.java;fp=org.argeo.eclipse.ui%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Ffs%2FFsTableViewer.java;h=0000000000000000000000000000000000000000;hb=03f646fd0d7e7ce393694c836c779bc67a4eef55;hp=3b126e90bcdcc33dcc1b380e22f228f76a31ceb4;hpb=c53fec78daddb69c489686844188036b04e1615a;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/FsTableViewer.java b/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/FsTableViewer.java deleted file mode 100644 index 3b126e90b..000000000 --- a/org.argeo.eclipse.ui/src/org/argeo/eclipse/ui/fs/FsTableViewer.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.argeo.eclipse.ui.fs; - -import java.nio.file.Path; -import java.util.List; - -import org.argeo.eclipse.ui.ColumnDefinition; -import org.eclipse.jface.viewers.CellLabelProvider; -import org.eclipse.jface.viewers.ILazyContentProvider; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.TableViewerColumn; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; - -/** - * Canonical implementation of a JFace table viewer to display the content of a - * file folder - */ -public class FsTableViewer extends TableViewer { - private static final long serialVersionUID = -5632407542678477234L; - - private boolean showHiddenItems = false; - private boolean folderFirst = true; - private boolean reverseOrder = false; - private String orderProperty = FsUiConstants.PROPERTY_NAME; - - private Path initialPath = null; - - public FsTableViewer(Composite parent, int style) { - super(parent, style | SWT.VIRTUAL); - } - - public Table configureDefaultSingleColumnTable(int tableWidthHint) { - - return configureDefaultSingleColumnTable(tableWidthHint, new FileIconNameLabelProvider()); - } - - public Table configureDefaultSingleColumnTable(int tableWidthHint, CellLabelProvider labelProvider) { - Table table = this.getTable(); - table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); - table.setLinesVisible(false); - table.setHeaderVisible(false); - // CmsUtils.markup(table); - // CmsUtils.style(table, MaintenanceStyles.BROWSER_COLUMN); - - TableViewerColumn column = new TableViewerColumn(this, SWT.NONE); - TableColumn tcol = column.getColumn(); - tcol.setWidth(tableWidthHint); - column.setLabelProvider(labelProvider); - this.setContentProvider(new MyLazyCP()); - return table; - } - - public Table configureDefaultTable(List columns) { - this.setContentProvider(new MyLazyCP()); - Table table = this.getTable(); - table.setLinesVisible(true); - table.setHeaderVisible(true); - // CmsUtils.markup(table); - // CmsUtils.style(table, MaintenanceStyles.BROWSER_COLUMN); - for (ColumnDefinition colDef : columns) { - TableViewerColumn column = new TableViewerColumn(this, SWT.NONE); - column.setLabelProvider(colDef.getLabelProvider()); - TableColumn tcol = column.getColumn(); - tcol.setResizable(true); - tcol.setText(colDef.getLabel()); - tcol.setWidth(colDef.getMinWidth()); - } - return table; - } - - public void setInput(Path dir, String filter) { - Path[] rows = FsUiUtils.getChildren(dir, filter, showHiddenItems, folderFirst, orderProperty, reverseOrder); - if (rows == null) { - this.setInput(null); - this.setItemCount(0); - return; - } - boolean isRoot; - try { - isRoot = dir.getRoot().equals(dir); - } catch (Exception e) { - // FIXME Workaround for JCR root node access - isRoot = dir.toString().equals("/"); - } - final Object[] res; - if (isRoot) - res = rows; - else if (initialPath != null && initialPath.equals(dir)) - res = rows; - else { - res = new Object[rows.length + 1]; - res[0] = new ParentDir(dir.getParent()); - for (int i = 1; i < res.length; i++) { - res[i] = rows[i - 1]; - } - } - this.setInput(res); - int length = res.length; - this.setItemCount(length); - this.refresh(); - } - - /** Directly displays bookmarks **/ - public void setPathsInput(Path... paths) { - this.setInput((Object[]) paths); - this.setItemCount(paths.length); - this.refresh(); - } - - /** - * A path which is to be considered as root (and thus provide no link to a - * parent directory) - */ - public void setInitialPath(Path initialPath) { - this.initialPath = initialPath; - } - - private class MyLazyCP implements ILazyContentProvider { - private static final long serialVersionUID = 9096550041395433128L; - private Object[] elements; - - public void dispose() { - } - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - // IMPORTANT: don't forget this: an exception will be thrown if - // a selected object is not part of the results anymore. - viewer.setSelection(null); - this.elements = (Object[]) newInput; - } - - public void updateElement(int index) { - if (index < elements.length) - FsTableViewer.this.replace(elements[index], index); - } - } -}