|
@@ -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
|
|
|
|