示例#1
0
        //============================================================
        //<T>展现纹理图片<T>
        //============================================================
        private void MaterialImage(FCfgFolder fol)
        {
            FDrMaterialGroup material = fol.Tag as FDrMaterialGroup;
            ListViewGroup    group    = new ListViewGroup();
            int n = 1;

            material.Open();
            foreach (FDrModelMaterialTexture mat in material.Textures)
            {
                if (null != mat && mat.Texture != null)
                {
                    string path = mat.Texture.Directory + "\\icon\\" + mat.SourceType + ".jpg";
                    if (RFile.Exists(path))
                    {
                        Bitmap bit = new Bitmap(path);
                        imageList.Images.Add(bit);
                        int count = imageList.Images.Count;
                        imageList.Images.SetKeyName(count - 1, mat.SourceType + ".jpg");
                        n++;
                    }
                }
            }
            group.Tag  = material;
            group.Name = fol.Label + "-" + n.ToString();
            listView1.Groups.Add(group);
        }
示例#2
0
 //============================================================
 public void LoadFolder(FCfgFolder folder)
 {
     // 设置目录对象
     _folder = folder;
     // 设置树目录
     BeginUpdate();
     Nodes.Clear();
     BuildTreeNodes(null, _folder);
     EndUpdate();
 }
示例#3
0
        //============================================================
        // <T>加载树目录。</T>
        //============================================================
        private void LoadCatalogNode(TreeNodeCollection nodes, FCfgFolder folder)
        {
            // 标志是否加载资源文件
            bool loaded = true;
            // 取得文件中子文件的个数
            int count = folder.Folders.Count;

            for (int n = 0; n < count; n++)
            {
                // 循环取得每个文件
                FDrFolder subfolder = folder.Folders[n] as FDrFolder;
                // 生成节点
                TreeNode childNode = new TreeNode(subfolder.Label);
                childNode.Tag      = subfolder;
                subfolder.TreeNode = childNode;
                // 取得路径
                string path = subfolder.ConfigFileName;
                object tag  = subfolder.Tag;
                if (tag is FDrColorTexture)
                {
                    childNode.ImageKey         = "light";
                    childNode.SelectedImageKey = "light";
                    loaded = false;
                }
                else if (tag is FDrClipTexture)
                {
                    childNode.ImageKey         = "clip";
                    childNode.SelectedImageKey = "clip";
                    loaded = false;
                }
                else if (tag is FDrLayerTexture)
                {
                    childNode.ImageKey         = "layer";
                    childNode.SelectedImageKey = "layer";
                    loaded = false;
                }
                else
                {
                    childNode.ImageKey         = "folder";
                    childNode.SelectedImageKey = "folder";
                }
                nodes.Add(childNode);
                if (loaded)
                {
                    LoadCatalogNode(childNode.Nodes, subfolder);
                }
            }
        }
示例#4
0
        //============================================================
        public void DoAfterLabelEdit(NodeLabelEditEventArgs e)
        {
            TreeNode node  = e.Node;
            string   label = e.Label;

            if (RString.IsBlank(label))
            {
                // 取消修改
                if (null == node.Tag)
                {
                    // 删除新节点
                    if (null == node.Parent)
                    {
                        Nodes.Remove(node);
                    }
                    else
                    {
                        node.Parent.Nodes.Remove(node);
                    }
                }
                node.EndEdit(false);
                e.CancelEdit = true;
            }
            else
            {
                // 确定修改
                node.Text = e.Label;
                node.EndEdit(true);
                e.CancelEdit = false;
                // 修改资源目录
                FCfgObject cfgObject = node.Tag as FCfgObject;
                if (null == cfgObject)
                {
                    FCfgFolder cfgFolder = null;
                    if (null == node.Parent)
                    {
                        cfgFolder = _folder;
                    }
                    else
                    {
                        cfgFolder = node.Parent.Tag as FCfgFolder;
                    }
                    node.Tag = cfgFolder.CreateFolder(label);
                }
            }
        }
示例#5
0
        //============================================================
        // <T>按照选中保存。</T>
        //============================================================
        public void SaveSelect()
        {
            FObjects <TreeNode> checkeds = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in checkeds)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (null != folder)
                {
                    FDrTexture texture = folder.Tag as FDrTexture;
                    if (null != texture)
                    {
                        texture.Store();
                    }
                }
            }
        }
示例#6
0
        //============================================================
        // <T>打开资源。</T>
        //============================================================
        public void ExportSelected()
        {
            FObjects <TreeNode> checkeds = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in checkeds)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (null != folder)
                {
                    FDrTexture texture = folder.Tag as FDrTexture;
                    if (null != texture)
                    {
                        RContent3dManager.TextureConsole.TaskExport(texture);
                    }
                }
            }
        }
示例#7
0
        //============================================================
        // <T>按照选中保存。</T>
        //============================================================
        public void SaveSelect()
        {
            FObjects <TreeNode> nodes = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in nodes)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (folder != null)
                {
                    FDrTemplate template = folder.Tag as FDrTemplate;
                    if (null != template)
                    {
                        template.Store();
                    }
                }
            }
        }
示例#8
0
        //============================================================
        // <T>选中导出。</T>
        //============================================================
        public void ExportSelected()
        {
            FObjects <TreeNode> nodes = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in nodes)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (null != folder)
                {
                    FDrModel model = folder.Tag as FDrModel;
                    if (null != model)
                    {
                        RContent3dManager.ModelConsole.TaskExport(model);
                    }
                }
            }
        }
示例#9
0
        //============================================================
        // <T>按照选中保存。</T>
        //============================================================
        public void SaveSelect()
        {
            FObjects <TreeNode> nodes = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in nodes)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (folder != null)
                {
                    FDrModel model = folder.Tag as FDrModel;
                    if (null != model)
                    {
                        model.Store();
                    }
                }
            }
        }
示例#10
0
        //============================================================
        // <T>按照选中保存。</T>
        //============================================================
        public void SaveSelect()
        {
            FObjects <TreeNode> checkeds = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in checkeds)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (folder != null)
                {
                    FDrMaterialGroup material = folder.Tag as FDrMaterialGroup;
                    if (null != material)
                    {
                        material.Store();
                    }
                }
            }
        }
示例#11
0
 //============================================================
 protected void BuildTreeNodes(TreeNode node, FCfgFolder parent)
 {
     // 建立文件夹列表
     if (parent.HasFolder())
     {
         foreach (FCfgFolder folder in parent.Folders)
         {
             // 建立当前节点
             TreeNode childNode = new TreeNode(folder.Label);
             childNode.Tag = folder;
             if (null == node)
             {
                 Nodes.Add(childNode);
             }
             else
             {
                 node.Nodes.Add(childNode);
             }
             // 建立子节点列表
             BuildTreeNodes(childNode, folder);
         }
     }
     // 建立资源列表
     if (parent.HasObject())
     {
         foreach (FCfgObject childObject in parent.Objects)
         {
             // 建立当前节点
             TreeNode childNode = new TreeNode(childObject.Label);
             if (null != OnBuildNode)
             {
                 OnBuildNode(childNode, childObject);
             }
             childNode.Tag = childObject;
             if (null == node)
             {
                 Nodes.Add(childNode);
             }
             else
             {
                 node.Nodes.Add(childNode);
             }
         }
     }
 }
示例#12
0
        //============================================================
        // <T>加载。</T>
        //============================================================
        private void ScanNodes(FCfgFolder folder, string path)
        {
            string fileTag = string.Empty;

            // 文件夹排序
            folder.Folders.Sort();
            // 循环取得每个文件
            foreach (FCfgFolder subfloder in folder.Folders)
            {
                // 获得经过处理的名称
                string[] items = subfloder.Name.Split('-');
                if (items.Length >= 3)
                {
                    string type    = items[0];
                    string dotPath = RString.IsEmpty(path) ? items[1] : path + "." + items[1];
                    if ("fd" == type)
                    {
                        subfloder.Type  = "folder";
                        subfloder.Label = items[1] + " [" + items[2] + "]";
                    }
                    else if ("mp" == type)
                    {
                        subfloder.Type = "map";
                        FDrMap map = new FDrMap();
                        subfloder.Label = items[1] + " [" + items[2] + "]";
                        map.Name        = dotPath;
                        map.Label       = items[2];
                        map.Path        = subfloder.Directory;
                        map.ExprotPath  = _exportDirectory;
                        subfloder.Tag   = map;
                        // 存储对照表
                        _mapDictionary.Set(dotPath, map);
                        subfloder.Folders.Clear();
                    }
                    ScanNodes(subfloder, dotPath);
                }
            }
        }
示例#13
0
        //============================================================
        public void DoDelete()
        {
            TreeNode node = SelectedNode;

            if (null != node)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                // 画面提示
                if (DialogResult.OK == MessageBox.Show("确认删除!", "删除确认", MessageBoxButtons.OKCancel))
                {
                    if (null == node.Parent)
                    {
                        Nodes.Remove(node);
                    }
                    else
                    {
                        node.Parent.Nodes.Remove(node);
                    }
                    // 删除目录
                    folder.Delete();
                }
            }
        }
示例#14
0
        //============================================================
        //<T>展现纹理图片<T>
        //============================================================
        private void TextureImage(FCfgFolder fol)
        {
            FDrTexture    text  = fol.Tag as FDrTexture;
            ListViewGroup group = new ListViewGroup();

            text.Open();
            string diePath = RContent3dManager.TempDirectory + "\\icon\\" + text.Name;
            int    count   = 0;

            foreach (FDrTextureBitmap bit in text.Bitmaps)
            {
                //if (bit.Bool != null && bit.Bool.Equals("Y")) {
                //   string Spath = diePath + "\\" + bit.Source;
                //   string Opath = text.Path + "\\" + bit.Source;
                //   if (!Directory.Exists(diePath)) {
                //      Directory.CreateDirectory(diePath);
                //   }
                //   DirectoryInfo directoryinfo = new DirectoryInfo(Spath);
                //   DateTime date = directoryinfo.LastWriteTime;
                //   DateTime now = DateTime.Now;
                //   TimeSpan ts = now.Subtract(date);
                //   if (ts.Hours > 0 || ts.Minutes > 10) {
                //      _sizeChange.CreateIcon(Opath, Spath, 128, 128);
                //   }
                //   if (RFile.Exists(Spath)) {
                //      count = GetImage(count, bit, Spath);
                //   } else {
                //      _sizeChange.CreateIcon(Opath, Spath, 128, 128);
                //      count = GetImage(count, bit, Spath);
                //   }
                //}
            }
            group.Tag  = text;
            group.Name = fol.Label + "-" + count.ToString();
            listView1.Groups.Add(group);
        }