private void loadSubsystems(ServerInstance server) {
    if (!server.getName().equals(previousServerSelection)) {
      previousServerSelection = server.getName();

      // load subsystems for selected server

      serverGroupStore.loadServerGroup(
          server.getGroup(),
          new SimpleCallback<ServerGroupRecord>() {
            @Override
            public void onSuccess(ServerGroupRecord group) {
              subsysStore.loadSubsystems(
                  group.getProfileName(),
                  new SimpleCallback<List<SubsystemRecord>>() {
                    @Override
                    public void onSuccess(List<SubsystemRecord> result) {
                      getView().setSubsystems(result);

                      Scheduler.get()
                          .scheduleDeferred(
                              new Scheduler.ScheduledCommand() {
                                @Override
                                public void execute() {
                                  Console.MODULES
                                      .getEventBus()
                                      .fireEvent(
                                          new LHSHighlightEvent(
                                              placeManager
                                                  .getCurrentPlaceRequest()
                                                  .getNameToken()));
                                }
                              });
                    }
                  });
            }
          });
    }
  }