Procházet zdrojové kódy

Adding Custom nodes to CoreTreeNodes

frankvandenbos před 6 měsíci
rodič
revize
ead2fcd83d

+ 20 - 0
prs.mobile.new/PRS.Mobile/Data Models/GuidCoreTreeNode.cs

@@ -0,0 +1,20 @@
+using System;
+using InABox.Core;
+
+namespace PRS.Mobile
+{
+    public class GuidCoreTreeNode : CoreTreeNode<Guid>
+    {
+        public GuidCoreTreeNode(CoreTreeNodes<Guid> owner, CoreRow row) : base(owner, row)
+        {
+            
+        }
+    }
+
+    public class GuidCoreTreeNodes : CoreTreeNodes<GuidCoreTreeNode, Guid>
+    {
+        public GuidCoreTreeNodes(Guid defaultKey) : base(defaultKey)
+        {
+        }
+    }
+}

+ 1 - 1
prs.mobile.new/PRS.Mobile/Data Models/Lists/DigitalFormInstance/DigitalFormInstanceShell.cs

@@ -8,7 +8,7 @@ namespace PRS.Mobile
     public abstract class DigitalFormInstanceShell<TModel, TParent, TParentLink,TForm> : Shell<TModel, TForm>, IDigitalFormInstanceShell
         where TModel : ICoreRepository
         where TParent : Entity
-        where TParentLink :IEntityLink<TParent>, new()
+        where TParentLink : BaseObject, IEntityLink<TParent>, new()
         where TForm : EntityForm<TParent,TParentLink,TForm>, new()
         
     {

+ 2 - 2
prs.mobile.new/PRS.Mobile/Data Models/Lists/JobDocumentFolder/JobDocumentFolderModel.cs

@@ -14,10 +14,10 @@ namespace PRS.Mobile
         protected override void Initialize()
         {
             base.Initialize();
-            DocumentFolders = new CoreTreeNodes();
+            DocumentFolders = new GuidCoreTreeNodes(Guid.Empty);
         }
 
-        public CoreTreeNodes DocumentFolders { get; private set; }
+        public GuidCoreTreeNodes DocumentFolders { get; private set; }
 
         protected override void AfterLoad(MultiQuery query)
         {

+ 2 - 2
prs.mobile.new/PRS.Mobile/Data Models/Lists/MeetingItem/MeetingItemModel.cs

@@ -9,7 +9,7 @@ namespace PRS.Mobile
     public class MeetingItemModel : CoreRepository<MeetingItemModel, MeetingItemShell, MeetingItem>
     {
         
-        public CoreTreeNodes Agenda { get; private set; }
+        public CoreTreeNodes<Guid> Agenda { get; private set; }
 
         public MeetingItemModel(IModelHost host, Func<Filter<MeetingItem>> filter) : base(host, filter)
         {
@@ -18,7 +18,7 @@ namespace PRS.Mobile
         protected override void Initialize()
         {
             base.Initialize();
-            Agenda = new CoreTreeNodes();
+            Agenda = new CoreTreeNodes<Guid>(Guid.Empty);
         }
 
 

+ 1 - 1
prs.mobile.new/PRS.Mobile/Modules/Meetings/Edit/Views/MeetingEditItemsView.xaml

@@ -30,7 +30,7 @@
                     
                     <DataTemplate>
                         
-                        <Grid x:DataType="core:CoreTreeNode" RowSpacing="0" ColumnSpacing="5">
+                        <Grid x:DataType="local:GuidCoreTreeNode" RowSpacing="0" ColumnSpacing="5">
                             <Grid.RowDefinitions>
                                 <RowDefinition Height="Auto"/>
                             </Grid.RowDefinitions>

+ 4 - 3
prs.mobile.new/PRS.Mobile/Modules/Meetings/Edit/Views/MeetingEditItemsView.xaml.cs

@@ -12,14 +12,15 @@ using Xamarin.Forms.Xaml;
 
 namespace PRS.Mobile
 {
-    public class BookmarkConverter : AbstractConverter<CoreTreeNode, ImageSource>
+    
+    public class BookmarkConverter : AbstractConverter<GuidCoreTreeNode, ImageSource>
     {
         public MeetingItemModel Model { get; set; }
         
         private static readonly ImageSource _hasminutes = ImageSource.FromFile("bookmark_green");
         private static readonly ImageSource _nominutes = ImageSource.FromFile("bookmark_gray");
         
-        protected override ImageSource Convert(CoreTreeNode value, object? parameter = null)
+        protected override ImageSource Convert(GuidCoreTreeNode? value, object? parameter = null)
         {
            var item = Model?.Items.FirstOrDefault(x => x.ID == value?.ID);
            return (String.IsNullOrWhiteSpace(item?.Minutes))
@@ -45,7 +46,7 @@ namespace PRS.Mobile
         private void AgendaItem_Tapped(object sender, ItemSelectionChangedEventArgs e)
         {
 
-            if (e.AddedItems.FirstOrDefault() is CoreTreeNode node)
+            if (e.AddedItems.FirstOrDefault() is GuidCoreTreeNode node)
             {
 
                 var itemview = new MeetingEditItemView()

+ 2 - 1
prs.mobile.new/PRS.Mobile/Modules/Site/SiteDocuments/SiteDocumentsFilter.xaml

@@ -7,6 +7,7 @@
     xmlns:ui="clr-namespace:XF.Material.Forms.UI;assembly=XF.Material"
     xmlns:mobile="clr-namespace:InABox.Mobile;assembly=InABox.Mobile.Shared"
     xmlns:core="clr-namespace:InABox.Core;assembly=InABox.Core"
+    xmlns:local="clr-namespace:PRS.Mobile;assembly=PRS.Mobile"
     x:Class="PRS.Mobile.SiteDocumentsFilter">
 
     <mobile:MobilePage.PageContent>
@@ -60,7 +61,7 @@
                         
                         <DataTemplate>
                             
-                            <Grid x:DataType="core:CoreTreeNode" RowSpacing="0" ColumnSpacing="0">
+                            <Grid x:DataType="local:GuidCoreTreeNode" RowSpacing="0" ColumnSpacing="0">
                                 <Grid.RowDefinitions>
                                     <RowDefinition Height="*"/>
                                 </Grid.RowDefinitions>

+ 1 - 1
prs.mobile.new/PRS.Mobile/Modules/Site/SiteDocuments/SiteDocumentsFilter.xaml.cs

@@ -267,7 +267,7 @@ namespace PRS.Mobile
         
         private void Folder_Tapped(object sender, ItemSelectionChangedEventArgs e)
         {
-            if (e.AddedItems.FirstOrDefault() is CoreTreeNode node)
+            if (e.AddedItems.FirstOrDefault() is CoreTreeNode<Guid> node)
             {
                 _settings.FolderID = node.ID;
                 Changed?.Invoke(this, EventArgs.Empty);