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 void
addNewMappingListener(INewMappingListener<M> listener)
void
addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
protected void
fireMappingSelection(M mapping, LinkFigure arrowFigure)
protected void
fireMouseEntered(M mapping, LinkFigure arrowFigure)
protected void
fireMouseExited(M mapping, LinkFigure arrowFigure)
org.eclipse.swt.custom.SashForm
getControl()
org.eclipse.jface.viewers.TreeViewer
getLeftTreeViewer()
org.eclipse.jface.viewers.TreeViewer
getRightTreeViewer()
org.eclipse.jface.viewers.IStructuredSelection
getSelection()
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)
void
refresh()
Refresh the widget by resetting the setInput valuevoid
removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
void
setContentProviders(org.eclipse.jface.viewers.ITreeContentProvider leftContentProvider, org.eclipse.jface.viewers.ITreeContentProvider rightTreeContentProvider)
Set the content providers for both trees.void
setInput(java.lang.Object leftTreeInput, java.lang.Object rightTreeInput, java.util.List<M> mappings)
Sets the input of the widget.void
setLabelProviders(org.eclipse.jface.viewers.IBaseLabelProvider leftLabelProvider, org.eclipse.jface.viewers.IBaseLabelProvider rightLabelProvider)
void
setSelection(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
- AnITreeContentProvider
that node are instances of the L type parameter.rightTreeContentProvider
- AnITreeContentProvider
that 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 leftTreeViewer
rightTreeInput
- The input for rightTreeViewer
mappings
- 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 usingTreeMapper
addNewMappingListener(INewMappingListener)
andINewMappingListener
to 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:
addSelectionChangedListener
in interfaceorg.eclipse.jface.viewers.ISelectionProvider
-
getSelection
public org.eclipse.jface.viewers.IStructuredSelection getSelection()- Specified by:
getSelection
in interfaceorg.eclipse.jface.viewers.ISelectionProvider
- See Also:
ISelectionProvider.getSelection()
-
removeSelectionChangedListener
public void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)- Specified by:
removeSelectionChangedListener
in 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:
setSelection
in 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
-