1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- namespace Caliburn.Micro.Core {
- using System;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- /// <summary>
- /// Default implementation for <see cref="IPlatformProvider"/> that does no platform enlightenment.
- /// </summary>
- public class DefaultPlatformProvider : IPlatformProvider {
- /// <summary>
- /// Indicates whether or not the framework is in design-time mode.
- /// </summary>
- public bool InDesignMode {
- get { return true; }
- }
- /// <summary>
- /// Executes the action on the UI thread asynchronously.
- /// </summary>
- /// <param name="action">The action to execute.</param>
- public void BeginOnUIThread(Action action) {
- action();
- }
- /// <summary>
- /// Executes the action on the UI thread asynchronously.
- /// </summary>
- /// <param name="action">The action to execute.</param>
- /// <returns></returns>
- public Task OnUIThreadAsync(Action action) {
- return Task.Factory.StartNew(action);
- }
- /// <summary>
- /// Executes the action on the UI thread.
- /// </summary>
- /// <param name="action">The action to execute.</param>
- public void OnUIThread(Action action) {
- action();
- }
- /// <summary>
- /// Used to retrieve the root, non-framework-created view.
- /// </summary>
- /// <param name="view">The view to search.</param>
- /// <returns>
- /// The root element that was not created by the framework.
- /// </returns>
- /// <remarks>
- /// In certain instances the services create UI elements.
- /// For example, if you ask the window manager to show a UserControl as a dialog, it creates a window to host the UserControl in.
- /// The WindowManager marks that element as a framework-created element so that it can determine what it created vs. what was intended by the developer.
- /// Calling GetFirstNonGeneratedView allows the framework to discover what the original element was.
- /// </remarks>
- public object GetFirstNonGeneratedView(object view) {
- return view;
- }
- /// <summary>
- /// Executes the handler the fist time the view is loaded.
- /// </summary>
- /// <param name="view">The view.</param>
- /// <param name="handler">The handler.</param>
- /// <returns>true if the handler was executed immediately; false otherwise</returns>
- public void ExecuteOnFirstLoad(object view, Action<object> handler) {
- handler(view);
- }
- /// <summary>
- /// Executes the handler the next time the view's LayoutUpdated event fires.
- /// </summary>
- /// <param name="view">The view.</param>
- /// <param name="handler">The handler.</param>
- public void ExecuteOnLayoutUpdated(object view, Action<object> handler) {
- handler(view);
- }
- /// <summary>
- /// Get the close action for the specified view model.
- /// </summary>
- /// <param name="viewModel">The view model to close.</param>
- /// <param name="views">The associated views.</param>
- /// <param name="dialogResult">The dialog result.</param>
- /// <returns>
- /// An <see cref="Action" /> to close the view model.
- /// </returns>
- public Action GetViewCloseAction(object viewModel, ICollection<object> views, bool? dialogResult) {
- return () => { };
- }
- }
- }
|