-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSelectedOptions.cs
109 lines (94 loc) · 2.76 KB
/
SelectedOptions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// Intended to be potentially platform dependent (toolbaritem on Android, menuitem on Windows)
using System.Diagnostics;
namespace DirectSFTP
{
internal class SelectedOptions
{
public Button download,delete,clear,rename,calculateSize;
public bool IsShowing { get; private set; }
private Page page;
private HorizontalStackLayout layout;
private List<View> oldViews;
public SelectedOptions(ContentPage page, HorizontalStackLayout layout, Command onClear)
{
this.page = page;
delete = new()
{
Text = "Delete",
Style = page.Resources["buttonDeleteStyle"] as Style
};
download = new()
{
Text = "Download",
Style = page.Resources["buttonSelectionStyle"] as Style
};
clear = new()
{
Text = "Clear Selection",
Style = page.Resources["buttonSelectionStyle"] as Style,
};
rename = new()
{
Text = "Rename",
Style = page.Resources["buttonSelectionStyle"] as Style,
};
calculateSize = new()
{
Text = "Calculate Size",
Style = page.Resources["buttonSelectionStyle"] as Style,
};
clear.Released += (a, b) => onClear.Execute(null);
IsShowing = false;
this.layout = layout;
oldViews = new();
foreach (View oldView in layout.Children)
{
oldViews.Add(oldView);
}
}
public void ShowItems()
{
layout.Clear();
layout.Add(clear);
layout.Add(download);
layout.Add(rename);
layout.Add(calculateSize);
layout.Add(delete);
IsShowing = true;
}
public void HideItems()
{
layout.Clear();
foreach (View oldView in oldViews)
{
layout.Add(oldView);
}
IsShowing = false;
}
public void SetOnDownload(Command cmd)
{
download.Command = cmd;
}
public void SetOnDelete(Command cmd)
{
delete.Command = cmd;
}
public void SetOnRename(Command cmd)
{
rename.Command = cmd;
}
public void SetOnCalc(Command cmd)
{
calculateSize.Command = cmd;
}
public void OneSelected(bool show)
{
page.Dispatcher.Dispatch(() =>
{
rename.IsVisible = show;
calculateSize.IsVisible = show;
});
}
}
}