class OverviewPanel {
    constructor() {
        this._iFrame = null;
    }

    get iFrame() {
        this._iFrame = document.getElementById("overviewIframe");
        this._iFrame.contentWindow.TheLastApp = TheLastApp;
        return this._iFrame;
    }
    set iFrame(newValue) {
        this._iFrame = newValue;
    }

    init(controller) {

        if (controller != null) {
            this.controller = controller;

            //			this.controller._eventSupport.addEventListener("select",this,this.renderSomething);

        }
        return this;
    }


    select(item) {
        console.log(item);
        this.controller.selectedItem = item;
        this.controller._eventSupport.getEvent("select").fire(this, item);

        var type = this._processType(item);


        /*		Structr.find(type, id, parameter, setIFrameURL)
        		Structr.defaultStructrServer = "http://structr.cerulean.it:6082";
        		Structr.find("Page", null, {"name":type+"Overview"}, this._processFindPageResponse.bind(this))
        */
        this._processFindPageResponse(null);
    }

    _processFindPageResponse(response) {
        console.log(response);


        var item = this.controller.selectedItem;
        var type = this._processType(item);

        var page = null;

        if (response != null)
            response.result[0];

        /*		
        		var modelIndex = this.controller.model2ViewMap.keys.index;
        		var models = [];
        		for(var i in modelIndex)
        			models.push(modelIndex[i]);
        */
        if (!this.overviewPanel) {
            this.overviewPanel = document.querySelector("[id*='" + this.constructor.name + "[']").weBeanNode
        }
        var model = this.overviewPanel.model;

        if (page == null) {
            var component = UcpComponentSupport.lookup("DefaultOverview");
            var view = this.iFrame.contentWindow.UcpComponentSupport.lookupView("DefaultOverview[0]");

            if (TheLastApp.overview.controller.selectedItem)
                if (TheLastApp.overview.controller.selectedItem.push)
                    view.model.properties.heading = TheLastApp.overview.controller.selectedItem[0].constructor.name;
                else
                    view.model.properties.heading = TheLastApp.overview.controller.selectedItem.constructor.name;

            model.properties.url = component.controller.basePath + "src/html/DefaultOverview.html";
            /*			
            			this.iFrame.contentWindow.onload = () => {
            			component=this.iFrame.contentWindow.UcpComponentSupport.lookup("DefaultOverview");
            			component.controller.selectedItem = item;
            			}
            */
        } else
            model.properties.url = "/" + page.name;


    }


    _processType(item) {
        if (item == null)
            return "";

        var type = null;
        if (item.type != null)
            type = item.type;

        if (type === "_schema")
            type = "StructrSchema";
        //			type = item.name;

        if (type == null) {
            type = item.constructor.name;
        }

        if (type == null) {
            type = "";
        }

        return type;
    }


    renderSomething(event, data) {
        var This = event.target;

    }

}