public class FuseController
extends java.lang.Object
implements org.eclipse.compare.IPropertyChangeNotifier, com.ibm.xtools.comparemerge.emf.internal.fuse.events.IFuseNotifier
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
PROPERTY_DIRTY |
static java.lang.String |
PROPERTY_FILTER_DIFFS |
static java.lang.String |
PROPERTY_FILTER_ELEMENTS |
static java.lang.String |
PROPERTY_SESSION_ERROR |
static java.lang.String |
PROPERTY_SESSION_OPEN |
static java.lang.String |
PROPERTY_SHOW_DIFFERENCES |
static java.lang.String |
PROPERTY_SHOW_MATCHES |
static java.lang.String |
PROPERTY_SHOW_RELATED_DIFFS |
Constructor and Description |
---|
FuseController(FuseViewer parentViewer)
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
addFuseListener(com.ibm.xtools.comparemerge.emf.internal.fuse.events.IFuseListener listener) |
void |
addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener) |
void |
addSubSessionListener(ISubSessionMergeEventListener listener) |
void |
applyManualMatch()
Applies the new manual match for two objects set before via
setSourceManualMatch() and
setTargetManualMatch() . |
protected boolean |
applyMarkedDifferences(boolean confirmDelete)
This will apply all check-marked differences to the target model.
|
boolean |
canApplyManualMatch() |
boolean |
canManualyMatchNode(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree,
com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node) |
boolean |
canManualyMatchNodeToSelected(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree,
com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node) |
boolean |
commitSession()
This will apply all marked differences to the target model, save the
result and close the session.
|
void |
disableDeltaFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IDeltaFilter deltaFilter)
Disables the given delta filter.
|
void |
disableElementFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IElementFilter elementFilter)
Disables the given delta filter.
|
protected void |
doSetManualMatch(org.eclipse.emf.ecore.EObject sourceManualMatchObject,
org.eclipse.emf.ecore.EObject targetManualMatchObject) |
void |
enableDeltaFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IDeltaFilter deltaFilter)
Enables the given delta filter.
|
void |
enableElementFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IElementFilter elementFilter)
Enables the given delta filter.
|
boolean |
filterDelta(com.ibm.xtools.comparemerge.emf.fuse.nodes.DeltaInfo deltaInfo)
Performs delta filtering by using the previously set filtering strategy.
|
org.eclipse.emf.common.notify.AdapterFactory |
getAdapterFactory() |
com.ibm.xtools.comparemerge.emf.internal.fuse.nodes.Difference |
getCurrentDifference() |
com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode |
getCurrentSourceNode() |
com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode |
getCurrentTargetNode() |
java.util.Map |
getDeletedObjectPlaceholderMap() |
java.util.List |
getDeltaFiltersAll() |
java.util.List |
getDeltaFiltersEnabled() |
com.ibm.xtools.comparemerge.emf.fuse.nodes.DeltaInfo |
getDeltaInfo(Delta delta) |
IDifferenceRenderer |
getDifferenceRenderer()
If needed, creates and return the Difference Renderer capable of
providing human-readable description for the model differences.
|
com.ibm.xtools.comparemerge.emf.internal.fuse.nodes.CheckmarkNodeHierarchy |
getDifferences() |
java.util.Map |
getDifferencesMap() |
com.ibm.xtools.comparemerge.emf.internal.fuse.utils.TreeNavigator |
getDifferencesNavigator() |
java.util.List |
getElementFiltersAll() |
java.util.List |
getElementFiltersEnabled() |
FuseViewer |
getFuseViewer() |
com.ibm.xtools.comparemerge.emf.fuse.services.IFuseViewerFactory |
getFuseViewerFactory() |
com.ibm.xtools.comparemerge.emf.fuse.filters.HierarchyElementsFilter |
getHierarchyFilterForObject(org.eclipse.emf.ecore.EObject eObject) |
com.ibm.xtools.comparemerge.emf.internal.fuse.nodes.ManualMatchNodeHierarchy |
getManualMatches() |
EmfMergeManager |
getMergeManager() |
java.util.Map |
getNodeMap(org.eclipse.emf.ecore.resource.Resource resource) |
java.lang.Object |
getProperty(java.lang.String property) |
com.ibm.xtools.comparemerge.emf.internal.fuse.utils.FuseSessionInfo |
getSessionInfo() |
java.util.Map |
getSourceNodeMap() |
org.eclipse.emf.ecore.resource.Resource |
getSourceResource() |
com.ibm.xtools.comparemerge.emf.internal.fuse.utils.EObjectStateMap |
getSourceStateMap() |
com.ibm.xtools.comparemerge.emf.internal.fuse.utils.EObjectStateMap |
getStateMap(org.eclipse.emf.ecore.resource.Resource resource) |
protected com.ibm.xtools.comparemerge.emf.internal.utils.SubMergeHandler |
getSubSessionHandler() |
java.util.Map |
getTargetNodeMap() |
org.eclipse.emf.ecore.resource.Resource |
getTargetResource() |
com.ibm.xtools.comparemerge.emf.internal.fuse.utils.EObjectStateMap |
getTargetStateMap() |
boolean |
isDeltaFilterEnabled() |
boolean |
isFuseSession() |
boolean |
isSessionOpen() |
void |
notifyFuseListeners(java.lang.String eventId,
java.lang.Object source,
java.lang.Object data) |
void |
notifySubSessionListeners(SubSessionMergeEvent event) |
void |
onSubMergeEvent(SubSessionMergeEvent event) |
void |
reapplyManualMatches()
Re-apply previously stored manual matches from the Manual Matches
hierarchy to the Matcher.
|
void |
refresh(boolean preserve,
boolean confirmImplicitDeleteDifferences)
This will reinitialize already opened fuse session and call refresh on
the Fuse Viewer.
|
void |
removeFuseListener(com.ibm.xtools.comparemerge.emf.internal.fuse.events.IFuseListener listener) |
void |
removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener) |
void |
removeSubSessionListener(ISubSessionMergeEventListener listener) |
void |
resetFilterStateToDefault() |
void |
setShowRelatedDifferences(boolean show)
When enabled, limits the scope of the differences displayed in the
Differences Tree only to those related to the selected model element in
the source tree.
|
void |
setSourceManualMatch(com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
Sets the node in the Source tree to be matched
|
void |
setTargetManualMatch(com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
Sets the node in the Target tree to be matched
|
void |
showDifferences(boolean show)
Causes the Fuse Viewer to show/hide the Differences tree
|
void |
showManualMatches(boolean show)
Causes the Fuse Viewer to show/hide the Manual Matches tree
|
void |
unapplyManualMatches(boolean removeAll)
Removes all check-marked manual matches that were previously applied or
all if requested.
|
boolean |
wasManuallyMatched(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree,
com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node) |
boolean |
wasSelectedForManualMatch(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree,
com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node) |
public static final java.lang.String PROPERTY_DIRTY
public static final java.lang.String PROPERTY_SESSION_OPEN
public static final java.lang.String PROPERTY_SESSION_ERROR
public static final java.lang.String PROPERTY_SHOW_DIFFERENCES
public static final java.lang.String PROPERTY_SHOW_MATCHES
public static final java.lang.String PROPERTY_SHOW_RELATED_DIFFS
public static final java.lang.String PROPERTY_FILTER_DIFFS
public static final java.lang.String PROPERTY_FILTER_ELEMENTS
public FuseController(FuseViewer parentViewer)
public boolean isSessionOpen()
public boolean commitSession()
true
if successpublic final void refresh(boolean preserve, boolean confirmImplicitDeleteDifferences)
public void resetFilterStateToDefault()
protected boolean applyMarkedDifferences(boolean confirmDelete) throws java.lang.Exception
java.lang.Exception
public final com.ibm.xtools.comparemerge.emf.internal.fuse.utils.FuseSessionInfo getSessionInfo()
public final com.ibm.xtools.comparemerge.emf.internal.fuse.utils.TreeNavigator getDifferencesNavigator()
public IDifferenceRenderer getDifferenceRenderer()
public final boolean isFuseSession()
public final FuseViewer getFuseViewer()
public final org.eclipse.emf.common.notify.AdapterFactory getAdapterFactory()
public final com.ibm.xtools.comparemerge.emf.fuse.services.IFuseViewerFactory getFuseViewerFactory()
public final EmfMergeManager getMergeManager()
public final org.eclipse.emf.ecore.resource.Resource getSourceResource()
public final org.eclipse.emf.ecore.resource.Resource getTargetResource()
public final com.ibm.xtools.comparemerge.emf.internal.fuse.nodes.CheckmarkNodeHierarchy getDifferences()
public final com.ibm.xtools.comparemerge.emf.internal.fuse.nodes.ManualMatchNodeHierarchy getManualMatches()
public void showDifferences(boolean show)
show
- true to show, false to hidepublic void showManualMatches(boolean show)
show
- true to show, false to hidepublic void setShowRelatedDifferences(boolean show)
show
- true to enable, otherwise the diffs tree will show all
differencespublic final com.ibm.xtools.comparemerge.emf.internal.fuse.utils.EObjectStateMap getStateMap(org.eclipse.emf.ecore.resource.Resource resource)
public final com.ibm.xtools.comparemerge.emf.internal.fuse.utils.EObjectStateMap getSourceStateMap()
public final com.ibm.xtools.comparemerge.emf.internal.fuse.utils.EObjectStateMap getTargetStateMap()
public final java.util.Map getNodeMap(org.eclipse.emf.ecore.resource.Resource resource)
public final java.util.Map getSourceNodeMap()
public final java.util.Map getTargetNodeMap()
public final java.util.Map getDifferencesMap()
public final java.util.Map getDeletedObjectPlaceholderMap()
public final java.util.List getDeltaFiltersAll()
getDeltaFiltersEnabled()
public final java.util.List getDeltaFiltersEnabled()
getDeltaFiltersAll()
public void enableDeltaFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IDeltaFilter deltaFilter)
public void disableDeltaFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IDeltaFilter deltaFilter)
public final java.util.List getElementFiltersAll()
getDeltaFiltersEnabled()
public final java.util.List getElementFiltersEnabled()
getDeltaFiltersAll()
public final com.ibm.xtools.comparemerge.emf.fuse.filters.HierarchyElementsFilter getHierarchyFilterForObject(org.eclipse.emf.ecore.EObject eObject)
null
if none.public void enableElementFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IElementFilter elementFilter)
public void disableElementFilter(com.ibm.xtools.comparemerge.emf.fuse.filters.IElementFilter elementFilter)
public boolean isDeltaFilterEnabled()
true
if at least one delta filter (visible or not)
is enabled.public boolean filterDelta(com.ibm.xtools.comparemerge.emf.fuse.nodes.DeltaInfo deltaInfo)
true
.deltaInfo
- to be filteringtrue
if the delta is to be listed in the
Difference tree and to be annotated on the model trees.public com.ibm.xtools.comparemerge.emf.internal.fuse.nodes.Difference getCurrentDifference()
public com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode getCurrentSourceNode()
public com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode getCurrentTargetNode()
null
public boolean canManualyMatchNode(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree, com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
node
from a given
tree
(either Source or Target tree) can be
manually matched to some other node in the opposite tree.public boolean canManualyMatchNodeToSelected(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree, com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
true
if a given node can be manually matched to a
previously selected node in the opposite treepublic boolean wasSelectedForManualMatch(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree, com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
true
if a given node was selected for manual match
but the manual match was not applied yetpublic boolean wasManuallyMatched(com.ibm.xtools.comparemerge.emf.internal.fuse.viewers.AnnotatedTreeViewer tree, com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
true
if a given node was previously manually
matched.public final void setSourceManualMatch(com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
public final void setTargetManualMatch(com.ibm.xtools.comparemerge.emf.fuse.nodes.AnnotationNode node)
public boolean canApplyManualMatch()
true
if the two previously set objects can be
manually matchedpublic void applyManualMatch()
setSourceManualMatch()
and
setTargetManualMatch()
. This will restart the session to
re-generate the deltas.public void unapplyManualMatches(boolean removeAll)
removeAll
- to be true
if ALL matches to be removed,
otherwise only check-marked one will be removed.public void reapplyManualMatches()
protected void doSetManualMatch(org.eclipse.emf.ecore.EObject sourceManualMatchObject, org.eclipse.emf.ecore.EObject targetManualMatchObject)
public java.lang.Object getProperty(java.lang.String property)
public void addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
addPropertyChangeListener
in interface org.eclipse.compare.IPropertyChangeNotifier
public void removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
removePropertyChangeListener
in interface org.eclipse.compare.IPropertyChangeNotifier
public void notifyFuseListeners(java.lang.String eventId, java.lang.Object source, java.lang.Object data)
public void addFuseListener(com.ibm.xtools.comparemerge.emf.internal.fuse.events.IFuseListener listener)
addFuseListener
in interface com.ibm.xtools.comparemerge.emf.internal.fuse.events.IFuseNotifier
public void removeFuseListener(com.ibm.xtools.comparemerge.emf.internal.fuse.events.IFuseListener listener)
removeFuseListener
in interface com.ibm.xtools.comparemerge.emf.internal.fuse.events.IFuseNotifier
public void notifySubSessionListeners(SubSessionMergeEvent event)
event
- - event propagator. pass event from the subsession handler to the listenerspublic void addSubSessionListener(ISubSessionMergeEventListener listener)
listener
- -
add sub session event listener to our local cache. The events
will be generated only when sub session handler is
instantiated and subsessions are run. That instantiation is
lazy. Because of that we do not add/remove listeners directly to the
sub session handler's cachepublic void removeSubSessionListener(ISubSessionMergeEventListener listener)
listener
- -
remove sub session event listener from our local cache. These
events are generated only when sub session handler is
instantiated and subsessions are run. The instantiation is
lazy. Because of that, we do not add/remove listeners directly to the
sub session handler's cacheprotected com.ibm.xtools.comparemerge.emf.internal.utils.SubMergeHandler getSubSessionHandler()
public void onSubMergeEvent(SubSessionMergeEvent event)
public com.ibm.xtools.comparemerge.emf.fuse.nodes.DeltaInfo getDeltaInfo(Delta delta)