/**
  * Return active instance of this class, create one if it doesn't exist
  *
  * @return WP_Stream_Notifications_List_Table
  */
 public static function get_instance()
 {
     if (empty(self::$instance)) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 /**
  * Admin page callback for list view
  *
  * @return void
  */
 public function page_list()
 {
     self::$list_table->prepare_items();
     echo '<div class="wrap">';
     echo sprintf('<h2>%s <a href="%s" class="add-new-h2">%s</a></h2>', __('Stream Notifications', 'stream-notifications'), add_query_arg(array('page' => self::NOTIFICATIONS_PAGE_SLUG, 'view' => 'rule'), is_network_admin() ? network_admin_url(WP_Stream_Admin::ADMIN_PARENT_PAGE) : admin_url(WP_Stream_Admin::ADMIN_PARENT_PAGE)), __('Add New'));
     // xss okay
     self::$list_table->display();
     echo '</div>';
 }
 /**
  * Apply list actions, and load our list-table object
  *
  * @action load-edit.php
  *
  * @return void
  */
 public function load_list_table()
 {
     global $typenow;
     if (self::POSTTYPE !== $typenow || WP_Stream_API::is_restricted(true)) {
         return;
     }
     require_once WP_STREAM_NOTIFICATIONS_INC_DIR . 'class-wp-stream-notifications-list-table.php';
     WP_Stream_Notifications_List_Table::get_instance();
 }