public boolean requireUpdate() {
   if (graph == null) {
     // Try to get a graph
     GraphModel graphModel = controller.getModel();
     if (graphModel != null) {
       graph = graphModel.getHierarchicalGraphVisible();
     }
   }
   // Refresh reader if sight changed
   Graph g = graph;
   if (g != null) {
     if (g.getGraphModel().getVisibleView().getViewId() != graphView) {
       reset();
     }
     return g.getNodeVersion() > nodeVersion || g.getEdgeVersion() > edgeVersion;
   }
   return false;
 }