com.mxgraph.shape.mxLabelShape Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of AptSpringProcessor Show documentation
Show all versions of AptSpringProcessor Show documentation
This project contains the apt processor that implements all the checks enumerated in @Verify. It is a self contained, and
shaded jar.
The newest version!
package com.mxgraph.shape;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Rectangle;
import java.awt.geom.GeneralPath;
import java.util.Map;
import com.mxgraph.canvas.mxGraphics2DCanvas;
import com.mxgraph.util.mxConstants;
import com.mxgraph.util.mxRectangle;
import com.mxgraph.util.mxUtils;
import com.mxgraph.view.mxCellState;
public class mxLabelShape extends mxImageShape
{
/**
*
*/
public void paintShape(mxGraphics2DCanvas canvas, mxCellState state)
{
super.paintShape(canvas, state);
if (mxUtils.isTrue(state.getStyle(), mxConstants.STYLE_GLASS, false))
{
drawGlassEffect(canvas, state);
}
}
/**
* Draws the glass effect
*/
public static void drawGlassEffect(mxGraphics2DCanvas canvas,
mxCellState state)
{
double size = 0.4;
canvas.getGraphics().setPaint(
new GradientPaint((float) state.getX(), (float) state.getY(),
new Color(1, 1, 1, 0.9f), (float) (state.getX()),
(float) (state.getY() + state.getHeight() * size),
new Color(1, 1, 1, 0.3f)));
float sw = (float) (mxUtils.getFloat(state.getStyle(),
mxConstants.STYLE_STROKEWIDTH, 1) * canvas.getScale() / 2);
GeneralPath path = new GeneralPath();
path.moveTo((float) state.getX() - sw, (float) state.getY() - sw);
path.lineTo((float) state.getX() - sw,
(float) (state.getY() + state.getHeight() * size));
path.quadTo((float) (state.getX() + state.getWidth() * 0.5),
(float) (state.getY() + state.getHeight() * 0.7),
(float) (state.getX() + state.getWidth() + sw),
(float) (state.getY() + state.getHeight() * size));
path.lineTo((float) (state.getX() + state.getWidth() + sw),
(float) state.getY() - sw);
path.closePath();
canvas.getGraphics().fill(path);
}
/**
*
*/
public Rectangle getImageBounds(mxGraphics2DCanvas canvas, mxCellState state)
{
Map style = state.getStyle();
double scale = canvas.getScale();
String imgAlign = mxUtils.getString(style,
mxConstants.STYLE_IMAGE_ALIGN, mxConstants.ALIGN_LEFT);
String imgValign = mxUtils.getString(style,
mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,
mxConstants.ALIGN_MIDDLE);
int imgWidth = (int) (mxUtils.getInt(style,
mxConstants.STYLE_IMAGE_WIDTH, mxConstants.DEFAULT_IMAGESIZE) * scale);
int imgHeight = (int) (mxUtils.getInt(style,
mxConstants.STYLE_IMAGE_HEIGHT, mxConstants.DEFAULT_IMAGESIZE) * scale);
int spacing = (int) (mxUtils
.getInt(style, mxConstants.STYLE_SPACING, 2) * scale);
mxRectangle imageBounds = new mxRectangle(state);
if (imgAlign.equals(mxConstants.ALIGN_CENTER))
{
imageBounds.setX(imageBounds.getX()
+ (imageBounds.getWidth() - imgWidth) / 2);
}
else if (imgAlign.equals(mxConstants.ALIGN_RIGHT))
{
imageBounds.setX(imageBounds.getX() + imageBounds.getWidth()
- imgWidth - spacing - 2);
}
else
// LEFT
{
imageBounds.setX(imageBounds.getX() + spacing + 4);
}
if (imgValign.equals(mxConstants.ALIGN_TOP))
{
imageBounds.setY(imageBounds.getY() + spacing);
}
else if (imgValign.equals(mxConstants.ALIGN_BOTTOM))
{
imageBounds.setY(imageBounds.getY() + imageBounds.getHeight()
- imgHeight - spacing);
}
else
// MIDDLE
{
imageBounds.setY(imageBounds.getY()
+ (imageBounds.getHeight() - imgHeight) / 2);
}
imageBounds.setWidth(imgWidth);
imageBounds.setHeight(imgHeight);
return imageBounds.getRectangle();
}
/**
*
*/
public Color getFillColor(mxGraphics2DCanvas canvas, mxCellState state)
{
return mxUtils.getColor(state.getStyle(), mxConstants.STYLE_FILLCOLOR);
}
/**
*
*/
public Color getStrokeColor(mxGraphics2DCanvas canvas, mxCellState state)
{
return mxUtils
.getColor(state.getStyle(), mxConstants.STYLE_STROKECOLOR);
}
/**
*
*/
public boolean hasGradient(mxGraphics2DCanvas canvas, mxCellState state)
{
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy