private void loadDiagram(Field field) {
    if (field != null) {

      if (logger.isDebugEnabled())
        logger.debug(
            String.format("draw field %s  status:%s", field.name, field.getSelectedStatus()));

      SvgScene scene = new SvgScene();
      scene.setZoom(owner.getZoomRate());

      _Object target = field.getTarget();
      if (target != null) {
        target.drawInternal(diagramPanel, scene, new Point(0, 0), getVM().getObjectRepository());

        diagramPanel.setScene(scene);
        Element background = scene.getDocument().getElementById("background");

        diagramPanel.addBackgroundPopupMenuListener((EventTarget) background);

        // use background node to capture mouse move event. otherwise
        // the
        // cursor could leave the object if you moving very fast.
        diagramPanel.addMouseMoveListener((EventTarget) background);
      } else {
        System.out.println("selected field is null");
      }
    }
  }