Пример #1
0
        public void FillTree(ICSharpCode.TreeView.SharpTreeView tree, Module module)
        {
            var root = CreateTreeItem(module);

            tree.Root = root;

            foreach (var ns in module.Namespaces)
            {
                var namespaceNode = CreateTreeItem(ns);
                tree.Root.Children.Add(namespaceNode);

                foreach (var type in ns.Types)
                {
                    var typeNode = CreateTreeItem(type);
                    namespaceNode.Children.Add(typeNode);

                    foreach (var method in type.Methods)
                    {
                        var methodName = CreateTreeItem(method);
                        namespaceNode.Children.Add(methodName);
                    }

                    foreach (var field in type.Fields)
                    {
                        var fieldNode = CreateTreeItem(field);
                        namespaceNode.Children.Add(fieldNode);
                    }
                }
            }
        }
Пример #2
0
 //public IEnumerable<ILSpyTreeNode> SelectedNodes
 //{
 //    get
 //    {
 //        return treeView.GetTopLevelSelection().OfType<ILSpyTreeNode>();
 //    }
 //}
 void projectTree_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     ICSharpCode.TreeView.SharpTreeView t = sender as ICSharpCode.TreeView.SharpTreeView;
     ShowProperties(t);
     if (SelectionChanged != null)
     {
         SelectionChanged(sender, e);
     }
 }
Пример #3
0
 void ShowProperties(ICSharpCode.TreeView.SharpTreeView t)
 {
     if (t.SelectedItems.Count == 1)
     {
         ShopdrawingTreeNode node = t.SelectedItem as ShopdrawingTreeNode;
         PropertyGrid.SelectedObject = node.DataObject;
     }
     else
     {
         ShopdrawingTreeNode nodes = t.SelectedItems as ShopdrawingTreeNode;
     }
 }
Пример #4
0
 void projectTree_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     if (e.ChangedButton == MouseButton.Left)
     {
         ICSharpCode.TreeView.SharpTreeView t = sender as ICSharpCode.TreeView.SharpTreeView;
         if (t.SelectedItems.Count == 1)
         {
             ShopdrawingTreeNode node = t.SelectedItem as ShopdrawingTreeNode;
             if (node.Children.Count == 0)
             {
                 MessageBox.Show(node.DataObject != null ? node.DataObject.ToString() : "Null");
             }
         }
     }
 }
Пример #5
0
        public void NewProject()
        {
            //Drawing
            DrawingHost = new DynamicGeometry.DrawingHost();
            DrawingHost.Ribbon.Visibility = System.Windows.Visibility.Collapsed;
            // Add Behaviors
            var behaviors = Behavior.LoadBehaviors(typeof(Dragger).Assembly);

            Behavior.Default = behaviors.First(b => b is Dragger);
            foreach (var behavior in behaviors)
            {
                DrawingHost.AddToolButton(behavior);
            }
            var firstDocumentPane = dockManager.Layout.Descendents().OfType <LayoutDocumentPane>().FirstOrDefault();

            if (firstDocumentPane != null)
            {
                LayoutDocument doc = new LayoutDocument();
                doc.Title = "Drawing" + drawingCount;
                drawingCount++;
                doc.Content = DrawingHost;
                firstDocumentPane.Children.Add(doc);
            }

            //Project Explorer
            var projectExplorer  = dockManager.Layout.Descendents().OfType <LayoutAnchorablePane>().LastOrDefault();
            var rightAnchorgroup = dockManager.Layout.Descendents().OfType <LayoutAnchorablePaneGroup>().FirstOrDefault();

            if (projectExplorer != null)
            {
                // Tạo 2 LayoutAnchorablePane
                LayoutAnchorablePane l1 = new LayoutAnchorablePane();
                LayoutAnchorablePane l2 = new LayoutAnchorablePane();

                LayoutAnchorable doc = new LayoutAnchorable();

                ICSharpCode.TreeView.SharpTreeView projectTree = new ICSharpCode.TreeView.SharpTreeView()
                {
                    AllowDrop = true, AllowDropOrder = true
                };
                ICSharpCode.ILSpy.ContextMenuProvider.Add(projectTree);
                //App.CompositionContainer.ComposeParts(this);

                projectTree.SelectionChanged += projectTree_SelectionChanged;
                projectTree.MouseDoubleClick += projectTree_MouseDoubleClick;

                // Dữ liệu ban đầu
                BridgesList brl = new BridgesList()
                {
                    Name = "Bridges List"
                };
                BridgeProject.Items.Bridge br = new BridgeProject.Items.Bridge()
                {
                    Name = "Bridge 1"
                };
                //Substructures sub1 = new Substructures();
                //br.Substructures = sub1;

                BridgeProject.Items.Bridge br2 = new BridgeProject.Items.Bridge()
                {
                    Name = "Bridge 2"
                };
                brl.Children.Add(br, br2);

                BridgeListNode n = new BridgeListNode(brl);
                foreach (Bridge b in brl.Children)
                {
                    BridgeNode n1 = new BridgeNode(b)
                    {
                        Text = b.Name
                    };
                    n.Children.Add(n1);

                    SubstructuresNode subNode = new SubstructuresNode(b.Substructures);
                    n1.Children.Add(subNode);

                    AbutmentsListNode abutsNode = new AbutmentsListNode(b.Substructures.Abutments);
                    subNode.Children.Add(abutsNode);

                    PiersListNode piersNode = new PiersListNode(b.Substructures.Piers);
                    subNode.Children.Add(piersNode);

                    foreach (Abutment a in b.Substructures.Abutments.Children)
                    {
                        AbutmentNode abn = new AbutmentNode(a);
                        abutsNode.Children.Add(abn);
                    }

                    foreach (Pier p in b.Substructures.Piers.Children)
                    {
                        PierNode abn = new PierNode(p);
                        piersNode.Children.Add(abn);
                    }
                }

                projectTree.Root = n;
                //

                doc.Content   = projectTree;
                doc.Title     = "Project Explorer";
                doc.ContentId = "projectExplorer";

                l1.Children.Add(doc);

                // PropertyGrid
                PropertyGridHost = new DynamicGeometry.PropertyGridHost();
                PropertyGrid     = new ChristianMoser.WpfInspector.UserInterface.Controls.PropertyGrid()
                {
                    VerticalAlignment = System.Windows.VerticalAlignment.Stretch,
                    ShowMethod        = true,
                };
                PropertyGridHost.Children.Add(PropertyGrid);
                LayoutAnchorable prop = new LayoutAnchorable();
                prop.Content = PropertyGridHost;

                prop.ContentId = "propertyGrid";
                prop.Title     = "Properties";
                l2.Children.Add(prop);

                rightAnchorgroup.Children.Add(l1);
                rightAnchorgroup.Children.Add(l2);

                //
                //var pe = dockManager.Layout.Descendents().OfType<LayoutAnchorable>().Single(a => a.ContentId == "projectExplorer");
                //var tree = pe.Content as BridgeFS.Controls.Project;
                //if (tree != null)
                //{
                //    //MessageBox.Show(tree.TreeView.ToString() + "xx");
                //    Binding b = new Binding();
                //    b.Source = tree.TreeView;
                //    //b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
                //    b.Path = new PropertyPath(TreeViewItemChangedMvvm.ViewModelUtils.TreeViewHelper.SelectedItemProperty);
                //    this.PropertyGrid.SetBinding(ChristianMoser.WpfInspector.UserInterface.Controls.PropertyGrid.SelectedObjectProperty, b);
                //}
            }
            dockManager.UpdateLayout();
            //MainToolbar.Drawing = DrawingHost.CurrentDrawing;
            //DrawingHost.CurrentDrawing.SelectionChanged += CurrentDrawing_SelectionChanged;
            dockManager.ActiveContentChanged += dockManager_ActiveContentChanged;
        }
Пример #6
0
        private void InitCommands()
        {
            App.Log("Иницилизация команд главного окна");
            SettingsCommand = new DelegateCommand(o =>
            {
                App.Log("Просмотр настроек");
                Dialogs.IDialog dialog = null;
                Action updateUI        = () =>
                                         dialog.Close();
                var control = new SettingsControl(updateUI);
                dialog      = this.DialogCustom(control);
                dialog.Show();
            });

            UpdateCommand = new DelegateCommand(o =>
            {
                cts = new CancellationTokenSource();

                Dialogs.IDialog dialog = this.DialogInfo(Strings.UpdatingInProgress, null, MessageBoxImage.None, TMPApplication.WpfDialogs.DialogMode.Cancel);
                dialog.CloseBehavior   = TMPApplication.WpfDialogs.DialogCloseBehavior.ExplicitClose;
                dialog.Cancel          = () =>
                {
                    cts.Cancel();
                    dialog.CanCancel = false;
                };
                dialog.Show();

                if (CheckAvailability() == false)
                {
                    this.ShowDialogWarning(Strings.MessageServerNotAvailability, null, () => dialog.Close());
                    return;
                }
                try
                {
                    this.ShowDialogInfo(Strings.OnUpdatingPointsList, null, () =>
                    {
                        App.Log("Получение списка точек от сервиса");
                        _rootEmcosGroup = null;
                        try
                        {
                            _rootEmcosGroup = Utils.Base64StringToObject <ListPoint>(Properties.Settings.Default.RootPoint);
                        }
                        catch
                        { }
                        if (_rootEmcosGroup == null)
                        {
                            _rootEmcosGroup = DEFAULT_ROOT_EMCOS_GROUP;
                        }

                        _backgroudTask = Task.Factory.StartNew(async() =>
                        {
                            _index = 0;

                            var source = await FillPointsTree(_rootEmcosGroup);
                            if (source.Count == 0 && String.IsNullOrEmpty(ServiceHelper.ErrorMessage) == false)
                            {
                                this.ShowDialogWarning(ServiceHelper.ErrorMessage);
                                dialog.Close();
                                return;
                            }
                            InitModel(source);
                            IsReadyToGetData = true;
                            SaveList(source);
                            dialog.Close();
                        }, cts.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
                    });
                }
                catch (Exception ex)
                {
                    App.Log("Получение списка точек от сервиса - ошибка");
                    dialog.Close();
                    this.ShowDialogError(String.Format(Strings.Error, App.GetExceptionDetails(ex)));
                }
            });
            GetReportCommand = new DelegateCommand(o =>
            {
                this.ShowDialogInfo(Strings.OnGettingData, null, () =>
                {
                    App.Log("Получение отчёта по точкам");

                    if (CheckAvailability() == false)
                    {
                        this.ShowDialogWarning(Strings.MessageServerNotAvailability);
                        return;
                    }

                    var substations = _treeModel.Point.Items
                                      .Flatten(i => i.Items)
                                      .Where(i => (i.TypeCode == "SUBSTATION" || i.TypeCode == "VOLTAGE") && i.IsChecked)
                                      .OrderBy(i => i.ParentName)
                                      .ThenBy(i => i.Name)
                                      .ToList <ListPoint>();
                    if (substations == null || substations.Count == 0)
                    {
                        this.ShowDialogWarning(Strings.EmptyList);
                        return;
                    }

                    Dialogs.IDialog dialog = null;

                    btnPanel.IsEnabled = false;
                    try
                    {
                        App.Current.MainWindow.TaskbarItemInfo = new System.Windows.Shell.TaskbarItemInfo()
                        {
                            Description   = Strings.GetDataHeader,
                            ProgressState = System.Windows.Shell.TaskbarItemProgressState.Normal,
                            ProgressValue = 0.01
                        };
                        Action updateUI = () =>
                        {
                            btnPanel.IsEnabled = true;
                            dialog.Close();
                        };
                        Action completed = () =>
                        {
                            App.Current.MainWindow.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.None;
                            updateUI();
                        };
                        Action canceled = () =>
                        {
                            App.Current.MainWindow.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Paused;
                            this.ShowDialogInfo(Strings.Canceled);
                            updateUI();
                        };
                        Action <Exception> faulted = (Exception e) =>
                        {
                            App.Current.MainWindow.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Error;
                            this.ShowDialogError(App.GetExceptionDetails(e));
                            updateUI();
                        };

                        dialog = this.DialogCustom(new GetDataControl(substations, completed, canceled, faulted));
                        dialog.Show();
                    }
                    catch (Exception ex)
                    {
                        App.Log("Получение отчётов - ошибка");
                        this.ShowDialogError(App.GetExceptionDetails(ex), null,
                                             () => TMPApplication.DispatcherExtensions.InUi(() => btnPanel.IsEnabled = true));
                        dialog.Close();
                    }
                });
            },
                                                   o => IsReadyToGetData);
            GetEnergyCommand = new DelegateCommand(o =>
            {
                this.ShowDialogInfo(Strings.OnGettingData, null, () =>
                {
                    App.Log("Получение суточных значений");
                    if (CheckAvailability() == false)
                    {
                        this.ShowDialogWarning(Strings.MessageServerNotAvailability);
                        return;
                    }

                    Dialogs.IDialog dialog = null;

                    btnPanel.IsEnabled = false;
                    try
                    {
                        App.Current.MainWindow.TaskbarItemInfo               = new System.Windows.Shell.TaskbarItemInfo();
                        App.Current.MainWindow.TaskbarItemInfo.Description   = Strings.GetDataHeader;
                        App.Current.MainWindow.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Normal;
                        App.Current.MainWindow.TaskbarItemInfo.ProgressValue = 0.01;

                        Action updateUI = () =>
                        {
                            TMPApplication.DispatcherExtensions.InUi(() => btnPanel.IsEnabled = true);
                            dialog.Close();
                        };
                        Action completed = () =>
                        {
                            App.Current.MainWindow.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.None;
                            updateUI();
                        };
                        Action canceled = () =>
                        {
                            App.Current.MainWindow.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Paused;
                            this.ShowDialogInfo(Strings.Canceled, Strings.Message, null);
                            updateUI();
                        };
                        Action <Exception> faulted = (Exception e) =>
                        {
                            App.Current.MainWindow.TaskbarItemInfo.ProgressState = System.Windows.Shell.TaskbarItemProgressState.Error;

                            this.ShowDialogError(App.GetExceptionDetails(e));
                            updateUI();
                        };

                        dialog = this.DialogCustom(new GetEnergyControl(_treeModel.Point.Items, completed, canceled, faulted));
                        dialog.Show();
                    }
                    catch (Exception ex)
                    {
                        App.Log("Получение суточных значений - ошибка");
                        this.ShowDialogError(App.GetExceptionDetails(ex), null,
                                             () => TMPApplication.DispatcherExtensions.InUi(() => btnPanel.IsEnabled = true));
                        dialog.Close();
                    }
                });
            },
                                                   o => IsReadyToGetData);

            TreeCheckOrUncheckItemsCommand = new DelegateCommand(
                o =>
            {
                ICSharpCode.TreeView.SharpTreeView tree = o as ICSharpCode.TreeView.SharpTreeView;
                if (tree != null)
                {
                    ListPoint point = (ListPoint)tree.SelectedItem;
                    if (point != null && point.Items != null)
                    {
                        foreach (var child in point.Items)
                        {
                            if (child.TypeCode == "FES" || child.TypeCode == "RES" || child.TypeCode == "SUBSTATION" || child.TypeCode == "VOLTAGE")
                            {
                                child.IsChecked = !child.IsChecked;
                            }
                        }
                    }
                }
            },
                o => _treeModel != null && _treeModel.Children != null && _treeModel.Children.Count > 0);
            TreeUnselectAllCommand = new DelegateCommand(
                o =>
            {
                if (_treeModel != null)
                {
                    foreach (var item in _treeModel.Point.Items)
                    {
                        ForEachPointInTree(item, p => true, p => p.IsChecked = false);
                    }
                }
            },
                o => _treeModel != null && _treeModel.Children != null && _treeModel.Children.Count > 0);
            TreeSelectAllCommand = new DelegateCommand(
                o =>
            {
                if (_treeModel != null)
                {
                    foreach (var item in _treeModel.Point.Items)
                    {
                        ForEachPointInTree(item, p => p.TypeCode == "SUBSTATION" || p.TypeCode == "VOLTAGE", p => p.IsChecked = true);
                    }
                }
            },
                o => _treeModel != null && _treeModel.Children != null && _treeModel.Children.Count > 0);
        }