Esempio n. 1
0
            public bool OnAccept(CloneObjectParameters parameters)
            {
                // Do the cloning
                string originalName         = mFileData.GetNameForCloning();
                string potentialNewNodeName = parameters.TransformParameter(originalName);

                if (potentialNewNodeName.Length <= 1)
                {
                    MessageBox.Show("You must enter a name longer than 1 character for the clone!");
                    return(false);
                }

                if (potentialNewNodeName.Equals(originalName))
                {
                    MessageBox.Show("You must enter a new unique name for the clone!");
                    return(false);
                }

                HashSet <string> dependencies       = ModuleDataManager.GetInstance().PreviewCloneDependencies(mFileData, parameters);
                HashSet <string> savedUnwantedItems = mPreviewCallback != null?mPreviewCallback.GetSavedUnwantedItems() : null;

                mPreviewCallback = new PreviewCloneFileCallback(mViewer, mFileData, parameters);
                mPreviewCallback.SetUnwantedItems(savedUnwantedItems);
                PreviewCloneDialog dialog = new PreviewCloneDialog("Creating " + potentialNewNodeName, dependencies, mPreviewCallback);
                DialogResult       result = dialog.ShowDialog();

                if (result != DialogResult.OK)
                {
                    return(false);
                }

                return(true);
            }
Esempio n. 2
0
        private void CheckStringKeyExists(JToken token, string tokenName)
        {
            if (token == null)
            {
                ////AddError("The string for " + tokenName + " does not exist! Please add localization support");
                return;
            }

            string key      = token.ToString();
            Regex  matcher  = new Regex(@"i18n\(([^)]+)\)");
            Match  locMatch = matcher.Match(key);

            if (locMatch.Success)
            {
                key = locMatch.Groups[1].Value;
                if (!ModuleDataManager.GetInstance().HasLocalizationKey(key))
                {
                    AddError("Localization Key Not Found! " + key + " is not in en.json");
                }
            }
            else
            {
                if (key.Length > 0)
                {
                    AddError("The string for " + tokenName + " is '" + key + "', which is not a valid localization key. Please add localization support");
                }
            }
        }
Esempio n. 3
0
        private void addNewAliasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TreeNode selectedNode      = treeView.SelectedNode;
            string   manifestEntryType = "aliases";

            if (selectedNode.Parent != null)
            {
                manifestEntryType = selectedNode.Text;
                selectedNode      = selectedNode.Parent;
            }

            string moduleName = selectedNode.Text;

            Module selectedMod = ModuleDataManager.GetInstance().GetMod(moduleName);

            if (selectedMod != null)
            {
                string initialDirectory;
                if (!mLastModuleLocations.TryGetValue(moduleName, out initialDirectory))
                {
                    initialDirectory = System.IO.Path.GetFullPath(selectedMod.Path);
                }
                else
                {
                    initialDirectory = System.IO.Path.GetFullPath(initialDirectory);
                }

                selectJsonFileDialog.InitialDirectory = initialDirectory;
                selectJsonFileDialog.Tag = new NewAliasParameters(selectedMod, manifestEntryType);
                selectJsonFileDialog.ShowDialog(this);
            }
        }
        private void InitializeDefenseItemsListView()
        {
            defenseItemsListView.BeginUpdate();
            defenseItemsListView.Items.Clear();
            defenseImagePaths = new Dictionary <string, string>();
            object[] data = ModuleDataManager.GetInstance().FilterJsonByTerm(defenseItemsListView, "entity_data.stonehearth:combat:armor_data");
            defenseJsonFiles = (Dictionary <string, JsonFileData>)data[0];
            Dictionary <string, string> modNames = (Dictionary <string, string>)data[1];
            ImageList imageList = new ImageList();

            // populate listView
            int index = 0;

            foreach (KeyValuePair <string, JsonFileData> entry in defenseJsonFiles)
            {
                JsonFileData jsonFileData    = entry.Value;
                JObject      json            = jsonFileData.Json;
                ListViewItem item            = new ListViewItem(entry.Key);
                JToken       token           = json.SelectToken("entity_data.stonehearth:combat:armor_data.base_damage_reduction");
                string       damageReduction = token == null ? "" : token.ToString();
                item.SubItems.Add(damageReduction);
                JToken iLevelToken = json.SelectToken("components.stonehearth:equipment_piece.ilevel");
                string iLevel      = iLevelToken == null ? "none" : iLevelToken.ToString();
                item.SubItems.Add(iLevel);
                string modName = modNames[entry.Key];
                item.SubItems.Add(modName);

                this.addImages(jsonFileData, defenseImagePaths, imageList, item, entry, ref index);

                defenseItemsListView.Items.Add(item);
            }

            defenseItemsListView.SmallImageList = imageList;
            defenseItemsListView.EndUpdate();
        }
Esempio n. 5
0
        private string GetAliasOrFlatName()
        {
            ModuleFile moduleFile = GetModuleFile();
            string     flatPath   = Path.Replace(ModuleDataManager.GetInstance().ModsDirectoryPath, "");

            return((moduleFile != null) ? moduleFile.FullAlias : flatPath);
        }
Esempio n. 6
0
        private void aliasContextMenuDuplicate_Click(object sender, EventArgs e)
        {
            TreeNode selectedNode     = treeView.SelectedNode;
            FileData selectedFileData = ModuleDataManager.GetInstance().GetSelectedFileData(treeView.SelectedNode);

            if (selectedFileData == null)
            {
                return;
            }

            IModuleFileData moduleFile = selectedFileData as IModuleFileData;

            if (moduleFile == null)
            {
                return; // Don't know how to clone something not module file data
            }

            string name = moduleFile.GetModuleFile() != null?moduleFile.GetModuleFile().FullAlias : selectedFileData.FileName;

            CloneAliasCallback callback = new CloneAliasCallback(this, selectedFileData);
            CloneDialog        dialog   = new CloneDialog(name, selectedFileData.GetNameForCloning());

            dialog.SetCallback(callback);
            dialog.ShowDialog();
        }
Esempio n. 7
0
        private void aliasContextMenuDuplicate_Click(object sender, EventArgs e)
        {
            TreeNode selectedNode     = treeView.SelectedNode;
            FileData selectedFileData = ModuleDataManager.GetInstance().GetSelectedFileData(treeView.SelectedNode);

            if (selectedFileData == null)
            {
                return;
            }

            IModuleFileData moduleFile = selectedFileData as IModuleFileData;

            if (moduleFile == null)
            {
                return; // Don't know how to clone something not module file data
            }

            // Get the correct type from any descendant nodes (including grandchildren)
            string             manifestEntryType = selectedNode.FullPath.Split('\\')[1];
            string             sourceModName     = selectedNode.FullPath.Split('\\')[0];
            ModuleFile         sourceModule      = moduleFile.GetModuleFile();
            string             uri      = sourceModule != null ? sourceModule.FullAlias : selectedFileData.FileName;
            CloneAliasCallback callback = new CloneAliasCallback(this, selectedFileData, manifestEntryType);
            CloneDialog        dialog   = new CloneDialog(uri, selectedFileData.GetNameForCloning(), sourceModName);

            dialog.SetCallback(callback);
            dialog.ShowDialog();
        }
Esempio n. 8
0
        public void Reload()
        {
            filePreviewTabs.TabPages.Clear();
            effectsEditorTreeView.Nodes.Clear();
            cubemittersTreeView.Nodes.Clear();
            ModuleDataManager.GetInstance().PopulateTreeView(effectsEditorTreeView, "effects", "/data/effects");
            ModuleDataManager.GetInstance().PopulateTreeView(cubemittersTreeView, "cubemitters", "/data/horde/particles");
            ModuleDataManager.GetInstance().PopulateTreeView(lightsTreeView, "", "/data/horde/animatedlights");
            ModuleDataManager.GetInstance().PopulateTreeView(skySettingsTreeView, "sky_settings", "");

            TreeView treeView = GetTreeView(treeViewTabControl.SelectedIndex);

            // If we are making a new file, select it in the treeview
            if (mNewFilePath != null)
            {
                TreeNode[] matchingNodes = GetAllNodes(treeView)
                                           .Where(r => r.Tag != null && r.Tag.ToString() == mNewFilePath)
                                           .ToArray();
                if (matchingNodes.Length > 0)
                {
                    treeView.SelectedNode = matchingNodes.First();
                    mSelectedNode         = treeView.SelectedNode;
                    mNewFilePath          = null;
                }
            }
            else if (mSelectedNode != null)
            {
                treeView.SelectedNode = mSelectedNode;
            }
        }
Esempio n. 9
0
        public void Reload()
        {
            // Reload the manifest tab.
            Initialize();
            if (searchBox.Text == "error" && !ModuleDataManager.GetInstance().HasErrors)
            {
                searchBox.Text = "";
            }

            searchButton.PerformClick();

            if (Properties.Settings.Default.LastSelectedManifestPath != null)
            {
                FileData file = ModuleDataManager.GetInstance().GetSelectedFileData(Properties.Settings.Default.LastSelectedManifestPath);
                if (file != null && file.TreeNode != null)
                {
                    treeView.SelectedNode = file.TreeNode;
                }
            }
            else
            {
                SetSelectedFileData(null);
            }

            if (searchBox.Text == "")
            {
                searchBox.BackColor = SystemColors.Window;
            }
        }
Esempio n. 10
0
        public void TryLoad()
        {
            IModuleFileData fileData = null;

            // only load Json
            if (mType == FileType.JSON)
            {
                fileData = new JsonFileData(ResolvedPath);
            }
            else if (mType == FileType.LUA)
            {
                fileData = new LuaFileData(ResolvedPath);
            }

            if (fileData != null)
            {
                fileData.SetModuleFile(this);
                mFileData = fileData as FileData;
                mFileData.Load();

                if (mAlias == "ui:stockpile:filters")
                {
                    foreach (JToken filter in (mFileData as JsonFileData).Json.SelectTokens("stockpile.*.categories.*.filter"))
                    {
                        ModuleDataManager.GetInstance().StockpileFilters.Add(filter.ToString());
                    }
                }

                foreach (KeyValuePair <string, FileData> data in mReferencesCache)
                {
                    mFileData.ReferencedByFileData[data.Key] = data.Value;
                }
            }
        }
        public ModuleFile GetModuleFile(string fullAlias)
        {
            int    indexOfColon = fullAlias.IndexOf(':');
            string module       = fullAlias.Substring(0, indexOfColon);
            string alias        = fullAlias.Substring(indexOfColon + 1);
            Module mod          = ModuleDataManager.GetInstance().GetMod(module);

            if (mod == null)
            {
                return(null);
            }

            ModuleFile result;

            result = mod.GetModuleFile("aliases", alias);
            if (result != null)
            {
                return(result);
            }

            result = mod.GetModuleFile("components", alias);
            if (result != null)
            {
                return(result);
            }

            result = mod.GetModuleFile("controllers", alias);
            if (result != null)
            {
                return(result);
            }

            return(null);
        }
Esempio n. 12
0
        private void textBox_MouseMove(object sender, MouseEventArgs e)
        {
            int charIndex = textBox.GetCharIndexFromPosition(e.Location);
            int line      = textBox.GetLineFromCharIndex(charIndex);

            if (textBox.Lines.Length <= line)
            {
                return;
            }

            if (mI18nTooltipLine == line)
            {
                return;
            }

            i18nTooltip.Hide(textBox);

            mI18nTooltipLine = line;
            string lineString = textBox.Lines[line];
            Regex  matcher    = new Regex(@"i18n\(([^)]+)\)");
            Match  locMatch   = matcher.Match(lineString);

            if (locMatch.Success)
            {
                mI18nLocKey = locMatch.Groups[1].Value;
                string translated = ModuleDataManager.GetInstance().LocalizeString(mI18nLocKey);
                translated = JsonHelper.WordWrap(translated, 100);
                i18nTooltip.Show(translated, textBox, e.Location);
            }
            else
            {
                i18nTooltip.Hide(textBox);
                mI18nLocKey = null;
            }
        }
Esempio n. 13
0
        private bool CanAddFineVersion(FileData file)
        {
            JsonFileData jsonFileData = file as JsonFileData;

            if (jsonFileData == null)
            {
                return(false); // Don't know how to clone something not jsonFileData
            }

            ModuleFile moduleFile = jsonFileData.GetModuleFile();

            if (moduleFile == null || moduleFile.IsFineVersion || jsonFileData.JsonType != JSONTYPE.ENTITY)
            {
                return(false); // can only make fine version of a module file
            }

            string fineFullAlias = moduleFile.FullAlias + ":fine";

            if (ModuleDataManager.GetInstance().GetModuleFile(fineFullAlias) != null)
            {
                return(false); // fine already exists
            }

            return(true);
        }
Esempio n. 14
0
        protected Dictionary <string, FileData> GetDependencies()
        {
            Dictionary <string, FileData> dependencies = new Dictionary <string, FileData>();

            foreach (ModuleFile dependency in LinkedAliases)
            {
                string alias = dependency.Module.Name + ":" + dependency.Alias;
                if (!dependencies.ContainsKey(alias))
                {
                    dependencies.Add(alias, dependency.FileData);
                }
            }

            foreach (KeyValuePair <string, FileData> file in LinkedFileData)
            {
                string filePathWithoutBase = ModuleDataManager.GetInstance().TryReplaceModsDirectory(file.Key, "", "");
                filePathWithoutBase = ModuleDataManager.GetInstance().TryReplaceSteamUploadsDirectory(filePathWithoutBase, "", "");
                if (!dependencies.ContainsKey(filePathWithoutBase))
                {
                    dependencies.Add(filePathWithoutBase, file.Value);
                }
            }

            return(dependencies);
        }
Esempio n. 15
0
        private void aliasContextMenu_Opening(object sender, CancelEventArgs e)
        {
            TreeNode node = treeView.SelectedNode;

            aliasContextMenu.Visible = true;
            FileData file = ModuleDataManager.GetInstance().GetSelectedFileData(treeView.SelectedNode);

            if (file != null)
            {
                addIconicVersionToolStripMenuItem.Visible   = CanAddEntityForm(file, "iconic");
                addGhostToolStripMenuItem.Visible           = !CanAddEntityForm(file, "iconic") && CanAddEntityForm(file, "ghost");
                removeFromManifestToolStripMenuItem.Visible = GetModuleFile(file) != null;
                aliasContextDuplicate.Visible          = true;
                copyFullAliasToolStripMenuItem.Visible = true;
                addNewAliasToolStripMenuItem.Visible   = false;
            }
            else
            {
                foreach (ToolStripItem item in aliasContextMenu.Items)
                {
                    item.Visible = false;
                }

                addNewAliasToolStripMenuItem.Visible = true;
            }
        }
Esempio n. 16
0
        private void searchButton_Click(object sender, EventArgs e)
        {
            string searchTerm = searchBox.Text;

            searchBox.BackColor = Color.Gold;
            ModuleDataManager.GetInstance().FilterAliasTree(treeView, searchTerm);
        }
Esempio n. 17
0
            public bool OnAccept(string inputMessage)
            {
                string key = mLocKey;

                string[] split   = key.Split(':');
                string   modName = "stonehearth";

                if (split.Length > 1)
                {
                    modName = split[0];
                    key     = split[1];
                }

                Module mod = ModuleDataManager.GetInstance().GetMod(modName);

                if (mod == null)
                {
                    MessageBox.Show("Could not change loc key. There is no mod named " + modName);
                    return(true);
                }

                JValue token = mod.EnglishLocalizationJson.SelectToken(key) as JValue;

                if (token == null)
                {
                    // No such localization key. Try to add it.
                    string[] tokenSplit = key.Split('.');
                    JObject  parent     = mod.EnglishLocalizationJson;
                    for (int i = 0; i < tokenSplit.Length - 1; ++i)
                    {
                        if (parent == null)
                        {
                            break;
                        }

                        if (parent[tokenSplit[i]] == null)
                        {
                            parent[tokenSplit[i]] = new JObject();
                        }

                        parent = parent[tokenSplit[i]] as JObject;
                    }

                    if (parent == null)
                    {
                        MessageBox.Show("Could not insert localization token " + mLocKey);
                        return(true);
                    }

                    parent.Add(tokenSplit[tokenSplit.Length - 1], inputMessage);
                }
                else
                {
                    token.Value = inputMessage;
                }

                mod.WriteEnglishLocalizationToFile();
                return(true);
            }
Esempio n. 18
0
 private void toolStripStatusLabel1_DoubleClick(object sender, EventArgs e)
 {
     if (ModuleDataManager.GetInstance().HasErrors)
     {
         ModuleDataManager.GetInstance().FilterAliasTree(treeView, "error");
         searchButton.PerformClick();
     }
 }
Esempio n. 19
0
        private string GetAliasOrFlatName()
        {
            ModuleFile moduleFile = GetModuleFile();
            string     flatPath   = ModuleDataManager.GetInstance().TryReplaceModsDirectory(Path, "", "");

            flatPath = ModuleDataManager.GetInstance().TryReplaceSteamUploadsDirectory(flatPath, "", "");
            return((moduleFile != null) ? moduleFile.FullAlias : flatPath);
        }
Esempio n. 20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="newPath"></param>
        /// <param name="oldName"></param>
        /// <param name="newFileName"></param>
        /// <param name="alreadyCloned"></param>
        /// <param name="execute">whether to actual execute the clone. otherwise, this is just a preview</param>
        /// <returns></returns>
        public virtual bool Clone(string newPath, CloneObjectParameters parameters, HashSet <string> alreadyCloned, bool execute)
        {
            // Ensure directory exists
            string directory = System.IO.Path.GetDirectoryName(newPath);

            alreadyCloned.Add(newPath);
            if (execute)
            {
                System.IO.Directory.CreateDirectory(directory);
            }

            // Figure out what dependency files need to exist
            foreach (KeyValuePair <string, FileData> dependencyKV in GetDependencies())
            {
                string   dependencyName = dependencyKV.Key;
                FileData dependencyFile = dependencyKV.Value;
                if (dependencyFile != null && ShouldCloneDependency(dependencyName, parameters))
                {
                    // We want to clone this dependency
                    IModuleFileData modFileData = dependencyFile as IModuleFileData;
                    if (modFileData != null && modFileData.GetModuleFile() != null)
                    {
                        // This dependency is an alias. Clone the alias.
                        ModuleFile linkedAlias  = modFileData.GetModuleFile();
                        string     aliasNewName = parameters.TransformAlias(dependencyName);
                        if (!alreadyCloned.Contains(aliasNewName))
                        {
                            alreadyCloned.Add(aliasNewName);
                            linkedAlias.Clone(parameters, alreadyCloned, execute);
                        }
                    }
                    else
                    {
                        // This dependency is just a FileData, clone the fileData.
                        string transformedDependencyName = parameters.TransformModPath(dependencyName);
                        string newDependencyPath         = ModuleDataManager.GetInstance().GetMod(parameters.TargetModule).ParentDirectory + parameters.TransformParameter(transformedDependencyName);
                        if (!alreadyCloned.Contains(newDependencyPath))
                        {
                            alreadyCloned.Add(newDependencyPath);
                            dependencyFile.Clone(newDependencyPath, parameters, alreadyCloned, execute);
                        }
                    }
                }
            }

            if (execute)
            {
                string flatFileData = ResolveLocalizedStrings(parameters, FlatFileData);
                string newFlatFile  = parameters.TransformParameter(flatFileData);

                using (StreamWriter wr = new StreamWriter(newPath, false, new UTF8Encoding(false)))
                {
                    wr.Write(newFlatFile);
                }
            }

            return(true);
        }
Esempio n. 21
0
 public ErrorFileList(ManifestView owner)
 {
     mOwner = owner;
     InitializeComponent();
     foreach (FileData file in ModuleDataManager.GetInstance().GetErrorFiles())
     {
         listBox.Items.Add(file);
     }
 }
Esempio n. 22
0
            public bool OnAccept(HashSet <string> unwantedItems)
            {
                if (ModuleDataManager.GetInstance().ExecuteClone(mFileData, mParameters, unwantedItems))
                {
                    mViewer.Reload();
                }

                return(true);
            }
        // Not really killable entities per se. More like stuff with attributes.
        private void InitializeKillableEntitiesListView()
        {
            killableEntitiesListView.BeginUpdate();
            killableEntitiesListView.Items.Clear();
            InitializeKillableEntitiesColumns();

            object[] data = ModuleDataManager.GetInstance().GetJsonsOfType(killableEntitiesListView, JSONTYPE.MONSTER_TUNING);
            killableEntitiesJsonFiles = (Dictionary <string, JsonFileData>)data[0];

            foreach (KeyValuePair <string, JsonFileData> entry in killableEntitiesJsonFiles)
            {
                JsonFileData jsonFileData = entry.Value;
                JObject      json         = jsonFileData.Json;
                ListViewItem item         = new ListViewItem(entry.Key);
                List <ListViewItem.ListViewSubItem> subItems = new List <ListViewItem.ListViewSubItem>();
                populateWithDefaultValue <ListViewItem.ListViewSubItem>(
                    subItems,
                    new ListViewItem.ListViewSubItem(),
                    killableEntitiesListView.Columns.Count);
                JToken  estimatedDifficulty = json["estimated_difficulty"];
                JObject jAttributes         = json.SelectToken("attributes") as JObject;

                if (jAttributes != null)
                {
                    foreach (JProperty attribute in jAttributes.Properties())
                    {
                        string attributeName = attribute.Name;
                        if (killableEntitiesListView.Columns.IndexOfKey(attributeName) == -1)
                        {
                            continue;
                        }

                        JValue jValue = attribute.Value as JValue;
                        if (jValue != null)
                        {
                            int i = killableEntitiesListView.Columns.IndexOfKey(attributeName);
                            subItems[i - 1] = new ListViewItem.ListViewSubItem(item, jValue.ToString());
                        }
                    }

                    int estimatedDifficultyIndex = killableEntitiesListView.Columns.IndexOfKey("difficulty");
                    if (estimatedDifficulty != null)
                    {
                        subItems[estimatedDifficultyIndex - 1] = new ListViewItem.ListViewSubItem(item, estimatedDifficulty.ToString());
                    }

                    item.SubItems.AddRange(subItems.ToArray());
                    killableEntitiesListView.Items.Add(item);
                }

                // Make sure to resize column after adding all the items, otherwise when reloading the column size won't be updated
                int index = killableEntitiesListView.Columns.IndexOfKey("alias");
                killableEntitiesListView.AutoResizeColumn(index, ColumnHeaderAutoResizeStyle.ColumnContent);
            }
            killableEntitiesListView.EndUpdate();
        }
        public ModuleDataManager(string modsDirectoryPath)
        {
            if (sInstance != null)
            {
                sInstance.Dispose();
                sInstance = null;
            }

            mModsDirectoryPath = JsonHelper.NormalizeSystemPath(modsDirectoryPath);
            sInstance = this;
        }
Esempio n. 25
0
        public override void AddError(string error)
        {
            base.AddError(error);
            switch (mJsonType)
            {
            case JSONTYPE.ENCOUNTER:
                return;
            }

            ModuleDataManager.GetInstance().AddErrorFile(this);
        }
Esempio n. 26
0
        public void Initialize()
        {
            // Initialize cef
            mEffectsChromeBrowser = EffectsChromeBrowser.GetInstance();
            mEffectsChromeBrowser.InitBrowser(this.effectsBrowserPanel);

            ModuleDataManager.GetInstance().PopulateTreeView(effectsEditorTreeView, "effects", "/data/effects");
            ModuleDataManager.GetInstance().PopulateTreeView(cubemittersTreeView, "cubemitters", "/data/horde/particles");
            ModuleDataManager.GetInstance().PopulateTreeView(lightsTreeView, "", "/data/horde/animatedlights");
            ModuleDataManager.GetInstance().PopulateTreeView(skySettingsTreeView, "sky_settings", "");
        }
Esempio n. 27
0
            public bool OnAccept(HashSet <string> unwantedItems)
            {
                if (ModuleDataManager.GetInstance().ExecuteClone(mFileData, mParameters, unwantedItems))
                {
                    newFilePath = mParameters.TransformParameter(mFileData.Path);
                    mViewer.SetNewFilePath(newFilePath);
                    mViewer.Reload();
                }

                return(true);
            }
        public ModuleDataManager(string modsDirectoryPath)
        {
            if (sInstance != null)
            {
                sInstance.Dispose();
                sInstance = null;
            }

            mModsDirectoryPath = JsonHelper.NormalizeSystemPath(modsDirectoryPath);
            sInstance          = this;
        }
Esempio n. 29
0
        public bool TrySetFlatFileData(string newData)
        {
            string newFlatFileData;

            if (TryChangeFlatFileData(newData, out newFlatFileData))
            {
                mFlatFileData = newFlatFileData;
                ModuleDataManager.GetInstance().ModifiedFiles.Add(this);
                return(true);
            }

            return(false);
        }
Esempio n. 30
0
        private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            FileData file = ModuleDataManager.GetInstance().GetSelectedFileData(treeView.SelectedNode);

            SetSelectedFileData(file);
            if (treeView.SelectedNode != null)
            {
                Properties.Settings.Default.LastSelectedManifestPath = treeView.SelectedNode.FullPath;
                Properties.Settings.Default.Save();
            }

            treeView.Focus();
        }
        public void UpdateNetWorthData()
        {
            mItemCount      = 0;
            mMaxNetWorth    = 0;
            mNetWorthValues = new Dictionary <int, List <JsonFileData> >();
            foreach (Module mod in ModuleDataManager.GetInstance().GetAllModules())
            {
                foreach (ModuleFile file in mod.GetAliases())
                {
                    JsonFileData data = file.FileData as JsonFileData;
                    if (data == null)
                    {
                        continue;
                    }

                    int netWorth = data.NetWorth;
                    if (netWorth <= 0)
                    {
                        continue;
                    }

                    string imageFile = FindImageForFile(data);
                    if (string.IsNullOrEmpty(imageFile))
                    {
                        Console.WriteLine("file " + data.FileName + " has no icon!");
                        continue;
                    }

                    if (netWorth > mMaxNetWorth)
                    {
                        mMaxNetWorth = netWorth;
                    }

                    List <JsonFileData> list;
                    if (!mNetWorthValues.TryGetValue(netWorth, out list))
                    {
                        list = new List <JsonFileData>();
                        mNetWorthValues[netWorth] = list;
                    }

                    list.Add(data);
                    if (list.Count > mItemCount)
                    {
                        mItemCount = list.Count;
                    }
                }
            }

            canvas.Refresh();
        }