Exemplo n.º 1
0
        private void btnObjectModule_Click(object sender, RoutedEventArgs e)
        {
            // module search

            string module = m_Object.ObjectModule;

            if (module == null)
            {
                MessageBox.Show(this, "Модуль объекта отсутствует", m_Object.Name, MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            var frmEditor = new V8ModuleProcessor(module, "Модуль объекта: " + m_Object.Name).GetEditor();

            frmEditor.Edit();
        }
Exemplo n.º 2
0
 public ModuleEditor(V8ModuleProcessor module, bool ReadOnly)
 {
     m_Module       = module;
     m_ReadOnlyFlag = ReadOnly;
 }
Exemplo n.º 3
0
        private void GatherUICommands(ComparisonItem cmpItem, List <UICommand> RClickCommands, bool IsLeftSourced)
        {
            if (cmpItem == null || cmpItem.NodeType == ResultNodeType.ObjectsCollection)
            {
                return;
            }

            if (cmpItem.NodeType == ResultNodeType.FakeNode)
            {
                GatherUICommands(cmpItem.Parent, RClickCommands, IsLeftSourced);
                return;
            }

            // gathering treeitem commands
            object srcObject = (IsLeftSourced) ? cmpItem.Left.Object : cmpItem.Right.Object;

            if (cmpItem.NodeType == ResultNodeType.PropertyDef)
            {
                if (srcObject != null)
                {
                    var PropDef = (PropDef)srcObject;
                    AddProviderCommands(PropDef as ICommandProvider, RClickCommands);

                    if (cmpItem.Status == ComparisonStatus.Modified || cmpItem.Status == ComparisonStatus.Match)
                    {
                        if (PropDef.Value is V8ModuleProcessor)
                        {
                            var cmd = new UICommand("Показать различия в модулях", cmpItem, new Action(
                                                        () =>
                            {
                                V8ModuleProcessor LeftVal  = ((PropDef)cmpItem.Left.Object).Value as V8ModuleProcessor;
                                V8ModuleProcessor RightVal = ((PropDef)cmpItem.Right.Object).Value as V8ModuleProcessor;
                                var viewer = LeftVal.GetDifferenceViewer(RightVal);
                                if (viewer != null)
                                {
                                    viewer.ShowDifference(LeftName, RightName);
                                }
                            }));

                            RClickCommands.Add(cmd);
                        }
                        else if (PropDef.Value is TemplateDocument)
                        {
                            var cmd = new UICommand("Показать различия в макетах", cmpItem, new Action(
                                                        () =>
                            {
                                TemplateDocument LeftVal  = ((PropDef)cmpItem.Left.Object).Value as TemplateDocument;
                                TemplateDocument RightVal = ((PropDef)cmpItem.Right.Object).Value as TemplateDocument;
                                var viewer = LeftVal.GetDifferenceViewer(RightVal);
                                if (viewer != null)
                                {
                                    viewer.ShowDifference(LeftName, RightName);
                                }
                            }));

                            RClickCommands.Add(cmd);
                        }
                        else if (PropDef.Value is MDUserDialogBase)
                        {
                            var cmd = new UICommand("Показать различия в диалогах", cmpItem, new Action(
                                                        () =>
                            {
                                MDUserDialogBase LeftVal  = ((PropDef)cmpItem.Left.Object).Value as MDUserDialogBase;
                                MDUserDialogBase RightVal = ((PropDef)cmpItem.Right.Object).Value as MDUserDialogBase;
                                var viewer = new Comparison.ExternalTextDiffViewer(LeftVal.ToString(), RightVal.ToString());
                                if (viewer != null)
                                {
                                    viewer.ShowDifference(LeftName, RightName);
                                }
                            }));

                            RClickCommands.Add(cmd);
                        }
                    }
                    GatherUICommands(cmpItem.Parent, RClickCommands, IsLeftSourced);
                }
            }
            else if (cmpItem.NodeType == ResultNodeType.Object)
            {
                var Provider = srcObject as ICommandProvider;
                AddProviderCommands(Provider, RClickCommands);
            }

            if (srcObject != null && srcObject is IMDPropertyProvider)
            {
                var cmd = new UICommand("Отчет по свойствам", srcObject, () =>
                {
                    PropertiesReport repGenerator;
                    string windowTitle;

                    if (cmpItem.Left.Object != null && cmpItem.Right.Object != null)
                    {
                        repGenerator = new PropertiesReportCompare(cmpItem.Left.Object as IMDPropertyProvider, cmpItem.Right.Object as IMDPropertyProvider);
                        windowTitle  = String.Format("Отчет по свойствам: {0}/{1}", cmpItem.Left.Object.ToString(), cmpItem.Right.Object.ToString());
                    }
                    else
                    {
                        repGenerator = new PropertiesReportSingle((IMDPropertyProvider)srcObject);
                        windowTitle  = srcObject.ToString();
                    }

                    Dispatcher.BeginInvoke(new Action(() =>
                    {
                        FlowDocViewer fdViewer = new FlowDocViewer();
                        fdViewer.Title         = windowTitle;
                        fdViewer.Document      = repGenerator.GenerateReport();
                        fdViewer.Show();
                    }));
                });

                RClickCommands.Add(cmd);
            }
        }