private ITcSmTreeItem createWorksheet2(WorksheetInfo info, ITcSmTreeItem parent, IWorker worker)
        {
            string template = Path.Combine(ApplicationDirectory, info.TemplatePath);

            XmlDocument doc = new XmlDocument();

            doc.Load(template);

            ITcSmTreeItem ret = null;

            switch (info.Type)
            {
            case PlcObjectType.DataType:
                ret = createDut((DataTypeInfo)info, parent, worker, doc);
                break;

            case PlcObjectType.POU:
                ret = createPou((POUInfo)info, parent, worker, doc);
                break;

            case PlcObjectType.Itf:
                ret = createItf((ItfInfo)info, parent, worker, doc);
                break;

            case PlcObjectType.Gvl:
                ret = createGvl((GvlInfo)info, parent, worker, doc);
                break;

            default:
                Debug.Fail("");
                break;
            }

            return(ret);
        }
        private ITcSmTreeItem createWorksheet(WorksheetInfo info, ITcSmTreeItem plcProject, IWorker worker)
        {
            string[] plcSide = info.PlcPath.Split('/', '\\', '^');

            ITcSmTreeItem parent = plcProject;
            ITcSmTreeItem ret    = null;

            for (int index = 0; index < plcSide.Length; index++)
            {
                // Create Folder if not exist
                ITcSmTreeItem child = null;

                if (!TryLookupChild(parent, plcSide[index], out child))
                {
                    child = createPlcFolder(parent, plcSide[index], null, worker);
                }
                parent = child;
            }

            ret = createWorksheet2(info, parent, worker);
            return(ret);
        }