示例#1
0
 public Presenter(IModelProvider model, IMenuHandler menuHandler, QuickButtonModule quickButtonModule)
 {
     this.model       = model;
     this.menuHandler = menuHandler;
     quickButtonModule.RegisterDefaultButton(new QuickButton(
                                                 "ghdDocument",
                                                 6,
                                                 true,
                                                 "Documents",
                                                 "Interface\\Icons\\INV_Misc_Book_08",
                                                 ShowDocumentMenu,
                                                 AddOnReference.GHD));
 }
示例#2
0
        public Presenter(IModelProvider model, SupportedFields supportedFields, QuickButtonModule buttonModule)
        {
            this.model           = model;
            this.supportedFields = supportedFields;
            buttonModule.RegisterDefaultButton(new QuickButton(
                                                   "ghfProfile",
                                                   5,
                                                   true,
                                                   "GHF - My Profile",
                                                   "Interface\\Icons\\Spell_Misc_EmotionHappy",
                                                   ShowCharacterMenu,
                                                   AddOnReference.GHF));

            var targetDetailsUi = ModuleFactory.GetM <TargetDetails>();

            new TargetProfileMenu(this.model, targetDetailsUi);
        }
示例#3
0
        public ModelProvider(ISerializer serializer, IWrapper wrapper, GameEventListener eventListener, IAddOnRegistry addOnRegistry, QuickButtonModule buttonModule)
        {
            var subscriptionCenter = new EntityUpdateSubscriptionCenter <Profile, string>();

            this.AccountProfiles = new EntityStore <Profile, string>(serializer, new SavedDataHandler(SavedAccountProfiles, Global.Api.GetRealmName()), subscriptionCenter);

            eventListener.RegisterEvent(SystemEvent.VARIABLES_LOADED, this.OnVariablesLoaded);
            addOnRegistry.RegisterAddOn(AddOnReference.GHF);

            var playerName      = Global.Api.UnitName(UnitId.player);
            var version         = Global.Api.GetAddOnMetadata(Strings.tostring(AddOnReference.GH), "Version");
            var supportedFields = new SupportedFields();

            this.Msp = new MSPProxy(new ProfileFormatter(), version, supportedFields, wrapper);

            subscriptionCenter.SubscribeForUpdates(this.Msp.Set, profile => profile.Id.Equals(playerName));

            var requestStrategy = new MspRequestStrategy();
            var activityScanner = new PlayerActivityScanner((name, activity) => { this.Msp.Request(name, requestStrategy.GetFieldsToRequest(activity)); }, eventListener);

            new Presenter(this, supportedFields, buttonModule);
        }