public void eventDispatched(AWTEvent event) {
    if (!isAssertTrigger(event)) {
      return;
    }

    MouseEvent mouse = (MouseEvent) event;

    GuiComponent guiComponent = factory.find(mouse);

    if (guiComponent == null) {
      return;
    }

    assertContext.setGuiComponent(guiComponent);
    assertContext.setPoint(mouse.getPoint());

    JPopupMenu menu = dialogManager.newPopupMenu();

    for (Iterator iterator = actionManager.actions(); iterator.hasNext(); ) {
      AbstractAssert assertAction = (AbstractAssert) iterator.next();
      String actionId = (String) assertAction.getValue(AbstractAssert.ACTION_ID);

      ActionViewUtil.connectActionTo(assertAction, menu.add(actionId));
      assertAction.update();

      if (!guiComponent.isFindable()
          && AbstractAssert.COMPONENT_ASSERT == assertAction.getAssertType()) {
        assertAction.setEnabled(false);
      }
    }

    menu.setBorder(BorderFactory.createLineBorder(Color.blue, 5));
    menu.show(guiComponent.getSwingComponent(), mouse.getX(), mouse.getY());
  }
 public AssertManager(Recorder recorder, DialogManager dialogManager) {
   assertContext = new AssertContext(recorder);
   this.dialogManager = dialogManager;
   this.factory = recorder.getFinder();
   actionManager.declare(new AssertFrame(assertContext));
   actionManager.declare(new AssertSelected(assertContext));
   actionManager.declare(new AssertListSize(assertContext));
   actionManager.declare(new AssertList(assertContext));
   actionManager.declare(new AssertTable(assertContext));
   actionManager.declare(new AssertTree(assertContext));
   actionManager.declare(new AssertValue(assertContext));
 }