anchor.diff:      }));
       {
         _infoForSubPanel.add(new ui.Label("main operation"));
  +      initMainPanel();
       }
       {
         _otherForSubPanel.add(new ui.Label("other operation"));
  
positive.code:       grid.setWidget(row, 1, l1);
        grid.setWidget(row, 2, l2);
        grid.setWidget(row, 3, l3);
        grid.setWidget(row, 4, l4);  
        row++;
      }
      _otherForSubPanel.add(grid);
    }
  }
  
  class AppPortMapInfo
  {
    String protocol = "";
    String publicPort = "";
    String localIp = "";
  
negative.code:   async.StreamController _controllerSearchButton = new async.StreamController.broadcast();
    async.StreamController _controllerTab = new async.StreamController.broadcast();
    async.StreamController _controllerSelectRouter = new async.StreamController.broadcast();
    async.StreamController _controllerAddPortMapButton = new async.StreamController.broadcast();
  
    async.Stream<int> get onClickSearchButton => _controllerSearchButton.stream;
    async.Stream<int> get onSelectTab => _controllerTab.stream;
    async.Stream<String> get onSelectRouter => _controllerSelectRouter.stream;
    async.Stream<AppPortMapInfo> get onClieckAddPortMapButton => _controllerAddPortMapButton.stream;
   
  
    void clearFoundRouterList() {
      _foundRouter.clear();
  