VintaSoft Imaging .NET SDK 15.1: Documentation for Web developer
In This Topic
Create new side panel for Web Document Viewer UI
In This Topic
Here is JavaScript code that shows how to create UI-panel with simple processing commands, register new panel in UI-element factory and add new panel to the side panel of web document viewer:
var _docViewer;

/**
 * Main function.
 */
function __main() {
    ...

    // create the document viewer settings
    var docViewerSettings = new Vintasoft.Imaging.DocumentViewer.WebDocumentViewerSettingsJS("documentViewerContainer");

    // initialize side panel of document viewer
    __initSidePanel(docViewerSettings);

    // create the document viewer
    _docViewer = new Vintasoft.Imaging.DocumentViewer.WebDocumentViewerJS(docViewerSettings);

    ...
}

/**
 Initializes side panel of document viewer.
 @param {object} docViewerSettings Settings of document viewer.
*/
function __initSidePanel(docViewerSettings) {
    // get items of document viewer
    var docViewerItems = docViewerSettings.get_Items();

    var sidePanel = docViewerItems.getItemByRegisteredId("sidePanel");
    if (sidePanel != null) {
        var sidePanelItems = sidePanel.get_PanelsCollection();

        // register the "Simple image processing" panel in web UI elements factory
        Vintasoft.Imaging.DocumentViewer.WebUiElementsFactoryJS.registerElement("simpleImageProcessingPanel", __createSimpleImageProcessingPanel);

        // add the "Simple image processing" panel to the side panel
        sidePanelItems.addItem("simpleImageProcessingPanel");
    }
}

/**
 * Creates UI panel with simple image processing functionality.
 */
function __createSimpleImageProcessingPanel () {
    // create the button that allows to invert image in image viewer
    var invertImageButton = new Vintasoft.Imaging.DocumentViewer.UIElements.WebUiButtonJS({
        cssClass: "invertImage",
        title: "Invert image",
        localizationId: "invertImageButton",
        css: { "margin-left": "5px" },
        onClick: __invertImageButton_clicked
    });

    // create the button that allows to open/close the simple image processing panel
    var simpleImageProcessingPanelOpenButton = new Vintasoft.Imaging.DocumentViewer.UIElements.WebUiButtonJS({
        cssClass: "simpleImageProcessing",
        title: "Simple image processing",
        localizationId: "simpleImageProcessingPanelButton"
    });

    // create an UI panel, which provides simple image processing functionality
    var panel = new Vintasoft.Imaging.DocumentViewer.Panels.WebUiPanelJS(
        [
            invertImageButton
        ],
        { cssClass: "vsdv-sidePanel-content" }, simpleImageProcessingPanelOpenButton);

    return panel;
}

/**
 * "Invert image" button is clicked.
 */
function __invertImageButton_clicked(event, uiElement) {
    // get document viewer
    _docViewer = uiElement.get_RootControl();
    // get image viewer
    var imageViewer = _docViewer.get_ImageViewer();
    // get focused image in image viewer
    var focusedImage = imageViewer.get_FocusedImage();
    // if focused image exists
    if (focusedImage != null) {
        // create an image processing command
        var invertCommand = new Vintasoft.Imaging.ImageProcessing.WebInvertCommandJS();
        // apply command to the focused image
        invertCommand.execute(focusedImage, __invertCommand_success, __invertCommand_error);
    }
}

/**
 * Image is inverted successfully.
 */
function __invertCommand_success(answer) {
    // get information about processed image
    var fileUrl = answer.imageInfo.fileInfo.id;
    var pageIndex = answer.imageInfo.pageIndex;
    // create new image source and image
    var imageSource = new Vintasoft.Shared.WebImageSourceJS(fileUrl);
    var image = new Vintasoft.Shared.WebImageJS(imageSource, pageIndex);

    // get image viewer
    var imageViewer = _docViewer.get_ImageViewer();
    // get index of focused image in image viewer
    var focusedIndex = imageViewer.get_FocusedIndex();
    // set the processed image as the focused image in image viewer
    imageViewer.get_Images().set(focusedIndex, image);
}

/**
 * Invert command is failed.
 */
function __invertCommand_error(answer) {
    // if answer contains error message
    if (answer.errorMessage)
        // show the error message
        alert(answer.errorMessage);
}