示例#1
0
        public ScenarionBrowser(BrowserMode mode, ScenarioDepot scenario, IBranch initialSelection, IBranch formulaBeingEdited)
        {
            InitializeComponent();

            Mode = mode;
            Text = mode == BrowserMode.SelectNode ? Resources.ScenarionBrowser_SelectNode : Resources.ScenarionBrowser_SelectBranch;

            Scenario = scenario;
            InitialSelection = initialSelection;
            FormulaBeingEdited = formulaBeingEdited;

						foreach (ScenarioNode root in Scenario)
						{
							LoadBranch(root, null);
						}


            var allNodes = treeScenario.Nodes.Cast<TreeNode>()
                .SelectMany(tn => tn.Flatten(n => n.Nodes.Cast<TreeNode>()));
            treeScenario.SelectedNode = allNodes.FirstOrDefault(n => n.Tag == initialSelection);

            tabControlBranchOptions.Visible = false;
            _emptySelectionTipRtb.Visible = true;
            splitContainer1.Panel2.Padding = new Padding(5, 5, 5, 5);
            ResyncOkAvailability();
        }
示例#2
0
文件: MainForm.cs 项目: xeno-by/elf4b
		private void OpenScenarionWindow(string title, ScenarioDepot scenarioDepot)
		{
			if (InvokeRequired)
			{
				Invoke((Action) (() => OpenScenarionWindow(title, scenarioDepot)));
			}
			else
			{
				var scenarion = new Scenarion
				                	{
				                		MdiParent = this,
				                		Text = title,
				                		Scenario = scenarioDepot,
				                	};
				scenarion.Closed += (s, a) => InWork = MdiChildren.Length > 1;
				scenarion.Show();
			}
		}
示例#3
0
文件: MainForm.cs 项目: xeno-by/elf4b
		private void menuItemServiceDocumentConverter_Click(object sender, EventArgs e)
		{
			openScenarioDialog.Title = "Выберите сценарий, созданный в предыдущей версии системы";
			openScenarioDialog.Filter = "Сценарии предыдущих версий|*.scenario";
			if (openScenarioDialog.ShowDialog(this) != DialogResult.OK) return;

			var scenario = new FileInfo(openScenarioDialog.FileName);
			var nameFrom = scenario.FullName;
			if (!nameFrom.EndsWith(".scenario")) nameFrom += ".scenario";

			var nameTo = Path.Combine(scenario.DirectoryName, scenario.Name + ScenarioDocumentExtension);
			if (!nameTo.EndsWith(ScenarioDocumentExtension)) nameTo += ScenarioDocumentExtension;

			var cwd = new CancellableWorkerDialog
			          	{
			          		Information = "Производится конвертация файла сценария, созданного в более ранней версии системы, в наиболее оптимальный формат. Продолжительность этого процесса зависит от количества ветвей дерева сценария.\n\nНа медленных компьютерах эта процедура может занять продолжительное время.",
			          		Cancellable = false,
										UnknownProgress = true,
			          	};

			cwd.Worker = x =>
				{
					x.UpdateProgress(0, "Изучение файла сценария");
					var prev = new ScenarioDepot {Vault = VaultApi.OpenZip(nameFrom)};
					var curr = new ScenarioDepot {Vault = VaultApi.OpenZip(nameTo)};

					var a = prev.Cast<ScenarioNode>();
					var b = curr.Cast<ScenarioNode>();

					x.UpdateProgress(0, "Конвертация Общих Характеристик");
					MergeNodes(a.ElementAt(0), b.ElementAt(0));

					x.UpdateProgress(0, "Конвертация Характеристик Объекта");
					MergeNodes(a.ElementAt(1), b.ElementAt(1));

					x.UpdateProgress(99, "Создание нового документа");
					curr.Save();
					x.UpdateProgress(0, "Почти все готово");
				};

			if (cwd.ShowDialog(this) != DialogResult.OK) return;
		}
示例#4
0
文件: MainForm.cs 项目: xeno-by/elf4b
		private void menuItemNewAppraisal_Click(object sender, EventArgs e)
		{
			openScenarioDialog.Title = "Выберите сценарий для создаваемого отчета";
			openScenarioDialog.Filter = "Сценарии|*" + ScenarioDocumentExtension;
#if DEBUG && USE_TDISK
			openScenarioDialog.InitialDirectory = @"T:\";
#endif
			if (openScenarioDialog.ShowDialog(this) != DialogResult.OK) return;

			saveAsDialog.Title = "Введите имя файла отчета";
			saveAsDialog.Filter = "Отчеты|*" + ApprasialDocumentExtension;
#if DEBUG && USE_TDISK
			saveAsDialog.InitialDirectory = @"T:\";
#endif
			if (saveAsDialog.ShowDialog(this) != DialogResult.OK) return;

			var report = new FileInfo(saveAsDialog.FileName);
			if (report.Exists) report.Delete();

			var nameTo = report.FullName;
			if (!nameTo.EndsWith(ApprasialDocumentExtension)) nameTo += ApprasialDocumentExtension;

			var scenario = new FileInfo(openScenarioDialog.FileName);
			var nameFrom = scenario.FullName;
			if (!nameFrom.EndsWith(ScenarioDocumentExtension)) nameFrom += ScenarioDocumentExtension;

			var cwd = new CancellableWorkerDialog
			          	{
			          		Information = "Производится создание файла отчета, интеграция дерева сценария и предварительная оптимизация плана расчета. Продолжительность этого процесса зависит от количества ветвей дерева сценария.\n\nНа медленных компьютерах эта процедура может занять продолжительное время.",
			          		Cancellable = false,
			          		UnknownProgress = true,
			          	};

			cwd.Worker = x =>
				{
					x.UpdateProgress(0, "Создание файла отчета");
					File.Copy(nameFrom, nameTo);
					x.UpdateProgress(0, "Интеграция дерева сценариев");
					var scenarioDepot = new ScenarioDepot {Vault = VaultApi.OpenZip(nameTo),};
					x.UpdateProgress(0, "Оптимизация плана расчета");
					scenarioDepot.Save();
					x.UpdateProgress(0, "Почти все готово");
					OpenScenarionWindow(nameTo, scenarioDepot);
				};

			if (cwd.ShowDialog(this) != DialogResult.OK) return;
			InWork = true;
		}
示例#5
0
文件: StartUp.cs 项目: xeno-by/elf4b
		private static void FixGuidz()
		{
			const string file = @"T:\Demo test.scenario.iasto"; 
			//File.Copy(file,file+".back",true);
			var sd = new ScenarioDepot {Vault = VaultApi.OpenZip(file)};
			foreach(var i in sd.AllSourceValueDeclarations)
			{
				if(!i.Model.Name.Contains("-"))continue;
				//Console.Out.WriteLine("{1} = {0}", i.Name, i.Model.Name);
			}
			foreach (var i in sd.AllFormulaDeclarations)
			{
				//if (!i.Model.Name.Contains("-")) continue;
				if (!i.ElfCode.Contains("-")) continue;
				Console.Out.WriteLine("{1} = {0} {{{2}}}", i.Name, i.Model.Name, i.ElfCode);
			}
		}
示例#6
0
 public ScenarionBrowser(BrowserMode mode, ScenarioDepot scenario, IBranch initialSelection)
     : this(mode, scenario, initialSelection, null)
 {
     
 }
示例#7
0
 public static IBranch SelectBranch(ScenarioDepot scenario, IBranch initialSelection, IBranch formulaBeingEdited)
 {
     var browser = new ScenarionBrowser(BrowserMode.SelectBranch, scenario, initialSelection, formulaBeingEdited);
     return browser.ShowDialog() == DialogResult.OK ? browser.SelectedEntity : null;
 }
示例#8
0
 public static IBranch SelectNode(ScenarioDepot scenario, IBranch initialSelection)
 {
     var browser = new ScenarionBrowser(BrowserMode.SelectNode, scenario, initialSelection, null);
     return browser.ShowDialog() == DialogResult.OK ? browser.SelectedEntity : null;
 }