當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript mainmenu.EditMenu類代碼示例

本文整理匯總了TypeScript中@jupyterlab/mainmenu.EditMenu的典型用法代碼示例。如果您正苦於以下問題:TypeScript EditMenu類的具體用法?TypeScript EditMenu怎麽用?TypeScript EditMenu使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了EditMenu類的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: describe

  describe('EditMenu', () => {
    let commands: CommandRegistry;
    let menu: EditMenu;
    let tracker: InstanceTracker<Wodget>;
    const wodget = new Wodget();

    before(() => {
      commands = new CommandRegistry();
    });

    beforeEach(() => {
      menu = new EditMenu({ commands });
      tracker = new InstanceTracker<Wodget>({ namespace: 'wodget' });
      tracker.add(wodget);
    });

    afterEach(() => {
      menu.dispose();
      tracker.dispose();
      wodget.dispose();
    });

    describe('#constructor()', () => {
      it('should construct a new edit menu', () => {
        expect(menu).to.be.an.instanceof(EditMenu);
        expect(menu.menu.title.label).to.equal('Edit');
      });
    });

    describe('#undoers', () => {
      it('should allow setting of an IUndoer', () => {
        const undoer: IEditMenu.IUndoer<Wodget> = {
          tracker,
          undo: widget => {
            widget.state = 'undo';
            return;
          },
          redo: widget => {
            widget.state = 'redo';
            return;
          }
        };
        menu.undoers.add(undoer);
        delegateExecute(wodget, menu.undoers, 'undo');
        expect(wodget.state).to.equal('undo');
        delegateExecute(wodget, menu.undoers, 'redo');
        expect(wodget.state).to.equal('redo');
      });
    });

    describe('#clearers', () => {
      it('should allow setting of an IClearer', () => {
        const clearer: IEditMenu.IClearer<Wodget> = {
          tracker,
          noun: 'Nouns',
          clearCurrent: widget => {
            widget.state = 'clearCurrent';
            return;
          },
          clearAll: widget => {
            widget.state = 'clearAll';
            return;
          }
        };
        menu.clearers.add(clearer);
        delegateExecute(wodget, menu.clearers, 'clearCurrent');
        expect(wodget.state).to.equal('clearCurrent');
        delegateExecute(wodget, menu.clearers, 'clearAll');
        expect(wodget.state).to.equal('clearAll');
      });
    });

    describe('#findReplacers', () => {
      it('should allow setting of an IFindReplacer', () => {
        const finder: IEditMenu.IFindReplacer<Wodget> = {
          tracker,
          find: widget => {
            widget.state = 'find';
            return;
          },
          findAndReplace: widget => {
            widget.state = 'findAndReplace';
            return;
          }
        };
        menu.findReplacers.add(finder);
        delegateExecute(wodget, menu.findReplacers, 'find');
        expect(wodget.state).to.equal('find');
        delegateExecute(wodget, menu.findReplacers, 'findAndReplace');
        expect(wodget.state).to.equal('findAndReplace');
      });
    });
  });
開發者ID:willingc,項目名稱:jupyterlab,代碼行數:93,代碼來源:edit.spec.ts

示例2: createEditMenu

export function createEditMenu(app: JupyterLab, menu: EditMenu): void {
  const commands = menu.menu.commands;

  // Add the undo/redo commands the the Edit menu.
  commands.addCommand(CommandIDs.undo, {
    label: 'Undo',
    isEnabled: Private.delegateEnabled(app, menu.undoers, 'undo'),
    execute: Private.delegateExecute(app, menu.undoers, 'undo')
  });
  commands.addCommand(CommandIDs.redo, {
    label: 'Redo',
    isEnabled: Private.delegateEnabled(app, menu.undoers, 'redo'),
    execute: Private.delegateExecute(app, menu.undoers, 'redo')
  });
  menu.addGroup(
    [{ command: CommandIDs.undo }, { command: CommandIDs.redo }],
    0
  );

  // Add the clear commands to the Edit menu.
  commands.addCommand(CommandIDs.clearCurrent, {
    label: () => {
      const noun = Private.delegateLabel(app, menu.clearers, 'noun');
      const enabled = Private.delegateEnabled(
        app,
        menu.clearers,
        'clearCurrent'
      )();
      return `Clear${enabled ? ` ${noun}` : ''}`;
    },
    isEnabled: Private.delegateEnabled(app, menu.clearers, 'clearCurrent'),
    execute: Private.delegateExecute(app, menu.clearers, 'clearCurrent')
  });
  commands.addCommand(CommandIDs.clearAll, {
    label: () => {
      const noun = Private.delegateLabel(app, menu.clearers, 'pluralNoun');
      const enabled = Private.delegateEnabled(app, menu.clearers, 'clearAll')();
      return `Clear All${enabled ? ` ${noun}` : ''}`;
    },
    isEnabled: Private.delegateEnabled(app, menu.clearers, 'clearAll'),
    execute: Private.delegateExecute(app, menu.clearers, 'clearAll')
  });
  menu.addGroup(
    [{ command: CommandIDs.clearCurrent }, { command: CommandIDs.clearAll }],
    10
  );

  // Add the find/replace commands the the Edit menu.
  commands.addCommand(CommandIDs.find, {
    label: 'Find…',
    isEnabled: Private.delegateEnabled(app, menu.findReplacers, 'find'),
    execute: Private.delegateExecute(app, menu.findReplacers, 'find')
  });
  commands.addCommand(CommandIDs.findAndReplace, {
    label: 'Find and Replace…',
    isEnabled: Private.delegateEnabled(
      app,
      menu.findReplacers,
      'findAndReplace'
    ),
    execute: Private.delegateExecute(app, menu.findReplacers, 'findAndReplace')
  });
  menu.addGroup(
    [{ command: CommandIDs.find }, { command: CommandIDs.findAndReplace }],
    200
  );
  commands.addCommand(CommandIDs.goToLine, {
    label: 'Go to Line…',
    isEnabled: Private.delegateEnabled(app, menu.goToLiners, 'goToLine'),
    execute: Private.delegateExecute(app, menu.goToLiners, 'goToLine')
  });
  menu.addGroup([{ command: CommandIDs.goToLine }], 200);
}
開發者ID:SylvainCorlay,項目名稱:jupyterlab,代碼行數:73,代碼來源:index.ts

示例3: afterEach

 afterEach(() => {
   menu.dispose();
   tracker.dispose();
   wodget.dispose();
 });
開發者ID:willingc,項目名稱:jupyterlab,代碼行數:5,代碼來源:edit.spec.ts


注:本文中的@jupyterlab/mainmenu.EditMenu類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。