WordPress actions for plugin admin UI page

You may not have access to $_GET. I think you may need global $wpdb, $posts, $_GET;

Second, everything happens in the constructor, which is when the plugin loads, which is every time any page of the site loads. So, every time a page loads you are checking $_GET['action'] for either ‘edit’ or ‘delete’. Those action values are pretty common. They are even used in WordPress Core. Look at the URL when you are editing a post. What you are doing here is going to cause no end of conflict.

You only want to process this on your plugin page, not globally for the site, so pull that code out of the constructor and put it into its own function. Then hook that function to a hook specific to your plugin page.

function parser_handler() {
  global $_GET;

  //Here I inspect if action exits or not             
  if($_GET['action']){            
    switch ($_GET['action']){
      case 'edit':
    //than here should be a redirect to a custom page to edit the item passing the record query argument, do I need in this case hidden sup-page?!!!
    break;
      case 'delete':
    var_dump('test');
    $this->_delete_target($_GET['record'] , $_GET['post_id']);      
    break;              
    }           
  }
}

In your constructor add…

add_action('load-parser-top-level-handle',array($this,'parser_handler'));

I am guessing at the load- hook. Consider that a placeholder. Here is how to find the right hook. Load your page. View source. Look for the Javascript near the top of the page. In that script should be a pagenow parameter. Take that value and put ‘load-‘ in front of it. That hook runs immediately before your particular plugin page gets sent to the browser.