256 lines
7.7 KiB
C#
256 lines
7.7 KiB
C#
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|||
|
// Licensed under the MIT License.
|
|||
|
|
|||
|
using Etw.Managed;
|
|||
|
using MS.Internal.Mita.Foundation.Waiters;
|
|||
|
|
|||
|
namespace Calculator.UIAutomationLibrary.Components
|
|||
|
{
|
|||
|
public class MainPageLfm : ICanFocusWithClicks
|
|||
|
{
|
|||
|
public MainPageLfm(MainPagePom objectModel)
|
|||
|
{
|
|||
|
this.ObjectModel = objectModel;
|
|||
|
}
|
|||
|
|
|||
|
public MainPagePom ObjectModel { get; }
|
|||
|
|
|||
|
public NavBarLfm OpenNavBar()
|
|||
|
{
|
|||
|
using (EtwWaiter waiter = this.ObjectModel.GetNavBarOpenedWaiter())
|
|||
|
{
|
|||
|
this.ObjectModel.NavButton.Invoke();
|
|||
|
waiter.Wait();
|
|||
|
}
|
|||
|
|
|||
|
return new NavBarLfm(this.ObjectModel.NavBarPom);
|
|||
|
}
|
|||
|
|
|||
|
public void CloseNavBar()
|
|||
|
{
|
|||
|
this.ObjectModel.NavBarPom.CloseButton.Invoke();
|
|||
|
}
|
|||
|
|
|||
|
public void FocusWithClicks()
|
|||
|
{
|
|||
|
this.ObjectModel.Header.DoubleClick();
|
|||
|
}
|
|||
|
|
|||
|
public StandardCalculatorLfm NavigateToStandardCalculator()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectStandard();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new StandardCalculatorLfm(this.ObjectModel.StandardCalculatorPom);
|
|||
|
}
|
|||
|
|
|||
|
public ScientificCalculatorLfm NavigateToScientificCalculator()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectScientific();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new ScientificCalculatorLfm(this.ObjectModel.ScientificCalculatorPom);
|
|||
|
}
|
|||
|
|
|||
|
public ProgrammerCalculatorLfm NavigateToProgrammerCalculator()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectProgrammer();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new ProgrammerCalculatorLfm(this.ObjectModel.ProgrammerCalculatorPom);
|
|||
|
}
|
|||
|
|
|||
|
public DateCalculatorLfm NavigateToDateCalculator()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectDate();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new DateCalculatorLfm(this.ObjectModel.DateCalculatorPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToCurrencyConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectCurrency();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToVolumeConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectVolume();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToLengthConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectLength();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToWeightConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectWeight();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToTemperatureConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectTemperature();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToEnergyConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectEnergy();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToAreaConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectArea();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToSpeedConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectSpeed();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToTimeConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectTime();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToPowerConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectPower();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToDataConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectData();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToPressureConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectPressure();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public UnitConverterLfm NavigateToAngleConverter()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (var waiter = this.ObjectModel.GetModeChangedWaiter())
|
|||
|
{
|
|||
|
navBar.SelectAngle();
|
|||
|
waiter.TryWait();
|
|||
|
}
|
|||
|
|
|||
|
return new UnitConverterLfm(this.ObjectModel.UnitConverterPom);
|
|||
|
}
|
|||
|
|
|||
|
public AboutFlyoutLfm OpenAboutFlyout()
|
|||
|
{
|
|||
|
var navBar = this.OpenNavBar();
|
|||
|
using (EtwWaiter waiter = new EtwWaiter(Constants.CalculatorETWProviderGUID, Constants.AboutFlyoutOpenedETWEventName))
|
|||
|
{
|
|||
|
navBar.SelectAbout();
|
|||
|
waiter.Wait();
|
|||
|
}
|
|||
|
|
|||
|
return new AboutFlyoutLfm(this.ObjectModel.AboutFlyoutPom);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|