Source

adapter/AdapterServicesDesite.js

/**
 * $Id: AdapterDesite.js 9694 2026-01-09 22:05:48Z jochen.hanff $
 */

'use strict'

import { IModelViewer } from "./IModelViewer.js";
import { ApiResponse } from "../tools/ApiResponse.js";
import { AdptDESITE_30 , AdptDESITE_32 } from "./AdapterDesite_30_32.js";
import { AdptDESITE_34 , AdptVDC_40 } from "./AdapterDesite_34_40.js";

/**
 *
 *  @category Model Viewer
 *
 */
export class DesiteAdapterServices {

    constructor() {
    }

    /**
     *  Create instance of correct DESITE version API class
     *
     *  @returns {Promise<IModelViewer>} Adapter instrance
     *
     */
    static async createAdapter() {

        let desiteVersionString = await desiteAPI.getVersionAsString()

        this.recognizedModelViewerVersion = desiteVersionString

        let parts = desiteVersionString.split('.');

        for (let i = 0; i < parts.length; i++) {
            if (i === 0) {
                parts[i] = parts[i];
            } else {
                parts[i] = parts[i].padStart(1, '0');
            }
        }

        let desiteVersionNumber = parseInt(parts.join(''));

        if (desiteVersionNumber >= 400) {
            console.log(`VDC Manager Version:`, desiteVersionNumber)
        } else {
            console.log(`DESITE Version:`, desiteVersionNumber)
        }

        if (desiteVersionNumber >= 400) {
            const adpt = new AdptVDC_40();
            return adpt
        } else if (desiteVersionNumber >= 340) {
            const adpt = new AdptDESITE_34();
            return adpt
        } else if (desiteVersionNumber >= 320) {
            const adpt = new AdptDESITE_32();
            return adpt
        } else if (desiteVersionNumber >= 300) {
            
            const adpt = new AdptDESITE_30();
    
            // desiteMD.setFooterVisible(false);
            // desiteMD.setHeaderVisible(false);
 
            // desiteAPI.selectionChanged.connect( adpt.onSelectionChanged )

            return adpt

        }
    }

}