anchor.diff:          _loadData();
         });
       }
  +  }
  +
  +  void _handleSearchStart() {
  +    setState(() {
  +      searching = true;
  +    });
  +  }
  +
  +  void _handleSearchEnd() {
  +    setState(() {
  +      this.appBarActionIcon = new Icon(Icons.search);
  +      this.appBarTitle = new Text("Cari Runners");
  +      searchQuery.clear();
  +      searching = false;
  +    });
  +  }
  +
  +  _init() {
  +    searching = false;
  +    searchQuery.addListener(() {
  +      if (searchQuery.text.isEmpty) {
  +        setState(() {
  +          searching = false;
  +          searchText = "";
  +        });
  +      } else {
  +        setState(() {
  +          searching = true;
  +          searchText = searchQuery.text;
  +        });
  +      }
  +    });
     }
   
     _loadData() async {
  
positive.code:   @override
    void initState() {
      super.initState();
      _loadData();
      widget.remoteIsDirtyAction.listen(_handleRemoteIsDirty);
    }
  
negative.code:     return new Center(child: new CircularProgressIndicator());
    }
  
    Widget _buildSearchList(BuildContext context) {
      if (searchText.isEmpty) {
        return _buildListView(context, false, elementList);
      } else {
        List<dom.Element> searchList = List();
        for (int i = 0; i < elementList.length; i++) {
          String title = elementList[i].text;
          if (title.toLowerCase().contains(searchText.toLowerCase())) {
            searchList.add(elementList[i]);
          }
        }
        return _buildListView(context, false, searchList);
      }
    }
  
    Widget _buildStatus() {
      var spacer = new SizedBox(height: 32.0);
      return new Container(
  