Support new features of Tizen.CircularUI (#188)
[platform/core/csapi/xsf.git] / src / XSF / Tizen.Wearable.CircularUI.Forms.Renderer / Shell / ShellRendererFactory.cs
1 using Xamarin.Forms;
2
3 namespace Tizen.Wearable.CircularUI.Forms.Renderer
4 {
5     public class ShellRendererFactory
6     {
7         static ShellRendererFactory _instance;
8         public static ShellRendererFactory Default
9         {
10             get
11             {
12                 if (_instance == null)
13                 {
14                     _instance = new ShellRendererFactory();
15                 }
16                 return _instance;
17             }
18             set
19             {
20                 _instance = value;
21             }
22
23         }
24
25         public virtual IShellItemRenderer CreateItemRenderer(ShellItem item)
26         {
27             if (item.Items.Count == 1)
28             {
29                 return CreateShellNavigationRenderer(item.CurrentItem);
30             }
31             return new ShellItemRenderer(item);
32         }
33
34         public virtual IShellItemRenderer CreateShellNavigationRenderer(ShellSection item)
35         {
36             return new ShellSectionNavigationRenderer(item);
37         }
38
39         public virtual IShellItemRenderer CreateItemRenderer(ShellSection item)
40         {
41             if (item.Items.Count == 1)
42             {
43                 return CreateItemRenderer(item.CurrentItem);
44             }
45             return new ShellSectionItemsRenderer(item);
46         }
47
48         public virtual IShellItemRenderer CreateItemRenderer(ShellContent item)
49         {
50             return new ShellContentRenderer(item);
51         }
52     }
53 }