generation/caption-parameters.js

const _MwWrapper = require("../_mwbridge/_mw-wrapper.js");
const  Padding  = require("./padding");
const  FontUnit  = require("./font-unit");

/**
 * Caption parameters.
 */
class CaptionParameters extends _MwWrapper
{

    font;
    padding;

    constructor(mwObject)
    {
        super(mwObject);
        this._initializeWrapperMembers();
    }

    _initializeWrapperMembers()
    {
        this.padding = new Padding(this.getJavaClass().getPaddingSync());
        this.font = new FontUnit(this.getJavaClass().getFontSync());
    }

    /**
     * Caption text.<br>
     * Default value: empty string.
     */
    getText()
    {
        return this.getJavaClass().getTextSync();
    }

    /**
     * Caption text.<br>
     * Default value: empty string.
     */
    setText(value)
    {
        this.getJavaClass().setTextSync(value);
    }

    /**
     * Caption font.<br>
     * Default value: Arial 8pt regular.
     */
    getFont()
    {
        return this.font;
    }

    /**
     * Caption text visibility.<br>
     * Default value: false.
     */
    getVisible()
    {
        return this.getJavaClass().getVisibleSync();
    }

    /**
     * Caption text visibility.<br>
     * Default value: false.
     */
    setVisible(value)
    {
        this.getJavaClass().setVisibleSync(value);
    }

    /**
     * Caption text color.<br>
     * Default value BLACK.
     */
    getTextColor()
    {
        let intColor = this.getJavaClass().getTextColorSync();
        let hexColor = ((intColor) >>> 0).toString(16).slice(-6).toUpperCase()
        while (hexColor.length < 6) {
            hexColor = "0" + hexColor;
        }
        hexColor = "#" + hexColor;
        return hexColor;
    }

    /**
     * Caption text color.<br>
     * Default value BLACK.
     */
    setTextColor(hexValue)
    {
        this.getJavaClass().setTextColorSync((parseInt(hexValue.substr(1), 16) << 8) / 256);
    }

    /**
     * Captions paddings.<br>
     * Default value for CaptionAbove: 5pt 5pt 0 5pt.<br>
     * Default value for CaptionBelow: 0 5pt 5pt 5pt.
     */
    getPadding()
    {
        return this.padding;
    }

    /**
     * Captions paddings.<br>
     * Default value for CaptionAbove: 5pt 5pt 0 5pt.<br>
     * Default value for CaptionBelow: 0 5pt 5pt 5pt.
     */
    setPadding(value)
    {
        this.getJavaClass().setPaddingSync(value.getJavaClass());
        this.padding = value;
    }

    /**
     * Caption test horizontal alignment.<br>
     * Default TextAlignment.CENTER.
     */
    getAlignment()
    {
        return this.getJavaClass().getAlignmentSync();
    }

    /**
     * Caption test horizontal alignment.<br>
     * Default TextAlignment.CENTER.
     */
    setAlignment(value)
    {
        this.getJavaClass().setAlignmentSync(value);
    }

    /**
     * Specify word wraps (line breaks) within text.<br>
     * Default value: false.
     */
    getNoWrap()
    {
        return this.getJavaClass().getNoWrapSync();
    }

    /**
     * Specify word wraps (line breaks) within text.<br>
     * Default value: false.
     */
    setNoWrap(value)
    {
        this.getJavaClass().setNoWrapSync(value);
    }

    /**
     * Specify word wraps (line breaks) within text.<br>
     * Default value: false.
     */
    toString()
    {
        return this.getJavaClass().toStringSync();
    }
}

module.exports = CaptionParameters;