constructor(drawArea, circuitWidget, displayedToolboxTop, displayedToolboxBottom, hand) {
        /** @type {!DisplayedCircuit} */
        this.displayedCircuit = circuitWidget;
        /** @type {!DisplayedToolbox} */
        this.displayedToolboxTop = displayedToolboxTop;
        /** @type {!DisplayedToolbox} */
        this.displayedToolboxBottom = displayedToolboxBottom.
            withCustomGatesInserted(circuitWidget.circuitDefinition.customGateSet);
        /** @type {!Hand} */
        this.hand = hand;
        /** @type {!Rect} */
        this.drawArea = new Rect(0, 0, 0, 0);

        this.updateArea(drawArea);
    }
@param {!Rect} drawArea
@param {!DisplayedCircuit} circuitWidget
@param {!DisplayedToolbox} displayedToolboxTop
@param {!DisplayedToolbox} displayedToolboxBottom
@param {!Hand} hand