The keyword "synchronization" is used in INTViewer for 3 distinct features:
Plot synchronization is only used in 2D windows. It synchronizes the cursor and scrolling positions between windows. A user can customize the plot synchronization from the "Plot -> Synchronization" menu.
INTViewer has dedicated named properties in IXSectionWindow and IMapWindow to control plot synchronization settings. Those named properties are: ENABLE_PLOT_BROADCAST, VERTICAL_SCROLL_SYNC, HORIZONTAL_SCROLL_SYNC, VERTICAL_SCALE_SYNC, HORIZONTAL_SCALE_SYNC and CURSOR_POSITION_SYNC.
IXSectionWindow also has VERTICAL_ANNOTATION_SYNC and HORIZONTAL_ANNOTATION_SYNC.
Each time the cursor is moved over a 2D layer, a CursorPositionEvent event is sent. Each time a window is scrolled, a WindowPositionEvent is sent. Each time a window is scaled, a WindowScaleEvent is sent. For more information about events, go to INTViewer APIs for Events.
Visual data range synchronization is used to synchronize the data range used by visuals (layers). A user can customize visual data range synchronization settings using the "Properties -> Data" tab.
Each time a data range is modified, a DataSynchronizeEvent event is sent.
For the increment and decrement buttons to work, a XSection seismic layer needs to meet the following criteria:
Layers in other windows will be affected only if the xsection layer that was selected/in focus was affected. They don't need to show the same data, just to have a "synchronize" checkbox checked for the same key name and have a key range for that key that is a point.
You can simulate the effects of the Increment(+) and Decrement(-) buttons by calling the increment and decrement methods of com.interactive.intviewerapi.IStep for the selected layer of any window. To get the selected layer of any window, use the IViewerWindow.getSelectedVisual method.
You can also change the set and get the value that is displayed in the Increment column of any data range using the IStep.setIncrement and IStep.getIncrement methods.
ISeismicLayer layer = ...
if (layer.getIncrement("INLINE") > 1) {
layer.setIncrement("INLINE", 1);
}
layer.increment();
Layer properties is used to synchronize the display properties of visuals (layers), such as the color map.
For all types of visuals, use the IPropertyProvider.setProperties method. Example:
ISeismicLayer layer = ...
cgColorMap colorMap = ...
NamedProps props = new NamedProps();
props.putProperty(ISeismicLayer.COLOR_MAP, colorMap);
layer.setProperties(props);
Each time a visual property is modified, a PropertyProviderEvent event is sent.