Skip to main content

MainViewFactory

Import :

const MainViewFactory = brackets.getModule("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);
}

Kind: global variable

registerViewFactory(factory)

Registers a view factory

Kind: global function

ParamTypeDescription
factoryFactoryThe view factory to register.

findSuitableFactoryForPath(fullPath) ⇒ Factory

Finds a factory that can open the specified file

Kind: global function
Returns: Factory - A factory that can create a view for the path or undefined if there isn't one.

ParamTypeDescription
fullPathstringThe file to open.

Factory : Object

Kind: global typedef
Properties

NameTypeDescription
canOpenFilefunctionChecks if the factory can open the file by its path.
openFilefunctionFunction to open the file and return a promise.