...
Code Block |
---|
// event args which will be used only when we need to pass additional data there, otherwise null public interface ILinkableComponentEventArgs { EventType Type { get; } string Description { get; } DateTime Time { get; } IExchangeItem ChangedItem { get; } bool Stop { get; set; } // used if simulation should be stopped! } public enum EventType { Warning, Informative, ValueOutOfRange, GlobalProgress, TimeStepProgres, DataChanged, TargetBeforeGetValuesCall, SourceAfterGetValuesCall, SourceBeforeGetValuesReturn, TargetAfterGetValuesReturn, Other } // C# way public delegate void LinkableComponentEventHandler(object source, ILinkableComponentEventArgs args); public interface ILinkableComponent { event LinkableComponentEventHandler Progressed; } // Java way (Observable is a class, Observer is an interface!) public class LinkableComponentObservable extends Observable { public void updatenotifyObservers(Observer o, ILinkableComponentEventArgs args); } public interface ILinkableComponent { public LinkableComponentObservable getObservable(); } |
...