Коневая категория.
Inheritance: Category, ITreeNode
Example #1
0
File: Loader.cs Project: rsdn/janus
		/// <summary>
		/// Загрузить ресурсы.
		/// </summary>
		public static RootCategory Load(string file, out CultureInfo[] loadedCultures,
			out DateTime lastModifiedTime)
		{
			// Fill cultures hash
			foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
				_cultures[ci.Name] = ci;

			string fnwe = Path.GetFileNameWithoutExtension(file);
			string locExt = Path.GetExtension(fnwe);
			string sn = !string.IsNullOrEmpty(locExt) && _cultures.ContainsKey(locExt.Substring(1))
				? fnwe.Substring(0, fnwe.Length - locExt.Length)
				: fnwe;
			RootCategory root = new RootCategory(sn);
			List<CultureInfo> loaded = new List<CultureInfo>();
			lastModifiedTime = File.GetLastWriteTime(file);
			foreach (string fn in Directory.GetFiles(Path.GetDirectoryName(file),
				_resxFileExtension))
				if (Path.GetFileName(fn).IndexOf(sn) == 0)
				{
					loaded.Add(AppendResX(root, fn));
					DateTime lmt = File.GetLastWriteTime(fn);
					if (lmt > lastModifiedTime)
						lastModifiedTime = lmt;
				}
			loadedCultures = loaded.ToArray();
			return root;
		}
Example #2
0
		/// <summary>
		/// Генерировать хелпер.
		/// </summary>
		public static CodeCompileUnit Generate(RootCategory cat, string ns,
			bool isInternal)
		{
			var ccu = new CodeCompileUnit();
			var cn = new CodeNamespace(ns);
			ccu.Namespaces.Add(cn);
			GenerateCategory(cn.Types, cat, null, isInternal);
			return ccu;
		}
Example #3
0
File: Loader.cs Project: rsdn/janus
		private static CultureInfo AppendResX(RootCategory root, string file)
		{
			CultureInfo locale = GetLocale(file);
			ResXResourceReader rxrr = new ResXResourceReader(file);
			foreach (DictionaryEntry de in rxrr)
			{
				ResourceItem item = root.GetItem((string)de.Key);
				item.ValueCollection[locale] = de.Value.ToString();
			}
			return locale;
		}
Example #4
0
		private void OpenFile()
		{
			if (_openFileDialog.ShowDialog() == DialogResult.OK)
			{
				CultureInfo[] loadedCultures;
				DateTime lwt;
				_rootCategory = Loader.Load(_openFileDialog.FileName, out loadedCultures, out lwt);
				IEditContext ec = (IEditContext)Site.GetService(typeof(IEditContext));
				ec.AvailableCultures = loadedCultures;
				_directory = Path.GetDirectoryName(_openFileDialog.FileName);
				FakeNodeCollection fnc = new FakeNodeCollection();
				fnc.Add(_rootCategory);
				_rootCategory.TreeParent = fnc;
				ClearSelection();
				_categoryTree.Nodes = fnc;
				EnableCommandItems();
			}
		}