예제 #1
0
        private void anyTextBox_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
        {
            TextBox          targetTextBox = (TextBox)sender;
            FileDescControls c             = (FileDescControls)targetTextBox.Tag;

            if (e.Data.GetDataPresent(typeof(System.String)))
            {
                string value = (string)e.Data.GetData(typeof(System.String));
                // Perform drag-and-drop, depending upon the effect.
                if (e.Effect == DragDropEffects.Copy ||
                    e.Effect == DragDropEffects.Move)
                {
                    value = RepositoryClass.MakeFullFilePath(lastSourceDirectory, value);
                    value = adjustForRepositoryPath(value);
                    targetTextBox.Text = value;
                    if (c.index == 0 && assetNameTextBox.Text.Length == 0)
                    {
                        string fileName = Path.GetFileNameWithoutExtension(value);
                        assetNameTextBox.Text = Path.GetFileNameWithoutExtension(fileName) + "_" +
                                                AssetTypeDesc.AssetTypeEnumFileName((AssetTypeEnum)assetTypeComboBox.SelectedIndex + 1);
                    }
                    setSomethingChanged();
                }
            }
        }
예제 #2
0
 private void assetTypeComboBox_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (!inhibit)
     {
         setAssetType(AssetTypeDesc.AssetTypeEnumFromName(assetTypeComboBox.Text));
     }
 }
예제 #3
0
        private void encacheAssetDefinition(out List <string> filesToCopy, out List <string> fileDestinations)
        {
            assetDefinition             = new AssetDefinition();
            assetDefinition.Name        = assetNameTextBox.Text;
            assetDefinition.Description = descriptionTextBox.Text;
            assetDefinition.TypeEnum    = AssetTypeDesc.AssetTypeEnumFromName(assetTypeComboBox.Text);
            assetDefinition.Category    = categoryComboBox.Text;
            assetDefinition.Properties  = savedProperties;
            int fileNumber = 0;

            filesToCopy      = new List <string>();
            fileDestinations = new List <string>();
            foreach (FileDescControls desc in allControls)
            {
                AssetTypeFileDesc d = desc.desc;
                if (desc.useTextBox)
                {
                    if (desc.textBox.Text.Length > 0)
                    {
                        string    s          = desc.textBox.Text.ToString();
                        string    targetFile = MakeDestinationFile(assetDefinition.TypeEnum, s, d.FileTypeEnum, fileNumber);
                        AssetFile file       = new AssetFile(targetFile, d.FileTypeEnum);
                        if (copyFromSource(s))
                        {
                            filesToCopy.Add(s);
                            fileDestinations.Add(file.TargetFile);
                        }
                        assetDefinition.Files.Add(file);
                        fileNumber++;
                    }
                }
                else
                {
                    for (int i = 0; i < desc.listBox.Items.Count; i++)
                    {
                        AssetFile file = new AssetFile();
                        file.FileTypeEnum = d.FileTypeEnum;
                        string s          = desc.listBox.Items[i].ToString();
                        string targetFile = MakeDestinationFile(assetDefinition.TypeEnum, s, d.FileTypeEnum, fileNumber);
                        file.TargetFile = targetFile;
                        if (copyFromSource(s))
                        {
                            filesToCopy.Add(s);
                            fileDestinations.Add(file.TargetFile);
                        }
                        assetDefinition.Files.Add(file);
                        fileNumber++;
                    }
                }
            }
            assetDefinition.ComputeStatus();
        }
예제 #4
0
        public Importer()
        {
            inhibit = true;
            InitializeComponent();
            for (AssetTypeEnum i = AssetTypeEnum.Mesh; i <= AssetTypeEnum.Other; i++)
            {
                assetTypeComboBox.Items.Add(AssetTypeDesc.AssetTypeEnumName(i));
            }
            List <string> log = RepositoryClass.Instance.InitializeRepository();

            CheckLogAndMaybeExit(log);
            updateRepositoryPath();
            somethingChanged = false;
            cameFromFile     = false;
            setEnables();
            categoryPanel.Visible = false;
            genOffset             = filesListBox.Left + filesListBox.Width;
            inhibit = false;
        }
예제 #5
0
        private void createControlsForAssetType(AssetTypeEnum typeEnum)
        {
            SuspendLayout();
            RemoveDynamicControls();
            allControls = new List <FileDescControls>();
            AssetTypeDesc type  = AssetTypeDesc.FindAssetTypeDesc(typeEnum);
            int           index = 0;
            int           y     = 180;

            foreach (AssetTypeFileDesc desc in type.FileTypes)
            {
                FileDescControls c;
                y = createAssetTypeFileControls(index, y, desc, out c);
                allControls.Add(c);
                index++;
            }

            ResumeLayout(false);
            PerformLayout();
        }
예제 #6
0
        private void displayAssetDefinition()
        {
            assetNameTextBox.Text   = assetDefinition.Name;
            descriptionTextBox.Text = assetDefinition.Description;
            assetTypeComboBox.Text  = AssetTypeDesc.AssetTypeEnumName(assetDefinition.TypeEnum);
            setupCategoryComboBox(assetDefinition.TypeEnum);
            setCategory(assetDefinition.Category);
            createControlsForAssetType(assetDefinition.TypeEnum);
            int fileIndex = 0;

            foreach (FileDescControls desc in allControls)
            {
                if (fileIndex >= assetDefinition.Files.Count)
                {
                    break;
                }
                AssetTypeFileDesc d    = desc.desc;
                AssetFile         file = assetDefinition.Files[fileIndex];
                if (desc.useTextBox)
                {
                    if (d.FileTypeEnum == file.FileTypeEnum)
                    {
                        desc.textBox.Text = file.TargetFile;
                        fileIndex++;
                    }
                }
                else
                {
                    while (fileIndex < assetDefinition.Files.Count)
                    {
                        file = assetDefinition.Files[fileIndex];
                        if (d.FileTypeEnum != file.FileTypeEnum)
                        {
                            break;
                        }
                        desc.listBox.Items.Add(file.TargetFile);
                        fileIndex++;
                    }
                }
            }
        }
예제 #7
0
        private void buttonSelect_Click(object sender, EventArgs e)
        {
            Button            button = (Button)sender;
            FileDescControls  c      = (FileDescControls)button.Tag;
            AssetTypeFileDesc desc   = c.desc;

            // Invoke the file open dialog
            openSourceFileDialog.FileName = "";
            List <string> extensions    = AssetFile.AllExtensionsForEnum(desc.FileTypeEnum);
            string        extList       = "";
            string        extListHidden = "";

            foreach (string ext in extensions)
            {
                if (extList.Length > 0)
                {
                    extList += ";";
                }
                extList += "*" + ext;
                if (extListHidden.Length > 0)
                {
                    extListHidden += ";";
                }
                extListHidden += "*" + ext + ";" + "*" + ext.ToUpper();
            }
            string filter = string.Format("All {0} Files ({1})|{2}|All Files (*.*)|*.*",
                                          AssetFile.AssetFileEnumName(desc.FileTypeEnum),
                                          extList, extListHidden);

            openSourceFileDialog.Filter      = filter;
            openSourceFileDialog.Multiselect = c.listBox != null;
            if (openSourceFileDialog.ShowDialog() == DialogResult.OK)
            {
                foreach (string fileName in openSourceFileDialog.FileNames)
                {
                    string extension = Path.GetExtension(fileName);
                    if (c.index == 0 && assetNameTextBox.Text.Length == 0)
                    {
                        assetNameTextBox.Text = Path.GetFileNameWithoutExtension(fileName) + "_" +
                                                AssetTypeDesc.AssetTypeEnumFileName((AssetTypeEnum)assetTypeComboBox.SelectedIndex + 1);
                    }
                    //              if (extension.ToLower() == ".mesh") {
                    //                  string materialName;
                    //                  string skeletonName;
                    //                  RepositoryClass.Instance.ReadMeshMaterialAndSkeleton(fileName, out materialName, out skeletonName);
                    //              }
                    maybeUpdateSourceDirectory(fileName);
                    string adjustedFileName = adjustForRepositoryPath(fileName);
                    if (c.useTextBox)
                    {
                        c.textBox.Text = adjustedFileName;
                    }
                    else
                    {
                        deleteMatchingListBoxItem(c.listBox, adjustedFileName);
                        c.listBox.Items.Add(adjustedFileName);
                    }
                }
                setSomethingChanged();
            }
        }