Class TreeMapper<M,L,R>
java.lang.Object
org.eclipse.nebula.widgets.treemapper.TreeMapper<M,L,R>
- Type Parameters:
M- The type of the business Mapping objectL- The type of the left bound of the mapping (as provided by LeftITreeContentProvider)R- The type of the left bound of the mapping (as provided by R>ightITreeContentProvider)
- All Implemented Interfaces:
org.eclipse.jface.viewers.ISelectionProvider
public class TreeMapper<M,L,R>
extends java.lang.Object
implements org.eclipse.jface.viewers.ISelectionProvider
A TreeMapper is a composite viewer the creates 2
TreeViewer (left and right)
and an area to display mappings between tree nodes.
It relies on a ISemanticTreeMapperSupport to create your business mapping objects,
and to resolve the bounds of a mapping object to object that are provided in the trees.- Since:
- 0.1.0
-
Constructor Summary
Constructors Constructor Description TreeMapper(org.eclipse.swt.widgets.Composite parent, ISemanticTreeMapperSupport<M,L,R> semanticSupport, TreeMapperUIConfigProvider uiConfig) -
Method Summary
Modifier and Type Method Description voidaddNewMappingListener(INewMappingListener<M> listener)voidaddSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)protected voidfireMappingSelection(M mapping, LinkFigure arrowFigure)protected voidfireMouseEntered(M mapping, LinkFigure arrowFigure)protected voidfireMouseExited(M mapping, LinkFigure arrowFigure)org.eclipse.swt.custom.SashFormgetControl()org.eclipse.jface.viewers.TreeViewergetLeftTreeViewer()org.eclipse.jface.viewers.TreeViewergetRightTreeViewer()org.eclipse.jface.viewers.IStructuredSelectiongetSelection()protected voidperformMappingByDrop(org.eclipse.jface.viewers.TreeViewer sourceTreeViewer, org.eclipse.jface.viewers.ISelection sourceData, org.eclipse.jface.viewers.TreeViewer targetTreeViewer, org.eclipse.swt.widgets.TreeItem targetTreeItem, int direction)voidrefresh()Refresh the widget by resetting the setInput valuevoidremoveSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)voidsetContentProviders(org.eclipse.jface.viewers.ITreeContentProvider leftContentProvider, org.eclipse.jface.viewers.ITreeContentProvider rightTreeContentProvider)Set the content providers for both trees.voidsetInput(java.lang.Object leftTreeInput, java.lang.Object rightTreeInput, java.util.List<M> mappings)Sets the input of the widget.voidsetLabelProviders(org.eclipse.jface.viewers.IBaseLabelProvider leftLabelProvider, org.eclipse.jface.viewers.IBaseLabelProvider rightLabelProvider)voidsetSelection(org.eclipse.jface.viewers.ISelection selection)
-
Constructor Details
-
TreeMapper
public TreeMapper(org.eclipse.swt.widgets.Composite parent, ISemanticTreeMapperSupport<M,L,R> semanticSupport, TreeMapperUIConfigProvider uiConfig)
-
-
Method Details
-
setContentProviders
public void setContentProviders(org.eclipse.jface.viewers.ITreeContentProvider leftContentProvider, org.eclipse.jface.viewers.ITreeContentProvider rightTreeContentProvider)Set the content providers for both trees. Both tree provides MUST HAVE theirITreeContentProvider.getParent(Object)method implemeneted.- Parameters:
leftContentProvider- AnITreeContentProviderthat node are instances of the L type parameter.rightTreeContentProvider- AnITreeContentProviderthat node are instances of the R type parameter.
-
setLabelProviders
public void setLabelProviders(org.eclipse.jface.viewers.IBaseLabelProvider leftLabelProvider, org.eclipse.jface.viewers.IBaseLabelProvider rightLabelProvider) -
setInput
public void setInput(java.lang.Object leftTreeInput, java.lang.Object rightTreeInput, java.util.List<M> mappings)Sets the input of the widget.- Parameters:
leftTreeInput- The input for leftTreeViewerrightTreeInput- The input for rightTreeViewermappings- The list containing the mapping. It will be used as a working copy and then MODIFIED by the tree mapper. If you don't want to pass a modifiable list, then pass a copy of the default mapping list, and prefer usingTreeMapperaddNewMappingListener(INewMappingListener)andINewMappingListenerto track the creation of mapping.
-
performMappingByDrop
protected void performMappingByDrop(org.eclipse.jface.viewers.TreeViewer sourceTreeViewer, org.eclipse.jface.viewers.ISelection sourceData, org.eclipse.jface.viewers.TreeViewer targetTreeViewer, org.eclipse.swt.widgets.TreeItem targetTreeItem, int direction)- Parameters:
targetTreeViewer-data-widget-
-
getControl
public org.eclipse.swt.custom.SashForm getControl()- Returns:
-
addSelectionChangedListener
public void addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)- Specified by:
addSelectionChangedListenerin interfaceorg.eclipse.jface.viewers.ISelectionProvider
-
getSelection
public org.eclipse.jface.viewers.IStructuredSelection getSelection()- Specified by:
getSelectionin interfaceorg.eclipse.jface.viewers.ISelectionProvider- See Also:
ISelectionProvider.getSelection()
-
removeSelectionChangedListener
public void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)- Specified by:
removeSelectionChangedListenerin interfaceorg.eclipse.jface.viewers.ISelectionProvider- See Also:
ISelectionProvider.removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-
setSelection
public void setSelection(org.eclipse.jface.viewers.ISelection selection)- Specified by:
setSelectionin interfaceorg.eclipse.jface.viewers.ISelectionProvider- See Also:
ISelectionProvider.setSelection(org.eclipse.jface.viewers.ISelection)
-
fireMappingSelection
- Parameters:
mapping-arrowFigure-
-
addNewMappingListener
- Parameters:
iNewMappingListener-
-
fireMouseExited
- Parameters:
mapping-arrowFigure-
-
fireMouseEntered
- Parameters:
mapping-arrowFigure-
-
getLeftTreeViewer
public org.eclipse.jface.viewers.TreeViewer getLeftTreeViewer()- Returns:
-
getRightTreeViewer
public org.eclipse.jface.viewers.TreeViewer getRightTreeViewer()- Returns:
-
refresh
public void refresh()Refresh the widget by resetting the setInput value
-