Class TagCloud

  • All Implemented Interfaces:
    Drawable

    public class TagCloud
    extends Canvas
    • Constructor Detail

      • TagCloud

        public TagCloud​(Composite parent,
                        int style,
                        int accuracy,
                        int maxSize)
        Creates a new Tag cloud on the given parent. When using this constructor, please read the following carefully:
        Parameter accuracy defines the size of the raster used when placing strings, and must be a value greater than 0. An accuracy of 1 will theoretically give best results, as the drawable area is analyzed most detailed, but this will also be very slow.
        Parameter maxSize defines the maximum size of the drawable area and must be a power of accuracy, such that accuracy^n=maxSize holds.
        To add scroll bars to the cloud, use SWT.HORIZONTAL and SWT.VERTICAL.
        Parameters:
        accuracy -
        maxSize -
        parent -
        style -
    • Method Detail

      • zoomReset

        public void zoomReset()
        Resets the zoom to 100 % (original size)
      • getZoom

        public double getZoom()
      • zoomFit

        public void zoomFit()
        Resets the zoom such that the generated cloud will fit exactly into the available space (unless the zoom factor is too small or too large).
      • zoomIn

        public void zoomIn()
        Zooms in, by the factor of 10 percent.
      • zoomOut

        public void zoomOut()
        Zooms out, by the factor of 10 percent.
      • getCloudArea

        protected Rectangle getCloudArea()
        Returns the maximum cloud area.
        Returns:
        the maximum cloud area
      • calcExtents

        protected void calcExtents​(IProgressMonitor monitor)
        Calculates the bounds of each word, by determining the Rectangle a path would require to render an element.
        Parameters:
        monitor -
      • layoutWords

        protected int layoutWords​(java.util.Collection<Word> wordsToUse,
                                  IProgressMonitor monitor)
        Generates the layout of the given words.
        Parameters:
        wordsToUse -
        monitor - may be null.
        Returns:
        the number of words which could be placed
      • setWords

        public int setWords​(java.util.List<Word> values,
                            IProgressMonitor monitor)
        Sets the given list as input of the tag cloud, replacing any previous content. By default, available word positions will be determined in-order, starting with the element at position 0.
        Parameters:
        values -
        monitor -
      • setBackgroundMask

        public void setBackgroundMask​(ImageData bgData)
        Set a background mask to define the drawable area of the cloud. The image must be a square containing black and white pixels only. It is scaled to the full size of the drawable region. Black pixels are interpreted as used, such that strings will be drawn on white areas only. If parameter bgData is null, the old mask will be removed.
        Parameters:
        bgData - a square containing black and white pixels only
      • addSelectionListener

        public void addSelectionListener​(SelectionListener listener)
      • removeSelectionListener

        public void removeSelectionListener​(SelectionListener listener)
      • setSelection

        public void setSelection​(java.util.Set<Word> words)
        Marks the set of elements as selected.
        Parameters:
        words - must not be null.
      • redrawTextLayerImage

        public void redrawTextLayerImage()
      • getSelection

        public java.util.Set<Word> getSelection()
        Returns the set of selected elements. Never returns null.
        Returns:
        the set of selected words
      • setSelectionColor

        public void setSelectionColor​(Color color)
        Sets the highlight color of the cloud. Default color is red.
        Parameters:
        color -
      • layoutCloud

        public int layoutCloud​(IProgressMonitor monitor,
                               boolean recalc)
        Does a full relayout of all displayed elements.
        Parameters:
        monitor -
        Returns:
        the number of words that could be placed
      • setMaxFontSize

        public void setMaxFontSize​(int maxSize)
        Sets the maximum font size (which must be a value greater 0). Note that strings which are too large to fit into the cloud region will be skipped. By default, this value is 500.
        Parameters:
        maxSize -
      • setOpacity

        public void setOpacity​(int opacity)
        Sets the opacity of the words, which must be a value between 0 and 255 (inclusive). Currently not very useful...
        Parameters:
        opacity -
      • setMinFontSize

        public void setMinFontSize​(int size)
        Sets the minimum font size. Should be a reasonable value > 0 (twice of accuracy is recommended). By default, this value is 12.
        Parameters:
        size -
      • getImageData

        public ImageData getImageData()
        Returns the ImageData of the text layer image (all rendered elements, unscaled, without highlighted selection). Can be used to print or export the cloud.
        Returns:
        the image data of the text layer image
      • setBoost

        public void setBoost​(int boost)
        Enable boosting for the first boost elements. By default, no elements are boosted.
        Parameters:
        boost -
      • setAntiAlias

        public void setAntiAlias​(boolean enabled)
        Enable or disable antialiasing. Enabled by default.
        Parameters:
        enabled -
      • setBoostFactor

        public void setBoostFactor​(float boostFactor)
      • getSelectionColor

        public Color getSelectionColor()
      • setLayouter

        public void setLayouter​(ILayouter layouter)
      • getMaxFontSize

        public int getMaxFontSize()
      • getMinFontSize

        public int getMinFontSize()
      • getBoost

        public int getBoost()
      • getBoostFactor

        public float getBoostFactor()
      • getWords

        public java.util.List<Word> getWords()
      • getLayouter

        public ILayouter getLayouter()