瀏覽代碼

PRS MOBILE - improvements to Digital Forms Headers

Nick-PRSDigital@bitbucket.org 2 年之前
父節點
當前提交
5a2c68bdcc

+ 2 - 2
prs.mobile/comal.timesheets.Android/Resources/Resource.designer.cs

@@ -41341,10 +41341,10 @@ namespace comal.timesheets.Droid
 			public const int requis = 2131165470;
 			
 			// aapt resource value: 0x7F07011F
-			public const int rightarrow64 = 2131165471;
+			public const int rightarrow = 2131165471;
 			
 			// aapt resource value: 0x7F070120
-			public const int rightarrows = 2131165472;
+			public const int rightarrow64 = 2131165472;
 			
 			// aapt resource value: 0x7F070121
 			public const int roundCornerButton = 2131165473;

二進制
prs.mobile/comal.timesheets.Android/Resources/drawable/rightarrow.png


二進制
prs.mobile/comal.timesheets.Android/Resources/drawable/rightarrows.png


+ 1 - 1
prs.mobile/comal.timesheets.Android/comal.timesheets.Android.csproj

@@ -925,7 +925,7 @@
     <AndroidResource Include="Resources\drawable\setout.png" />
     <AndroidResource Include="Resources\drawable\close.png" />
     <AndroidResource Include="Resources\drawable\downarrow.png" />
-    <AndroidResource Include="Resources\drawable\rightarrows.png" />
+    <AndroidResource Include="Resources\drawable\rightarrow.png" />
     <Content Include="Syncfusion.PdfiumBindings.dll" />
   </ItemGroup>
   <Import Project="..\..\..\InABox\inabox.client.remote.shared\InABox.Client.Remote.Shared.projitems" Label="Shared" Condition="Exists('..\..\..\InABox\inabox.client.remote.shared\InABox.Client.Remote.Shared.projitems')" />

+ 40 - 10
prs.mobile/comal.timesheets/DigitalForms/Renderer/QAFormViewer.cs

@@ -44,6 +44,8 @@ namespace comal.timesheets.QAForms
         public DateTime FormCompleted = DateTime.MinValue;
         public Guid JobID = Guid.Empty;
         DateTime timeStarted = DateTime.MinValue;
+        List<DigitalFormsHeader> headersToCollapse = new List<DigitalFormsHeader>();
+        int collapsedHeaderCount = 1;
         #endregion
 
         #region Constructor
@@ -119,8 +121,8 @@ namespace comal.timesheets.QAForms
         }
         private async void LoadRowsAndColumns()
         {
-            LoadRows(); 
-            LoadColumns(); 
+            LoadRows();
+            LoadColumns();
         }
         private void LoadRows()
         {
@@ -163,9 +165,22 @@ namespace comal.timesheets.QAForms
             {
                 if (!string.IsNullOrEmpty(element.Description))
                 {
-                    LoadViewAccordingToElement(element); 
+                    LoadViewAccordingToElement(element);
                 }
             }
+            Task.Run(() => 
+            {
+                Thread.Sleep(1000);
+                foreach (var header in headersToCollapse)
+                {
+                    Device.BeginInvokeOnMainThread(() => 
+                    {
+                        AdjustHeaderSection(header, false);
+                        header.Collapse();
+                    });                   
+                }
+            });
+           
         }
 
         #endregion
@@ -251,25 +266,36 @@ namespace comal.timesheets.QAForms
         private View LoadHeader(View view, DFLayoutControl element)
         {
             DFLayoutHeader dFLayoutHeader = (DFLayoutHeader)element;
-            DigitalFormsHeader header = new DigitalFormsHeader();
+            DigitalFormsHeader header = new DigitalFormsHeader(dFLayoutHeader.Collapsed);
+            if (dFLayoutHeader.Collapsed)
+                header = AddNumberToHeader(header);
+               
             header.SetHeaderValue(dFLayoutHeader.Header);
 
             header.OnTapped += (bCollapsed) =>
             {
                 AdjustHeaderSection(header, bCollapsed);
             };
+
             view = header;
             return view;
         }
 
+        private DigitalFormsHeader AddNumberToHeader(DigitalFormsHeader header)
+        {
+            header.Number = collapsedHeaderCount;
+            collapsedHeaderCount++;
+            return header;
+        }
+
         private void AdjustHeaderSection(DigitalFormsHeader header, bool collapsed)
         {
             var thisHeaderRow = GetRow(header);
             var headerRows = GetOtherHeaders(thisHeaderRow);
-            if (headerRows.Any())            
-                AdjustHeightsToNextHeader(headerRows, thisHeaderRow, collapsed);          
-            else           
-                AdjustHeightsBelowHeader(headerRows, thisHeaderRow, collapsed);           
+            if (headerRows.Any())
+                AdjustHeightsToNextHeader(headerRows, thisHeaderRow, collapsed);
+            else
+                AdjustHeightsBelowHeader(headerRows, thisHeaderRow, collapsed);
         }
 
         private List<int> GetOtherHeaders(int thisHeaderRow)
@@ -315,7 +341,7 @@ namespace comal.timesheets.QAForms
             {
                 rowdef.Height = 60;
                 AnimateChildren(i, 0, 250);
-            }                
+            }
             else
             {
                 AnimateChildren(i, -60, 500);
@@ -333,7 +359,7 @@ namespace comal.timesheets.QAForms
                 }
             }
         }
-       
+
         private Tuple<View, Boolean> LoadCustomBoolean(View view, DFLayoutControl element, String value)
         {
             rbGroup++;
@@ -1225,6 +1251,10 @@ namespace comal.timesheets.QAForms
             }
 
             Device.BeginInvokeOnMainThread(() => { Children.Add(view); });
+
+            if (element is DFLayoutHeader)
+                if ((element as DFLayoutHeader).Collapsed)
+                    headersToCollapse.Add(view as DigitalFormsHeader);
         }
         #endregion
 

+ 2 - 2
prs.mobile/comal.timesheets/DigitalFormsHeader.xaml

@@ -18,14 +18,14 @@
                     </Image.GestureRecognizers>
                 </Image>
 
-                <Image Grid.Column="1" Source="rightarrows.png" HeightRequest="40" WidthRequest="40" Margin="5"
+                <Image Grid.Column="1" Source="rightarrow.png" HeightRequest="40" WidthRequest="40" Margin="5"
                        IsVisible="false" x:Name="expandImage" VerticalOptions="Center">
                     <Image.GestureRecognizers>
                         <TapGestureRecognizer Tapped="HeaderBtn_Tapped"/>
                     </Image.GestureRecognizers>
                 </Image>
 
-                <Button Grid.Column="2" HorizontalOptions="StartAndExpand" Margin="0" 
+                <Button Grid.Column="2" HorizontalOptions="StartAndExpand" Margin="0, 0, 40, 0" TextColor="Black"
                         BackgroundColor="DarkGray" FontAttributes="Bold" VerticalOptions="Center"
                     x:Name="headerBtn" Clicked="HeaderBtn_Tapped"/>
             </Grid>

+ 38 - 23
prs.mobile/comal.timesheets/DigitalFormsHeader.xaml.cs

@@ -16,43 +16,58 @@ namespace comal.timesheets
 	{
 		public event DigitalFormsHeaderTapped OnTapped;
 		public bool bCollapsed { get; set; }
-		public DigitalFormsHeader ()
+		public int Number { get; set; }
+		public DigitalFormsHeader (bool collapsed = false)
 		{
 			InitializeComponent ();
-			bCollapsed = false;
+            bCollapsed = collapsed;
+			Number = 0;
 		}
 
 		public void SetHeaderValue(string value)
 		{ 
 			headerBtn.Text = value;
-		}
+		}       
+
+        private void HeaderBtn_Tapped(object sender, EventArgs e)
+        {
+            OnTapped?.Invoke(bCollapsed);
+            AdjustHeaderArrow();
+        }
 
-		private void HeaderBtn_Tapped(object sender, EventArgs e)
+        private void AdjustHeaderArrow()
 		{
-			OnTapped?.Invoke(bCollapsed);
-			if (bCollapsed)
-			{
-				bCollapsed = false;
+            if (bCollapsed)
+            {
+                bCollapsed = false;
+                Expand();
+            }
+            else
+            {
+                bCollapsed = true;
+                Collapse();
+            }
+        }
 
-				collapseColumn.Width = 40;
-				collapseImage.IsVisible = true;
+        private void Expand()
+        {           
+            collapseColumn.Width = 40;
+            collapseImage.IsVisible = true;
 
-                expandColumn.Width = 0;
-                expandImage.IsVisible = false;
-            }
+            expandColumn.Width = 0;
+            expandImage.IsVisible = false;
+        }
 
-			else
-			{
-                bCollapsed = true;
+        public void Collapse()
+        {
+            collapseColumn.Width = 0;
+            collapseImage.IsVisible = false;
+
+            expandColumn.Width = 40;
+            expandImage.IsVisible = true;
+        }
 
-				collapseColumn.Width = 0;
-				collapseImage.IsVisible = false;
 
-				expandColumn.Width = 40;
-				expandImage.IsVisible = true;
-            }
-				
-		}
 
     }
 }