@Override
  public void setNode(Node selectedNode) {
    try {
      if (selectedNode == null) {
        resetComponent();
        return;
      }

      AbstractFile file = selectedNode.getLookup().lookup(AbstractFile.class);
      if (file == null) {
        resetComponent();
        return;
      }

      if (file.equals(lastFile)) {
        return; // prevent from loading twice if setNode() called mult. times
      }

      lastFile = file;

      final Dimension dims = DataContentViewerMedia.this.getSize();
      logger.info("setting node on media viewer");
      if (imagePanelInited && containsExt(file.getName(), imageExtensions)) {
        imagePanel.showImageFx(file, dims);
        this.switchPanels(false);
      } else if (imagePanelInited && Utilities.isJpegFileHeader(file)) {

        imagePanel.showImageFx(file, dims);
        this.switchPanels(false);

      } else if (videoPanelInited
          && (containsExt(file.getName(), videoExtensions)
              || containsExt(file.getName(), AUDIO_EXTENSIONS))) {
        videoPanel.setupVideo(file, dims);
        switchPanels(true);
      }
    } catch (Exception e) {
      logger.log(Level.SEVERE, "Exception while setting node", e);
    }
  }
  /** Creates new form DataContentViewerVideo */
  public DataContentViewerMedia() {

    initComponents();

    // get the right panel for our platform
    videoPanel = MediaViewVideoPanel.createVideoPanel();

    imagePanel = new MediaViewImagePanel();
    videoPanelInited = videoPanel.isInited();
    imagePanelInited = imagePanel.isInited();

    videoExtensions = videoPanel.getExtensions();

    customizeComponents();
    logger.log(Level.INFO, "Created MediaView instance: " + this);
  }