Exemplo n.º 1
0
 protected override async Task OnStartupAsync()
 {
     //插入RibbonTab
     Mg.Get <IMgRibbon>().InsertRibbonTab(this, new MyTabViewModel());
     //在已有的菜单组中插入菜单按钮
     _groupVm = Mg.Get <IMgRibbon>().GetRibbonGroup(LocalConfig.InsertGroupName);
     if (_groupVm != null)
     {
         _viewBtn = new RibbonButtonViewModel
         {
             ButtonSize = ButtonSize.Large,
             Text       = "我的按钮",
             LargeImage = this.GetAppResPath("Assets\\logo.jpg"),
             SmallImage = this.GetAppResPath("Assets\\logo.jpg"),
             Click      = new RelayCommand(ShowPane)//按钮命令
         };
         _groupVm.Items.Add(_viewBtn);
     }
     else
     {
         Mg.Get <IMgLog>().Warn($"没有找到名称为{LocalConfig.InsertGroupName}的菜单组,无法插入菜单按钮!");
     }
     //注册全局命令,全局命令可以任何地方使用
     Mg.Get <IMgCommand>().Register(this, new CommandInfo("AlertMessage", new RelayCommand(OnAlertMessage)));
     Mg.Get <IMgCommand>().Register(this, new CommandInfo("AlertMessageAsync", new AsyncCommand(OnAlertMessageAsync, CanAlertMessageAsync)));
     await Task.Yield();
 }
Exemplo n.º 2
0
 protected override async Task OnStartupAsync()
 {
     //插入菜单组
     Mg.Get <IMgRibbon>().InsertRibbonTab(this, new MyTabViewModel());
     //在已有的菜单组中插入菜单按钮
     _groupVm = Mg.Get <IMgRibbon>().GetRibbonGroup(LocalConfig.InsertGroupName);
     if (_groupVm != null)
     {
         _viewBtn = new RibbonButtonViewModel
         {
             ButtonSize = ButtonSize.Large,
             Text       = "打开非异步窗口",
             LargeImage = this.GetAppResPath("Assets\\logo.jpg"),
             SmallImage = this.GetAppResPath("Assets\\logo.jpg"),
             Click      = new RelayCommand(ShowWindow) //按钮命令
         };
         _groupVm.Items.Add(_viewBtn);                 //添加到菜单组里
         _viewBtnAsync = new RibbonButtonViewModel
         {
             ButtonSize = ButtonSize.Large,
             Text       = "打开异步窗口",
             LargeImage = this.GetAppResPath("Assets\\logo.jpg"),
             SmallImage = this.GetAppResPath("Assets\\logo.jpg"),
             Click      = new RelayCommand(ShowWindowAsync) //按钮命令
         };
         _groupVm.Items.Add(_viewBtnAsync);                 //添加到菜单组里
     }
     else
     {
         Mg.Get <IMgLog>().Warn($"没有找到名称为{LocalConfig.InsertGroupName}的菜单组,无法插入菜单按钮!");
     }
     await Task.Yield();
 }
Exemplo n.º 3
0
        private async void OnAddData()
        {
            var data = new List <IRecord>
            {
                new DynamicRecord
                {
                    { "Number", UserSource.Count + 1 },
                    { "Name", "小茗" },
                    { "Remark", "-" }
                },
                new DynamicRecord
                {
                    { "Number", UserSource.Count + 2 },
                    { "Name", "冷冷" },
                    { "Remark", "-" }
                },
                new DynamicRecord
                {
                    { "Number", UserSource.Count + 3 },
                    { "Name", "暖暖" },
                    { "Remark", "-" }
                }
            };
            var result = await CustomDataApi.AddCustomDataAsync(_tableName, data.ToArray());

            if (!result.IsOk)
            {
                Mg.Get <IMgDialog>().ShowDesktopAlert("添加学生数据到自定义新表失败", result.Message);
                return;
            }
            Refresh();
        }
Exemplo n.º 4
0
        private void OnRegisterPlug()
        {
            var data = new Func <IRecord, Task>(PlugAction);

            Mg.Get <IMgSlot>().PushPlugs(App.Instance <DemoApp>(), new Plug("FirstPlug", "DemoApp:Startup", data));
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", "注册了插槽DemoApp:Startup里的插头FirstPlug!");
        }
Exemplo n.º 5
0
 protected override async Task OnStartupAsync()
 {
     //插入RibbonTab
     Mg.Get <IMgRibbon>().InsertRibbonTab(this, new MyTabViewModel());
     Mg.Get <IMgApp>().AddInstalledEventHandler(InstalledEvent);
     await Task.Yield();
 }
Exemplo n.º 6
0
 public FirstViewModel()
 {
     ButtonCmd          = new RelayCommand(OnButtonCmd, CanButtonCmd);
     ButtonCmdAsync     = new AsyncCommand(OnButtonCmdAsync, CanButtonCmdAsync);
     GlobalCommand      = Mg.Get <IMgCommand>().GetCommandInfo("AlertMessage").Command as RelayCommand;
     GlobalCommandAsync = Mg.Get <IMgCommand>().GetCommandInfo("AlertMessageAsync").Command as AsyncCommand;
 }
        /// <summary>
        /// 加载批注标签数据
        /// </summary>
        private async void LoadPostilTagData()
        {
            PostilTagList.Clear();
            var listParams = new ListParams {
                Search = Query.Eq(Hubs.Tag.ProjectId, Mg.Get <IMgContext>().ProjectId)
            };
            var result = await DataApi.GetListAsync(Hubs.Tag.T, listParams);

            if (!result.IsOk)
            {
                return;
            }
            var records = result.GetRecords();

            foreach (var record in records)
            {
                var name  = record[Hubs.Tag.Name].As <string>();
                var model = new TagInfoModel
                {
                    Id   = record.Id,
                    Name = $" {name} "
                };
                PostilTagList.Add(model);
            }
        }
Exemplo n.º 8
0
        private void OnInsertImage()
        {
            var param = new
            {
                ImagePath           = this.GetAppResPath("Assets\\logo.jpg"), //string:	图片路径,必填*
                HorizontalAlignment = "Left",                                 //string:	水平对齐,取值为:Left;Center;Right 默认为"Left"
                VerticalAlignment   = "Top",                                  //string:	竖向对齐,取值为:Top;Center;Bottom 默认为"Top"
                Left    = 0f,                                                 //float:	左边距,默认为0f
                Right   = 0f,                                                 //float:	右边距,默认为0f
                Top     = 0f,                                                 //float:	上边距,默认为0f
                Bottom  = 0f,                                                 //float:	下边距,默认为0f
                Width   = float.NaN,                                          //float:	图片宽度,默认为float.NaN,表示图片的像素宽度
                Height  = float.NaN,                                          //float:	图片高度,默认为float.NaN,表示图片的像素高度
                Opacity = 1f                                                  //float:  图片透明度,默认为1f
            };
            var result = Mg.Get <IMgService>().Invoke <DemoApp>("GraphicPlatform:InsertImage", param);

            if (result.IsOk)
            {
                _graphicPlatformImageKey = result.Data.As <uint>(); //图片标识
            }
            else
            {
                Mg.Get <IMgDialog>().ShowDesktopAlert("提示", result.Message);
            }
        }
        /// <summary>
        /// 获取图形平台的截图
        /// </summary>
        private bool GetGraphicPlatformCaptureScreen()
        {
            var tempDir = this.GetAppResPath("PostilFile\\");

            if (!Directory.Exists(tempDir))
            {
                Directory.CreateDirectory(tempDir);
            }
            _screenshotPicPath = tempDir + DateTime.Now.ToString("yyyyMMddHHmmss") + ".JPG";
            if (File.Exists(_screenshotPicPath))
            {
                File.Delete(_screenshotPicPath);
            }
            var r = Mg.Get <IMgService>().Invoke <PostilApp>("GraphicPlatform:CaptureScreen", _screenshotPicPath);//传入图片需要保存的路径

            if (!r.IsOk)
            {
                Mg.Get <IMgLog>().Error("获取图形平台截图失败!无法调用图形管理平台服务,需打开图形管理平台模块!");
                Mg.Get <IMgDialog>().ShowDesktopAlert("获取图形平台截图失败", "无法调用图形管理平台服务,需打开图形管理平台模块!");
                return(false);
            }
            if (File.Exists(_screenshotPicPath))
            {
                ViewPicture = this.GetAppImageSource(_screenshotPicPath);
                return(true);
            }
            Mg.Get <IMgLog>().Error("获取图形平台截图失败!");
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", "获取图形平台截图失败!");
            return(false);
        }
 protected override void OnViewLoaded(bool isFirstLoaded)
 {
     base.OnViewLoaded(isFirstLoaded);
     if (!isFirstLoaded)
     {
         return;
     }
     if (_selectedPostilId != null)
     {
         LoadPostilInfosAsync(_currentPageIndex, () => SelectedViewPicModel = ViewPictureModels.FirstOrDefault(t => t.PostilId == _selectedPostilId));
     }
     else
     {
         var pane        = Mg.Get <IMgDocking>().GetPane(typeof(PostilPanelListViewModel));
         var panelListVm = pane?.Content as PostilPanelListViewModel;
         if (panelListVm?.SelectedPostilInfoModel == null || panelListVm.PostilInfoModels.Count == 0)
         {
             LoadPostilInfosAsync(0);
         }
         else
         {
             var index = panelListVm.PostilInfoModels.IndexOf(panelListVm.SelectedPostilInfoModel);
             if (index == -1)
             {
                 _currentPageIndex = 0;
             }
             else
             {
                 _currentPageIndex = index / 8;
             }
             _selectedPostilId = panelListVm.SelectedPostilInfoModel._id;
             LoadPostilInfosAsync(_currentPageIndex, () => SelectedViewPicModel = ViewPictureModels.FirstOrDefault(t => t.PostilId == _selectedPostilId));
         }
     }
 }
        public async void OnOpenAddPostilView()
        {
            var privilege = await Mg.Get <IMgContext>().GetPrivilegeAsync(ModuleKeys.OpenAddPostilView);

            if (!privilege)
            {
                Mg.Get <IMgLog>().Error("您没有添加批注的权限!");
                Mg.Get <IMgDialog>().ShowDesktopAlert("提示", "您没有添加批注的权限!");
                return;
            }
            var addPostil = new AddPostilViewModel();
            var vm        = new DialogViewModel(addPostil)
            {
                Title  = "添加批注",
                Width  = 1400,
                Height = 800,
                CancelButtonVisibility = Visibility.Visible,
                OkButtonVisibility     = Visibility.Visible,
                Icon       = this.GetAppImageSource("Assets/添加批注.png"),
                ResizeMode = ResizeMode.CanResize
            };
            var result = Mg.Get <IMgDialog>().ShowDialog(vm);

            if (result != CloseResult.Ok)
            {
                return;
            }
            addPostil.OnAddPostil();
        }
Exemplo n.º 12
0
        private async Task PlugAction(IRecord data)
        {
            await Task.Delay(100);

            var who = data["Name"].As <string>();

            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"Hi,{who}!");
        }
Exemplo n.º 13
0
 protected override async Task OnStartupAsync()
 {
     //插入Ribbon菜单
     Mg.Get <IMgRibbon>().InsertRibbonTab(this, new MyTabViewModel());
     //var menuName = "别的应用已存在的菜单名";
     //var mItemInfo = new MenuItemInfo("我是别的地方插入的菜单","已存在的全局命令名") { GroupName = "菜单组名" };
     //Mg.Get<IMgMenu>().Register(this, menuName, mItemInfo);//往别的应用的菜单添加菜单项
     await Task.Yield();
 }
Exemplo n.º 14
0
        /// <summary>
        /// 获取文件URL(批量)
        /// </summary>
        /// <param name="ids">需要获取URL的文件Id集合</param>
        /// <returns></returns>
        public static async Task <Result> GetFilesUrlAsync(Id[] ids)
        {
            var result = await Mg.Get <IMgWeb>().GetResultAsync <PostilApp>("v1/data/get_files_url", new
            {
                Ids = ids
            });

            return(result);
        }
Exemplo n.º 15
0
        /// <summary>
        /// 删除文件(批量)
        /// </summary>
        /// <param name="ids">需要删除的文件Id集合</param>
        /// <returns></returns>
        public static async Task <Result> DeleteFilesAsync(Id[] ids)
        {
            var result = await Mg.Get <IMgWeb>().PostAsync <PostilApp>("v1/data/delete_files", new
            {
                Ids = ids
            });

            return(result);
        }
Exemplo n.º 16
0
 private void ShowPane()
 {
     Mg.Get <IMgDocking>().TryOpenPane <DemoApp, FirstViewModel>(t =>
     {
         t.Header     = "我的第一个面板";
         t.IsDocument = true;
         return(new FirstViewModel());
     });
 }
Exemplo n.º 17
0
        protected override void OnExited()
        {
            var myTab = Mg.Get <IMgRibbon>().GetRibbonTab("MyTab");

            if (myTab != null)
            {
                Mg.Get <IMgRibbon>().RemoveRibbonTab(myTab);
            }
        }
Exemplo n.º 18
0
 private void InstalledEvent()
 {
     if (DemoAppSetting.Ins.AlwaysShow)
     {
         ShowPane();
     }
     //系统设置中应用的设置界面
     Mg.Get <IMgSetting>().AddPluginSettingItem(this, new SettingItem("我的应用", new SettingViewModel()));
 }
Exemplo n.º 19
0
        /// <summary>
        /// 获取用户信息列表
        /// </summary>
        /// <param name="listParams">集合的筛选、分页、排序、映射参数</param>
        /// <returns></returns>
        public static async Task <Result> GetUserInfoListAsync(ListParams listParams = null)
        {
            var result = await Mg.Get <IMgWeb>().GetResultAsync <PostilApp>("v1/user/list", new
            {
                ListParams = listParams
            });

            return(result);
        }
Exemplo n.º 20
0
 public PostilPanelListViewModel()
 {
     PostilInfoModels        = new ObservableCollection <PostilInfoModel>();
     _backupPostilInfoModels = new ObservableCollection <PostilInfoModel>();
     Refresh = new RelayCommand(OnRefresh, CanRefresh);
     Search  = OnSearchAsync;
     Mg.Get <IMgWeb>().AddWebMsgHandler(App.Instance <PostilApp>(), "demoPostil/add", DataAdd);
     Mg.Get <IMgWeb>().AddWebMsgHandler(App.Instance <PostilApp>(), "demoPostil/delete", DataDelete);
 }
        private void OnDateTimeChanged(object vm)
        {
            var time = (vm as RibbonDatePickerViewModel)?.DateTime;

            if (time == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"选择的日期为:{((DateTime)time).ToString("yyyy-MM-dd HH:mm:ss")}");
        }
Exemplo n.º 22
0
        private async void OnSelectNodes()
        {
            IEnumerable <ISpatialNode> selNodes = null;
            var result = await Mg.Get <IMgService>().InvokeAsync <DemoApp>("GraphicPlatform:SelectNodes");

            if (result.IsOk)
            {
                selNodes = result.Data.AsArray <ISpatialNode>();
            }
        }
Exemplo n.º 23
0
        private async void OnSelectPoint()
        {
            Tuple <ISpatialNode, Point3D> tuple = null;
            var result = await Mg.Get <IMgService>().InvokeAsync <DemoApp>("GraphicPlatform:SelectPoint", null);

            if (result.IsOk)
            {
                tuple = result.Data.As <Tuple <ISpatialNode, Point3D> >();
            }
        }
        private void OnChangeContextMenuItem(object vm)
        {
            var header = (vm as RibbonContextMenuItemViewModel)?.ToString();

            if (header == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"选中了{header}");
        }
        private void OnColorChanged(object vm)
        {
            var color = (vm as RibbonColorPickerViewModel)?.Color;

            if (color == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"选中了{color}");
        }
        private void OnChangeRadioButton(object vm)
        {
            var name = (vm as RibbonRadioButtonViewModel)?.Name;

            if (name == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"选中了{name}");
        }
        private void OnComboBoxSelectedItemChanged(object vm)
        {
            var selectedItem = (vm as RibbonComboBoxViewModel)?.SelectedItem;

            if (selectedItem == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"选择的字体为:{selectedItem}");
        }
        private void OnTextChanged(object vm)
        {
            var value = (vm as RibbonTextBoxViewModel)?.Text;

            if (value == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"文本框的文本为:{value}");
        }
        private void OnValueChanged(object vm)
        {
            var value = (vm as RibbonSlideViewModel)?.Value;

            if (value == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"选取的值为:{value}");
        }
        private void OnGallerySelectedItemChanged(object vm)
        {
            var selectedItem = (vm as RibbonGalleryViewModel)?.SelectedItem;

            if (selectedItem == null)
            {
                return;
            }
            Mg.Get <IMgDialog>().ShowDesktopAlert("提示", $"选中了{selectedItem.Name}");
        }