Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-11949

Rework help tooltip logic to prevent problems with lifecycle strictness check

    Details

    • Type: Task Task
    • Status: Open Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: Backlog
    • Security Level: Public (Public: Anyone can view)
    • Labels:
    • Similar issues:
      KULRICE-11529Consolidate and simplify ID generation logic
      KULRICE-11784Rework DataTablesPagingHelper to use lifecycle to remove form storage requirements
      KULRICE-12003Strictness check logs bunch of messages when using light table
      KULRICE-13259Widgets tooltip help not displayed correctly
      KULRICE-11793Rework collection paging to reduce memory usage
      KULRICE-10906Rework lookup fuctionality to use post metadata instead of the posted view
      KULRICE-11700Replace tooltip implementation with Bootstrap
      KULRICE-7220Look into replacing component update process with full view lifecycle
      KULRICE-7987Problems with tooltip and mouse event
      KULRICE-8081Problem with 'no tooltips' in validation framework demo
    • Epic Link:
    • Rice Module:
      KRAD
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes

      Description

      • Strict element equals check in lifeycycle phase base:

      if (ViewLifecycle.isStrict()) {
      if (element == view) {
      if (!StringUtils.isEmpty(viewPath))

      { ViewLifecycle.reportIllegalState("View path is not empty " + viewPath); }

      } else {
      LifecycleElement referredElement = ObjectPropertyUtils.getPropertyValue(view, viewPath);
      if (referredElement != null) {
      referredElement = (LifecycleElement) referredElement.unwrap();
      if (element != referredElement)

      { ViewLifecycle.reportIllegalState( "View path " + viewPath + " refers to an element other than " + element.getClass() + " " + element.getId() + " " + element.getViewPath() + (referredElement == null ? "" : " " + referredElement.getClass() + " " + referredElement.getId() + " " + referredElement.getViewPath())); }

      }
      }
      }

      I had to comment this out for now. It was causing ViewLifecycleTest#testKitchenSink to fail. The reason being we have this strange situation with Help.toolTip. In perform finalize, the help widget actually sets the parent#header#toolTip from its own toolTip (or moves it). So there are a couple of problems, one we have the same component at two different view paths. The next problem, is when the phase is invoked for header.toolTip, it actually points to the toolTip the header had before help set its tooltip. This is because the phase successors are all initialized (with the element) by the parent, and the element doesn’t get readjusted if it was changed by another sibling. Not sure if this all makese sense! I am not exactly sure how to fix it all at this point as well, but will create a Jira to look into it further.

        Activity

        There are no comments yet on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Jerry Neal (Inactive)
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Structure Helper Panel