Package uk.ac.starlink.vo

## Class MetaPanel

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - uk.ac.starlink.vo.MetaPanel

- All Implemented Interfaces:
    `java.awt.image.ImageObserver`, `java.awt.MenuContainer`, `java.io.Serializable`, `javax.accessibility.Accessible`, `javax.swing.Scrollable`

      public class MetaPanel
      extends javax.swing.JPanel
      implements javax.swing.Scrollable

  Panel for displaying metadata under headings. It is designed to be contained in a scrollpane with vertical scrolling.
  Since:
    16 Feb 2015
  Author:
    Mark Taylor
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JPanel

      `javax.swing.JPanel.AccessibleJPanel`

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `java.awt.Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

  - ### Field Summary

    - ### Fields inherited from class javax.swing.JComponent

      `listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MetaPanel()` | Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `javax.swing.text.JTextComponent` | `addHtmlField​(java.lang.String heading)` | Adds a field for displaying a text item formatted as HTML text.
    `javax.swing.text.JTextComponent` | `addLineField​(java.lang.String heading)` | Adds a field for displaying a single-line item.
    `javax.swing.text.JTextComponent` | `addMultiLineField​(java.lang.String heading)` | Adds a field for displaying a text item with potentially multiple lines.
    `javax.swing.text.JTextComponent` | `addUrlField​(java.lang.String heading, UrlHandler urlHandler)` | Adds a field intended to contain a clickable URL.
    `java.awt.Dimension` | `getPreferredScrollableViewportSize()` |
    `int` | `getScrollableBlockIncrement​(java.awt.Rectangle visibleRect, int orientation, int direction)` |
    `boolean` | `getScrollableTracksViewportHeight()` |
    `boolean` | `getScrollableTracksViewportWidth()` |
    `int` | `getScrollableUnitIncrement​(java.awt.Rectangle visibleRect, int orientation, int direction)` |
    `static java.lang.String` | `mapToHtml​(java.util.Map<java.lang.String,​?> map)` | Converts a string-keyed map to an HTML string suitable for display in an HTML text field of a metapanel.
    `void` | `setFieldText​(javax.swing.text.JTextComponent field, java.lang.String text)` | Sets the content of a field.
    `void` | `setLogo​(javax.swing.Icon logoIcon)` | Sets an image to be displayed at the top of this panel.
    `void` | `setLogoUrl​(java.net.URL iconUrl)` | Sets the URL of an image to be displayed at the top of this panel.

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MetaPanel

          public MetaPanel()

      Constructor.

  - ### Method Detail

    - #### addLineField

          public javax.swing.text.JTextComponent addLineField​(java.lang.String heading)

      Adds a field for displaying a single-line item.
      Parameters:
        `heading` - item heading text
      Returns:
        component whose content can be set

    - #### addMultiLineField

          public javax.swing.text.JTextComponent addMultiLineField​(java.lang.String heading)

      Adds a field for displaying a text item with potentially multiple lines.
      Parameters:
        `heading` - item heading text
      Returns:
        component whose content can be set

    - #### addHtmlField

          public javax.swing.text.JTextComponent addHtmlField​(java.lang.String heading)

      Adds a field for displaying a text item formatted as HTML text.
      Parameters:
        `heading` - item heading text
      Returns:
        component whose content can be set

    - #### addUrlField

          public javax.swing.text.JTextComponent addUrlField​(java.lang.String heading,
                                                             UrlHandler urlHandler)

      Adds a field intended to contain a clickable URL. If a non-null UrlHandler is supplied, its `UrlHandler.clickUrl(java.net.URL)` method is invoked when the user clicks on this field.
      Parameters:
        `heading` - item heading text
        `urlHandler` - handler used when the field is clicked on; may be null

    - #### setFieldText

          public void setFieldText​(javax.swing.text.JTextComponent field,
                                   java.lang.String text)

      Sets the content of a field. As well as the obvious, it fixes it so that after the text is added it's positioned correctly.
      Parameters:
        `field` - field
        `text` - new content

    - #### setLogo

          public void setLogo​(javax.swing.Icon logoIcon)

      Sets an image to be displayed at the top of this panel.
      Parameters:
        `logoIcon` - image, may be null

    - #### setLogoUrl

          public void setLogoUrl​(java.net.URL iconUrl)

      Sets the URL of an image to be displayed at the top of this panel. This will take care not to block the GUI even if the image is slow to load.
      Parameters:
        `iconUrl` - URL of icon

    - #### getPreferredScrollableViewportSize

          public java.awt.Dimension getPreferredScrollableViewportSize()

      Specified by:
        `getPreferredScrollableViewportSize` in interface `javax.swing.Scrollable`

    - #### getScrollableUnitIncrement

          public int getScrollableUnitIncrement​(java.awt.Rectangle visibleRect,
                                                int orientation,
                                                int direction)

      Specified by:
        `getScrollableUnitIncrement` in interface `javax.swing.Scrollable`

    - #### getScrollableBlockIncrement

          public int getScrollableBlockIncrement​(java.awt.Rectangle visibleRect,
                                                 int orientation,
                                                 int direction)

      Specified by:
        `getScrollableBlockIncrement` in interface `javax.swing.Scrollable`

    - #### getScrollableTracksViewportWidth

          public boolean getScrollableTracksViewportWidth()

      Specified by:
        `getScrollableTracksViewportWidth` in interface `javax.swing.Scrollable`

    - #### getScrollableTracksViewportHeight

          public boolean getScrollableTracksViewportHeight()

      Specified by:
        `getScrollableTracksViewportHeight` in interface `javax.swing.Scrollable`

    - #### mapToHtml

          public static java.lang.String mapToHtml​(java.util.Map<java.lang.String,​?> map)

      Converts a string-keyed map to an HTML string suitable for display in an HTML text field of a metapanel.
      Parameters:
        `map` - map containing display items
      Returns:
        renderable HTML representation of `map`