efl

Форк
0
/
Model.cs 
91 строка · 2.5 Кб
1
#define CODE_ANALYSIS
2

3
using System;
4
using System.Threading.Tasks;
5
using System.Diagnostics.CodeAnalysis;
6
using Efl.Ui;
7

8
#if EFL_BETA
9

10
namespace TestSuite {
11

12
[SuppressMessage("Gendarme.Rules.Portability", "DoNotHardcodePathsRule")]
13
public static class TestModel {
14

15
    private class VeggieViewModel
16
    {
17
        public string Name { get; set; }
18
        public string Type { get; set; }
19
        public string Image { get; set; }
20
    }
21

22
    private static Efl.UserModel<VeggieViewModel> CreateModel(Efl.Loop loop)
23
    {
24
        Efl.UserModel<VeggieViewModel> veggies = new Efl.UserModel<VeggieViewModel>(loop);
25
        veggies.Add (new VeggieViewModel{ Name="Tomato", Type="Fruit", Image="tomato.png"});
26
        veggies.Add (new VeggieViewModel{ Name="Romaine Lettuce", Type="Vegetable", Image="lettuce.png"});
27
        veggies.Add (new VeggieViewModel{ Name="Zucchini", Type="Vegetable", Image="zucchini.png"});
28

29
        return veggies;
30
    }
31

32
    public static void reflection_test ()
33
    {
34
        Efl.Loop loop = Efl.App.AppMain;
35

36
        var model = CreateModel(loop);
37
        model.Dispose();
38
    }
39

40
    internal static async Task EasyModelExtractionAsync (Efl.Loop loop)
41
    {
42
        var veggies = CreateModel(loop);
43

44
        var model = new Efl.GenericModel<VeggieViewModel>(veggies, loop);
45
        Test.AssertEquals(3, (int)model.ChildrenCount);
46

47
        VeggieViewModel r2 = await model.GetAtAsync(1).ConfigureAwait(false);
48
        Test.AssertEquals(r2.Name, "Romaine Lettuce");
49

50
        VeggieViewModel r = await model.GetAtAsync(0).ConfigureAwait(false);
51
        Test.AssertEquals(r.Name, "Tomato");
52

53
        loop.End();
54
        model.Dispose();
55
        veggies.Dispose();
56
    }
57

58
    public static void easy_model_extraction ()
59
    {
60
        Efl.Loop loop = Efl.App.AppMain;
61
        Task task = EasyModelExtractionAsync(loop);
62

63
        loop.Begin();
64

65
        task.Wait();
66
    }
67

68
    public static void factory_test ()
69
    {
70
        string propertyBound = null;
71
        bool callbackCalled = false;
72
        var parent = new Efl.Ui.Win(null, "", "");
73
        parent.Visible = false;
74
        var factory = new Efl.Ui.ItemFactory<Efl.Ui.Button>(parent);
75
        factory.PropertyBoundEvent += (object sender, Efl.Ui.PropertyBindPropertyBoundEventArgs args) => {
76
            propertyBound = args.Arg;
77
            callbackCalled = true;
78
        };
79

80
        factory.Style().Bind("first name");
81

82
        Test.Assert(callbackCalled, "Property bound callback must have been called.");
83
        Test.AssertEquals(propertyBound, "style");
84
        factory.Dispose();
85
        parent.Dispose();
86
    }
87
}
88

89
}
90

91
#endif
92

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.