Skip to content

Commit

Permalink
Fix a range of trimming issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Morten Nielsen committed Nov 29, 2023
1 parent 8b36773 commit c55327f
Show file tree
Hide file tree
Showing 11 changed files with 83 additions and 34 deletions.
2 changes: 2 additions & 0 deletions src/Toolkit/Toolkit.Maui/BookmarksView/BookmarksView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
// * limitations under the License.
// ******************************************************************************/
using Esri.ArcGISRuntime.Mapping;
using System.Diagnostics.CodeAnalysis;

namespace Esri.ArcGISRuntime.Toolkit.Maui;

Expand All @@ -29,6 +30,7 @@ public class BookmarksView : TemplatedView
private static readonly DataTemplate DefaultDataTemplate;
private static readonly ControlTemplate DefaultControlTemplate;

[DynamicDependency(nameof(Bookmark.Name), "Esri.ArcGISRuntime.Mapping.Bookmark", "Esri.ArcGISRuntime")]
static BookmarksView()
{
DefaultDataTemplate = new DataTemplate(() =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
// * limitations under the License.
// ******************************************************************************/

using Esri.ArcGISRuntime.Mapping.Floor;
using System.Diagnostics.CodeAnalysis;

namespace Esri.ArcGISRuntime.Toolkit.Maui;

public partial class FloorFilter
Expand All @@ -24,6 +27,11 @@ public partial class FloorFilter
private static readonly DataTemplate DefaultDifferentiatingFacilityDataTemplate;
private static readonly ControlTemplate DefaultControlTemplate;


[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Floor.FloorLevel.ShortName), "Esri.ArcGISRuntime.Mapping.Floor.FloorLevel", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Floor.FloorFacility.Name), "Esri.ArcGISRuntime.Mapping.Floor.FloorFacility", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Floor.FloorFacility.Site), "Esri.ArcGISRuntime.Mapping.Floor.FloorFacility", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Floor.FloorSite.Name), "Esri.ArcGISRuntime.Mapping.Floor.FloorSite", "Esri.ArcGISRuntime")]
static FloorFilter()
{
DefaultLevelDataTemplate = new DataTemplate(() =>
Expand Down Expand Up @@ -113,7 +121,7 @@ static FloorFilter()
};
subtitleLabel.SetAppThemeColor(Label.TextColorProperty, Color.FromArgb("#2e2e2e"), Color.FromArgb("#aaa"));
subtitleLabel.SetBinding(Label.TextProperty, "Site.Name");
textStack.Children.Add(titleLabel);
textStack.Children.Add(subtitleLabel);
Grid.SetRow(titleLabel, 0);
Expand Down
6 changes: 6 additions & 0 deletions src/Toolkit/Toolkit.Maui/Legend/Legend.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// ******************************************************************************/

using Esri.ArcGISRuntime.Mapping;
using System.Diagnostics.CodeAnalysis;

namespace Esri.ArcGISRuntime.Toolkit.Maui;

Expand All @@ -29,6 +30,11 @@ public class Legend : TemplatedView
private static DataTemplate s_DefaultLegendInfoItemTemplate;
private static ControlTemplate s_DefaultControlTemplate;


[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Layer.Name), "Esri.ArcGISRuntime.Mapping.Layer", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.ILayerContent.Name), "Esri.ArcGISRuntime.Mapping.ILayerContent", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.LegendInfo.Name), "Esri.ArcGISRuntime.Mapping.LegendInfo", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.LegendInfo.Symbol), "Esri.ArcGISRuntime.Mapping.LegendInfo", "Esri.ArcGISRuntime")]
static Legend()
{
s_DefaultLayerItemTemplate = new DataTemplate(() =>
Expand Down
52 changes: 35 additions & 17 deletions src/Toolkit/Toolkit.Maui/OverviewMap/OverviewMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@
// * See the License for the specific language governing permissions and
// * limitations under the License.
// ******************************************************************************/


using Esri.ArcGISRuntime.Mapping;
using Esri.ArcGISRuntime.Symbology;
using Microsoft.Maui.Controls.Internals;
using System.Diagnostics.CodeAnalysis;
using Map = Esri.ArcGISRuntime.Mapping.Map;

namespace Esri.ArcGISRuntime.Toolkit.Maui;
Expand All @@ -30,24 +32,40 @@ public class OverviewMap : TemplatedView

private MapView? _overviewMapView;


[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Map.LoadStatus), "Esri.ArcGISRuntime.Mapping.Map", "Esri.ArcGISRuntime")]
static OverviewMap()
{
string template = @"<ControlTemplate xmlns=""http://schemas.microsoft.com/dotnet/2021/maui""
xmlns:x=""http://schemas.microsoft.com/winfx/2009/xaml""
xmlns:esri=""clr-namespace:Esri.ArcGISRuntime.Maui;assembly=Esri.ArcGISRuntime.Maui""
xmlns:internal=""clr-namespace:Esri.ArcGISRuntime.Toolkit.Maui.Internal;assembly=Esri.ArcGISRuntime.Toolkit.Maui"">
<Frame Padding=""1"" HorizontalOptions=""FillAndExpand"" VerticalOptions=""FillAndExpand"" CornerRadius=""0"" HasShadow=""False"" BorderColor=""Black"" BackgroundColor=""White"">
<Grid>
<Grid.Resources>
<internal:LoadStatusToVisibilityConverter x:Key=""LoadStatusToVisibilityConverter"" />
</Grid.Resources>
<ActivityIndicator IsRunning=""{Binding Source={x:Reference PART_MapView}, Path=Map.LoadStatus, Converter={StaticResource LoadStatusToVisibilityConverter}, ConverterParameter='Loading'}"" />
<Label TextColor=""Black"" Text=""Map failed to load. Did you forget an API key?"" IsVisible=""{Binding Source={x:Reference PART_MapView}, Path=Map.LoadStatus, Converter={StaticResource LoadStatusToVisibilityConverter}, ConverterParameter='FailedToLoad'}"" />
<esri:MapView x:Name=""PART_MapView"" IsAttributionTextVisible=""False"" IsVisible=""{Binding Source={x:Reference PART_MapView}, Path=Map.LoadStatus, Converter={StaticResource LoadStatusToVisibilityConverter}, ConverterParameter='Loaded'}"" />
</Grid>
</Frame>
</ControlTemplate>";
DefaultControlTemplate = Microsoft.Maui.Controls.Xaml.Extensions.LoadFromXaml(new ControlTemplate(), template);
DefaultControlTemplate = new ControlTemplate(() =>
{
var converter = new Internal.LoadStatusToVisibilityConverter();
Frame rootFrame = new Frame
{
Padding = new Thickness(1), HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill,
CornerRadius = 0, HasShadow = false, BorderColor = Colors.Black, BackgroundColor = Colors.White
};
Grid root = new Grid();
MapView mapView = new MapView()
{
IsAttributionTextVisible = false
};
ActivityIndicator activity = new ActivityIndicator();
activity.SetBinding(ActivityIndicator.IsRunningProperty, new Binding("Map.LoadStatus", converter: converter, converterParameter: "Loading", source : mapView));
root.Add(activity);
Label label = new Label()
{
TextColor = Colors.Black, Text = "Map failed to load. Did you forget an API key?"
};
label.SetBinding(VisualElement.IsVisibleProperty, new Binding("Map.LoadStatus", converter: converter, converterParameter: "FailedToLoad", source: mapView));
root.Add(label);
mapView.SetBinding(VisualElement.IsVisibleProperty, new Binding("Map.LoadStatus", converter: converter, converterParameter: "Loaded", source: mapView));
root.Add(mapView);
INameScope nameScope = new NameScope();
NameScope.SetNameScope(rootFrame, nameScope);
nameScope.RegisterName("PART_MapView", mapView);
rootFrame.Content = root;
return rootFrame;
});
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// ******************************************************************************/

using Esri.ArcGISRuntime.Toolkit.Maui.Primitives;
using System.Diagnostics.CodeAnalysis;

namespace Esri.ArcGISRuntime.Toolkit.Maui;

Expand Down Expand Up @@ -57,8 +58,13 @@ public partial class UtilityNetworkTraceTool
private Button? PART_ButtonCancelActivity;
#pragma warning restore SA1310, SX1309, SA1306

private static readonly ControlTemplate DefaultControlTemplate;

private static readonly ControlTemplate DefaultControlTemplate;

[DynamicDependency(nameof(Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunctionOutput.Function), "Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunctionOutput", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunctionOutput.Result), "Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunctionOutput", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.UtilityNetworks.UtilityNetworkAttribute.Name), "Esri.ArcGISRuntime.UtilityNetworks.UtilityNetworkAttribute", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunction.FunctionType), "Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunction", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunction.NetworkAttribute), "Esri.ArcGISRuntime.UtilityNetworks.UtilityTraceFunction", "Esri.ArcGISRuntime")]
static UtilityNetworkTraceTool()
{
const string backgroundColor = "{AppThemeBinding Dark=#353535, Light=#F8F8F8}";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
using System.Globalization;
using System.ComponentModel;
using System.Runtime.InteropServices;
using System.Diagnostics.CodeAnalysis;
#if WINDOWS
using WinRT;
#endif
Expand All @@ -44,6 +45,9 @@ static AttachmentsPopupElementView()
DefaultControlTemplate = new ControlTemplate(BuildDefaultTemplate);
}

[DynamicDependency(nameof(AttachmentsPopupElement.Title), "Esri.ArcGISRuntime.Mapping.Popups.AttachmentsPopupElement", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(AttachmentsPopupElement.Description),"Esri.ArcGISRuntime.Mapping.Popups.AttachmentsPopupElement", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(AttachmentsPopupElement.Attachments), "Esri.ArcGISRuntime.Mapping.Popups.AttachmentsPopupElement", "Esri.ArcGISRuntime")]
private static object BuildDefaultTemplate()
{
StackLayout root = new StackLayout();
Expand All @@ -68,6 +72,12 @@ private static object BuildDefaultTemplate()
return root;
}


[DynamicDependency(nameof(AttachmentViewModel.Thumbnail), "Esri.ArcGISRuntime.Toolkit.Maui.Primitives.AttachmentViewModel","Esri.ArcGISRuntime")]
[DynamicDependency(nameof(AttachmentViewModel.Name), "Esri.ArcGISRuntime.Toolkit.Maui.Primitives.AttachmentViewModel", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(AttachmentViewModel.Size), "Esri.ArcGISRuntime.Toolkit.Maui.Primitives.AttachmentViewModel", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(AttachmentViewModel.IsDownloadButtonVisible), "Esri.ArcGISRuntime.Toolkit.Maui.Primitives.AttachmentViewModel", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(AttachmentViewModel.IsDownloading), "Esri.ArcGISRuntime.Toolkit.Maui.Primitives.AttachmentViewModel", "Esri.ArcGISRuntime")]
private static object BuildDefaultItemTemplate()
{
Grid layout = new Grid();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,6 @@ public AttachmentsPopupElementView()
{
#if MAUI
ControlTemplate = DefaultControlTemplate;
// Ensure bound properties aren't trimmed:
_ = Element?.Title;
_ = Element?.Description;
_ = Element?.Attachments;
#else
DefaultStyleKey = typeof(AttachmentsPopupElementView);
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

using Microsoft.Maui.Controls.Internals;
using Esri.ArcGISRuntime.Mapping.Popups;
using System.Diagnostics.CodeAnalysis;

namespace Esri.ArcGISRuntime.Toolkit.Maui.Primitives
{
Expand All @@ -38,6 +39,9 @@ static MediaPopupElementView()
DefaultControlTemplate = new ControlTemplate(BuildDefaultTemplate);
}

[DynamicDependency(nameof(MediaPopupElement.Title), "Esri.ArcGISRuntime.Mapping.Popups.MediaPopupElement", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(MediaPopupElement.Description), "Esri.ArcGISRuntime.Mapping.Popups.MediaPopupElement", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(MediaPopupElement.Media), "Esri.ArcGISRuntime.Mapping.Popups.MediaPopupElement","Esri.ArcGISRuntime")]
private static object BuildDefaultTemplate()
{
StackLayout root = new StackLayout();
Expand Down Expand Up @@ -72,6 +76,8 @@ private static object BuildDefaultTemplate()
return root;
}

[DynamicDependency(nameof(PopupMedia.Title), "Esri.ArcGISRuntime.Mapping.Popups.PopupMedia", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(PopupMedia.Caption), "Esri.ArcGISRuntime.Mapping.Popups.PopupMedia", "Esri.ArcGISRuntime")]
private static object BuildDefaultItemTemplate()
{
var pm = new PopupMediaView();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,6 @@ public MediaPopupElementView()
{
#if MAUI
ControlTemplate = DefaultControlTemplate;
// Ensure bound properties aren't trimmed:
_ = Element?.Title;
_ = Element?.Description;
var m = Element?.Media?.FirstOrDefault();
_ = m?.Title;
_ = m?.Caption;
#else
DefaultStyleKey = typeof(MediaPopupElementView);
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
using Microsoft.Maui.Controls.Internals;
using Esri.ArcGISRuntime.Mapping.Popups;
using Esri.ArcGISRuntime.Toolkit.Maui.Primitives;
using System.Diagnostics.CodeAnalysis;

namespace Esri.ArcGISRuntime.Toolkit.Maui
{
Expand Down Expand Up @@ -59,6 +60,8 @@ static PopupViewer()
DefaultPopupViewerCaptionStyle.Setters.Add(new Setter() { Property = Label.LineBreakModeProperty, Value = LineBreakMode.WordWrap });
}

[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Popups.Popup.Title), "Esri.ArcGISRuntime.Mapping.Popups.Popup", "Esri.ArcGISRuntime")]
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Popups.Popup.EvaluatedElements), "Esri.ArcGISRuntime.Mapping.Popups.Popup", "Esri.ArcGISRuntime")]
private static object BuildDefaultTemplate()
{
Grid root = new Grid();
Expand Down
8 changes: 4 additions & 4 deletions src/Toolkit/Toolkit/UI/Controls/PopupViewer/PopupViewer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
using Esri.ArcGISRuntime.RealTime;
using Esri.ArcGISRuntime.Toolkit.Internal;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;

#if MAUI
using Esri.ArcGISRuntime.Toolkit.Maui.Primitives;
using DependencyObject = Microsoft.Maui.Controls.BindableObject;
Expand Down Expand Up @@ -76,9 +78,6 @@ public PopupViewer()
{
#if MAUI
ControlTemplate = DefaultControlTemplate;
// Ensure bound properties aren't trimmed:
_ = Popup?.Title;
_ = Popup?.EvaluatedElements;
#else
DefaultStyleKey = typeof(PopupViewer);
#endif
Expand All @@ -98,7 +97,8 @@ public override void OnApplyTemplate()
private bool _isDirty = false;
private object _isDirtyLock = new object();

private void InvalidatePopup()
[DynamicDependency(nameof(Esri.ArcGISRuntime.Mapping.Popups.Popup.EvaluatedElements), "Esri.ArcGISRuntime.Mapping.Popups.Popup", "Esri.ArcGISRuntime")]
private void InvalidatePopup()
{
lock (_isDirtyLock)
{
Expand Down

0 comments on commit c55327f

Please sign in to comment.