public async Task <IView> addView(EngineeringMap eMap, bool canClose)
        {
            try
            {
                RadPane layout = new RadDocumentPane()
                {
                    CanUserClose = true
                };
                layout.Name   = eMap.MapID;
                layout.Header = eMap.MapID;
                ViewHolder.Items.Add(layout);
                //ViewHolder.SelectedIndex = count;
                IView view = null;
                if (eMap.MapType == EngineeringMapType.FootPrintMap)
                {
                    PlanView planView = new PlanView(_prj, eMap);
                    view = planView.view;
                    // Load predefined layers
                    await view.initialzeView();

                    layout.Content = planView;
                }
                else if (eMap.MapType == EngineeringMapType.GeneralProfileMap)
                {
                    ProfileView profileView = new ProfileView(_prj, eMap);
                    view = profileView.view;
                    // Load predefined layers
                    await view.initialzeView();

                    _profileview   = profileView;
                    layout.Content = profileView;
                }
                else if (eMap.MapType == EngineeringMapType.Map3D)
                {
                    if (eMap.LocalTileFileNameStr.EndsWith(".unity3d"))
                    {
                        Unity.Webplayer.U3DView u3dView = new Unity.Webplayer.U3DView(_prj, eMap);

                        view        = u3dView.view;
                        viewModel3d = view as U3DViewModel;
                        // Load predefined layers
                        await view.initialzeView();

                        layout.Content = u3dView;
                    }
                    else
                    {
                        Unity.EXE.U3DView u3dView = new Unity.EXE.U3DView(_prj, eMap);
                        my3dView = u3dView;
                        temp2    = layout;
                        //layout.Content = u3dView;
                        temp.Child = u3dView;
                        //temp.Child = u3dView;
                        view        = u3dView.panel.view;
                        viewModel3d = view as U3DViewModel;
                        // Load predefined layers
                        await view.initialzeView();
                    }
                }

                //// view is both a trigger and listener of object selection changed event
                view.ObjSelectionChangedHandler += this.objSelectionChangedListener;
                this.objSelectionChangedTrigger += view.ObjSelectionChangedListener;

                // Sync view graphics with data
                view.syncObjects();

                _views.Add(view);
                return(view);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Esempio n. 2
0
        public async Task <IView> addView(EngineeringMap eMap, bool canClose)
        {
            LayoutDocumentPane docPane = FindViewHolder();

            if (docPane == null)
            {
                docPane = Center;
            }

            LayoutDocument LayoutDoc = new LayoutDocument();

            LayoutDoc.ContentId = eMap.MapID;
            LayoutDoc.Title     = eMap.MapID;
            LayoutDoc.CanClose  = canClose;
            LayoutDoc.Closed   += LayoutDoc_Closed;
            docPane.Children.Add(LayoutDoc);

            string datafilePath, filePath;

            if (_prj != null)
            {
                datafilePath = _prj.projDef.LocalFilePath;
                filePath     = datafilePath + "\\" + eMap.MapID + ".xml";
            }

            IView view = null;

            if (eMap.MapType == EngineeringMapType.FootPrintMap)
            {
                PlanView planView = new PlanView(this, _prj, eMap);
                LayoutDoc.Content = planView;
                view = planView.view;
            }
            else if (eMap.MapType == EngineeringMapType.GeneralProfileMap)
            {
                ProfileView profileView = new ProfileView(this, _prj, eMap);
                LayoutDoc.Content = profileView;
                view = profileView.view;
            }
            else if (eMap.MapType == EngineeringMapType.Map3D)
            {
                if (eMap.LocalMapFileName.EndsWith(".unity3d"))
                {
                    iS3.Unity.Webplayer.U3DView u3dView = new iS3.Unity.Webplayer.U3DView(_prj, eMap);
                    LayoutDoc.Content = u3dView;
                    view = u3dView.view;
                }
                else
                {
                    iS3.Unity.EXE.U3DView u3dView = new Unity.EXE.U3DView(_prj, eMap);
                    LayoutDoc.Content = u3dView;
                    view = u3dView.panel.view;
                }
            }

            // view is both a trigger and listener of object selection changed event
            view.objSelectionChangedTrigger += this.objSelectionChangedListener;
            this.objSelectionChangedTrigger += view.objSelectionChangedListener;
            view.initializeView();

            // Load predefined layers
            await view.loadPredefinedLayers();

            // Sync view graphics with data
            view.syncObjects();


            _views.Add(view);
            return(view);
        }