public RestorePage() : base("RestorePage") { EnableStatus(); AddTitleRow("Title"); AddHeaderRow("Account"); _accountId = AddEntryRow(null, "AccountId"); _accountId.SetDetailViewIcon(Icons.Coins); AddSeparatorRow(); _name = AddEntryRow("", "RegisterPage.Name"); _name.SetDetailViewIcon(Icons.Pencil); _password1 = AddPasswordRow("", "RegisterPage.Password1"); var password2 = AddPasswordRow("", "RegisterPage.Password2"); Status.AddBusyView(_accountId); Status.Add(_accountId.Edit, T("AccountStatus"), StatusValidators.PositiveNumberValidator); Status.Add(_password1.Edit, T("RegisterPage.PasswordStatus", WalletApp.MinPasswordLength), (sv, entry, newText, oldText) => { var pw1 = _password1.Edit.Text; var pw2 = password2.Edit.Text; return(WalletApp.IsValidPassword(pw1) && WalletApp.IsValidPassword(pw2) && pw1 == pw2); }). AddBusyView(password2); AddFooterRow(); AddHeaderRow("AuthorizeAccountPage.SignatureKey"); _passphrase = AddEntryRow(null, "AuthorizeAccountPage.Passphrase", ServiceNodeManager.MinimumServiceAccountPassphraseLength); var button = AddButtonRow("AuthorizeAccountPage.NewPassphrase", Generate); Status.AddBusyView(button); _key = AddEditorRow(null, "AuthorizeAccountPage.SignatureKey"); _key.SetDetailViewIcon(Icons.Key); Status.Add(_key.Edit, T("RestoreAccountPage.KeyStatus"), (sv, edit, newText, oldText) => { return(StatusValidators.HexValidator(64, sv, edit, newText, oldText)); }); AddFooterRow(); password2.Edit.TextChanged += (sender, e) => { Status.ReValidate(); }; AddSubmitRow("Restore", Restore); }
public AddTodoTaskPage(TodoList todoList) : base("AddTodoTaskPage") { Subscribe <NewTodoTaskEvent>(TodoTask); AddTitleRow("Title"); AddHeaderRow("TodoList"); var selectionList = new SelectionItemList <TodoList>(); foreach (var serviceNode in ServiceNodeManager.Current.ServiceNodes) { var todo = TodoApp.Current.GetTodo(serviceNode); if (todo != null) { foreach (var list in todo.TodoLists) { selectionList.Add(new SelectionItem <TodoList>(list, TodoApp.GetTodoListName(list))); } } } _listSelection = AddSelectionRows(selectionList, todoList); _listSelection.SelectionChanged = SelectionChanged; Status.Add(T("ListStatus"), (sv) => { return(_listSelection.Selection != null); }); AddFooterRow(); _editor = AddEditorRow("", "Text"); _editor.SetDetailViewIcon(Icons.Pencil); FocusElement = _editor.Edit; Status.Add(_editor.Edit, T("TextStatus"), (sv, edit, newText, oldText) => { return(!string.IsNullOrWhiteSpace(newText) && newText.Length >= 2); }); AddSubmitRow("Submit", Submit); AddHeaderRow("Common.SubmitAccount"); _submitAccount = AddRow(new SubmitAccountButtonRow <TodoListSubmitAccount>(null, this, SelectSubmitAccount)); AddInfoRow("Common.SubmitAccountInfo"); AddFooterRow(); SelectionChanged(todoList); Status.Add(T("SubmitAccountStatus"), (sv) => { return(_submitAccount.SubmitAccount != null); }); }
public AuthorizeDerivedKeyPage(int chainId, string derivedPassword) : base(chainId, "JoinChainPage") { _derivedPassword = derivedPassword; SetupPage(); AddSubmitSection(); AddHeaderRow("PrivatePublicKey"); _keyView = new KeyView(null, true); AddViewRow(_keyView); _export = AddEditorRow(null, "DerivedKeyInfo"); _export.SetDetailViewIcon(Icons.Info); AddInfoRow("DerivedInfo"); AddFooterRow(); }
public SignTextPage() : base("SignTextPage") { AddTitleRow("Title"); AddHeaderRow("Sign"); _text = AddEntryRow("", "TextToSign"); _text.SetDetailViewIcon(Icons.Pencil); _signedText = AddEditorRow("", null); _signedText.SetDetailViewIcon(Icons.Signature); var submit = AddSubmitRow("SignButton", Submit); submit.IsEnabled = false; _text.Edit.TextChanged += (sender, e) => { submit.IsEnabled = !string.IsNullOrWhiteSpace(e.NewTextValue); }; AddFooterRow(); }
public ChainKeyPage(ChainPage chainPage, List <ChainKeyItem> chainKeys) : base("ChainKeyPage") { _chainPage = chainPage; AddTitleRow("Title"); AddHeaderRow("Key"); _name = AddEntryRow(null, "Name"); _name.SetDetailViewIcon(Icons.Pencil); _key = AddEditorRow(null, "Key"); _key.SetDetailViewIcon(Icons.Key); AddButtonRow("KeyButton", NewKey); _keyIndex = AddEntryRow(string.Empty, "KeyIndex"); _keyIndex.SetDetailViewIcon(Icons.Highlighter); AddFooterRow(); AddHeaderRow("KeyOptions"); _admin = AddSwitchRow("Admin"); _serviceKey = AddSwitchRow("ServiceKey"); _serviceVote = AddSwitchRow("ServiceVote"); _dataKey = AddSwitchRow("DataKey"); _dataVote = AddSwitchRow("DataVote"); _chainIndex = AddEntryRow(string.Empty, "ChainIndex"); _admin.Switch.Toggled = (swt) => { if (swt.IsToggled) { _serviceKey.Switch.IsToggled = false; _serviceVote.Switch.IsToggled = false; _dataKey.Switch.IsToggled = false; _dataVote.Switch.IsToggled = false; _chainIndex.Edit.Text = null; } Status.ReValidate(); }; _serviceKey.Switch.Toggled = (swt) => { if (swt.IsToggled) { _admin.Switch.IsToggled = false; _dataKey.Switch.IsToggled = false; _dataVote.Switch.IsToggled = false; _chainIndex.Edit.Text = null; } else { _serviceVote.Switch.IsToggled = false; } Status.ReValidate(); }; _serviceVote.Switch.Toggled = (swt) => { if (swt.IsToggled) { _serviceKey.Switch.IsToggled = true; } }; _dataKey.Switch.Toggled = (swt) => { if (swt.IsToggled) { _admin.Switch.IsToggled = false; _serviceKey.Switch.IsToggled = false; _serviceVote.Switch.IsToggled = false; } else { _dataVote.Switch.IsToggled = false; } Status.ReValidate(); }; _dataVote.Switch.Toggled = (swt) => { if (swt.IsToggled) { _dataKey.Switch.IsToggled = true; } }; AddFooterRow(); AddHeaderRow("Password"); _pw1 = AddEntryRow(string.Empty, "Password"); _pw1.SetDetailViewIcon(Icons.Unlock); _pw2 = AddEntryRow(string.Empty, "Password2"); _pw2.SetDetailViewIcon(Icons.Unlock); _pw1.Edit.IsPassword = _pw2.Edit.IsPassword = true; AddFooterRow(); Status.Add(_key.Edit, T("KeyStatus"), (view, entry, newText, oldtext) => { try { var key = Key.Restore(entry.Text); return(key.KeyType == Protocol.TransactionKeyType); } catch { } return(false); }). Add(_keyIndex.Edit, T("KeyIndexStatus", short.MinValue, short.MaxValue), (view, entry, newText, oldText) => { if (short.TryParse(newText, out var idx)) { foreach (var key in chainKeys) { if (key.Item.KeyIndex == idx) { return(false); } } return(true); } if (!newText.IsNullOrEmpty()) { entry.Text = oldText; } return(false); }). Add(_chainIndex.Edit, T("ChainIndexStatus"), (view, entry, newText, oldText) => { if (_dataKey.Switch.IsToggled) { return(StatusValidators.PositiveNumberValidatorWithZero(view, entry, newText, oldText)); } if (!string.IsNullOrEmpty(newText)) { entry.Text = null; } return(true); }). Add(_name.Edit, T("NameStatus"), (view, entry, newText, oldtext) => { return(!newText.IsNullOrWhiteSpace()); }). Add(_pw1.Edit, T("PasswordStatus", WalletApp.MinPasswordLength), (view, entry, newText, oldtext) => { var pw1 = _pw1.Edit.Text; var pw2 = _pw2.Edit.Text; return(WalletApp.IsValidPassword(pw1) && WalletApp.IsValidPassword(pw2) && pw1 == pw2); }); _pw2.Edit.TextChanged += (sender, e) => { Status.ReValidate(); }; AddSubmitRow("Submit", Submit); }
public TodoTaskPage(TodoList todoList, TodoTask task) : base("TodoTaskPage") { Subscribe <NewTodoTaskEvent>(TodoItem); Subscribe <TodoTaskStatusEvent>(TodoItemStatus); _todoList = todoList; _task = task; AddTitleRow("Title"); AddHeaderRow("StatusHeader"); var statusItems = new SelectionItemList <TodoTaskStatusTypes> { new SelectionItem <TodoTaskStatusTypes>(TodoTaskStatusTypes.Open, Tr.Get("ItemStatusTypes.Open")), new SelectionItem <TodoTaskStatusTypes>(TodoTaskStatusTypes.Closed, Tr.Get("ItemStatusTypes.Closed")) }; _status = AddSelectionRows(statusItems, task.Status); _status.SelectionChanged = StatusChanged; _statusButton = AddSubmitButtonRow("SubmitStatus", StatusButton); _statusButton.RowStyle = Theme.SubmitButton; _statusButton.IsEnabled = false; _status.Buttons[0].SetDetailViewIcon(Icons.Circle); _status.Buttons[1].SetDetailViewIcon(Icons.CircleCheck); foreach (var b in _status.Buttons) { Status.AddBusyView(b); } Status.AddBusyView(_statusButton); AddFooterRow(); if (task.Status == TodoTaskStatusTypes.Open) { AddHeaderRow("ItemHeader"); _text = AddEditorRow(task.Text, "Text"); _text.SetDetailViewIcon(Icons.Pencil); _text.Edit.TextChanged += Edit_TextChanged; _textButton = AddSubmitButtonRow("SubmitText", Submit); _textButton.RowStyle = Theme.SubmitButton; _textButton.IsEnabled = false; Status.AddBusyView(_text.Edit); Status.AddBusyView(_textButton); AddFooterRow(); } _history = AddHeaderRow("HistoryHeader"); AddFooterRow(); _transactionInfo = AddHeaderRow("TransactionInfo"); AddFooterRow(); AddHeaderRow("Common.SubmitAccount"); _submitAccount = AddRow(new SubmitAccountButtonRow <GroupSubmitAccount>(this, () => todoList.ServiceNode.GetSubmitAccounts <GroupSubmitAccount>(todoList.Index), todoList.ListId.ToString())); AddInfoRow("Common.SubmitAccountInfo"); AddFooterRow(); AddHeaderRow("DeleteHeader"); var delete = AddButtonRow("SubmitDelete", Delete); delete.RowStyle = Theme.CancelButton; delete.SetDetailViewIcon(Icons.TrashAlt); Status.AddBusyView(delete); AddFooterRow(); _ = BuildHistory(); }
public RegisterPage() : base("RegisterPage") { EnableStatus(); Subscribe <CoreAccountRegisterEvent>(AccountRegistered); AddTitleRow("Title"); AddHeaderRow("NewAccount"); _name = AddEntryRow("", "Name"); _name.SetDetailViewIcon(Icons.Pencil); _password1 = AddPasswordRow("", "Password1"); var password2 = AddPasswordRow("", "Password2"); Status.Add(_password1.Edit, T("PasswordStatus", WalletApp.MinPasswordLength), (sv, entry, newText, oldText) => { var pw1 = _password1.Edit.Text; var pw2 = password2.Edit.Text; return(WalletApp.IsValidPassword(pw1) && WalletApp.IsValidPassword(pw2) && pw1 == pw2); }). AddBusyView(password2); AddFooterRow(); AddHeaderRow(); AddLinkRow("Common.DataLicence", Tr.Get("Link.DataLicence")); var _agree = AddSwitchRow("Agree", Tr.Get("Common.DataLicence")); AddFooterRow(); Status. Add(_agree.Switch, T("AgreeStatus", Tr.Get("Common.DataLicence")), StatusValidators.IsToggled); password2.Edit.TextChanged += (sender, e) => { Status.ReValidate(); }; AddSubmitRow("Register", Register); AddHeaderRow("SignatureKeyInfo"); _selectionRow = AddSelectionRows(new SelectionItemList <AuthorizeType> { new SelectionItem <AuthorizeType>(AuthorizeType.Random, Tr.Get("AuthorizeType.Random")), new SelectionItem <AuthorizeType>(AuthorizeType.Passphrase, Tr.Get("AuthorizeType.Passphrase")) }, AuthorizeType.Random); _selectionRow.SelectionChanged = SecretTypeChanged; AddSeparatorRow(); _keyRow = AddEditorRow("", "SignatureKey"); _keyRow.SetDetailViewIcon(Icons.Key); Status.Add(_keyRow.Edit, T("AuthorizeAccountPage.KeyStatus"), (sv, edit, newText, oldText) => { return(StatusValidators.HexValidator(64, sv, edit, newText, oldText)); }); AddInfoRow("AuthorizeAccountPage.SignatureKeyInfo"); AddFooterRow(); AddHeaderRow(); AddLinkRow("Common.TermsOfUse", Tr.Get("Link.TermsOfUse")); AddLinkRow("Common.Privacy", Tr.Get("Link.Privacy")); AddFooterRow(); IsBusy = true; Update(); }