Skip to main content
Jump to: navigation, search

JFaceSnippets

Revision as of 07:37, 10 September 2018 by Wim.jongman.remainsoftware.com (Talk | contribs) (Snippet021CellEditorsOnDoubleClick)

JFace-Snippets are small easy understandable programming example how to use the JFace API. To browse the examples, navigate to the examples GIT repository.

The header section of each snippet is a link to the plain source. You can copy the source and paste it directly on the source folder or package in an eclipse project. The package and the class will be created automatically.

Jfacecopypaste.gif


Contents

Dialogs

Dialog with Image Buttons

Demonstrates usage of Icons in Buttons of Dialogs

Snippet012DialogWithImageButtons.png

Drop these icons also in the same package

Filesave.png Cancel.png

Layout

Grid Layout Factory

Demonstrates usage of the GridLayoutFactory to make more readable

Snippet013 Shell1.png Snippet013 Shell2.png Snippet013 Shell3.png

Snippet016TableLayout

Demonstrates (dynamic)layout support for TableColumns available as of JFace 3.3

Snippet016.png

Snippet027TreeLayout

Demonstrates (dynamic)layout support for TreeColumns available as of JFace 3.3

Snippet027.png

Viewers

Snippet001TableViewer

Demonstrates a simply TableViewer with one column. It holds all important classes used for all Table-like JFace-Viewers (LabelProvider,IStructuredContentProvider)

Snippet1.png

Snippet002TreeViewer

Demonstrates a simply TreeViewer with one column. It describes all important classes used for all Tree-like JFace-Viewers (LabelProvider,ITreeContentProvider)

Snippet2.png

Snippet003TableLabelProvider

Demonstrates tables with more than one column and the usage of ITableLabelProvider

Snippet003.png

Snippet004HideSelection

Demonstrates how the selection can be hidden when the user click in a tablerow/column which doesn't hold any information. The standard behaviour of SWT-Table is to leave the selection on the last column. This snippet removes the selection if the user clicks in an area not selectable

Snippet004.png

Snippet005TreeCustomMenu

Demonstrates how to create a different context menu depending on which item in the tree is currently selected this can also be used with a table of course

Snippet005.png

Snippet006TableMultiLineCells

Demonstrates first use case for the new OwnerDraw-Support added to JFace in 3.3 (available at SWT-Level since 3.2). This example uses the new Viewers API in this special case the OwnerDrawLabelProvider to make items with more than one line of text.

Snippet006.png

Snippet007FullSelection

Demonstrates how you can use a use inline editing in tables with multiple columns which requires to use SWT.FULL_SELECTION but hiding the selection from the user.

Snippet007.png

Snippet008RevealElement

Demonstrates how you can scroll a TableViewer to the specific model element using TableViewer#reveal(Object)

Snippet008.png

Snippet009CellEditors

Demonstrates minimal example when trying to add inline editing to tables to get familiar with the various classes needed (3.2 API)

Snippet009.png

Snippet010OwnerDraw

Demonstrates usage of new OwnerDraw-Support feature provided by JFace in 3.3(available in SWT since 3.2). This example uses the new Viewers API in this special case the OwnerDrawLabelProvider.

Snippet010.png

Snippet011CustomTooltips

Demonstrates usage of new custom tooltip support in 3.3 used to provide a tooltip for each cell in TableViewer

Snippet011.png

Snippet013TableViewerNoMandatoryLabelProvider

Demonstrates usage of none mandatory LabelProviders in TableViewers to set colors and fonts with 3.2-API

Jfacesnippet013.png

Snippet014TreeViewerNoMandatoryLabelProvider

Demonstrates usage of none mandatory LabelProviders in TreeViewers to set colors and font with 3.2-API

Snippet014TreeViewerNoMandatoryLabelProvider.png

Snippet015CustomTooltipsForTree

Demonstrates usage of custom tooltip support used to provide a tooltip for each cell in a TreeViewer

Snippet015CustomTooltipsForTree.png

Snippet017TableViewerHideShowColumns

Demonstrates hiding and showing of columns (animated)

Snippet017TableViewerHideShowColumns.png

Snippet018TableViewerAddRemoveColumnsWithEditing

Demonstrates adding/removing of columns in conjunction with inline editing which makes this a bit tougher than without it (using 3.2 API)

See also: Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI

Snippet018TableViewerAddRemoveColumnsWithEditing.png

Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI

Demonstrates adding/removing of columns in conjunction with the inline editing but with the new JFace-API who makes this a much easier and less error prone

Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.png

Snippet024TableViewerExplore

Demonstrates the base classes of 3.3 API

Snippet024TableViewerExploreNewAPI.png

Snippet025TabEditing

Demonstrates how one can use the new 3.3 API to add tab-editing support to your viewer

Snippet025TabEditing.png

Press Tab to jump from cell to cell

Snippet026TreeViewerTabEditing

Demonstrates all fancy things one can do with new 3.3 API (Tab-Editing, Keyboard-Navigation from Cell to Cell, Editor-Activation with the Keyboard)

Snippet026TreeViewerTabEditing.gif

Snippet027ComboBoxCellEditors

Demonstrates usage of the ComboBoxCellEditor in JFace-Viewers

Snippet027ComboBoxCellEditors.png

Snippet029VirtualTableViewer

Demonstrates usage of JFace-Viewers in virtual mode with an ordinary content provider (often the bottel neck is not the model but the UI). Using this Virtual viewers in conjunction with an ordinary content provider has the advantage that Sorting and Filtering is supported in 3.3.

Snippet030VirtualLazyTableViewer

Demonstrates usage of JFace-Viewer virtual mode with a lazy content provider

Snippet031TableViewerCustomTooltipsMultiSelection

Demonstrates creation of tooltips for cells for pre 3.3 users

Snippet031TableViewerCustomTooltipsMultiSelection.png

Snippet034CellEditorPerRowNewAPI

Demonstrates different CellEditor-Types in one COLUMN of JFace-Viewers

Snippet034CellEditorPerRow.png

Snippet035TableCursorCellHighlighter

Demonstrates keyboard navigation in TableViewers using a TableCursor showing the flexibility of the cell navigation support

You also need these classes:


Snippet035TableCursorCellHighlighter.png

Snippet036FocusBorderCellHighlighter

Demonstrates keyboard navigation by highlighting the currently selected cell with a focus border showing once more the flexibility of the cell navigation support

You also need:


Snippet036FocusBorderCellHighlighter.png

Snippet037FancyCustomTooltips

Demonstrates customizability of the 3.3 JFace-Support for cell tooltips using the Browser-Widget and presenting HTML

Snippet037FancyCustomTooltips.png

Snippet038TreeViewerInlinelEditingOldAPI

Demonstrates editing support as of 3.2 for TreeViewers

Snippet039ListViewer

Demonstrates a very simple usage of ListViewer

Snippet039ListViewer.png

Snippet040TableViewerSorting

Demonstrates sorting(asc/desc) in TableViewers by clicking the column header.

Snippet040TableViewerSorting.png

Snippet 041 - Table Viewer Alternating Colors and Viewer Filters

Demonstrates how to achieve alternating row-colors with TableViewer. It can also be used in conjunction with virtual-bits to even work with big tables (e.g. 100,000 rows in this example). In addition, this snippet provided a button that will demonstrate the usage of viewer filters.

Snippet041TableViewerAlternatingColors.png

Snippet043TreeViewerKeyboardEditing

Demonstrates the JFace 3.3 keyboard editing support for Trees without columns. Tabbing from editor to editor is supported since 3.4. In addition this snippet provided a button that shows how to enter in edit mode programmatically.

Snippet043TreeViewerKeyboardEditing.png

Snippet044TableViewerKeyboardEditing

Demonstrates the JFace 3.3 keyboard editing support for Tables without columns. Tabbing from editor to editor is supported since 3.4.

You also need:

Snippet045TableViewerFillFromBackgroundThread

Demonstrates how a TableViewer with a sorter can be filled from a NON-UI thread

Snippet045TableViewerFillFromBackgroundThread.gif

Snippet046UpdateViewerFromBackgroundThread

Demonstrates how to update a viewer from a long running task (which is executed in a thread) and calls back to the UI-Thread using asyncExec

Snippet046UpdateViewerFromBackgroundThread.gif

Snippet047VirtualLazyTreeViewer

Demonstrates the usage of ILazyContentProvider in conjunction with a Virtual-TreeViewer. The snippet shows how using a lazy tree can minimize the memory footprint and maximize the speed when viewing large models.

Snippet047VirtualLazyTreeViewer.png

Snippet048TreeViewerTabWithCheckboxFor3_3

Demonstrates how to overcome a limitation when it comes to key-navigation and CheckBoxEditors in 3.3.1.

This is a workaround for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=198502

Snippet048TreeViewerTabWithCheckboxFor3 3.png

Snippet049StyledCellLabelProvider

Demonstrates a new LabelProvider-Type which uses StyleRanges. This Snippet requires SWT/JFace 3.4.

Snippet049StyledCellLabelProvider.gif

Snippet050DelegatingStyledCellLabelProvider

Demonstrates how you can add styled text by wrapping an existing label provider. This Snippet requires SWT/JFace 3.4.

Snippet050DelegatingStyledCellLabelProvider.png

Snippet051TableCenteredImage

Demonstrate how to center an image and create graphics in a cell using owner draw.

Snippet051TableCenteredImage.png

Snippet052DoubleClickCellEditor

Demonstrate how to start cell-editors on double click.

Snippet052DoubleClickCellEditor.png

Snippet053StartEditorWithContextMenu

Demonstrate how to start up a cell editor with a context menu and not with mouse clicking on the cell.

Snippet053StartEditorWithContextMenu.png

Snippet055HideShowColumn

Demonstrate hiding and showing columns and starting a cell editor programmatically.

Snippet055HideShowColumn.png

Snippet056BooleanCellEditor

Demonstrate a custom cell-editor which uses a real Checkbox-Button

You also need these classes:


Snippet056BooleanCellEditor.png

Snippet057TableViewerSkipHiddenCells

Example of showing how easy cell-navigation with hidden cells is. Use the cursor keys to navigate between cells. Then use the context menu to hide a column.

Snippet057TableViewerSkipHiddenCells.png

Snippet058CellNavigationIn34

Shows how to automatically reveal cells when navigating. Run the snippet and then edit the first cell by double clicking. Pressing tab will advance to the next cell in edit mode and reveal the cell if it is not in the viewport.

Snippet058CellNavigationIn34.gif

Snippet060TextCellEditorWithContentProposal

Show how to use content-proposal inside a CellEditor

Snippet060TextCellEditorWithContentProposal.png

Snippet061FakedNativeCellEditor

Full featured native looking viewer with checkboxes in an arbitary column

You also need these classes:


Snippet061FakedNativeCellEditor.png

Snippet062TextAndDialogCellEditor

Demonstrates usage of TextAndDialogCellEditor. The email column uses the TextAndDialogCellEditor; othe columns use ordinary TextCellEditor.

You also need these classes:


Snippet062TextAndDialogCellEditor.png

Snippet063ComboViewer

Show how to use ComboViewer and set a inital selection

Snippet063ComboViewer.png

Window

Snippet020CustomizedControlTooltips

Demonstrates usage of new JFace 3.3 to show really cool ToolTips for your controls

For full fun you also need:


Snippet020CustomizedControlTooltips.png

Snippet031TableStaticTooltip

Demonstrates creation of ToolTips for Tables without using the JFace-Viewers API but only JFace-Tooltips

Snippet031TableStaticTooltip.png

Wizard

Wizard with Long Running Operation from Page

Demonstrates how to work with JFace-Wizards and fill a TableViewer from a Background-Thread without blocking the UI showing a progress bar in the meanwhile

Snippet047.gif

Wizard with Progress and Cancel

Demonstrates a wizard with internal progress.

Snippet071WizardWithProgressAndCancel.gif

Wizard with Progress Subtasks and Cancel

Demonstrates a wizard with internal progress using SubMonitor and subtasks.

Snippet072WizardWithProgressSubtasksAndCancel.png

Back to the top