public AbstractEnvelopeReportPieCanvas(Composite parent, final DateRangeCombo combo, int style) {
    super(parent, combo, style);

    transactionService.addEntityListener(this);

    topEnvelopeSource = getInitialEnvelopeSource();
    envelopeStack.push(topEnvelopeSource);

    addKeyListener(
        new KeyAdapter() {

          public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ESC) {
              if (envelopeStack.size() > 1) {
                popSourceEnvelope();
                regenerateChart();
              }
            }
          }
        });
  }