/** Method that loads all necessary information and initiates the views, the keyhandlers etc. */
  public void loadProgramDataFromPdb() {
    // Extract nucleotide information
    rnaSequence3D = new RNASequence(getModel().getPdbfile());

    // Extract base-sequence and compute watson-crick bonds
    getModel().setSequence(rnaSequence3D.extractString());
    getModel().setBonds(rnaSequence3D.computeWCBonds());

    // Init selection Model
    initSelectionModel();

    // Init the Views
    initPrimaryView();
    initSecondaryView();
    initTertiaryView();

    // init focus selection listener
    initSelectionListener();
    selectionFocusBinding();

    // init keyhandler
    if (keyPressedEventHandler != null)
      scene.removeEventFilter(KeyEvent.KEY_PRESSED, keyPressedEventHandler);
    initKeyEventHandler();
    scene.addEventFilter(KeyEvent.KEY_PRESSED, keyPressedEventHandler);
  }
  /** initialize secondary structure view items */
  private void initSecondaryView() {
    // clear the secondary structure pane on initialization
    pane2D.getChildren().clear();

    if (view2DController.getGraph2d() != null) {
      pane2D.widthProperty().removeListener(view2DController.getWidthChangeListener());
      pane2D.heightProperty().removeListener(view2DController.getHeightChangeListener());
    }

    view2DController.initGraph2d(
        rnaSequence3D.extractString(),
        rnaSequence3D.getNucleotides().size(),
        rnaSequence3D.computeWCBonds(),
        (int) pane2D.getWidth(),
        (int) pane2D.getHeight());

    listenOnPane2dResize();
    view2DController.setScaleBinding(pane2D.widthProperty(), pane2D.heightProperty());

    view2DController.getGraph2d().setSelectionModel(selectionModel);
    pane2D.getChildren().add(view2DController.getGraph2d());
  }