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(); }
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(); }
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()); }
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(); }
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(); }