diff options
Diffstat (limited to 'examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java')
-rw-r--r-- | examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java | 333 |
1 files changed, 142 insertions, 191 deletions
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java index faed3aeb131..7c46cfd3bf0 100644 --- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java +++ b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2013 Tom Schindl and others. + * Copyright (c) 2006, 2014 Tom Schindl and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,23 +7,24 @@ * * Contributors: * Tom Schindl - initial API and implementation - * Henrik Still<hendrik.still@gammas.de> - bug 415875 + * Henrik Still <hendrik.still@gammas.de> - Bug 415875 + * Jeanderson Candido <http://jeandersonbc.github.io> - Bug 414565 *******************************************************************************/ package org.eclipse.jface.snippets.viewers; import java.util.ArrayList; +import java.util.List; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.ColumnLabelProvider; +import org.eclipse.jface.viewers.ColumnViewer; import org.eclipse.jface.viewers.ColumnViewerEditor; import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent; import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy; import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter; -import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.viewers.TreeViewer; @@ -47,10 +48,95 @@ import org.eclipse.swt.widgets.Shell; * */ public class Snippet055HideShowColumn { + + private final class MyEditingSupport extends EditingSupport { + private final TreeViewer v; + private final TextCellEditor textCellEditor; + + private MyEditingSupport(ColumnViewer viewer, TreeViewer v, + TextCellEditor textCellEditor) { + super(viewer); + this.v = v; + this.textCellEditor = textCellEditor; + } + + @Override + protected boolean canEdit(Object element) { + return true; + } + + @Override + protected CellEditor getCellEditor(Object element) { + return textCellEditor; + } + + @Override + protected Object getValue(Object element) { + return ((MyModel) element).counter + ""; + } + + @Override + protected void setValue(Object element, Object value) { + ((MyModel) element).counter = Integer.parseInt(value.toString()); + v.update(element, null); + } + } + + class MyContentProvider implements ITreeContentProvider { + + @Override + public Object[] getElements(Object inputElement) { + return ((MyModel) inputElement).child.toArray(); + } + + @Override + public void dispose() { + } + + @Override + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + } + + @Override + public Object[] getChildren(Object parentElement) { + return getElements(parentElement); + } + + @Override + public Object getParent(Object element) { + if (element == null) { + return null; + } + return ((MyModel) element).parent; + } + + @Override + public boolean hasChildren(Object element) { + return ((MyModel) element).child.size() > 0; + } + + } + + class MyColumnLabelProvider extends ColumnLabelProvider { + + private String prefix; + + public MyColumnLabelProvider(String prefix) { + this.prefix = prefix; + } + + @Override + public String getText(Object element) { + return prefix + " => " + element.toString(); + } + + } + public Snippet055HideShowColumn(final Shell shell) { final TreeViewer v = new TreeViewer(shell, SWT.BORDER | SWT.FULL_SELECTION); - v.getTree().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,2,1)); + v.getTree().setLayoutData( + new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); v.getTree().setLinesVisible(true); v.getTree().setHeaderVisible(true); @@ -76,151 +162,78 @@ public class Snippet055HideShowColumn { final TextCellEditor textCellEditor = new TextCellEditor(v.getTree()); - TreeViewerColumn column_1 = new TreeViewerColumn(v, SWT.NONE); - column_1.getColumn().setWidth(200); - column_1.getColumn().setMoveable(true); - column_1.getColumn().setText("Column 1"); - column_1.setLabelProvider(new ColumnLabelProvider() { - - @Override - public String getText(Object element) { - return "Column 1 => " + element.toString(); - } - - }); - column_1.setEditingSupport(new EditingSupport(v) { - @Override - protected boolean canEdit(Object element) { - return true; - } - - @Override - protected CellEditor getCellEditor(Object element) { - return textCellEditor; - } - - @Override - protected Object getValue(Object element) { - return ((MyModel) element).counter + ""; - } - - @Override - protected void setValue(Object element, Object value) { - ((MyModel) element).counter = Integer - .parseInt(value.toString()); - v.update(element, null); - } - }); - - final TreeViewerColumn column_2 = new TreeViewerColumn(v, SWT.NONE); - column_2.getColumn().setWidth(200); - column_2.getColumn().setMoveable(true); - column_2.getColumn().setText("Column 2"); - column_2.setLabelProvider(new ColumnLabelProvider() { - - @Override - public String getText(Object element) { - return "Column 2 => " + element.toString(); - } - - }); - column_2.setEditingSupport(new EditingSupport(v) { - @Override - protected boolean canEdit(Object element) { - return true; - } - - @Override - protected CellEditor getCellEditor(Object element) { - return textCellEditor; - } - - @Override - protected Object getValue(Object element) { - return ((MyModel) element).counter + ""; - } - - @Override - protected void setValue(Object element, Object value) { - ((MyModel) element).counter = Integer - .parseInt(value.toString()); - v.update(element, null); - } - }); - - TreeViewerColumn column_3 = new TreeViewerColumn(v, SWT.NONE); - column_3.getColumn().setWidth(200); - column_3.getColumn().setMoveable(true); - column_3.getColumn().setText("Column 3"); - column_3.setLabelProvider(new ColumnLabelProvider() { - - @Override - public String getText(Object element) { - return "Column 3 => " + element.toString(); - } - - }); - column_3.setEditingSupport(new EditingSupport(v) { - @Override - protected boolean canEdit(Object element) { - return true; - } - - @Override - protected CellEditor getCellEditor(Object element) { - return textCellEditor; - } - - @Override - protected Object getValue(Object element) { - return ((MyModel) element).counter + ""; - } - - @Override - protected void setValue(Object element, Object value) { - ((MyModel) element).counter = Integer - .parseInt(value.toString()); - v.update(element, null); - } - }); + createColumnFor(v, "Column 1", textCellEditor); + final TreeViewerColumn column_2 = createColumnFor(v, "Column 2", + textCellEditor); + createColumnFor(v, "Column 3", textCellEditor); v.setContentProvider(new MyContentProvider()); - v.setInput(createModel()); - Button b = new Button(shell, SWT.PUSH); - b.setText("Edit-Element"); - b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + Button b = createButtonFor(shell, "Edit-Element"); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MyModel root = (MyModel) v.getInput(); TreePath path = new TreePath(new Object[] { root, - root.child.get(1), - ((MyModel) root.child.get(1)).child.get(0) }); + root.child.get(1), root.child.get(1).child.get(0) }); v.editElement(path, 0); } }); - - b = new Button(shell, SWT.PUSH); - b.setText("Hide/Show 2nd Column"); - b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + b = createButtonFor(shell, "Hide/Show 2nd Column"); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - if(column_2.getColumn().getWidth() == 0){ - column_2.getColumn().setWidth(200); - }else{ - column_2.getColumn().setWidth(0); - } + int width = column_2.getColumn().getWidth(); + column_2.getColumn().setWidth(width == 0 ? 200 : 0); } }); } - private MyModel createModel() { + private TreeViewerColumn createColumnFor(final TreeViewer v, String label, + TextCellEditor textCellEditor) { + TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE); + column.getColumn().setWidth(200); + column.getColumn().setMoveable(true); + column.getColumn().setText(label); + column.setLabelProvider(new MyColumnLabelProvider(label)); + column.setEditingSupport(new MyEditingSupport(v, v, textCellEditor)); + return column; + } + + private Button createButtonFor(final Shell shell, String label) { + Button b = new Button(shell, SWT.PUSH); + b.setText(label); + b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + return b; + } + + public class MyModel { + + public MyModel parent; + public List<MyModel> child = new ArrayList<MyModel>(); + public int counter; + + public MyModel(int counter, MyModel parent) { + this.parent = parent; + this.counter = counter; + } + + @Override + public String toString() { + String rv = "Item "; + if (parent != null) { + rv = parent.toString() + "."; + } + rv += counter; + + return rv; + } + } + private MyModel createModel() { MyModel root = new MyModel(0, null); root.counter = 0; @@ -235,14 +248,13 @@ public class Snippet055HideShowColumn { tmp.child.add(subItem); } } - return root; } public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); - shell.setLayout(new GridLayout(2,true)); + shell.setLayout(new GridLayout(2, true)); new Snippet055HideShowColumn(shell); shell.open(); @@ -250,68 +262,7 @@ public class Snippet055HideShowColumn { if (!display.readAndDispatch()) display.sleep(); } - display.dispose(); } - private class MyContentProvider implements ITreeContentProvider { - - @Override - public Object[] getElements(Object inputElement) { - return ((MyModel) inputElement).child.toArray(); - } - - @Override - public void dispose() { - } - - @Override - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - } - - @Override - public Object[] getChildren(Object parentElement) { - return getElements(parentElement); - } - - @Override - public Object getParent(Object element) { - if (element == null) { - return null; - } - return ((MyModel) element).parent; - } - - @Override - public boolean hasChildren(Object element) { - return ((MyModel) element).child.size() > 0; - } - - } - - public class MyModel { - public MyModel parent; - - public ArrayList child = new ArrayList(); - - public int counter; - - public MyModel(int counter, MyModel parent) { - this.parent = parent; - this.counter = counter; - } - - @Override - public String toString() { - String rv = "Item "; - if (parent != null) { - rv = parent.toString() + "."; - } - - rv += counter; - - return rv; - } - } - } |