private void ElementClick()
    {
        Debug.Log("Click");
        LoaderEntryData ld = EventSystem.current.currentSelectedGameObject.GetComponent <LoaderEntryData>();

        //HACK: Handle internal case
        if (ld.rendererText.text == "Internal")
        {
            detailPanelImage.texture = new Texture2D(200, 200);
            detailPanelPath.text     = ld.filenameText.text;
            detailPanelFilename.text = ld.filenameText.text;
        }
        else
        {
            detailPanelImage.texture = EnvConstants.externalRenderers
                                       .Find(renderer => renderer.isOwnedFiletype(ld.filepath)).loadWorkspacePreview(ld.filepath);
            detailPanelPath.text     = ld.fileinfo.FullName;
            detailPanelFilename.text = ld.fileinfo.Name;
        }
        detailPanelOK.interactable = true;
    }
    // Start is called before the first frame update
    void Start()
    {
        //Scan working dir
        var info = new DirectoryInfo(EnvConstants.WorkspacesPath);

        if (!info.Exists)
        {
            Debug.LogWarning("Workspaces path not found, skipping enumeration");
            return;
        }

        var fileInfo = info.GetFiles();

        foreach (var file in fileInfo)
        {
            availableFiles.Add(file);
        }

        foreach (var renderer in EnvConstants.externalRenderers)
        {
            handledFiles.AddRange(renderer.filterOwnWorkspaceFiles(availableFiles));
        }

        //Add internal rendering file on top
        //List items
        GameObject intEntry = (GameObject)Instantiate(entryPrefab, contentTarget.transform);

        intEntry.GetComponent <Button>().onClick.AddListener(ElementClick);
        LoaderEntryData intdata = intEntry.GetComponent <LoaderEntryData>();

        intdata.filenameText.text = "gears.fbx";
        intdata.rendererText.text = "Internal";
        intdata.pathText.text     = "";

        //Create objects per file
        int i = 0;

        foreach (var hf in handledFiles)
        {
            var     file = hf;
            Texture tex  = EnvConstants.externalRenderers.Find(renderer => renderer.isOwnedFiletype(file.Extension)).loadWorkspacePreview(file.FullName);

            //List items
            GameObject newEntry = (GameObject)Instantiate(entryPrefab, contentTarget.transform);
            newEntry.GetComponent <Button>().onClick.AddListener(ElementClick);
            LoaderEntryData data = newEntry.GetComponent <LoaderEntryData>();
            data.filenameText.text = file.Name;
            data.rendererText.text = EnvConstants.externalRenderers.Find(renderer => renderer.isOwnedFiletype(file.Extension))
                                     .rendererName();
            data.pathText.text     = file.FullName;
            data.itemImage.texture = tex;
            data.filepath          = file.FullName;
            data.fileinfo          = file;
        }

        //Add button events for OK buttons
        detailPanelOK.onClick.AddListener(DetailOKClick);
        detailPanelOKSaved.onClick.AddListener(DetailOKSavedClick);

        Debug.Log("file setup done: " + handledFiles.Count + " files");
    }