code: private void onDataSetModifiedEvent(@Observes DataSetModifiedEvent event) {
          if (!editOn) {
  
              String targetUUID = event.getDataSetDef().getUUID();
              for (Displayer displayer : displayerCoordinator.getDisplayerList()) {
                  DisplayerSettings settings = displayer.getDisplayerSettings();
  
                  // Do nothing if the displayer:
                  // - Is not drawn
                  // - Is handling the refresh by itself
                  // - Is not configured to be updated on stale data
                  if (!displayer.isDrawn() || displayer.isRefreshOn() || !settings.isRefreshStaleData()) {
                      continue;
                  }
  
                  String uuid = null;
                  DataSet dataSet = settings.getDataSet();
                  if (dataSet != null) {
                      uuid = dataSet.getUUID();
                  }
                  DataSetLookup dataSetLookup = settings.getDataSetLookup();
                  if (uuid == null && dataSetLookup != null) {
                      uuid = dataSetLookup.getDataSetUUID();
                  }
                  if (uuid != null && targetUUID.equals(uuid)) {
                      displayer.redraw();
                  }
              }
          }
      }
docs: Listen to modifications on any of the data set being used in this perspective.