예제 #1
0
        public RoomNode(KNXRoom knx, BackgroundWorker worker)
            : base(knx, worker)
        {
            Name = ImageKey = SelectedImageKey = MyConst.View.KnxRoomType;
            SetText(this.Title);

            if (ImportedHelper.IsLessThan2_0_3())
            {
                if (!string.IsNullOrEmpty(knx.Symbol))
                {
                    this.Symbol = ProjResManager.CopyImageSole(Path.Combine(this.ImagePath, knx.Symbol));
                    //this.Symbol = ImageHelper.GetDiskImage(Path.Combine(this.ImagePath, knx.Symbol));
                }
            }
            else if (ImportedHelper.IsLessThan2_5_6())
            {
                this.Symbol = ProjResManager.CopyImageSole(Path.Combine(this.ImagePath, NAME_SYMBOL));
                //this.Symbol = ImageHelper.GetDiskImage(Path.Combine(this.ImagePath, NAME_SYMBOL));
            }
            else
            {
                this.Symbol = knx.Symbol;
            }

            PinCode            = knx.PinCode;
            this.IsDefaultRoom = (EBool)Enum.ToObject(typeof(EBool), knx.DefaultRoom);
        }
예제 #2
0
        public KNXRoom ToKnx(BackgroundWorker worker)
        {
            var knx = new KNXRoom();

            base.ToKnx(knx, worker);

            knx.Symbol = this.Symbol;
            //ImageHelper.SaveImageAsPNG(this.Symbol, Path.Combine(this.ImagePath, NAME_SYMBOL));
            knx.PinCode     = this.PinCode;
            knx.DefaultRoom = (int)this.IsDefaultRoom;

            knx.Pages = new List <KNXPage>();

            //foreach (string file in Directory.GetFiles(this.ImagePath))
            //{
            //    string fileName = file.Substring(file.LastIndexOf("\\") + 1);
            //    if (fileName == NAME_SYMBOL)
            //    {
            //        continue;
            //    }
            //    else
            //    {
            //        File.Delete(file);
            //    }
            //}

            MyCache.ValidResImgNames.Add(knx.Symbol);

            return(knx);
        }
예제 #3
0
        public KNXRoom ExportTo(BackgroundWorker worker, string dir)
        {
            KNXRoom knx = this.ToKnx(worker);

            knx.Symbol = FileHelper.CopyFileSole(Path.Combine(MyCache.ProjImgPath, this.Symbol), dir);
            //FileHelper.CopyFolder(this.ImagePath, dir, true);

            return(knx);
        }
예제 #4
0
        public RoomNode(KNXRoom knx)
            : base(knx)
        {
            Symbol             = knx.Symbol;
            PinCode            = knx.PinCode;
            this.IsDefaultRoom = (EBool)Enum.ToObject(typeof(EBool), knx.DefaultRoom);

            Name = ImageKey = SelectedImageKey = MyConst.View.KnxRoomType;
        }
예제 #5
0
        public KNXRoom ToKNX()
        {
            var knx = new KNXRoom();

            base.ToKnx(knx);

            knx.Symbol      = this.Symbol;
            knx.PinCode     = this.PinCode;
            knx.DefaultRoom = (int)this.IsDefaultRoom;

            knx.Pages = new List <KNXPage>();

            return(knx);
        }
예제 #6
0
        private static KNXPage ExportPage(BackgroundWorker worker, KNXRoom room, PageNode node, string ImgResDir)
        {
            KNXPage page = node.ExportTo(worker, ImgResDir);

            foreach (ViewNode cNode in node.Nodes)
            {
                ExportControl(worker, page, cNode, ImgResDir, Point.Empty);
            }

            if (null != room)
            {
                room.Pages.Add(page);
            }

            return(page);
        }
예제 #7
0
        private static KNXRoom ExportRoom(BackgroundWorker worker, KNXArea area, RoomNode node, string ImgResDir)
        {
            KNXRoom room = node.ExportTo(worker, ImgResDir);

            foreach (PageNode cNode in node.Nodes)
            {
                ExportPage(worker, room, cNode, ImgResDir);
            }

            if (null != area)
            {
                area.Rooms.Add(room);
            }

            return(room);
        }
예제 #8
0
        public RoomNode(KNXRoom knx, BackgroundWorker worker, string DirSrcImg)
            : this(knx, worker)
        {
            this.Id = GenId(); // 创建新的Id

            //string knxImage = GetImageName(knx.Id); // KNX图片资源名称
            //string knxImagePath = Path.Combine(DirSrcImg, knxImage); // KNX图片资源路径
            //FileHelper.CopyFolderContent(knxImagePath, this.ImagePath, true); // 拷贝KNX图片资源

            //this.Symbol = ImageHelper.GetDiskImage(Path.Combine(this.ImagePath, NAME_SYMBOL));

            if (ImportedHelper.IsLessThan2_5_6())
            {
                string knxImage     = GetImageName(knx.Id);              // KNX图片资源名称
                string knxImagePath = Path.Combine(DirSrcImg, knxImage); // KNX图片资源路径

                this.Symbol = ProjResManager.CopyImageRename(Path.Combine(knxImagePath, NAME_SYMBOL));
            }
            else
            {
                this.Symbol = ProjResManager.CopyImageRename(Path.Combine(DirSrcImg, knx.Symbol));
            }
        }
예제 #9
0
        private static RoomNode ImportRoomNode(BackgroundWorker worker, AreaNode areaNode, KNXRoom room, string ResImgDir)
        {
            RoomNode roomNode = new RoomNode(room, worker, ResImgDir);

            foreach (KNXPage knx in room.Pages)
            {
                ImportPageNode(worker, roomNode, knx, ResImgDir);
            }
            if (null != areaNode)
            {
                areaNode.Nodes.Add(roomNode);
            }

            return(roomNode);
        }