本文整理匯總了TypeScript中@jupyterlab/apputils.InstanceTracker類的典型用法代碼示例。如果您正苦於以下問題:TypeScript InstanceTracker類的具體用法?TypeScript InstanceTracker怎麽用?TypeScript InstanceTracker使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了InstanceTracker類的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: MimeDocumentFactory
options.forEach(option => {
let factory = new MimeDocumentFactory({
renderTimeout: item.renderTimeout,
dataType: item.dataType,
rendermime,
modelName: option.modelName,
name: option.name,
primaryFileType: registry.getFileType(option.primaryFileType),
fileTypes: option.fileTypes,
defaultFor: option.defaultFor
});
registry.addWidgetFactory(factory);
const factoryName = factory.name;
const namespace = `${factoryName}-renderer`;
const tracker = new InstanceTracker<MimeDocument>({ namespace });
// Handle state restoration.
restorer.restore(tracker, {
command: 'docmanager:open',
args: widget => ({ path: widget.context.path, factory: factoryName }),
name: widget => widget.context.path
});
factory.widgetCreated.connect((sender, widget) => {
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => { tracker.save(widget); });
tracker.add(widget);
});
});
示例2: InspectorManager
activate: (app: JupyterLab, palette: ICommandPalette, restorer: ILayoutRestorer): IInspector => {
const { commands, shell } = app;
const manager = new InspectorManager();
const category = 'Inspector';
const command = CommandIDs.open;
const label = 'Open Inspector';
const tracker = new InstanceTracker<InspectorPanel>({
namespace: 'inspector',
shell
});
/**
* Create and track a new inspector.
*/
function newInspectorPanel(): InspectorPanel {
const inspector = new InspectorPanel();
inspector.id = 'jp-inspector';
inspector.title.label = 'Inspector';
inspector.title.closable = true;
inspector.disposed.connect(() => {
if (manager.inspector === inspector) {
manager.inspector = null;
}
});
// Track the inspector.
tracker.add(inspector);
// Add the default inspector child items.
Private.defaultInspectorItems.forEach(item => { inspector.add(item); });
return inspector;
}
// Handle state restoration.
restorer.restore(tracker, {
command,
args: () => null,
name: () => 'inspector'
});
// Add command to registry and palette.
commands.addCommand(command, {
label,
execute: () => {
if (!manager.inspector || manager.inspector.isDisposed) {
manager.inspector = newInspectorPanel();
shell.addToMainArea(manager.inspector);
}
if (manager.inspector.isAttached) {
tracker.activate(manager.inspector);
}
}
});
palette.addItem({ command, category });
return manager;
}
示例3: describe
describe('RunMenu', () => {
let commands: CommandRegistry;
let menu: RunMenu;
let tracker: InstanceTracker<Wodget>;
let wodget: Wodget;
beforeAll(() => {
commands = new CommandRegistry();
});
beforeEach(() => {
wodget = new Wodget();
menu = new RunMenu({ commands });
tracker = new InstanceTracker<Wodget>({ namespace: 'wodget' });
void tracker.add(wodget);
});
afterEach(() => {
menu.dispose();
tracker.dispose();
wodget.dispose();
});
describe('#constructor()', () => {
it('should construct a new run menu', () => {
expect(menu).to.be.an.instanceof(RunMenu);
expect(menu.menu.title.label).to.equal('Run');
});
});
describe('#codeRunners', () => {
it('should allow setting of an ICodeRunner', () => {
const runner: IRunMenu.ICodeRunner<Wodget> = {
tracker,
noun: 'Noun',
run: widget => {
widget.state = 'run';
return Promise.resolve(void 0);
},
runAll: widget => {
widget.state = 'runAll';
return Promise.resolve(void 0);
},
restartAndRunAll: widget => {
widget.state = 'restartAndRunAll';
return Promise.resolve(void 0);
}
};
menu.codeRunners.add(runner);
void delegateExecute(wodget, menu.codeRunners, 'run');
expect(wodget.state).to.equal('run');
void delegateExecute(wodget, menu.codeRunners, 'runAll');
expect(wodget.state).to.equal('runAll');
void delegateExecute(wodget, menu.codeRunners, 'restartAndRunAll');
expect(wodget.state).to.equal('restartAndRunAll');
});
});
});
示例4:
return promise.then(session => {
term.session = session;
tracker.add(term);
shell.activateById(term.id);
return term;
}).catch(() => { term.dispose(); });
示例5:
.then(session => {
term.session = session;
void tracker.add(main);
app.shell.activateById(main.id);
return main;
})
示例6:
factory.widgetCreated.connect((sender, widget) => {
Private.factoryNameProperty.set(widget, factory.name);
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => {
void tracker.save(widget);
});
void tracker.add(widget);
});
示例7:
execute: () => {
let options = Terminal.defaultOptions;
if (options.fontSize < 72) {
options.fontSize++;
tracker.forEach(widget => {
widget.content.fontSize = options.fontSize;
});
}
},
示例8: newInspectorPanel
execute: () => {
if (!manager.inspector || manager.inspector.isDisposed) {
manager.inspector = newInspectorPanel();
shell.addToMainArea(manager.inspector);
}
if (manager.inspector.isAttached) {
tracker.activate(manager.inspector);
}
}
示例9:
execute: () => {
tracker.forEach(widget => {
if (widget.theme === 'dark') {
widget.theme = 'light';
} else {
widget.theme = 'dark';
}
});
},