event_stream 0.3.2  event_stream: ^0.3.2 copied to clipboard
event_stream: ^0.3.2 copied to clipboard
Makes it easier to expose custom events using the Stream API.
event_stream #
Introduction #
Makes it easier to expose custom events in Dart using the Stream API.
Getting Started #
1. Add the following to your project's pubspec.yaml and run
pub install.
dependencies:
  event_stream: any
2. Add the correct import for your project.
import 'package:event_stream/event_stream.dart';
Example #
import 'package:event_stream/event_stream.dart';
import 'dart:async';
class ClassWithEvents implements NotifyPropertyChanged {
  String _someProperty;
  
  final EventStream<PropertyChangedEventArgs> _onPropertyChangedEvent = new EventStream<PropertyChangedEventArgs>();
  Stream<PropertyChangedEventArgs> get onPropertyChanged => _onPropertyChangedEvent.stream;
  
  final EventStream _onClosedEvent = new EventStream();
  Stream get onClosed => _onClosedEvent.stream;
  
  String get someProperty => _someProperty;
  set someProperty(String value) {
    _someProperty = value;
    _onPropertyChangedEvent.signal(new PropertyChangedEventArgs('someProperty', value));
  }
  
  close() {
    _onClosedEvent.signal();
  }
}
main() {
  var c = new ClassWithEvents();
  c.onPropertyChanged.listen((PropertyChangedEventArgs<String> args) => print('changed: name=${args.propertyName} value=${args.value}'));
  c.onClosed.listen((_) => print('closed'));
  c.someProperty = "test";
  c.close();
}
