method open_file ?attributes f =
      try
        let factory = Ed_view.factory_of_filename f in
        match Ed_view.factory_open_file ~factory
          (self :> Ed_view.topwin) active_view ?attributes f
        with
          `Use_view v -> v#grab_focus
        | `New_view v ->
            init_view (self :> Ed_view.topwin) v;
            self#add_view_in_active_view_container v
      with
        Failure s ->
          self#error_message s