Skip to content

Latest commit

 

History

History
86 lines (69 loc) · 3.1 KB

File metadata and controls

86 lines (69 loc) · 3.1 KB

Import :

const MainViewFactory = brackets.getModule("view/MainViewFactory")

view/MainViewFactory

MainViewFactory is a singleton for managing view factories.

Registering a view factory:

     registerViewFactory({
          canOpenFile: function (fullPath) {
              return (fullPath.slice(-4) === ".ico");
          },
          openFile: function(file, pane) {
              return createIconView(file, pane);
          }
     });

The openFile method is used to open the file and construct a view of it. Implementation should add the view to the pane

     function createIconView(file, pane) {
         // IconView will construct its DOM and append
         //  it to pane.$el
         var view = new IconView(file, pane.$el);
         // Then tell the pane to add it to
         //  its view map and show it
         pane.addView(view, true);
         return new $.Deferred().resolve().promise();
     }

Factories should only create 1 view of a file per pane. Brackets currently only supports 1 view of a file open at a given time but that may change to allow the same file open in more than 1 pane. Therefore Factories can do a simple check to see if a view already exists and show it before creating a new one:

     var view = pane.getViewForPath(file.fullPath);
     if (view) {
         pane.showView(view);
     } else {
         return createIconView(file, pane);
     }

view/MainViewFactory.registerViewFactory(factory)

Registers a view factory

Kind: inner method of view/MainViewFactory

Param Type Description
factory Factory The view factory to register.

view/MainViewFactory.findSuitableFactoryForPath(fullPath) ⇒ Factory

Finds a factory that can open the specified file

Kind: inner method of view/MainViewFactory
Returns: Factory - A factory that can create a view for the path or undefined if there isn't one.

Param Type Description
fullPath string The file to open.

view/MainViewFactory.Factory : Object

Kind: inner typedef of view/MainViewFactory
Properties

Name Type Description
canOpenFile function Checks if the factory can open the file by its path.
openFile function Function to open the file and return a promise.