index.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Copyright (c) Jupyter Development Team.
  2. // Distributed under the terms of the Modified BSD License.
  3. import { ToolbarButton } from '@jupyterlab/apputils';
  4. import { Panel } from '@lumino/widgets';
  5. import { IDebugger } from '../tokens';
  6. import { BreakpointsBody } from './body';
  7. import { BreakpointsHeader } from './header';
  8. import { closeAllIcon } from '../icons';
  9. import { BreakpointsModel } from './model';
  10. /**
  11. * A Panel to show a list of breakpoints.
  12. */
  13. export class Breakpoints extends Panel {
  14. /**
  15. * Instantiate a new Breakpoints Panel.
  16. * @param options The instantiation options for a Breakpoints Panel.
  17. */
  18. constructor(options: Breakpoints.IOptions) {
  19. super();
  20. const { model, service } = options;
  21. const header = new BreakpointsHeader();
  22. const body = new BreakpointsBody(model);
  23. header.toolbar.addItem(
  24. 'closeAll',
  25. new ToolbarButton({
  26. icon: closeAllIcon,
  27. onClick: () => {
  28. void service.clearBreakpoints();
  29. },
  30. tooltip: 'Remove All Breakpoints'
  31. })
  32. );
  33. this.addWidget(header);
  34. this.addWidget(body);
  35. this.addClass('jp-DebuggerBreakpoints');
  36. }
  37. }
  38. /**
  39. * A namespace for Breakpoints `statics`.
  40. */
  41. export namespace Breakpoints {
  42. /**
  43. * Instantiation options for `Breakpoints`.
  44. */
  45. export interface IOptions extends Panel.IOptions {
  46. /**
  47. * The breakpoints model.
  48. */
  49. model: BreakpointsModel;
  50. /**
  51. * The debugger service.
  52. */
  53. service: IDebugger;
  54. }
  55. }