Uploaded image for project: 'Click'
  1. Click
  2. CLK-543

Refactor AbstractLink to Link and include Simple/External Link functionality.

    XMLWordPrintableJSON

    Details

    • Type: New Feature
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 3.0.0
    • Component/s: extras
    • Labels:

      Description

      There doesn't seem to be any "simple link" control in Click to be able to point to an arbitrary URL (internal but external too).
      There's now the ExternalLink but it's just too specific - extending it would conflict with it's name (maybe a rename would be better).

      In many cases there's no distinction in the application between an internal an external URL (e.g. because the external might be a subdomain).

      Another problem is that AbstractLink is can't be used directly for these simple cases (being abstract).

      Basically a SimpleLink code would look like ExternalLink, but it would have this additional snippet after L:106:
      <code>
      String ctxPath = getContext().getRequest().getContextPath();
      if(!getTargetPath().contains("://"))

      { buffer.append(ctxPath); }

      </code>
      This would allow to use only one control, and in the application logic, depending on the target, to let the control itself render the required context path if needed.
      ----------------------------------------------------------------------
      Update:

      • Refactor abstract AbstractLink class to a concrete class, simply named "Link"
      • Include basic Link functionality in this Link class - something like SimpleLink and ExternalLink
      • Deprecate ExternalLink

      Users will be able to use the Link control directly so there will be no confusions.
      (Most of the time they use ActionLink without an action, because AbstractLink is abstract)

        Attachments

          Activity

            People

            • Assignee:
              a_adrian Adrian A.
              Reporter:
              a_adrian Adrian A.
            • Votes:
              3 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: