LIBOMV-686 Implements new event patterns based on the Microsoft Framework Design Guidelines in GroupManager
* BREAKING CHANGE * this is a major shift in the way events are internally handled. git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3162 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
@@ -21,9 +21,9 @@ namespace groupmanager
|
||||
Dictionary<UUID, GroupTitle> Titles = new Dictionary<UUID,GroupTitle>();
|
||||
Dictionary<UUID, GroupMemberData> MemberData = new Dictionary<UUID, GroupMemberData>();
|
||||
Dictionary<UUID, string> Names = new Dictionary<UUID, string>();
|
||||
GroupManager.GroupProfileCallback GroupProfileCallback;
|
||||
GroupManager.GroupMembersCallback GroupMembersCallback;
|
||||
GroupManager.GroupTitlesCallback GroupTitlesCallback;
|
||||
EventHandler<GroupProfileEventArgs> GroupProfileCallback;
|
||||
EventHandler<GroupMembersReplyEventArgs> GroupMembersCallback;
|
||||
EventHandler<GroupTitlesReplyEventArgs> GroupTitlesCallback;
|
||||
AvatarManager.AvatarNamesCallback AvatarNamesCallback;
|
||||
|
||||
public frmGroupInfo(Group group, GridClient client)
|
||||
@@ -37,18 +37,18 @@ namespace groupmanager
|
||||
IntPtr temp = Handle;
|
||||
}
|
||||
|
||||
GroupProfileCallback = new GroupManager.GroupProfileCallback(GroupProfileHandler);
|
||||
GroupMembersCallback = new GroupManager.GroupMembersCallback(GroupMembersHandler);
|
||||
GroupTitlesCallback = new GroupManager.GroupTitlesCallback(GroupTitlesHandler);
|
||||
GroupMembersCallback = new EventHandler<GroupMembersReplyEventArgs>(GroupMembersHandler);
|
||||
GroupProfileCallback = new EventHandler<GroupProfileEventArgs>(GroupProfileHandler);
|
||||
GroupTitlesCallback = new EventHandler<GroupTitlesReplyEventArgs>(GroupTitlesHandler);
|
||||
AvatarNamesCallback = new AvatarManager.AvatarNamesCallback(AvatarNamesHandler);
|
||||
|
||||
Group = group;
|
||||
Client = client;
|
||||
|
||||
// Register the callbacks for this form
|
||||
Client.Groups.OnGroupProfile += GroupProfileCallback;
|
||||
Client.Groups.OnGroupMembers += GroupMembersCallback;
|
||||
Client.Groups.OnGroupTitles += GroupTitlesCallback;
|
||||
Client.Groups.GroupProfile += GroupProfileCallback;
|
||||
Client.Groups.GroupMembersReply += GroupMembersCallback;
|
||||
Client.Groups.GroupTitlesReply += GroupTitlesCallback;
|
||||
Client.Avatars.OnAvatarNames += AvatarNamesCallback;
|
||||
|
||||
// Request the group information
|
||||
@@ -60,15 +60,15 @@ namespace groupmanager
|
||||
~frmGroupInfo()
|
||||
{
|
||||
// Unregister the callbacks for this form
|
||||
Client.Groups.OnGroupProfile -= GroupProfileCallback;
|
||||
Client.Groups.OnGroupMembers -= GroupMembersCallback;
|
||||
Client.Groups.OnGroupTitles -= GroupTitlesCallback;
|
||||
Client.Groups.GroupProfile -= GroupProfileCallback;
|
||||
Client.Groups.GroupMembersReply -= GroupMembersCallback;
|
||||
Client.Groups.GroupTitlesReply -= GroupTitlesCallback;
|
||||
Client.Avatars.OnAvatarNames -= AvatarNamesCallback;
|
||||
}
|
||||
|
||||
private void GroupProfileHandler(Group profile)
|
||||
private void GroupProfileHandler(object sender, GroupProfileEventArgs e)
|
||||
{
|
||||
Profile = profile;
|
||||
Profile = e.Group;
|
||||
|
||||
if (Group.InsigniaID != UUID.Zero)
|
||||
Client.Assets.RequestImage(Group.InsigniaID, ImageType.Normal,
|
||||
@@ -213,9 +213,9 @@ namespace groupmanager
|
||||
}
|
||||
}
|
||||
|
||||
private void GroupMembersHandler(UUID requestID, UUID groupID, Dictionary<UUID, GroupMember> members)
|
||||
private void GroupMembersHandler(object sender, GroupMembersReplyEventArgs e)
|
||||
{
|
||||
Members = members;
|
||||
Members = e.Members;
|
||||
|
||||
UpdateMembers();
|
||||
}
|
||||
@@ -256,9 +256,9 @@ namespace groupmanager
|
||||
}
|
||||
}
|
||||
|
||||
private void GroupTitlesHandler(UUID requestID, UUID groupID, Dictionary<UUID, GroupTitle> titles)
|
||||
private void GroupTitlesHandler(object sender, GroupTitlesReplyEventArgs e)
|
||||
{
|
||||
Titles = titles;
|
||||
Titles = e.Titles;
|
||||
|
||||
UpdateTitles();
|
||||
}
|
||||
|
||||
@@ -28,11 +28,18 @@ namespace groupmanager
|
||||
|
||||
Client.Network.OnLogin += new NetworkManager.LoginCallback(Network_OnLogin);
|
||||
Client.Network.OnEventQueueRunning += new NetworkManager.EventQueueRunningCallback(Network_OnEventQueueRunning);
|
||||
Client.Groups.OnCurrentGroups += new GroupManager.CurrentGroupsCallback(Groups_OnCurrentGroups);
|
||||
Client.Groups.CurrentGroups += Groups_CurrentGroups;
|
||||
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
void Groups_CurrentGroups(object sender, CurrentGroupsEventArgs e)
|
||||
{
|
||||
Groups = e.Groups;
|
||||
|
||||
Invoke(new MethodInvoker(UpdateGroups));
|
||||
}
|
||||
|
||||
private void UpdateGroups()
|
||||
{
|
||||
lock (lstGroups)
|
||||
@@ -131,14 +138,7 @@ namespace groupmanager
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void Groups_OnCurrentGroups(Dictionary<UUID, Group> groups)
|
||||
{
|
||||
Groups = groups;
|
||||
|
||||
Invoke(new MethodInvoker(UpdateGroups));
|
||||
}
|
||||
|
||||
|
||||
private void Network_OnEventQueueRunning(Simulator simulator)
|
||||
{
|
||||
if (simulator == Client.Network.CurrentSim)
|
||||
|
||||
Reference in New Issue
Block a user