List of usage examples for com.google.gwt.canvas.dom.client Context2d fill
public final native void fill() ;
From source file:org.rstudio.studio.client.workbench.views.vcs.dialog.graph.GraphLine.java
License:Open Source License
private void draw(Canvas canvas, GraphTheme theme) { int height = theme.getRowHeight(); int colWidth = theme.getColumnWidth(); double pad = theme.getVerticalLinePadding(); canvas.setCoordinateSpaceHeight(height); canvas.setCoordinateSpaceWidth(colWidth * getTotalWidth(theme)); Context2d ctx = canvas.getContext2d(); //ctx.clearRect(0, 0, colWidth * columns_.length, height); ctx.translate(colWidth / 2.0, 0);/* w w w. j a v a 2 s. c o m*/ int startPos = -1; int endPos = -1; int nexusColumn = -1; for (int i = 0; i < columns_.length; i++) { GraphColumn c = columns_[i]; if (!c.start) startPos++; if (!c.end) endPos++; ctx.setStrokeStyle(theme.getColorForId(c.id)); ctx.setLineWidth(theme.getStrokeWidth()); ctx.setLineJoin(LineJoin.ROUND); if (!c.nexus && !c.start && !c.end) { // Just draw a line from start to end position ctx.beginPath(); ctx.moveTo(startPos * colWidth, 0); ctx.lineTo(startPos * colWidth, pad); // This next lineTo helps ensure that the shape of the line looks // congruous to any specials on the same line ctx.lineTo(Math.min(startPos, endPos) * colWidth, height / 2.0); ctx.lineTo(endPos * colWidth, height - pad); ctx.lineTo(endPos * colWidth, height); ctx.stroke(); } else { // something special if (c.nexus) { nexusColumn = i; ctx.setFillStyle(theme.getColorForId(c.id)); } if (!c.start) { // draw from i to nexusColumn; ctx.beginPath(); ctx.moveTo(startPos * colWidth, 0); ctx.lineTo(startPos * colWidth, pad); ctx.lineTo(nexusColumn * colWidth, height / 2.0); ctx.stroke(); } if (!c.end) { // draw from nexusColumn to endPosition ctx.beginPath(); ctx.moveTo(nexusColumn * colWidth, height / 2.0); ctx.lineTo(endPos * colWidth, height - pad); ctx.lineTo(endPos * colWidth, height); ctx.stroke(); } } } // draw a circle on the nexus ctx.beginPath(); ctx.arc(nexusColumn * colWidth, height / 2.0, theme.getCircleRadius() + theme.getStrokeWidth(), 0, Math.PI * 2); ctx.closePath(); ctx.fill(); ctx.beginPath(); ctx.arc(nexusColumn * colWidth, height / 2.0, theme.getCircleRadius(), 0, Math.PI * 2); ctx.closePath(); ctx.setFillStyle("white"); ctx.fill(); }
From source file:playn.html.HtmlImageLayerCanvas.java
License:Apache License
@Override public void paint(Context2d ctx, float parentAlpha) { if (!visible() || !img.isReady()) return;//from w w w . ja va 2s . co m ctx.save(); transform(ctx); ctx.setGlobalAlpha(parentAlpha * alpha); float width = width(); float height = height(); if (repeatX || repeatY) { updatePattern(ctx); ctx.setFillStyle(pattern); ctx.beginPath(); ctx.rect(0, 0, width, height); ctx.scale(repeatX ? 1 : width / img.width(), repeatY ? 1 : height / img.height()); ctx.fill(); } else { ((HtmlCanvas.Drawable) img).draw(ctx, 0, 0, width, height); } ctx.restore(); }
From source file:stroom.widget.htree.client.RoundedRectangle.java
License:Apache License
public void draw(final Context2d ctx, final double x, final double y, final double width, final double height, final double radius, final FillStrokeStyle fill, final FillStrokeStyle stroke) { ctx.beginPath();// w ww . ja v a 2 s. c o m ctx.moveTo(x + radius, y); ctx.lineTo(x + width - radius, y); ctx.quadraticCurveTo(x + width, y, x + width, y + radius); ctx.lineTo(x + width, y + height - radius); ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); ctx.lineTo(x + radius, y + height); ctx.quadraticCurveTo(x, y + height, x, y + height - radius); ctx.lineTo(x, y + radius); ctx.quadraticCurveTo(x, y, x + radius, y); ctx.closePath(); if (fill != null) { ctx.setFillStyle(fill); ctx.fill(); } if (stroke != null) { ctx.setStrokeStyle(stroke); ctx.stroke(); } }