Component Synchronizer is a special component that implements an automatic reaction to different events in the Visual Components. You can connect several Visual Components to the Synchronizer, and they will work as a single application.
You do not need to use Component Synchronizer with the whole set of the components connected, but connect only those which you use. For example, you can connect to it only Image Viewer via the ImageViewer property and Text Editor via the TextEditor property.
Component Synchronizer does not have a user interface. It does not use any internal features of the Visual Components, it uses only the COM API of the components. Component Synchronizer works as described below.
When a component is connected to the Synchronizer through the API
If a component or an object is connected to Component Synchronizer through:
the ImageViewer property
In this case, the IComponentSynchronizer::ImageViewer property is set to the specified ImageViewer object, and then the following operations are performed:
The property |
Is set to |
IImageViewer::ZoomRectEnabled |
True |
IImageViewer::DocumentProcessingParams |
IComponentSynchronizer::DocumentProcessingParams |
IImageViewer::FRPage |
The page in the IComponentSynchronizer::Document with the IComponentSynchronizer::PageIndex index |
the ZoomViewer property
In this case, the IComponentSynchronizer::ZoomViewer property is set to the specified ZoomViewer object, and then the following operations are performed:
The property |
Is set to |
IZoomViewer::SymbolRectEnabled |
True |
IZoomViewer::DocumentProcessingParams |
IComponentSynchronizer::DocumentProcessingParams |
IZoomViewer::FRPage |
The page in the IComponentSynchronizer::Document with the IComponentSynchronizer::PageIndex index |
the TextEditor property
In this case, the IComponentSynchronizer::TextEditor property is set to the specified TextEditor object, and then the following operations are performed:
The property |
Is set to |
ITextEditor::SynthesisParamsForDocument |
The value of the SynthesisParamsForDocument property of the IComponentSynchronizer::DocumentProcessingParams object |
ITextEditor::FRPage |
The page in the IComponentSynchronizer::Document with the IComponentSynchronizer::PageIndex index |
the TextValidator property
In this case, the IComponentSynchronizer::TextValidator property is set to the specified TextValidator object, and then the following operations are performed:
The property |
Is set to |
ITextValidator::SynthesisParamsForDocument |
The value of the SynthesisParamsForDocument property of the IComponentSynchronizer::DocumentProcessingParams object |
ITextValidator::FRDocument |
IComponentSynchronizer::Document |
the DocumentViewer property
In this case, the IComponentSynchronizer::DocumentViewer property is set to the specified DocumentViewer object, and then the following operations are performed:
The property |
Is set to |
IDocumentViewer::FRDocument |
IComponentSynchronizer::Document |
IDocumentViewer::DocumentProcessingParams |
IComponentSynchronizer::DocumentProcessingParams |
IDocumentViewer::ActivePage |
The page in the IComponentSynchronizer::Document with the IComponentSynchronizer::PageIndex index |
the Document property
In this case, the IComponentSynchronizer::Document property is set to the specified FRDocument object, and then the following operations are performed:
The property |
Is set to |
IImageViewer::FRPage
IZoomViewer::FRPage
ITextEditor::FRPage
IDocumentViewer::ActivePage
|
The first page in the IComponentSynchronizer::Document |
IComponentSynchronizer::PageIndex |
0 |
IDocumentViewer::FRDocument
ITextValidator::FRDocument
|
IComponentSynchronizer::Document |
the DocumentProcessingParams property
In this case, the IComponentSynchronizer::DocumentProcessingParams property is set to the specified DocumentProcessingParams object, and then the following operations are performed:
The property |
Is set to |
IImageViewer::DocumentProcessingParams
IZoomViewer::DocumentProcessingParams
IDocumentViewer::DocumentProcessingParams
|
IComponentSynchronizer::DocumentProcessingParams |
ITextEditor::SynthesisParamsForDocument
ITextValidator::SynthesisParamsForDocument
|
The value of the SynthesisParamsForDocument property of the IComponentSynchronizer::DocumentProcessingParams object |
the PageIndex property
In this case, the IComponentSynchronizer::PageIndex property is set to the specified value, and then the following operations are performed:
The property |
Is set to |
IImageViewer::FRPage
IZoomViewer::FRPage
ITextEditor::FRPage
IDocumentViewer::ActivePage
|
The page in the IComponentSynchronizer::Document with the IComponentSynchronizer::PageIndex index |
When a connected component generates an event
Events of the connected Image Viewer:
the OnMouseButtonUp event
If Image Viewer generates the OnMouseButtonUp event, Component Synchronizer performs the following operations:
the OnBlockSelectionChanged event
If Image Viewer generates the OnBlockSelectionChanged event, Component Synchronizer performs the following operations:
the OnTableSelected event
the OnAfterDblClick event
If Image Viewer generates the OnAfterDblClick event, Component Synchronizer performs the following operations:
the OnActivePageChanged event
If Image Viewer generates the OnActivePageChanged event and the ZoomViewer, TextEditor, DocumentViewer properties of the ComponentSynchronizer object have already been set, the FRPage or ActivePage property of the corresponding component is set to the specified page of the document.
the OnSelectTool event
If Image Viewer generates the OnSelectTool event, Component Synchronizer performs the following operations:
the OnOptionsChanged event
If Image Viewer generates the OnOptionsChanged event and the ZoomViewer, DocumentViewer, TextEditor, TextValidator properties of the ComponentSynchronizer object have already been set, the UpdateOptions method of the ZoomViewer, DocumentViewer, TextEditor, TextValidator objects is called.
Events of the connected Zoom Viewer:
the OnVisibleDocumentAreaChanged event
the OnBlockSelectionChanged event
If Zoom Viewer generates the OnBlockSelectionChanged event, Component Synchronizer performs the following operations:
the OnTableCellsSelected event
If Zoom Viewer generates the OnTableCellsSelected event, Component Synchronizer calls the ShowBlock method of the TextEditor object with the selected block index and the lower right cell index.
the OnAfterDblClick event
If Zoom Viewer generates the OnAfterDblClick event, Component Synchronizer performs the following operations:
the OnActivePageChanged event
If Zoom Viewer generates the OnActivePageChanged event and the ImageViewer, TextEditor, DocumentViewer properties of the ComponentSynchronizer object have already been set, the FRPage or ActivePage property of the corresponding component is set to the specified page of the document.
the OnSelectTool event
If Zoom Viewer generates the OnSelectTool event, Component Synchronizer performs the following operations:
the OnOptionsChanged event
If Zoom Viewer generates the OnOptionsChanged event and the ImageViewer, DocumentViewer, TextEditor, TextValidator properties of the ComponentSynchronizer object have already been set, the UpdateOptions method of the ImageViewer, DocumentViewer, TextEditor, TextValidator objects is called.
Events of the connected Document Viewer:
the OnActivePageChanged event
If Document Viewer generates the OnActivePageChanged event and the ImageViewer, ZoomViewer, TextEditor properties of the ComponentSynchronizer object have already been set, the FRPage property of the corresponding component is set to the specified page of the document.
the OnDocumentChanged event
If Document Viewer generates the OnDocumentChanged event and the ImageViewer, ZoomViewer, TextEditor, TextValidator properties of the ComponentSynchronizer object have already been set:
- the FRDocument property of the TextValidator object is set to the new document
- the FRPage property of the ImageViewer, ZoomViewer, and TextEditor objects and the ActivePage property of the DocumentViewer object are set to the first page of the new document
the OnOptionsChanged event
If Document Viewer generates the OnOptionsChanged event and the ImageViewer, ZoomViewer, TextEditor, TextValidator properties of the ComponentSynchronizer object have already been set, the UpdateOptions method of the ImageViewer, ZoomViewer, TextEditor, TextValidator objects is called.
Events of the connected Text Editor:
the OnEditorBlockChanged event
If Text Editor generates the OnEditorBlockChanged event, the ComponentSynchronizer performs the following operations:
- If the ImageViewer, ZoomViewer properties of the ComponentSynchronizer object have already been set, the SetSelectedBlocksIndices method of the ImageViewer and ZoomViewer object is called for the specified block.
- If it is a table block, the SetSelectedCells method of the ImageViewer and ZoomViewer object is called for the selected cell.
- Then the ShowDocumentArea method of the ImageViewer and ZoomViewer object is called.
the OnSymbolSelected event
If Text Editor generates the OnSymbolSelected event, Component Synchronizer performs the following operations:
the OnActivePageChanged event
If Text Editor generates the OnActivePageChanged event and the ImageViewer, ZoomViewer, DocumentViewer properties of the ComponentSynchronizer object have already been set, the FRPage or ActivePage property of the corresponding component is set to the specified page of the document.
the OnOptionsChanged event
If Text Editor generates the OnOptionsChanged event and the ImageViewer, ZoomViewer, DocumentViewer, TextValidator properties of the ComponentSynchronizer object have already been set, the UpdateOptions method of the ImageViewer, ZoomViewer, DocumentViewer, TextValidator objects is called.
Events of the connected Text Validator:
the OnSymbolSelected event
If Text Validator generates the OnSymbolSelected event, Component Synchronizer performs the following operations:
the OnSelectionChanged event
If Text Validator generates the OnSelectionChanged event, Component Synchronizer performs the following operations:
the OnActivePageChanged event
If Text Validator generates the OnActivePageChanged event and the ImageViewer, ZoomViewer, TextEditor, DocumentViewer properties of the ComponentSynchronizer object have already been set, the FRPage or ActivePage property of the corresponding component is set to the specified page of the document.
the OnDocumentChanged event
If Text Validator generates the OnDocumentChanged event and the ImageViewer, ZoomViewer, TextEditor, DocumentViewer properties of the ComponentSynchronizer object have already been set:
- the FRDocument property of the DocumentViewer object is set to the new document
- the FRPage property of the ImageViewer, ZoomViewer, and TextEditor objects and the ActivePage property of the DocumentViewer object are set to the first page of the new document
the OnOptionsChanged event
If Text Validator generates the OnOptionsChanged event and the ImageViewer, ZoomViewer, TextEditor, DocumentViewer properties of the ComponentSynchronizer object have already been set, the UpdateOptions method of the ImageViewer, ZoomViewer, TextEditor, DocumentViewer objects is called.
See also
ComponentSynchronizer