public static void doCreateSnuFromMedia(IMedia media) throws Exception {
    Application app = Application.getInstance();

    // try and find an open editor for a Snu with this media.
    // if we find one, focus it and abort
    Collection<ResourceEditor> openEditors = app.getOpenEditors();
    for (ResourceEditor editor : openEditors) {
      IResource editingResource = app.getResourceForEditor(editor);
      if (editingResource == null) {
        // i suppose its reasonable that some other code might create an unattached resource editor
        // but in that case it shouldnt be in the openEditors list
        Logger.getLogger(CreateSnuAction.class)
            .info(
                "no resource for editor: " + editor.getResourceView().getResourceId(),
                new Exception("just-for-stacktrace"));
        continue;
      }
      if (editingResource instanceof ISnu) {
        IMedia editingMedia = ((ISnu) editingResource).getMainMedia();
        if (editingMedia != null && editingMedia.getId().equals(media.getId())) {
          editor.toFront();
          return;
        }
      }
      if (editingResource instanceof IMedia) {
        if (editor.getResourceView() instanceof SnuResourceView) {
          editor.toFront();
          return;
        }
      }
    }

    ResourceEditor editor = app.editNew(ResourceType.SNU, media.getId());
    SnuResourceView view = (SnuResourceView) editor.getResourceView();
    SnuHelper.initView(view, FileUtil.getFilenameWithoutExtension(media.getName()), media);
  }