Details

    • Complexity:
      High

      Description

      We're removing the render method from CustomDatatypeHandler, because it doesn't belong on that interface. But the idea is important.

      We should introduce a new interface in the web layer that (maybe) extends CustomDatatypeHandler, and (definitely) is extended by both FieldGenDatatypeHandler and WebDatatypeHandler. My initial proposal is something like this:

      interface HtmlDisplayableDatatypeHandler extends CustomDatatypeHandler {
      
          /**
           * Renders an HTML-formatted summary view of the custom value.
           * This method should return quickly, e.g. in case we're rendering thousands of custom values in a table.
           */
          Summary toHtmlSummary(CustomDatatype dt, String valueReference, int suggestedMaxSize);
      
          /**
           * Renders the full view of a custom value, as HTML.
           */
          String toHtml(CustomDatatype dt, String valueReference);
      }
      
      // class Summary is defined in TRUNK-3035
      

      I'm thinking that code which displays these custom values in summary pages would call the toHtmlSummary method, and if the returned summary is not complete, it can display a link to the full view of this value. But the handler implementation doesn't need to worry about including the link in this common case.

        Gliffy Diagrams

          Attachments

            Attachments-Category-Modification

              Activity

                People

                • Assignee:
                  darius Darius Jazayeri
                  Reporter:
                  darius Darius Jazayeri
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: