本文整理汇总了C#中UW.ClassroomPresenter.Model.EventQueue.PropertyEventDispatcher类的典型用法代码示例。如果您正苦于以下问题:C# EventQueue.PropertyEventDispatcher类的具体用法?C# EventQueue.PropertyEventDispatcher怎么用?C# EventQueue.PropertyEventDispatcher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EventQueue.PropertyEventDispatcher类属于UW.ClassroomPresenter.Model命名空间,在下文中一共展示了EventQueue.PropertyEventDispatcher类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConnectTCPRadioButton
public ConnectTCPRadioButton(ControlEventQueue dispatcher, PresenterModel model, ManualConnectionPanel manual, Point location, int width)
{
this.m_EventQueue = dispatcher;
this.m_Model = model;
this.m_Manual = manual;
this.m_Connected = false;
this.FlatStyle = FlatStyle.System;
this.Font = Model.Viewer.ViewerStateModel.StringFont1;
this.Text = Strings.ConnectToTCPServer;
this.Location = location;
this.Size = new Size(width, this.Font.Height + 5);
this.m_ClassroomManager = null;
//Watch for Role changes and disable if role is Instructor.
this.m_RoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleRoleChanged));
this.m_Model.Participant.Changed["Role"].Add(this.m_RoleChangedDispatcher.Dispatcher);
using (Synchronizer.Lock(this.m_Model.Participant.SyncRoot)) {
if (this.m_Model.Participant.Role is InstructorModel)
this.Enabled = false;
else
this.Enabled = true;
}
//should probably make this a listener
//Do persistence in a more intelligent way - this doesn't make the popup pop up.
/*using (Synchronizer.Lock(this.m_Model.ViewerState.SyncRoot)) {
if (this.Text == this.m_Model.ViewerState.ManualConnectionButtonName) {
this.Checked = true;
}
}*/
this.CheckedChanged += new EventHandler(OnClick);
this.m_ProtocolCollectionHelper = new ProtocolCollectionHelper(this, this.m_Model.Network);
}
示例2: DeckNetworkService
public DeckNetworkService(SendingQueue sender, PresentationModel presentation, DeckModel deck)
{
this.m_Sender = sender;
this.m_Presentation = presentation;
this.m_Deck = deck;
this.m_SlideRemovedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleSlideRemoved));
this.m_SlideAddedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleSlideAdded));
this.m_SlideContentAddedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleSlideContentAdded));
this.m_DeckBackgroundColorChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleDeckBackgroundColorChanged));
this.m_SlideNetworkServices = new Hashtable();
this.m_TableOfContentsNetworkService = new TableOfContentsNetworkService(this.m_Sender, this.m_Presentation, this.m_Deck);
// Lock the deck so no content can be added between registering the event listeners and calling SendAllSlidesAndContent().
using( Synchronizer.Lock(this.m_Presentation.SyncRoot) ) {
using(Synchronizer.Lock(deck.SyncRoot)) {
this.m_Deck.SlideRemoved += this.m_SlideRemovedDispatcher.Dispatcher;
this.m_Deck.SlideAdded += this.m_SlideAddedDispatcher.Dispatcher;
this.m_Deck.SlideContentAdded += this.m_SlideContentAddedDispatcher.Dispatcher;
this.m_Deck.Changed["DeckBackgroundColor"].Add(this.m_DeckBackgroundColorChangedDispatcher.Dispatcher);
this.SendAllSlidesAndContent(Group.AllParticipant);
}
}
}
示例3: PresentationRadioButton
public PresentationRadioButton(ControlEventQueue dispatcher, PresentationModel presentation, StartupForm stup, PresentationsPanel parent, int i, ClassroomModel classroom)
{
this.m_EventQueue = dispatcher;
this.m_Presentation = presentation;
this.Tag = presentation.Owner;
this.m_Startup = stup;
this.Parent = parent;
this.m_PresentationsPanel = parent;
this.m_Classroom = classroom;
this.Parent.Controls.Add(this);
this.FlatStyle = FlatStyle.System;
this.Font = Model.Viewer.ViewerStateModel.StringFont1;
this.index = i;
this.Location = new Point(10, (2*this.Font.Height) * (this.index + 1));
this.Size = new Size(this.Parent.Width - 14, 2*this.Font.Height);
//If the role changes we should remove ourself from our parent.
this.m_ViewerStateRoleListener = new EventQueue.PropertyEventDispatcher(this.m_Startup.m_EventQueue,
new PropertyEventHandler(this.HandleViewerStateRoleChanged));
this.m_Startup.m_Model.ViewerState.Changed["iRole"].Add(this.m_ViewerStateRoleListener.Dispatcher);
this.m_HumanNameChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleHumanNameChanged));
this.Presentation.Changed["HumanName"].Add(this.m_HumanNameChangedDispatcher.Dispatcher);
this.m_HumanNameChangedDispatcher.Dispatcher(this.Presentation, null);
this.CheckedChanged += new EventHandler(HandlePresentationSelectionChanged);
this.m_ConnectedChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleConnectedChanged));
this.m_Classroom.Changed["Connected"].Add(this.m_ConnectedChangedDispatcher.Dispatcher);
this.HandleConnectedChanged(this.m_Classroom, null);
}
示例4: StartJoinButton2
public StartJoinButton2(PresenterModel model, StartupForm stup, bool compact)
{
this.m_Model = model;
this.m_Startup = stup;
this.Text = text1;
this.AutoSize = false;
this.FlatStyle = FlatStyle.System;
this.Font = Model.Viewer.ViewerStateModel.StringFont1;
this.clicked = false;
//Calculate the largest size for this button
SizeF size1, size2;
using (Graphics g = this.CreateGraphics()) {
size1 = g.MeasureString(text1, this.Font);
size2 = g.MeasureString(text2, this.Font);
size1.Width += 15;
size2.Width += 10;
if (compact) {
size1.Height += 5;
size2.Height += 5;
}
else {
size1.Height += 10;
size2.Height += 15;
}
}
this.Size = new Size(Math.Max((int)size1.Width, (int)size2.Width), Math.Max((int)size1.Height, (int)size2.Height));
this.DialogResult = DialogResult.OK;
this.m_RoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Startup.m_EventQueue, new PropertyEventHandler(this.TextOnRoleChange));
this.m_Model.ViewerState.Changed["iRole"].Add(this.m_RoleChangedDispatcher.Dispatcher);
this.m_RoleChangedDispatcher.Dispatcher(null, null);
}
示例5: DeckTraversalWebService
/// <summary>
/// Constructs a listener for changes to the deck traversal
/// </summary>
/// <param name="sender">The event queue for handling updates</param>
/// <param name="presentation">The presentation</param>
/// <param name="traversal">The deck traversal we care about </param>
public DeckTraversalWebService(SendingQueue sender, PresentationModel presentation, DeckTraversalModel traversal)
{
this.m_Sender = sender;
this.m_Presentation = presentation;
this.m_DeckTraversal = traversal;
// Create the deck object
string deckName = "Untitled Deck";
using (Synchronizer.Lock(this.m_DeckTraversal.SyncRoot))
{
using (Synchronizer.Lock(this.m_DeckTraversal.Deck))
{
deckName = this.m_DeckTraversal.Deck.HumanName;
}
}
SimpleWebDeck deck = new SimpleWebDeck();
deck.Name = deckName;
lock (WebService.Instance.GlobalModel) {
WebService.Instance.GlobalModel.Decks.Add(deck);
}
WebService.Instance.UpdateModel();
this.m_DeckWebService = new DeckWebService(this.m_Sender, this.m_Presentation, this.m_DeckTraversal.Deck);
this.m_CurrentChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleCurrentChanged));
this.m_DeckTraversal.Changed["Current"].Add(this.m_CurrentChangedDispatcher.Dispatcher);
}
示例6: LinkedDeckTraversalModel
public LinkedDeckTraversalModel(EventQueue dispatcher, Guid id, PresenterModel model, DeckTraversalModel linked)
: base(id, linked.Deck)
{
this.m_EventQueue = dispatcher;
this.m_Model = model;
this.m_Linked = linked;
// TODO: Evaluate whether we need to support other types of DeckTraversalModels.
this.m_Unlinked = new SlideDeckTraversalModel(Guid.NewGuid(), linked.Deck);
this.m_CurrentChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleCurrentChanged));
this.m_NextChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleNextChanged));
this.m_PreviousChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandlePreviousChanged));
this.m_AbsoluteCurrentSlideIndexChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleAbsoluteCurrentSlideIndexChanged));
// Set this.m_Active and register event listeners via UpdateMode.
this.m_Mode = DeckTraversalSelector.Linked;
this.UpdateMode(DeckTraversalSelector.Linked);
// Since UpdateMode doesn't initialize the event listeners like the Mode setter does, we must do this.
this.m_CurrentChangedDispatcher.Dispatcher(this, null);
this.m_NextChangedDispatcher.Dispatcher(this, null);
this.m_PreviousChangedDispatcher.Dispatcher(this, null);
this.m_AbsoluteCurrentSlideIndexChangedDispatcher.Dispatcher(this, null);
// Watch for changes to the current network association.
// When we're associated with an Instructor, we must obey its ForcingStudentNavigationLock policy.
this.m_NetworkAssociationChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleNetworkAssociationChanged));
this.m_NetworkAssociationRoleChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleNetworkAssociationRoleChanged));
this.m_ForcingStudentNavigationLockChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_EventQueue, new PropertyEventHandler(this.HandleForcingStudentNavigationLockChanged));
this.m_Model.Network.Changed["Association"].Add(this.m_NetworkAssociationChangedDispatcher.Dispatcher);
this.m_NetworkAssociationChangedDispatcher.Dispatcher(this, null);
}
示例7: SheetMatch
/// <summary>
/// Construct the sheet model
/// </summary>
/// <param name="sender">The event queue for async event handling</param>
/// <param name="srcSheet">The source sheet model</param>
/// <param name="dstSheet">The destination sheet model</param>
/// <param name="selector">Unknown</param>
public SheetMatch( EventQueue sender, SheetModel srcSheet, SheetModel dstSheet/*, SheetMessage.SheetCollection selector*/ )
{
this.m_Sender = sender;
this.m_SourceSheet = srcSheet;
this.m_DestSheet = dstSheet;
this.m_BoundsChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleBoundsChanged));
this.m_SourceSheet.Changed["Bounds"].Add(this.m_BoundsChangedDispatcher.Dispatcher);
}
示例8: InkSheetAdapter
public InkSheetAdapter(SlideDisplayModel display, IAdaptee adaptee)
{
this.m_SlideDisplay = display;
this.m_Adaptee = adaptee;
this.m_SlideChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_SlideDisplay.EventQueue, new PropertyEventHandler(this.HandleSlideChanged));
this.m_SlideDisplay.Changed["Slide"].Add(this.m_SlideChangedDispatcher.Dispatcher);
this.m_SlideChangedDispatcher.Dispatcher(this.m_SlideDisplay, null);
}
示例9: WebPerformanceWebService
/// <summary>
/// Constructor for the web service.
/// </summary>
/// <param name="sender">The event queue to use.</param>
/// <param name="presentation">The web performance model to listen to.</param>
public WebPerformanceWebService(SendingQueue sender, WebPerformanceModel performance)
{
this.m_Sender = sender;
this.m_WebPerformance = performance;
this.m_RequestSubmissionChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleRequestSubmissionChanged));
this.m_WebPerformance.Changed["RequestSubmissionSignal"].Add(this.m_RequestSubmissionChangedDispatcher.Dispatcher);
this.m_RequestLogChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleRequestLogChanged));
this.m_WebPerformance.Changed["RequestLogSignal"].Add(this.m_RequestLogChangedDispatcher.Dispatcher);
}
示例10: ScriptingNetworkService
/// <summary>
/// Constructor for the scripting network service
/// </summary>
/// <param name="sender"></param>
/// <param name="model"></param>
/// <param name="diag"></param>
public ScriptingNetworkService(SendingQueue sender, PresenterModel model)
{
this.Sender = sender;
this.m_Model = model;
this.m_Diagnostic = model.ViewerState.Diagnostic;
// Set up the change listeners
this.m_GenericChangeDispatcher = new EventQueue.PropertyEventDispatcher(this.Sender, new PropertyEventHandler(this.HandleGenericChange));
this.m_Diagnostic.Changed["ExecuteRemoteScript"].Add(this.m_GenericChangeDispatcher.Dispatcher);
}
示例11: StudentPresentationNetworkService
/// <summary>
/// Construct a StudentPresentationNetworkService
/// </summary>
/// <param name="sender">The event queue to use</param>
/// <param name="presentation">The PresentationModel to listen for changes to</param>
public StudentPresentationNetworkService( SendingQueue sender, PresentationModel presentation )
{
this.m_Sender = sender;
this.m_Presentation = presentation;
this.m_StudentQuickPollNetworkService = new StudentQuickPollNetworkService( this.m_Sender, this.m_Presentation );
this.m_StudentQuickPollChangedDispatcher = new EventQueue.PropertyEventDispatcher( this.m_Sender, new PropertyEventHandler( this.HandleStudentQuickPollChanged ) );
this.m_Presentation.Changed["QuickPoll"].Add( this.m_StudentQuickPollChangedDispatcher.Dispatcher );
}
示例12: QuickPollSheetRenderer
/// <summary>
/// Construct the renderer
/// </summary>
/// <param name="display">The SlideDisplayModel</param>
/// <param name="sheet">The QuickPollSheetModel</param>
public QuickPollSheetRenderer( SlideDisplayModel display, QuickPollSheetModel sheet)
: base(display, sheet)
{
this.m_Sheet = sheet;
repaint_dispatcher_ = new EventQueue.PropertyEventDispatcher(SlideDisplay.EventQueue, this.Repaint);
/// Add event listeners
this.m_Sheet.QuickPoll.Changed["Updated"].Add(new PropertyEventHandler(this.repaint_dispatcher_.Dispatcher));
this.SlideDisplay.Changed["Slide"].Add(new PropertyEventHandler(this.repaint_dispatcher_.Dispatcher));
}
示例13: DockMenuItem
public DockMenuItem(ControlEventQueue dispatcher, PresenterModel model, DockStyle dock, string text)
: base(text)
{
this.m_Model = model;
this.m_DockStyle = dock;
this.m_FilmStripAlignmentListener = new EventQueue.PropertyEventDispatcher(dispatcher,
new PropertyEventHandler(this.HandleFilmStripAlignmentChanged));
this.m_Model.ViewerState.Changed["FilmStripAlignment"].Add(this.m_FilmStripAlignmentListener.Dispatcher);
this.m_FilmStripAlignmentListener.Dispatcher(this, null);
}
示例14: DeckTraversalNetworkService
public DeckTraversalNetworkService(SendingQueue sender, PresentationModel presentation, DeckTraversalModel traversal)
{
this.m_Sender = sender;
this.m_Presentation = presentation;
this.m_DeckTraversal = traversal;
this.m_DeckNetworkService = new DeckNetworkService(this.m_Sender, this.m_Presentation, this.m_DeckTraversal.Deck);
this.m_CurrentChangedDispatcher = new EventQueue.PropertyEventDispatcher(this.m_Sender, new PropertyEventHandler(this.HandleCurrentChanged));
this.m_DeckTraversal.Changed["Current"].Add(this.m_CurrentChangedDispatcher.Dispatcher);
}
示例15: QuickPollResultNetworkService
/// <summary>
/// Constructs a new QuickPollResultNetworkService
/// </summary>
/// <param name="sender">The message queue to use</param>
/// <param name="presentation">The PresentationModel to associate this service with</param>
/// <param name="poll">The QuickPollModel to associate this service with</param>
/// <param name="result">The QuickPollResultModel to associate this service with</param>
public QuickPollResultNetworkService( SendingQueue sender, PresentationModel presentation, QuickPollModel poll, QuickPollResultModel result )
{
this.m_Sender = sender;
this.m_Presentation = presentation;
this.m_QuickPoll = poll;
this.m_Result = result;
// Listen to changes tot he ResultString
this.m_ResultChangedDispatcher = new EventQueue.PropertyEventDispatcher( this.m_Sender, new PropertyEventHandler( this.HandleResultChanged ) );
this.m_Result.Changed["ResultString"].Add( this.m_ResultChangedDispatcher.Dispatcher );
}