using System;
using System.ComponentModel.Composition;
using System.Windows;
using System.Windows.Media.Effects;
using GalaSoft.MvvmLight.Command;
using TaskIt.Modules.Help.Assets.Resources;

namespace TaskIt.Modules.Help.ViewModels
{
    [Export]
    public class GTDOverviewViewModel : TasksWidgetViewModelBase
    {
        public void OnNavigateToUrl()
        {
            NotifyNavigateToUrl();
        }

        # region Properties

        public Effect DropShadowEffect
        {
            get { return new DropShadowEffect { ShadowDepth=5, Opacity=.5}; }
        }

        # endregion

        # region UI Events

        public event RoutedEventHandler NavigateToUrl;
        public void NotifyNavigateToUrl()
        {
            if (NavigateToUrl != null) { NavigateToUrl(this, new RoutedEventArgs()); }
        }

        # endregion

        # region Commands

        private RelayCommand _navigateToUrlCommand;
        public RelayCommand NavigateToUrlCommand
        {
            get { return _navigateToUrlCommand ?? (_navigateToUrlCommand = new RelayCommand(OnNavigateToUrl)); }
        }

        # endregion

        # region Icons

        public Uri IconInboxUri
        {
            get { return GetIconUri("InboxLarge"); }
        }

        public Uri IconActionsUri
        {
            get { return GetIconUri("ActionsLarge"); }
        }

        public Uri IconWaitingUri
        {
            get { return GetIconUri("WaitingLarge"); }
        }

        public Uri IconSomedayUri
        {
            get { return GetIconUri("SomedayLarge"); }
        }

        public Uri IconTicklersUri
        {
            get { return GetIconUri("TicklersLarge"); }
        }

        public Uri IconReferenceUri
        {
            get { return GetIconUri("ReferenceLarge"); }
        }

        public Uri IconProjectsUri
        {
            get { return GetIconUri("ProjectsLarge"); }
        }

        public Uri IconContextsUri
        {
            get { return GetIconUri("ContextsLarge"); }
        }

        public Uri IconContactsUri
        {
            get { return GetIconUri("ContactsLarge"); }
        }

        # endregion

        # region Resource Strings

        public string ResourceMessageGTDOverview1
        {
            get { return GTDOverviewStrings.Message_GTDOverview1; }
        }

        public string ResourceMessageGTDOverview2
        {
            get { return GTDOverviewStrings.Message_GTDOverview2; }
        }

        public string ResourceLinkGettingThingsDone
        {
            get { return GTDOverviewStrings.Link_GettingThingsDone; }
        }

        public string ResourceTitleGTDOverview
        {
            get { return GTDOverviewStrings.Title_GTDOverview; }
        }

        public string ResourcePageTitleInbox
        {
            get { return GTDOverviewStrings.PageTitle_Inbox; }
        }

        public string ResourcePageTitleActions
        {
            get { return GTDOverviewStrings.PageTitle_Actions; }
        }

        public string ResourcePageTitleWaiting
        {
            get { return GTDOverviewStrings.PageTitle_Waiting; }
        }

        public string ResourcePageTitleSomeday
        {
            get { return GTDOverviewStrings.PageTitle_Someday; }
        }

        public string ResourcePageTitleTicklers
        {
            get { return GTDOverviewStrings.PageTitle_Ticklers; }
        }

        public string ResourcePageTitleReference
        {
            get { return GTDOverviewStrings.PageTitle_Reference; }
        }

        public string ResourcePageTitleProjects
        {
            get { return GTDOverviewStrings.PageTitle_Projects; }
        }

        public string ResourcePageTitleContexts
        {
            get { return GTDOverviewStrings.PageTitle_Contexts; }
        }

        public string ResourcePageTitleContacts
        {
            get { return GTDOverviewStrings.PageTitle_Contacts; }
        }

        public string ResourceMessageInbox
        {
            get { return GTDOverviewStrings.Message_Inbox; }
        }

        public string ResourceMessageActions
        {
            get { return GTDOverviewStrings.Message_Actions; }
        }

        public string ResourceMessageWaiting
        {
            get { return GTDOverviewStrings.Message_Waiting; }
        }

        public string ResourceMessageSomeday
        {
            get { return GTDOverviewStrings.Message_Someday; }
        }

        public string ResourceMessageTicklers
        {
            get { return GTDOverviewStrings.Message_Ticklers; }
        }

        public string ResourceMessageReference
        {
            get { return GTDOverviewStrings.Message_Reference; }
        }

        public string ResourceMessageProjects
        {
            get { return GTDOverviewStrings.Message_Projects; }
        }

        public string ResourceMessageContexts
        {
            get { return GTDOverviewStrings.Message_Contexts; }
        }

        public string ResourceMessageContacts
        {
            get { return GTDOverviewStrings.Message_Contacts; }
        }

        public string ResourceTitleTheEnd
        {
            get { return GTDOverviewStrings.Title_TheEnd; }
        }

        # endregion
    }
}
