Skip to content

Decorators

greipadmin edited this page Dec 17, 2018 · 16 revisions

Intoduction

Decorators are graphical components to visualize data or images. You can also use all decorators for your own widgets.

IDecorator

IDecorator is the interface that is used by controls to paint decorators. All decorators must implement this interface. The base implementation is AbstractDecorator.

Methods

  • void doPaint(GC gc, int x, int y), paints the decorator to the specified GC.
  • Point getSize(), returns the size of the decorator

AbstractDecorator

AbstractDecorator is the base implementation of the IDecorator interface. All decorator implementations are subclasses of this abstract class.

Constructors

  • AbstractDecorator(Control parent)
    • parent the parent control to paint the decorator

Methods

  • void dispose(), is called when the parent control is disposed
  • Display getDisplay(), returns the display of the parent control
  • Control getParent(), returns the parent control
  • void redraw(), force decorator paintig by redrawing the parent control

ImageDecorator

Paint an image to the parent control. Supports all image formats supported by ImageLoaderplus animated GIFs.

Methods

  • void loadImage(InputStream stream), loads an image from input stream
  • void loadImage(String filename), loads an image from the file
  • void setImage(Image image), sets an image
  • void scaleTo(final Point scaleTo), scales the image to the defined size

Example

public static void main(final String[] args) {
  final Display display = new Display();
  final Shell shell = new Shell(display);

  // creates the decorator and sets the image
  final ImageDecorator decorator = new ImageDecorator(shell);
  decorator.setImage(display.getSystemImage(SWT.ICON_INFORMATION));

  // adds a listener to paint the decorator
  shell.addListener(SWT.Paint, e -> decorator.doPaint(e.gc, 100, 10));

  shell.setText("Greip - ImageDecorator Example");
  shell.setSize(300, 100);
  shell.open();

  while (!shell.isDisposed()) {
    if (!display.readAndDispatch()) display.sleep();
  }
  display.dispose();
}

PercentageDecorator

Displays an percentage value as animated graphic.

CountDecorator

Displays an absolute value as animated graphic.

Methods

  • void setFont(final Font font), sets the text font
  • void setForeground(final Color color), sets the foreground (text) color
  • void setInnerDiameter(int innerDiameter), sets the inner diameter in pixels
  • void setOuterDiameter(int outerDiameter), sets the outer diameter in pixels
  • void setShowAnimation(boolean animate), enables or disables the animation
  • void setTreshholdColors(Map<Integer, Color> treshholdMap), defines color treshholds
  • void setCircleColor(Color color), defines the circle color
  • void setValue(int value), sets the displayed value

You can also use all related getters.

Example

public static void main(final String[] args) {
  final Display display = new Display();
  final Shell shell = new Shell(display);

  // creates the decorator and set value
  final CountDecorator decorator = new CountDecorator(shell);
  decorator.setValue(234);
  decorator.setForeground(display.getSystemColor(SWT.COLOR_BLUE));

  // adds a listener to paint the decorator
  shell.addListener(SWT.Paint, e -> decorator.doPaint(e.gc, 100, 10));

  shell.setText("Greip - CountDecorator Example");
  shell.setSize(300, 150);
  shell.open();

  while (!shell.isDisposed()) {
    if (!display.readAndDispatch()) display.sleep();
  }
  display.dispose();
}
Clone this wiki locally