Java Code Examples for org.eclipse.swt.graphics.Image#getBounds()

The following examples show how to use org.eclipse.swt.graphics.Image#getBounds() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
/**
 * Draw overlay images for one corner.
 * 
 * @param gc
 * @param x
 * @param y
 * @param ratio
 * @param images
 */
protected void drawOverlayImages(GC gc, int x, int y, double ratio,
		Image[] images) {
	if (images == null)
		return;

	int position = 0;
	for (int i = 0; i < images.length; i++) {
		Image img = images[i];
		gc.drawImage(img, 0, 0, img.getBounds().width,
				img.getBounds().height, x + position, y, (int) (img
						.getBounds().width * ratio),
				(int) (img.getBounds().height * ratio));

		position += img.getBounds().width * ratio;
	}
}
 
Example 2
@Override
public void paint(final Event event, final Object element) {
    super.paint(event, element);
    final Marker marker = (Marker) element;
    if (marker != null && marker.exists()) {
        try {
            final int severity = (Integer) marker.getAttribute("severity");
            final Image image = getImageForSeverity(severity);
            final Rectangle bounds = ((TableItem) event.item)
                    .getBounds(event.index);
            final Rectangle imgBounds = image.getBounds();
            bounds.width /= 2;
            bounds.width -= imgBounds.width / 2;
            bounds.height /= 2;
            bounds.height -= imgBounds.height / 2;

            final int x = bounds.width > 0 ? bounds.x + bounds.width : bounds.x;
            final int y = bounds.height > 0 ? bounds.y + bounds.height : bounds.y;

            event.gc.drawImage(image, x, y);

        } catch (final CoreException e) {
            BonitaStudioLog.error(e);
        }
    }
}
 
Example 3
Source Project: ermasterr   File: ImageUtils.java    License: Apache License 2.0 6 votes vote down vote up
public static void drawAtBufferedImage(final BufferedImage bimg, final Image image, final int x, final int y) throws InterruptedException {

        final ImageData data = image.getImageData();

        for (int i = 0; i < image.getBounds().width; i++) {

            for (int j = 0; j < image.getBounds().height; j++) {
                final int tmp = 4 * (j * image.getBounds().width + i);

                if (data.data.length > tmp + 2) {
                    final int r = 0xff & data.data[tmp + 2];
                    final int g = 0xff & data.data[tmp + 1];
                    final int b = 0xff & data.data[tmp];

                    bimg.setRGB(i + x, j + y, 0xFF << 24 | r << 16 | g << 8 | b << 0);
                }
            }
        }
    }
 
Example 4
Source Project: ermaster-b   File: ExportToImageManager.java    License: Apache License 2.0 6 votes vote down vote up
private void drawAtBufferedImage(BufferedImage bimg, Image image, int x,
		int y) throws InterruptedException {

	ImageData data = image.getImageData();

	for (int i = 0; i < image.getBounds().width; i++) {

		for (int j = 0; j < image.getBounds().height; j++) {
			int tmp = 4 * (j * image.getBounds().width + i);

			if (data.data.length > tmp + 2) {
				int r = 0xff & data.data[tmp + 2];
				int g = 0xff & data.data[tmp + 1];
				int b = 0xff & data.data[tmp];

				bimg.setRGB(i + x, j + y, 0xFF << 24 | r << 16 | g << 8
						| b << 0);
			}

			this.doPostTask();
		}
	}
}
 
Example 5
Source Project: pentaho-kettle   File: JobGraph.java    License: Apache License 2.0 6 votes vote down vote up
public void paintControl( PaintEvent e ) {
  Point area = getArea();
  if ( area.x == 0 || area.y == 0 ) {
    return; // nothing to do!
  }

  Display disp = shell.getDisplay();

  Image img = getJobImage( disp, area.x, area.y, magnification );
  e.gc.drawImage( img, 0, 0 );
  if ( jobMeta.nrJobEntries() == 0 ) {
    e.gc.setForeground( GUIResource.getInstance().getColorCrystalTextPentaho() );
    e.gc.setBackground( GUIResource.getInstance().getColorBackground() );
    e.gc.setFont( GUIResource.getInstance().getFontMedium() );

    Image pentahoImage = GUIResource.getInstance().getImageJobCanvas();
    int leftPosition = ( area.x - pentahoImage.getBounds().width ) / 2;
    int topPosition = ( area.y - pentahoImage.getBounds().height ) / 2;
    e.gc.drawImage( pentahoImage, leftPosition, topPosition );

  }
  img.dispose();

}
 
Example 6
@Override
public void handleEvent(final Event event) {
    if (event.index == colIndex) {
        if (event.type == SWT.EraseItem) {
            event.detail &= (Integer.MAX_VALUE ^ SWT.FOREGROUND);

        } else if (event.type == SWT.PaintItem) {
            final TableItem item = (TableItem) event.item;
            final Image img = item.getImage(colIndex);
            if (img != null) {
                final Rectangle size = img.getBounds();
                final Table tbl = (Table) event.widget;
                event.gc.drawImage(img, event.x + (tbl.getColumn(colIndex).getWidth() - size.width) / 2, event.y + (tbl.getItemHeight() - size.height) / 2);
            }
        }
    }
}
 
Example 7
@Override
public void paintCell(LayerCell cell, GC gc, Rectangle bounds, IConfigRegistry configRegistry) {
	if (paintBg) {
		super.paintCell(cell, gc, bounds, configRegistry);
	}

	Image image = getImage(cell, configRegistry);
	if (image != null) {
		Rectangle imageBounds = image.getBounds();
		IStyle cellStyle = CellStyleUtil.getCellStyle(cell, configRegistry);
		gc.drawImage(image, bounds.x + CellStyleUtil.getHorizontalAlignmentPadding(cellStyle, bounds, imageBounds.width), bounds.y + CellStyleUtil.getVerticalAlignmentPadding(cellStyle, bounds, imageBounds.height));
	}
}
 
Example 8
private int drawGroupImage(GC gc, GalleryItem group, int x, int y,
		Point imageSize2) {
	if (imageSize2 == null)
		return 0;

	Image img = group.getImage();
	Rectangle imgSize = img.getBounds();

	Point offset = RendererHelper.getImageOffset(imageSize2.x, imageSize2.y,
			maxImageWidth, getGroupHeight(group));
	gc.drawImage(img, 0, 0, imgSize.width, imgSize.height, x + offset.x,
			y + offset.y, imageSize2.x, imageSize2.y);

	return maxImageWidth + 2 * minMargin;
}
 
Example 9
Source Project: hop   File: SwtGc.java    License: Apache License 2.0 5 votes vote down vote up
@Override public void drawImage( SvgFile svgFile, int x, int y, int desiredWidth, int desiredHeight, float magnification, double angle ) throws HopException {
  //
  SvgCacheEntry cacheEntry = SvgCache.loadSvg( svgFile );
  SwtUniversalImageSvg imageSvg = new SwtUniversalImageSvg( new SvgImage(cacheEntry.getSvgDocument()) );

  Image img = imageSvg.getAsBitmapForSize( gc.getDevice(), Math.round( desiredWidth * magnification ), Math.round( desiredHeight * magnification ), angle );
  Rectangle bounds = img.getBounds();
  int hx = Math.round( bounds.width / magnification );
  int hy = Math.round( bounds.height / magnification );
  gc.drawImage( img, 0, 0, bounds.width, bounds.height, x - hx / 2, y - hy / 2, hx, hy );
}
 
Example 10
/**
 * {@inheritDoc}
 */
public void draw(GC gc, JaretTable jaretTable, ICellStyle cellStyle, Rectangle drawingArea, IRow row,
        IColumn column, boolean drawFocus, boolean selected, boolean printing) {
    drawBackground(gc, drawingArea, cellStyle, selected, printing);
    Rectangle drect = drawBorder(gc, cellStyle, drawingArea, printing);
    Rectangle rect = applyInsets(drect);
    Object value = column.getValue(row);
    if (value != null) {
        if (value instanceof Image) {
            Image img = (Image) value;
            int x = rect.x + (rect.width - img.getBounds().width) / 2;
            int y = rect.y + (rect.height - img.getBounds().height) / 2;
            gc.drawImage(img, x, y);
        } else {
            // indicate error with red fill
            Color bg = gc.getBackground();
            gc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
            gc.fillRectangle(rect);
            gc.setBackground(bg);
        }
    }
    if (drawFocus) {
        drawFocus(gc, drawingArea);
    }
    drawSelection(gc, drawingArea, cellStyle, selected, printing);

}
 
Example 11
Source Project: erflute   File: ExportToImageManager.java    License: Apache License 2.0 5 votes vote down vote up
private void writePNGorGIF(Image image, String saveFilePath, String formatName) throws IOException, InterruptedException {
    try {
        final ImageLoader loader = new ImageLoader();
        loader.data = new ImageData[] { image.getImageData() };
        loader.save(saveFilePath, format);
    } catch (final SWTException e) {
        e.printStackTrace();
        final BufferedImage bufferedImage =
                new BufferedImage(image.getBounds().width, image.getBounds().height, BufferedImage.TYPE_INT_RGB);
        drawAtBufferedImage(bufferedImage, image, 0, 0);
        ImageIO.write(bufferedImage, formatName, new File(saveFilePath));
    }
}
 
Example 12
/**
     * {@inheritDoc}
     */
    @Override
	public Point computeSize(GC gc, int wHint, int hHint, Object value)
    {
        GridItem item = (GridItem)value;

        gc.setFont(item.getFont(getColumn()));

        int x = 0;

        x += leftMargin;

        if (isTree())
        {
            x += getToggleIndent(item);

            x += toggleRenderer.getBounds().width + insideMargin;

        }

        if (isCheck())
        {
            x += checkRenderer.getBounds().width + insideMargin;
        }

        int y = 0;

        Image image = item.getImage(getColumn());
        if (image != null)
        {
            y = topMargin + image.getBounds().height + bottomMargin;

            x += image.getBounds().width + insideMargin;
        }

// MOPR-DND
// MOPR: replaced this code (to get correct preferred height for cells in word-wrap columns)
//
//       x += gc.stringExtent(item.getText(column)).x + rightMargin;
//
//        y = Math.max(y,topMargin + gc.getFontMetrics().getHeight() + bottomMargin);
//
// with this code:

        int textHeight = 0;
        if(!isWordWrap())
        {
            x += gc.textExtent(item.getText(getColumn())).x + rightMargin;

            textHeight = topMargin + textTopMargin + gc.getFontMetrics().getHeight() + textBottomMargin + bottomMargin;
        }
        else
        {
        	int plainTextWidth;
        	if (wHint == SWT.DEFAULT)
        		plainTextWidth = gc.textExtent(item.getText(getColumn())).x;
        	else
        		plainTextWidth = wHint - x - rightMargin;

            TextLayout currTextLayout = new TextLayout(gc.getDevice());
            currTextLayout.setFont(gc.getFont());
            currTextLayout.setText(item.getText(getColumn()));
            currTextLayout.setAlignment(getAlignment());
            currTextLayout.setWidth(plainTextWidth < 1 ? 1 : plainTextWidth);

            x += plainTextWidth + rightMargin;

            textHeight += topMargin + textTopMargin;
            for(int cnt=0;cnt<currTextLayout.getLineCount();cnt++)
                textHeight += currTextLayout.getLineBounds(cnt).height;
            textHeight += textBottomMargin + bottomMargin;

            currTextLayout.dispose();
        }

        y = Math.max(y, textHeight);

        return new Point(x, y);
    }
 
Example 13
Source Project: hop   File: TextVarWarning.java    License: Apache License 2.0 4 votes vote down vote up
public TextVarWarning( IVariables variables, Composite composite, int flags ) {
  super( composite, SWT.NONE );

  warningInterfaces = new ArrayList<IWarning>();

  FormLayout formLayout = new FormLayout();
  formLayout.marginWidth = 0;
  formLayout.marginHeight = 0;
  formLayout.marginTop = 0;
  formLayout.marginBottom = 0;

  this.setLayout( formLayout );

  // add a text field on it...
  wText = new TextVar( variables, this, flags );

  warningControlDecoration = new ControlDecoration( wText, SWT.CENTER | SWT.RIGHT );
  Image warningImage = GuiResource.getInstance().getImageWarning();
  warningControlDecoration.setImage( warningImage );
  warningControlDecoration.setDescriptionText( BaseMessages.getString( PKG, "TextVar.tooltip.FieldIsInUse" ) );
  warningControlDecoration.hide();

  // If something has changed, check the warning interfaces
  //
  wText.addModifyListener( new ModifyListener() {
    public void modifyText( ModifyEvent arg0 ) {

      // Verify all the warning interfaces.
      // Show the first that has a warning to show...
      //
      boolean foundOne = false;
      for ( IWarning warningInterface : warningInterfaces ) {
        IWarningMessage warningSituation =
          warningInterface.getWarningSituation( wText.getText(), wText, this );
        if ( warningSituation.isWarning() ) {
          foundOne = true;
          warningControlDecoration.show();
          warningControlDecoration.setDescriptionText( warningSituation.getWarningMessage() );
          break;
        }
      }
      if ( !foundOne ) {
        warningControlDecoration.hide();
      }
    }
  } );

  FormData fdText = new FormData();
  fdText.top = new FormAttachment( 0, 0 );
  fdText.left = new FormAttachment( 0, 0 );
  fdText.right = new FormAttachment( 100, -warningImage.getBounds().width );
  wText.setLayoutData( fdText );
}
 
Example 14
/**
 * {@inheritDoc}
 */
public Point computeSize(GC gc, int wHint, int hHint, Object value) {
	GridItem item = (GridItem) value;

	gc.setFont(item.getFont(getColumn()));

	int x = 0;

	x += leftMargin;

	if (isTree()) {
		x += getToggleIndent(item);

		x += toggleRenderer.getBounds().width + insideMargin;

	}

	if (isCheck()) {
		x += checkRenderer.getBounds().width + insideMargin;
	}

	int y = 0;

	Image image = item.getImage(getColumn());
	if (image != null) {
		y = topMargin + image.getBounds().height + bottomMargin;

		x += image.getBounds().width + insideMargin;
	}

	// MOPR-DND
	// MOPR: replaced this code (to get correct preferred height for cells
	// in word-wrap columns)
	//
	// x += gc.stringExtent(item.getText(column)).x + rightMargin;
	//
	// y = Math.max(y,topMargin + gc.getFontMetrics().getHeight() +
	// bottomMargin);
	//
	// with this code:

	int textHeight = 0;
	if (!isWordWrap()) {
		x += gc.textExtent(item.getText(getColumn())).x + rightMargin;

		textHeight = topMargin + textTopMargin + gc.getFontMetrics().getHeight() + textBottomMargin + bottomMargin;
	} else {
		int plainTextWidth;
		if (wHint == SWT.DEFAULT)
			plainTextWidth = getBounds().width - x - rightMargin;
		else
			plainTextWidth = wHint - x - rightMargin;

		TextLayout currTextLayout = new TextLayout(gc.getDevice());
		currTextLayout.setFont(gc.getFont());
		currTextLayout.setText(item.getText(getColumn()));
		currTextLayout.setAlignment(getAlignment());
		currTextLayout.setWidth(plainTextWidth < 1 ? 1 : plainTextWidth);

		x += plainTextWidth + rightMargin;

		textHeight += topMargin + textTopMargin;
		for (int cnt = 0; cnt < currTextLayout.getLineCount(); cnt++)
			textHeight += currTextLayout.getLineBounds(cnt).height;
		textHeight += textBottomMargin + bottomMargin;

		currTextLayout.dispose();
	}

	y = Math.max(y, textHeight);

	return new Point(x, y);
}
 
Example 15
/**
 * {@inheritDoc}
 */
public Point computeSize(GC gc, int wHint, int hHint, Object value) {
	GridItem item = (GridItem) value;

	gc.setFont(item.getFont(getColumn()));

	int x = 0;

	x += leftMargin;

	if (isTree()) {
		x += getToggleIndent(item);

		x += toggleRenderer.getBounds().width + insideMargin;

	}

	if (isCheck()) {
		x += checkRenderer.getBounds().width + insideMargin;
	}

	int y = 0;

	Image image = item.getImage(getColumn());
	if (image != null) {
		y = topMargin + image.getBounds().height + bottomMargin;

		x += image.getBounds().width + insideMargin;
	}

	// MOPR-DND
	// MOPR: replaced this code (to get correct preferred height for cells
	// in word-wrap columns)
	//
	// x += gc.stringExtent(item.getText(column)).x + rightMargin;
	//
	// y = Math.max(y,topMargin + gc.getFontMetrics().getHeight() +
	// bottomMargin);
	//
	// with this code:

	int textHeight = 0;
	if (!isWordWrap()) {
		x += gc.textExtent(item.getText(getColumn())).x + rightMargin;

		textHeight = topMargin + textTopMargin + gc.getFontMetrics().getHeight() + textBottomMargin + bottomMargin;
	} else {
		int plainTextWidth;
		if (wHint == SWT.DEFAULT)
			plainTextWidth = getBounds().width - x - rightMargin;
		else
			plainTextWidth = wHint - x - rightMargin;

		TextLayout currTextLayout = new TextLayout(gc.getDevice());
		currTextLayout.setFont(gc.getFont());
		currTextLayout.setText(item.getText(getColumn()));
		currTextLayout.setAlignment(getAlignment());
		currTextLayout.setWidth(plainTextWidth < 1 ? 1 : plainTextWidth);

		x += plainTextWidth + rightMargin;

		textHeight += topMargin + textTopMargin;
		for (int cnt = 0; cnt < currTextLayout.getLineCount(); cnt++)
			textHeight += currTextLayout.getLineBounds(cnt).height;
		textHeight += textBottomMargin + bottomMargin;

		currTextLayout.dispose();
	}

	y = Math.max(y, textHeight);

	return new Point(x, y);
}
 
Example 16
public static int getImageHeight(final Image img) {
    if (img != null) {
        return img.getBounds().height;
    }
    return 0;
}
 
Example 17
/**
 * {@inheritDoc}
 */
public Point computeSize(GC gc, int wHint, int hHint, Object value) {
	GridItem item = (GridItem) value;

	gc.setFont(item.getFont(getColumn()));

	int x = 0;

	x += leftMargin;

	if (isTree()) {
		x += getToggleIndent(item);

		x += toggleRenderer.getBounds().width + insideMargin;

	}

	if (isCheck()) {
		x += checkRenderer.getBounds().width + insideMargin;
	}

	int y = 0;

	Image image = item.getImage(getColumn());
	if (image != null) {
		y = topMargin + image.getBounds().height + bottomMargin;

		x += image.getBounds().width + insideMargin;
	}

	// MOPR-DND
	// MOPR: replaced this code (to get correct preferred height for cells in word-wrap columns)
	//
	// x += gc.stringExtent(item.getText(column)).x + rightMargin;
	//
	// y = Math.max(y,topMargin + gc.getFontMetrics().getHeight() + bottomMargin);
	//
	// with this code:

	int textHeight = 0;
	if (!isWordWrap()) {
		x += gc.textExtent(item.getText(getColumn())).x + rightMargin;

		textHeight = topMargin + textTopMargin + gc.getFontMetrics().getHeight() + textBottomMargin + bottomMargin;
	} else {
		int plainTextWidth;
		if (wHint == SWT.DEFAULT)
			plainTextWidth = getBounds().width - x - rightMargin;
		else
			plainTextWidth = wHint - x - rightMargin;

		TextLayout currTextLayout = new TextLayout(gc.getDevice());
		currTextLayout.setFont(gc.getFont());
		currTextLayout.setText(item.getText(getColumn()));
		currTextLayout.setAlignment(getAlignment());
		currTextLayout.setWidth(plainTextWidth < 1 ? 1 : plainTextWidth);

		x += plainTextWidth + rightMargin;

		textHeight += topMargin + textTopMargin;
		for (int cnt = 0; cnt < currTextLayout.getLineCount(); cnt++)
			textHeight += currTextLayout.getLineBounds(cnt).height;
		textHeight += textBottomMargin + bottomMargin;

		currTextLayout.dispose();
	}

	y = Math.max(y, textHeight);

	return new Point(x, y);
}
 
Example 18
/**
 * {@inheritDoc}
 */
public Rectangle getTextBounds(GridItem item, boolean preferred)
{
    int x = leftMargin;

    if (isTree())
    {
        x += getToggleIndent(item);

        x += toggleRenderer.getBounds().width + insideMargin;

    }

    if (isCheck())
    {
        x += checkRenderer.getBounds().width + insideMargin;
    }

    Image image = item.getImage(getColumn());
    if (image != null)
    {
        x += image.getBounds().width + insideMargin;
    }

    Rectangle bounds = new Rectangle(x,topMargin + textTopMargin,0,0);

    GC gc = new GC(item.getParent());
    gc.setFont(item.getFont(getColumn()));
    Point size = gc.stringExtent(item.getText(getColumn()));

    bounds.height = size.y;

    if (preferred)
    {
        bounds.width = size.x - 1;
    }
    else
    {
        bounds.width = getBounds().width - x - rightMargin;
    }

    gc.dispose();

    return bounds;
}
 
Example 19
Source Project: erflute   File: InsertedImageFigure.java    License: Apache License 2.0 4 votes vote down vote up
public void setImg(Image image, boolean fixAspectRatio, int alpha) {
    this.image = image;
    this.fixAspectRatio = fixAspectRatio;
    this.alpha = alpha;
    this.imageSize = new Dimension(image.getBounds().width, image.getBounds().height);
}
 
Example 20
@Override
public void run( )
{
	CommandStack stack = 	imageHandle.getModuleHandle( ).getCommandStack( );

	stack.startTrans( Messages.getString("ResetImageOriginalSizeAction.trans.label") ); //$NON-NLS-1$
	String defaultUnit = imageHandle.getModuleHandle( ).getDefaultUnits( );
	Image image = getImage( );
	int width = image.getBounds( ).width;

	int height = image.getBounds( ).height;
	//String url = imageHandle.getURI( );
	try
	{
		if ( type == BYORIGINAL )
		{

			imageHandle.setWidth( width + DesignChoiceConstants.UNITS_PX );

			imageHandle.setHeight( height + DesignChoiceConstants.UNITS_PX );
		}
		else
		{
			int dpi = 0;
			if ( type == BYSCREENDPI )
			{
				dpi = UIUtil.getScreenResolution( )[0];
			}
			else if ( type == BYREPORTDPI )
			{
				dpi = ( (ReportDesignHandle) imageHandle.getModuleHandle( ) ).getImageDPI( );
			}
			else if ( type == BYIMAGEDPI )
			{
				dpi = getImageDPI( );
			}
			double inch = ( (double) width ) / dpi;

			DimensionValue value = DimensionUtil.convertTo( inch,
					DesignChoiceConstants.UNITS_IN,
					defaultUnit );
			imageHandle.getWidth( ).setValue( value );

			inch = ( (double) height ) / dpi;
			value = DimensionUtil.convertTo( inch,
					DesignChoiceConstants.UNITS_IN,
					defaultUnit );
			imageHandle.getHeight( ).setValue( value );
		}
	}
	catch ( SemanticException e )
	{
		stack.rollbackAll( );
		ExceptionHandler.handle( e );
		return ;
	}
	
	stack.commit( );
}