public EditGateUser(GerenciarPortoesViewModel viewModel, GateDevices gateKey) { _viewModel = viewModel; Grid grid = new Grid(); this.gateKey = gateKey; string name = gateKey.SKeyName; if (name.Length <= 4) name = gateKey.SkeyBleId; Title = "Editar " + name; removerUserGate.AnimateWithAction(); removerUserGate.Clicked += removerUserGate_Clicked; grid.Children.AddVertical(listProfileDisponiveis); grid.Children.Add(removerUserGate); listProfileDisponiveis.ItemTapped += listProfileDisponiveis_ItemTapped; var absoluteLayout = new AbsoluteLayout(); var background = new Image { Style = Styles.BackgroundImage }; absoluteLayout.Children.Add(background, new Rectangle(0, 0, 1, 1), AbsoluteLayoutFlags.All); absoluteLayout.Children.Add(grid, new Rectangle(0, 0, 1, 1), AbsoluteLayoutFlags.All); Content = absoluteLayout; }
public MyGateConfigView (GerenciarPortoesViewModel viewModel) { BindingContext = viewModel; gerenciarPortoes = viewModel; //Title = viewModel.SelectedGate.Name; Children.Add (new Detalhes (viewModel) { Title = "Detalhes", Icon = Images.TabbedDetails }); Children.Add (new gateDevices (viewModel) { Title = "Usuarios", Icon = Images.ProfileWB }); Children.Add (new SpecifcHoliday (viewModel) { Title = "Feriados", Icon = Images.TabbedHoliday }); }
public Detalhes (GerenciarPortoesViewModel gerenciarPortoes) { //NavigationPage.SetHasNavigationBar(this, false); BindingContext = gerenciarPortoes; this.gerenciarPortoes = gerenciarPortoes; Title = gerenciarPortoes.SelectedGate.Name; entryName.SetBinding (Entry.TextProperty, "SelectedGate.Name", BindingMode.TwoWay); entryDetail.SetBinding (Entry.TextProperty, "SelectedGate.Description", BindingMode.TwoWay); labelGateBleId.SetBinding (Label.TextProperty, "SelectedGate.BleId", BindingMode.TwoWay); if (gerenciarPortoes.SelectedGate.IsOwned) labelDetail.IsVisible = false; //TODO a intencao seria apenas tornar nao editavel!!!!! ToolbarItems.Add (toolbarSettings); toolbarSettings.SetBinding (MenuItem.CommandProperty, "GateOptionsCommand"); entryName.TextChanged += entryName_TextChanged; entryDetail.TextChanged += entryDetail_TextChanged; StackLayout stack = new StackLayout { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, Padding = new Thickness (0, 0, 0, 0), Spacing = 5, Children = { buttonActiveGate, labelName, entryName, new StackLayout { Padding = new Thickness (0, 5, 0, 0), Spacing = 5, Children = { labelDetail, entryDetail, } }, labelGateBleId, } }; var absoluteLayout = new AbsoluteLayout (); var background = new Image { Style = Styles.BackgroundImage }; var scroll = new ScrollView { Content = stack }; absoluteLayout.Children.Add (background, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All); absoluteLayout.Children.Add (scroll, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All); Content = absoluteLayout; buttonActiveGate.Clicked += ButtonActiveGate_Clicked; }
public SpecifcHoliday (GerenciarPortoesViewModel viewModel) { BindingContext = viewModel; gerenciarPortoes = viewModel; this.SetBinding (TitleProperty, "SelectedGate.Name"); listViewGateHoliday.ItemTemplate = new DataTemplate (typeof(TwoColumnsGridCell)); listViewGateHoliday.ItemTapped += listViewGateHoliday_ItemTapped; FloatButton.AnimateWithAction (); FloatButton.Command = new Command (ToolbarAction); //ToolbarItems.Add(new ToolbarItem //{ // Icon = Images.Add1, // Order = ToolbarItemOrder.Primary, // Command = new Command(ToolbarAction) //}); iconStack = new StackLayout { VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.CenterAndExpand, Children = { iconMsg, message } }; stack = new StackLayout { Padding = new Thickness (0, 20, 0, 0), Spacing = 10, Orientation = StackOrientation.Vertical, BackgroundColor = Color.FromHex ("#ECEFF1"), Children = { iconStack, listViewGateHoliday } }; var absoluteLayout = new AbsoluteLayout { VerticalOptions = LayoutOptions.FillAndExpand, }; var background = new Image { /*Source = Images.Background,*/ Aspect = Aspect.Fill }; //absoluteLayout.Children.Add (background, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutFlags (background, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds (background, new Rectangle (0, 0, 1, 1)); //absoluteLayout.Children.Add (stack, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1)); AbsoluteLayout.SetLayoutFlags (FloatButton, AbsoluteLayoutFlags.PositionProportional); AbsoluteLayout.SetLayoutBounds (FloatButton, new Rectangle (0.99f, 0.98f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize)); absoluteLayout.Children.Add (background); absoluteLayout.Children.Add (stack); absoluteLayout.Children.Add (FloatButton); Content = absoluteLayout; }
public gateDevices (GerenciarPortoesViewModel viewModel) { BindingContext = viewModel; gerenciarPortoes = viewModel; this.SetBinding (TitleProperty, "SelectedGate.Name"); //Title = "Cadastro Usuarios de Portao"; listGateDevices.ItemTemplate = new DataTemplate (typeof(GateDeviceCell)); listGateDevices.SetBinding (ListView.ItemsSourceProperty, "gateUsers"); listGateDevices.ItemTapped += listGateDevices_ItemTapped; ToolbarItems.Add (new ToolbarItem { Icon = Images.SafetyKeyIcon, Order = ToolbarItemOrder.Primary, Command = new Command (ScanAction) }); ToolbarItems.Add (new ToolbarItem { Icon = Images.tabbedRemote, Order = ToolbarItemOrder.Primary, Command = new Command (async () => { await gerenciarPortoes.newCellPhoneUser (); OnAppearing (); }) }); iconStack = new StackLayout { VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.CenterAndExpand, Children = { iconMsg, labelMsg } }; stack = new StackLayout { Padding = new Thickness (0, 20, 0, 0), Spacing = 10, Orientation = StackOrientation.Vertical, BackgroundColor = Color.FromHex ("#ECEFF1"), Children = { iconStack, listGateDevices } }; var absoluteLayout = new AbsoluteLayout { VerticalOptions = LayoutOptions.FillAndExpand, }; var background = new Image { /*Source = Images.Background,*/ Aspect = Aspect.Fill }; //absoluteLayout.Children.Add (background, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutFlags (background, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds (background, new Rectangle (0, 0, 1, 1)); //absoluteLayout.Children.Add (stack, new Rectangle (0, 0, 1, 1), AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1)); absoluteLayout.Children.Add (background); absoluteLayout.Children.Add (stack); Content = absoluteLayout; }
public GerenciarPortoesView (GerenciarPortoesViewModel viewModel) { gerenciarPortoes = viewModel; Title = "Portões"; devices = new ObservableCollection<string> (); BindingContext = viewModel; listGates.SetBinding (ListView.SelectedItemProperty, "SelectedGate", BindingMode.TwoWay); listGates.ItemsSource = ((GerenciarPortoesViewModel)BindingContext).Gates; listGates.ItemTemplate = new DataTemplate (typeof(GatesCell)); listGates.RowHeight = 60; stack = new StackLayout { Padding = new Thickness (0, 20, 0, 0), Spacing = 30, Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, BackgroundColor = Color.FromHex ("#ECEFF1"), Children = { listGates } }; iconStack = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, Children = { iconMsg, labelMsg } }; absoluteLayout = new AbsoluteLayout { VerticalOptions = LayoutOptions.FillAndExpand, }; AbsoluteLayout.SetLayoutFlags (stack, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds (stack, new Rectangle (0, 0, 1, 1)); AbsoluteLayout.SetLayoutFlags (iconStack, AbsoluteLayoutFlags.All); AbsoluteLayout.SetLayoutBounds (iconStack, new Rectangle (0, 0, 1, 1)); Content = absoluteLayout; //garante syncronizar com server this.Disappearing += async (sender, args) => { //Sincroniza dados alterados como o server if (App.tableHorarios.pendingSync) await App.tableHorarios.SyncAsync ("Hr", App.tableHorarios.table.Where (reg => reg.UserId == Settings.user_Id)); if (App.tablePerfis.pendingSync) await App.tablePerfis.SyncAsync ("Pe", App.tablePerfis.table.Where (reg => reg.UserId == Settings.user_Id)); if (App.tableFeriados.pendingSync) await App.tableFeriados.SyncAsync ("Ho", App.tableFeriados.table.Where (reg => reg.UserId == Settings.user_Id)); if (gerenciarPortoes.tableDevices.pendingSync && gerenciarPortoes.SelectedGate != null) await gerenciarPortoes.tableDevices.SyncAsync ("GD" + gerenciarPortoes.SelectedGate.Id, gerenciarPortoes.tableDevices.table.Where (gs => gs.GateLicId == gerenciarPortoes.SelectedGate.Id)); ((App)Application.Current).PreparaDll (); //tem que renovar, nao dah para saber se user remoto alterou seu sKey!! }; listGates.ItemTapped += (sender, args) => { if (((Gates)((ListView)sender).SelectedItem).IsOwned == false) { viewModel.Title = ((Gates)((ListView)sender).SelectedItem).Name; viewModel.SelectedGate = ((Gates)((ListView)sender).SelectedItem); this.Navigation.PushAsync (new MyGateConfigView (viewModel)); } else { DisplayAlert ("MySafety", "Você tem acesso a esse portão, mas nao pode gerenciar", "OK"); } }; }