Beispiel #1
0
        public PackageView(PackageData packageData)
        {
            new SpaceView(2).AddTo(this);

            new LabelView(packageData.Name).FontBold().Width(150).AddTo(this);

            new LabelView(packageData.version).TextMiddleCenter().Width(80).AddTo(this);

            var installedPackage = InstalledPackageVersions.FindVersionByName(packageData.Name);

            new LabelView(installedPackage != null ? installedPackage.Version : " ").TextMiddleCenter().Width(80)
            .AddTo(this);

            new LabelView(packageData.AccessRight.ToString()).TextMiddleCenter().Width(80).AddTo(this);

            if (!string.IsNullOrEmpty(packageData.DocUrl))
            {
                new ButtonView(LocaleText.Doc, () => { }).AddTo(this);
            }
            else
            {
                new SpaceView(40).AddTo(this);
            }

            // 数据绑定
            var bindingSet = BindKit.CreateBindingSet(this, new PackageViewModel());

            if (installedPackage == null)
            {
                bindingSet.Bind(new ButtonView(LocaleText.Import).Width(90).AddTo(this))
                .For(v => v.OnClick)
                .To(vm => vm.Import)
                .CommandParameter(packageData);
            }
            else if (packageData.VersionNumber > installedPackage.VersionNumber)
            {
                bindingSet.Bind(new ButtonView(LocaleText.Update).Width(90).AddTo(this))
                .For(v => v.OnClick)
                .To(vm => vm.Update)
                .CommandParameter(packageData);
            }
            else if (packageData.VersionNumber == installedPackage.VersionNumber)
            {
                bindingSet.Bind(new ButtonView(LocaleText.Reimport).Width(90).AddTo(this))
                .For(v => v.OnClick)
                .To(vm => vm.Reimport)
                .CommandParameter(packageData);
            }
            else if (packageData.VersionNumber < installedPackage.VersionNumber)
            {
                new SpaceView(94).AddTo(this);
            }

            bindingSet.Bind(new ButtonView(LocaleText.ReleaseNotes).AddTo(this))
            .For(v => v.OnClick)
            .To(vm => vm.OpenReadme)
            .CommandParameter(packageData);

            bindingSet.Build();
        }
Beispiel #2
0
        public PackageRepositoryView(PackageRepository packageRepository)
        {
            new SpaceView(2).AddTo(this);

            new LabelView(packageRepository.name).FontBold().Width(200).AddTo(this);

            new LabelView(packageRepository.latestVersion).TextMiddleCenter().Width(80).AddTo(this);

            var installedPackage = InstalledPackageVersions.FindVersionByName(packageRepository.name);

            new LabelView(installedPackage != null ? installedPackage.Version : " ").TextMiddleCenter().Width(100)
            .AddTo(this);

            new LabelView(packageRepository.accessRight).TextMiddleLeft().Width(50).AddTo(this);

            // 数据绑定
            var bindingSet = BindKit.CreateBindingSet(this, new PackageViewModel());

            if (installedPackage == null)
            {
                bindingSet.Bind(new ButtonView(LocaleText.Import).Width(90).AddTo(this))
                .For(v => v.OnClick)
                .To(vm => vm.Import)
                .CommandParameter(packageRepository);
            }
            else if (packageRepository.VersionNumber > installedPackage.VersionNumber)
            {
                bindingSet.Bind(new ButtonView(LocaleText.Update).Width(90).AddTo(this))
                .For(v => v.OnClick)
                .To(vm => vm.Update)
                .CommandParameter(packageRepository);
            }
            else if (packageRepository.VersionNumber == installedPackage.VersionNumber)
            {
                bindingSet.Bind(new ButtonView(LocaleText.Reimport).Width(90).AddTo(this))
                .For(v => v.OnClick)
                .To(vm => vm.Reimport)
                .CommandParameter(packageRepository);
            }
            else if (packageRepository.VersionNumber < installedPackage.VersionNumber)
            {
                new SpaceView(94).AddTo(this);
            }

            bindingSet.Bind(new ButtonView(LocaleText.ReleaseNotes).Width(100)
                            .AddTo(this))
            .For(v => v.OnClick)
            .To(vm => vm.OpenDetail)
            .CommandParameter(packageRepository);

            new LabelView(packageRepository.author)
            .TextMiddleLeft()
            .FontBold().Width(100)
            .AddTo(this);


            bindingSet.Build();
        }
Beispiel #3
0
        public void Init(IQFrameworkContainer container)
        {
// view
            mRootLayout = new VerticalLayout();
            var treeNode = new TreeNode(true, LocaleText.FrameworkPackages).AddTo(mRootLayout);

            var verticalLayout = new VerticalLayout("box");

            treeNode.Add2Spread(verticalLayout);


            mCategoriesSelectorView = new ToolbarView(0)
                                      .AddTo(verticalLayout);

            mCategoriesSelectorView.Index.Bind(newIndex =>
            {
                TypeEventSystem.Send <IEditorStrangeMVCCommand>(new PackageManagerSelectCategoryCommand()
                {
                    CategoryIndex = newIndex
                });
            });

            new HeaderView()
            .AddTo(verticalLayout);

            var packageList = new VerticalLayout("box")
                              .AddTo(verticalLayout);

            mScrollLayout = new ScrollLayout()
                            .Height(240)
                            .AddTo(packageList);

            TypeEventSystem.Register <PackageManagerViewUpdate>(OnRefresh);

            // 执行
            TypeEventSystem.Send <IEditorStrangeMVCCommand>(new PackageManagerStartUpCommand());

            var bindingSet = BindKit.CreateBindingSet(this, new PackageManagerViewModel());
        }
Beispiel #4
0
        public LoginView()
        {
            var usernameLine = new HorizontalLayout().AddTo(this);

            new LabelView("username:"******"").AddTo(usernameLine);

            var passwordLine = new HorizontalLayout().AddTo(this);

            new LabelView("password:"******"").PasswordMode().AddTo(passwordLine);


            var loginBtn    = new ButtonView("登录").AddTo(this);
            var registerBtn = new ButtonView("注册").AddTo(this);


            var bindingSet = BindKit.CreateBindingSet(this, new LoginViewModel());

            bindingSet.Bind(username.Content)
            .For(v => v.Value, v => v.OnValueChanged)
            .To(vm => vm.Username);

            bindingSet.Bind(password.Content)
            .For(v => v.Value, v => v.OnValueChanged)
            .To(vm => vm.Password);

            bindingSet.Bind(loginBtn)
            .For(v => v.OnClick)
            .To(vm => vm.Login);

            bindingSet.Bind(registerBtn)
            .For(v => v.OnClick)
            .To(vm => vm.Register);

            bindingSet.Build();
        }
        public void Init(IQFrameworkContainer container)
        {
            var expendLayout = new TreeNode(false, LocaleText.UserInfo)
                               .AddTo(this);

            var boxLayout = new VerticalLayout("box");

            expendLayout.Add2Spread(boxLayout);

            var logoutBtn = new ButtonView("注销").AddTo(boxLayout);

            var loginView    = new LoginView().AddTo(boxLayout);
            var registerView = new RegisterView().AddTo(boxLayout);


            var bindingSet = BindKit.CreateBindingSet(this, new PacakgeKitLoginViewModel());

            bindingSet.Bind(logoutBtn).For(v => v.Visible).To(vm => vm.Logined).OneWay();
            bindingSet.Bind(logoutBtn).For(v => v.OnClick).To(vm => vm.Logout);
            bindingSet.Bind(loginView).For(v => v.Visible).To(vm => vm.LoginViewVisible).OneWay();
            bindingSet.Bind(registerView).For(v => v.Visible).To(vm => vm.RegisterViewVisible).OneWay();

            bindingSet.Build();
        }
        protected override void Init()
        {
            RootLayout = new VerticalLayout("box");

            BindKit.Init();

            var editorView    = new VerticalLayout().AddTo(RootLayout);
            var uploadingView = new VerticalLayout().AddTo(RootLayout);

            // var finishView = new VerticalLayout().AddTo(RootLayout);

            ;
            // 当前版本号
            var versionLine = new HorizontalLayout().AddTo(editorView);

            new LabelView("当前版本号").Width(100).AddTo(versionLine);
            new LabelView(mPackageVersion.Version).Width(100).AddTo(versionLine);

            // 发布版本号
            var publishedVertionLine = new HorizontalLayout().AddTo(editorView);

            new LabelView("发布版本号").Width(100).AddTo(publishedVertionLine);

            var version = new TextView().Width(100).AddTo(publishedVertionLine);

            // 类型
            var typeLine = new HorizontalLayout().AddTo(editorView);

            new LabelView("类型").Width(100).AddTo(typeLine);

            var packageType = new EnumPopupView(mPackageVersion.Type).AddTo(typeLine);

            var accessRightLine = new HorizontalLayout().AddTo(editorView);

            new LabelView("权限").Width(100).AddTo(accessRightLine);
            var accessRight = new EnumPopupView(mPackageVersion.AccessRight).AddTo(accessRightLine);



            new LabelView("发布说明:").Width(150).AddTo(editorView);

            var releaseNote = new TextAreaView().Width(250).Height(300).AddTo(editorView);


            var docLine = new HorizontalLayout().AddTo(editorView);

            new LabelView("文档地址:").Width(52).AddTo(docLine);
            var docUrl = new TextView(mPackageVersion.DocUrl).Width(150).AddTo(docLine);



            var pasteBtn = new ButtonView("Paste").AddTo(docLine);


            var bindingSet = BindKit.CreateBindingSet(this, new PackageMakerViewModel(mPackageVersion));

            bindingSet.Bind(editorView).For(v => v.Visible).To(vm => vm.InEditorView);
            bindingSet.Bind(version.Content).For(v => v.Value, v => v.OnValueChanged)
            .To(vm => vm.Version);
            bindingSet.Bind(packageType.ValueProperty).For(v => v.Value, v => v.OnValueChanged)
            .To(vm => vm.Type);


            bindingSet.Bind(accessRight.ValueProperty)
            .For(v => v.Value, v => v.OnValueChanged)
            .To(vm => vm.AccessRight);

            bindingSet.Bind(releaseNote.Content).For(v => v.Value, v => v.OnValueChanged)
            .To(vm => vm.ReleaseNote);
            bindingSet.Bind(docUrl.Content).For(v => v.Value, v => v.OnValueChanged)
            .To(vm => vm.DocUrl);
            bindingSet.Bind(pasteBtn).For(v => v.OnClick).To(vm => vm.Paste);

            if (User.Logined)
            {
                var publishBtn = new ButtonView("发布").AddTo(editorView);



                new ButtonView("发布并删除本地", () => { }).AddTo(editorView);

                bindingSet.Bind(publishBtn).For(v => v.OnClick).To(vm => vm.Publish)
                .CommandParameter(mPackageVersion);
            }


            var notice = new LabelViewWithRect("", 100, 200, 200, 200).AddTo(uploadingView);

            bindingSet.Bind(notice.Content).For(v => v.Value).To(vm => vm.NoticeMessage);

            bindingSet.Bind(uploadingView).For(v => v.Visible).To(vm => vm.InUploadingView);

            bindingSet.Build();
        }
Beispiel #7
0
        public void Init(IQFrameworkContainer container)
        {
            var bindingSet = BindKit.CreateBindingSet(this, new PackageManagerViewModel()
                                                      .InjectSelfWithContainer(mPackageManagerApp.Container)
                                                      .Init());

            mRootLayout = new VerticalLayout();
            var treeNode = new TreeNode(true, LocaleText.FrameworkPackages).AddTo(mRootLayout);

            var verticalLayout = new VerticalLayout("box");

            treeNode.Add2Spread(verticalLayout);


            var searchView = new HorizontalLayout("box")
                             .AddTo(verticalLayout);

            searchView.AddChild(new LabelView("搜索:")
                                .FontBold()
                                .FontSize(12)
                                .Width(40));

            searchView.AddChild(
                new TextView().Height(20)
                .Do(search =>
            {
                bindingSet.Bind(search.Content)
                .For(v => v.OnValueChanged)
                .To(vm => vm.Search)
                .CommandParameter(search.Content);
            })
                );

            mAccessRightView = new ToolbarView()
                               .Menus(new List <string>()
            {
                "all", PackageAccessRight.Public.ToString(), PackageAccessRight.Private.ToString()
            })
                               .AddTo(verticalLayout)
                               .Do(self =>
            {
                bindingSet.Bind(self.Index).For(v => v.Value, v => v.OnValueChanged)
                .To(vm => vm.AccessRightIndex);
            });

            mCategoriesSelectorView = new ToolbarView()
                                      .AddTo(verticalLayout)
                                      .Do(self =>
            {
                bindingSet.Bind(self.Index).For(v => v.Value, v => v.OnValueChanged)
                .To(vm => vm.CategoryIndex);
            });

            new HeaderView()
            .AddTo(verticalLayout);

            var packageList = new VerticalLayout("box")
                              .AddTo(verticalLayout);

            mScrollLayout = new ScrollLayout()
                            .Height(240)
                            .AddTo(packageList);

            // 执行
            TypeEventSystem.Send <IEditorStrangeMVCCommand>(new PackageManagerStartUpCommand());

            bindingSet.Bind().For((v) => v.PackageDatas)
            .To(vm => vm.PackageDatas);

            bindingSet.Bind().For(v => v.Categories)
            .To(vm => vm.Categories);

            bindingSet.Build();
        }