Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java')
-rw-r--r--bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java42
1 files changed, 41 insertions, 1 deletions
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
index 021451528..6e18fbc9d 100644
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
+++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
@@ -116,6 +116,7 @@ public class CompareConfiguration {
private IPreferenceStore fPreferenceStore;
private ListenerList<IPropertyChangeListener> fListeners= new ListenerList<>();
private HashMap<String, Object> fProperties= new HashMap<>();
+ private boolean fMirroringEnabled = true;
private boolean fLeftEditable= true;
private boolean fRightEditable= true;
private String fAncestorLabel;
@@ -366,16 +367,55 @@ public class CompareConfiguration {
}
/**
+ * Returns true if the compare viewer is mirrored, i.e. the left and the right panes are swapped.
+ * Mirroring is enabled by default.
+ * <p>
* <b>Only the views are mirrored. All model values for left and right are not changed!</b>
*
- * @return true if the left and right side of the viewer are mirrored. Default is false.
+ * @return true if the compare viewer is mirrored. By default the Compare viewer is not mirrored.
* @since 3.7
*/
public boolean isMirrored() {
+ if (!fMirroringEnabled)
+ return false;
Object property = getProperty(MIRRORED);
return property instanceof Boolean && (Boolean) property;
}
+ /**
+ * Returns true if mirroring of the compare viewer is enabled. Mirroring is enabled by default.
+ *
+ * @return true if mirroring is enabled
+ * @see #isMirrored()
+ * @see #setMirroringEnabled(boolean)
+ * @since 3.7
+ */
+ public final boolean isMirroringEnabled() {
+ return fMirroringEnabled;
+ }
+
+ /**
+ * Enables or disables mirroring of the compare viewer, i.e. swapping of the left and the right panes.
+ * The mirroring is enabled by default.
+ * <p>
+ * Code that always puts the after state on the right should disable mirroring. Code that may put the after state
+ * on the left should not disable mirroring.
+ * <p>
+ * The "after" state is the state of the file after applying some particular change and is determined by user
+ * actions rather than the file timestamps. For example, when previewing result of a revert operation, the "after"
+ * state is the state of the file that existed at some point in the past.
+ * <p>
+ * When previewing a hypothetical change, the "after" state is the proposed future change and the "before" state
+ * is the current state of the file. When comparing two existing file states, the "before" and "after" states
+ * can be determined by chronology or by order in which the users selected the file states.
+ *
+ * @param value if true, the mirroring is enabled, otherwise disabled
+ * @since 3.7
+ */
+ public final void setMirroringEnabled(boolean value) {
+ fMirroringEnabled = value;
+ }
+
private ImageDescriptor getImageDescriptor(int kind) {
return fgImages[(kind & 15) + (isMirrored() ? 16 : 0)];
}

Back to the top