mirror of
https://github.com/octoleo/plantuml.git
synced 2024-11-10 15:50:57 +00:00
Preprocessing with __MIT__ is now working
This commit is contained in:
parent
957dfea0b5
commit
5febaa9aeb
@ -119,7 +119,7 @@ public class DirectDraw {
|
||||
final StringBounder stringBounder = new StringBounderCanvas(g2d);
|
||||
final UGraphicG2d ug = new UGraphicG2d(back, ColorMapper.IDENTITY, stringBounder, g2d, 1.0, FileFormat.PNG);
|
||||
WasmLog.log("...cleaning...");
|
||||
ug.apply(back).apply(back.bg()).draw(new URectangle(frameWidth, frameHeight));
|
||||
ug.apply(back).apply(back.bg()).draw(URectangle.build(frameWidth, frameHeight));
|
||||
WasmLog.log("...drawing...");
|
||||
|
||||
system.exportDiagramGraphic(ug);
|
||||
|
@ -120,7 +120,7 @@ public class Raw {
|
||||
}
|
||||
final UGraphicG2d ug = new UGraphicG2d(back, mapper, stringBounder, g2d, 1.0, FileFormat.RAW);
|
||||
WasmLog.log("...cleaning...");
|
||||
ug.apply(back).apply(back.bg()).draw(new URectangle(MAX, MAX));
|
||||
ug.apply(back).apply(back.bg()).draw(URectangle.build(MAX, MAX));
|
||||
ug.resetMax();
|
||||
WasmLog.log("...drawing...");
|
||||
|
||||
@ -204,7 +204,7 @@ public class Raw {
|
||||
}
|
||||
final UGraphicG2d ug = new UGraphicG2d(back, mapper, stringBounder, g2d, 1.0, FileFormat.RAW);
|
||||
WasmLog.log("...cleaning...");
|
||||
ug.apply(back).apply(back.bg()).draw(new URectangle(MAX, MAX));
|
||||
ug.apply(back).apply(back.bg()).draw(URectangle.build(MAX, MAX));
|
||||
ug.resetMax();
|
||||
WasmLog.log("...drawing...");
|
||||
|
||||
|
@ -98,6 +98,7 @@ import ext.plantuml.com.ctreber.aclib.sort.QuickSort;
|
||||
*/
|
||||
public class ACearth {
|
||||
// ::remove folder when __CORE__
|
||||
// ::remove folder when __MIT__
|
||||
public static final String VERSION = "1.1";
|
||||
public static final String BUILD = "22.11.2002 004";
|
||||
|
||||
|
@ -24,82 +24,83 @@ import java.util.Hashtable;
|
||||
* @author Sean Owen
|
||||
*/
|
||||
public final class BarcodeFormat {
|
||||
// ::remove folder when __HAXE__
|
||||
// ::remove folder when __CORE__
|
||||
// ::remove folder when __HAXE__
|
||||
// ::remove folder when __CORE__
|
||||
// ::remove folder when __MIT__
|
||||
|
||||
// No, we can't use an enum here. J2ME doesn't support it.
|
||||
// No, we can't use an enum here. J2ME doesn't support it.
|
||||
|
||||
private static final Hashtable VALUES = new Hashtable();
|
||||
private static final Hashtable VALUES = new Hashtable();
|
||||
|
||||
/** QR Code 2D barcode format. */
|
||||
public static final BarcodeFormat QR_CODE = new BarcodeFormat("QR_CODE");
|
||||
/** QR Code 2D barcode format. */
|
||||
public static final BarcodeFormat QR_CODE = new BarcodeFormat("QR_CODE");
|
||||
|
||||
/** Data Matrix 2D barcode format. */
|
||||
public static final BarcodeFormat DATA_MATRIX = new BarcodeFormat("DATA_MATRIX");
|
||||
/** Data Matrix 2D barcode format. */
|
||||
public static final BarcodeFormat DATA_MATRIX = new BarcodeFormat("DATA_MATRIX");
|
||||
|
||||
/** UPC-E 1D format. */
|
||||
public static final BarcodeFormat UPC_E = new BarcodeFormat("UPC_E");
|
||||
/** UPC-E 1D format. */
|
||||
public static final BarcodeFormat UPC_E = new BarcodeFormat("UPC_E");
|
||||
|
||||
/** UPC-A 1D format. */
|
||||
public static final BarcodeFormat UPC_A = new BarcodeFormat("UPC_A");
|
||||
/** UPC-A 1D format. */
|
||||
public static final BarcodeFormat UPC_A = new BarcodeFormat("UPC_A");
|
||||
|
||||
/** EAN-8 1D format. */
|
||||
public static final BarcodeFormat EAN_8 = new BarcodeFormat("EAN_8");
|
||||
/** EAN-8 1D format. */
|
||||
public static final BarcodeFormat EAN_8 = new BarcodeFormat("EAN_8");
|
||||
|
||||
/** EAN-13 1D format. */
|
||||
public static final BarcodeFormat EAN_13 = new BarcodeFormat("EAN_13");
|
||||
/** EAN-13 1D format. */
|
||||
public static final BarcodeFormat EAN_13 = new BarcodeFormat("EAN_13");
|
||||
|
||||
/** UPC/EAN extension format. Not a stand-alone format. */
|
||||
public static final BarcodeFormat UPC_EAN_EXTENSION = new BarcodeFormat("UPC_EAN_EXTENSION");
|
||||
/** UPC/EAN extension format. Not a stand-alone format. */
|
||||
public static final BarcodeFormat UPC_EAN_EXTENSION = new BarcodeFormat("UPC_EAN_EXTENSION");
|
||||
|
||||
/** Code 128 1D format. */
|
||||
public static final BarcodeFormat CODE_128 = new BarcodeFormat("CODE_128");
|
||||
/** Code 128 1D format. */
|
||||
public static final BarcodeFormat CODE_128 = new BarcodeFormat("CODE_128");
|
||||
|
||||
/** Code 39 1D format. */
|
||||
public static final BarcodeFormat CODE_39 = new BarcodeFormat("CODE_39");
|
||||
/** Code 39 1D format. */
|
||||
public static final BarcodeFormat CODE_39 = new BarcodeFormat("CODE_39");
|
||||
|
||||
/** Code 93 1D format. */
|
||||
public static final BarcodeFormat CODE_93 = new BarcodeFormat("CODE_93");
|
||||
/** Code 93 1D format. */
|
||||
public static final BarcodeFormat CODE_93 = new BarcodeFormat("CODE_93");
|
||||
|
||||
/** CODABAR 1D format. */
|
||||
public static final BarcodeFormat CODABAR = new BarcodeFormat("CODABAR");
|
||||
/** CODABAR 1D format. */
|
||||
public static final BarcodeFormat CODABAR = new BarcodeFormat("CODABAR");
|
||||
|
||||
/** ITF (Interleaved Two of Five) 1D format. */
|
||||
public static final BarcodeFormat ITF = new BarcodeFormat("ITF");
|
||||
/** ITF (Interleaved Two of Five) 1D format. */
|
||||
public static final BarcodeFormat ITF = new BarcodeFormat("ITF");
|
||||
|
||||
/** RSS 14 */
|
||||
public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");
|
||||
/** RSS 14 */
|
||||
public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");
|
||||
|
||||
/** PDF417 format. */
|
||||
public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");
|
||||
/** PDF417 format. */
|
||||
public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");
|
||||
|
||||
/** RSS EXPANDED */
|
||||
public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");
|
||||
/** RSS EXPANDED */
|
||||
public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");
|
||||
|
||||
private final String name;
|
||||
private final String name;
|
||||
|
||||
private BarcodeFormat(String name) {
|
||||
this.name = name;
|
||||
VALUES.put(name, this);
|
||||
}
|
||||
private BarcodeFormat(String name) {
|
||||
this.name = name;
|
||||
VALUES.put(name, this);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public static BarcodeFormat valueOf(String name) {
|
||||
if (name == null || name.length() == 0) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
BarcodeFormat format = (BarcodeFormat) VALUES.get(name);
|
||||
if (format == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
return format;
|
||||
}
|
||||
public static BarcodeFormat valueOf(String name) {
|
||||
if (name == null || name.length() == 0) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
BarcodeFormat format = (BarcodeFormat) VALUES.get(name);
|
||||
if (format == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
return format;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,6 +50,7 @@ import jcckit.util.Factory;
|
||||
public class GraphicsPlotCanvas extends PlotCanvas {
|
||||
// ::remove folder when __CORE__
|
||||
// ::remove folder when __HAXE__
|
||||
// ::remove folder when __MIT__
|
||||
/** Key of a configuration parameter. */
|
||||
public static final String BACKGROUND_KEY = "background";
|
||||
public static final String FOREGROUND_KEY = "foreground";
|
||||
|
@ -330,7 +330,7 @@ public class ImageBuilder {
|
||||
if (stroke == null)
|
||||
return;
|
||||
|
||||
final URectangle rectangle = new URectangle(dim.getWidth() - stroke.getThickness(),
|
||||
final URectangle rectangle = URectangle.build(dim.getWidth() - stroke.getThickness(),
|
||||
dim.getHeight() - stroke.getThickness())
|
||||
.rounded(skinParam.getRoundCorner(CornerParam.diagramBorder, null));
|
||||
|
||||
@ -344,7 +344,7 @@ public class ImageBuilder {
|
||||
final int blue = rnd.nextInt(40);
|
||||
final Color c = new Color(red, green, blue);
|
||||
final HColor color = HColors.simple(c);
|
||||
ug2.apply(color).apply(color.bg()).draw(new URectangle(1, 1));
|
||||
ug2.apply(color).apply(color.bg()).draw(URectangle.build(1, 1));
|
||||
}
|
||||
|
||||
private XDimension2D getFinalDimension() {
|
||||
@ -487,7 +487,7 @@ public class ImageBuilder {
|
||||
option = option.withSvgDimensionStyle(skinParam.svgDimensionStyle());
|
||||
}
|
||||
|
||||
final UGraphicSvg ug = new UGraphicSvg(option, false, seed, stringBounder);
|
||||
final UGraphicSvg ug = UGraphicSvg.build(option, false, seed, stringBounder);
|
||||
return ug;
|
||||
|
||||
}
|
||||
@ -515,7 +515,7 @@ public class ImageBuilder {
|
||||
|
||||
// ::comment when __CORE__
|
||||
final UGraphicG2d ug = new UGraphicG2d(backcolor, fileFormatOption.getColorMapper(), stringBounder, graphics2D,
|
||||
scaleFactor, affineTransforms == null ? null : affineTransforms.getFirst(), dx, dy, format);
|
||||
scaleFactor, dx, dy, format, affineTransforms == null ? null : affineTransforms.getFirst());
|
||||
// ::done
|
||||
// ::uncomment when __CORE__
|
||||
// final UGraphicG2d ug = new UGraphicG2d(backcolor,
|
||||
@ -526,7 +526,7 @@ public class ImageBuilder {
|
||||
final BufferedImage im = ug.getBufferedImage();
|
||||
if (this.backcolor instanceof HColorGradient)
|
||||
ug.apply(this.backcolor.bg())
|
||||
.draw(new URectangle(im.getWidth() / scaleFactor, im.getHeight() / scaleFactor));
|
||||
.draw(URectangle.build(im.getWidth() / scaleFactor, im.getHeight() / scaleFactor));
|
||||
|
||||
return ug;
|
||||
}
|
||||
|
@ -241,7 +241,7 @@ public abstract class AbstractPSystem implements Diagram {
|
||||
public void exportDiagramGraphic(UGraphic ug) {
|
||||
final UFont font = UFont.monospaced(14);
|
||||
final FontConfiguration fc = FontConfiguration.blackBlueTrue(font);
|
||||
final UText text = new UText("Not implemented yet for " + getClass().getName(), fc);
|
||||
final UText text = UText.build("Not implemented yet for " + getClass().getName(), fc);
|
||||
ug.apply(new UTranslate(10, 10)).draw(text);
|
||||
}
|
||||
|
||||
|
@ -203,33 +203,36 @@ public class PSystemBuilder {
|
||||
factories.add(new NwDiagramFactory(DiagramType.NW));
|
||||
factories.add(new MindMapDiagramFactory());
|
||||
factories.add(new WBSDiagramFactory());
|
||||
|
||||
// ::uncomment when __CORE__
|
||||
// factories.add(new PSystemSudokuFactory());
|
||||
// ::done
|
||||
// ::comment when __CORE__
|
||||
|
||||
// ::comment when __CORE__ or __MIT__
|
||||
factories.add(new PSystemDitaaFactory());
|
||||
if (License.getCurrent() == License.GPL || License.getCurrent() == License.GPLV2) {
|
||||
factories.add(new PSystemJcckitFactory());
|
||||
// factories.add(new PSystemLogoFactory());
|
||||
factories.add(new PSystemSudokuFactory());
|
||||
}
|
||||
// ::done
|
||||
|
||||
// ::comment when __CORE__
|
||||
factories.add(new PSystemDefinitionFactory());
|
||||
factories.add(new ListSpriteDiagramFactory());
|
||||
factories.add(new StdlibDiagramFactory());
|
||||
factories.add(new PSystemMathFactory(DiagramType.MATH));
|
||||
factories.add(new PSystemLatexFactory(DiagramType.LATEX));
|
||||
// factories.add(new PSystemStatsFactory());
|
||||
factories.add(new PSystemCreoleFactory());
|
||||
factories.add(new PSystemEggFactory());
|
||||
factories.add(new PSystemAppleTwoFactory());
|
||||
factories.add(new PSystemRIPFactory());
|
||||
// factories.add(new PSystemLostFactory());
|
||||
if (SecurityUtils.getSecurityProfile() == SecurityProfile.UNSECURE)
|
||||
factories.add(new PSystemPathFactory());
|
||||
factories.add(new PSystemOregonFactory());
|
||||
// ::done
|
||||
|
||||
factories.add(new PSystemCharlieFactory());
|
||||
// ::comment when __CORE__
|
||||
// ::comment when __CORE__ or __MIT__
|
||||
if (License.getCurrent() == License.GPL || License.getCurrent() == License.GPLV2) {
|
||||
factories.add(new PSystemXearthFactory());
|
||||
}
|
||||
|
@ -83,7 +83,7 @@ public enum EntityPosition {
|
||||
if (this == NORMAL) {
|
||||
throw new IllegalStateException();
|
||||
} else if (this == ENTRY_POINT || this == EXIT_POINT) {
|
||||
final Shadowable circle = new UEllipse(RADIUS * 2, RADIUS * 2);
|
||||
final Shadowable circle = UEllipse.build(RADIUS * 2, RADIUS * 2);
|
||||
ug.draw(circle);
|
||||
if (this == EntityPosition.EXIT_POINT) {
|
||||
final double xc = 0 + RADIUS + .5;
|
||||
@ -95,18 +95,18 @@ public enum EntityPosition {
|
||||
getPointOnCircle(xc, yc, Math.PI - Math.PI / 4, radius));
|
||||
}
|
||||
} else if (this == INPUT_PIN || this == OUTPUT_PIN /* || this == PORT */) {
|
||||
final Shadowable rectangle = new URectangle(RADIUS * 2, RADIUS * 2);
|
||||
final Shadowable rectangle = URectangle.build(RADIUS * 2, RADIUS * 2);
|
||||
ug.draw(rectangle);
|
||||
} else if (this == EXPANSION_INPUT || this == EXPANSION_OUTPUT) {
|
||||
if (rankdir == Rankdir.TOP_TO_BOTTOM) {
|
||||
final Shadowable rectangle = new URectangle(RADIUS * 2 * 4, RADIUS * 2);
|
||||
final Shadowable rectangle = URectangle.build(RADIUS * 2 * 4, RADIUS * 2);
|
||||
ug.draw(rectangle);
|
||||
final ULine vline = ULine.vline(RADIUS * 2);
|
||||
ug.apply(UTranslate.dx(RADIUS * 2)).draw(vline);
|
||||
ug.apply(UTranslate.dx(RADIUS * 2 * 2)).draw(vline);
|
||||
ug.apply(UTranslate.dx(RADIUS * 2 * 3)).draw(vline);
|
||||
} else {
|
||||
final Shadowable rectangle = new URectangle(RADIUS * 2, RADIUS * 2 * 4);
|
||||
final Shadowable rectangle = URectangle.build(RADIUS * 2, RADIUS * 2 * 4);
|
||||
ug.apply(UTranslate.dy(0)).draw(rectangle);
|
||||
final ULine hline = ULine.hline(RADIUS * 2);
|
||||
ug.apply(UTranslate.dy(RADIUS * 2)).draw(hline);
|
||||
|
@ -59,6 +59,7 @@ import net.sourceforge.plantuml.core.UmlSource;
|
||||
|
||||
public class PSystemXearth extends AbstractPSystem {
|
||||
// ::remove folder when __CORE__
|
||||
// ::remove folder when __MIT__
|
||||
|
||||
final private int width;
|
||||
final private int height;
|
||||
|
@ -50,7 +50,7 @@ public enum BoxStyle {
|
||||
PLAIN(null, '\0', 0) {
|
||||
@Override
|
||||
protected Shadowable getShape(double width, double height, double roundCorner) {
|
||||
return new URectangle(width, height).rounded(roundCorner);
|
||||
return URectangle.build(width, height).rounded(roundCorner);
|
||||
}
|
||||
},
|
||||
SDL_INPUT("input", '<', 10) {
|
||||
@ -80,7 +80,7 @@ public enum BoxStyle {
|
||||
SDL_PROCEDURE("procedure", '|', 0) {
|
||||
@Override
|
||||
protected void drawInternal(UGraphic ug, double width, double height, double shadowing, double roundCorner) {
|
||||
final URectangle rect = new URectangle(width, height);
|
||||
final URectangle rect = URectangle.build(width, height);
|
||||
rect.setDeltaShadow(shadowing);
|
||||
ug.draw(rect);
|
||||
final ULine vline = ULine.vline(height);
|
||||
@ -113,7 +113,7 @@ public enum BoxStyle {
|
||||
SDL_CONTINUOUS("continuous", '}', 0) {
|
||||
@Override
|
||||
protected Shadowable getShape(double width, double height, double roundCorner) {
|
||||
final UPath result = new UPath();
|
||||
final UPath result = UPath.none();
|
||||
final double c1[] = { DELTA_CONTINUOUS, 0 };
|
||||
final double c2[] = { 0, height / 2 };
|
||||
final double c3[] = { DELTA_CONTINUOUS, height };
|
||||
@ -135,7 +135,7 @@ public enum BoxStyle {
|
||||
SDL_TASK("task", ']', 0) {
|
||||
@Override
|
||||
protected Shadowable getShape(double width, double height, double roundCorner) {
|
||||
return new URectangle(width, height);
|
||||
return URectangle.build(width, height);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -83,7 +83,7 @@ public class LaneDivider extends AbstractTextBlock {
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
// final UShape back = new URectangle(x1 + x2, height).ignoreForCompressionOnY();
|
||||
// final UShape back = URectangle.build(x1 + x2, height).ignoreForCompressionOnY();
|
||||
// ug.apply(UChangeColor.nnn(HColorUtils.BLUE)).draw(back);
|
||||
final UShape back = new UEmpty(x1 + x2, 1);
|
||||
ug.draw(back);
|
||||
|
@ -311,7 +311,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock, Styleable
|
||||
.apply(UTranslate.dx(xpos - divider1.getX2()));
|
||||
final double width = swimlane.getActualWidth() + divider1.getX2() + divider2.getX1();
|
||||
final double height = dimensionFull.getHeight() + titleHeightTranslate.getDy();
|
||||
background.draw(new URectangle(width, height).ignoreForCompressionOnX().ignoreForCompressionOnY());
|
||||
background.draw(URectangle.build(width, height).ignoreForCompressionOnX().ignoreForCompressionOnY());
|
||||
}
|
||||
|
||||
full.drawU(new UGraphicInterceptorOneSwimlane(ug, swimlane, swimlanes()).apply(swimlane.getTranslate())
|
||||
@ -336,7 +336,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock, Styleable
|
||||
if (color != null) {
|
||||
final double titleHeight = getTitlesHeight(ug.getStringBounder());
|
||||
double fullWidth = swimlanesSpecial().get(swimlanesSpecial().size() - 1).getTranslate().getDx() - 2 * 5 - 1;
|
||||
final URectangle back = new URectangle(fullWidth, titleHeight).ignoreForCompressionOnX()
|
||||
final URectangle back = URectangle.build(fullWidth, titleHeight).ignoreForCompressionOnX()
|
||||
.ignoreForCompressionOnY();
|
||||
ug.apply(UTranslate.dx(5)).apply(color.bg()).apply(color).draw(back);
|
||||
}
|
||||
|
@ -106,8 +106,8 @@ public class UGraphicInterceptorUDrawable2 extends UGraphicDelegator {
|
||||
return;
|
||||
final double dx = dest.getDx() - posNow.getDx();
|
||||
final double dy = dest.getDy() - posNow.getDy();
|
||||
ugGoto.draw(new UEllipse(3, 3));
|
||||
ugGoto.apply(new UTranslate(dx, dy)).draw(new UEllipse(3, 3));
|
||||
ugGoto.draw(UEllipse.build(3, 3));
|
||||
ugGoto.apply(new UTranslate(dx, dy)).draw(UEllipse.build(3, 3));
|
||||
ugGoto.draw(ULine.hline(dx));
|
||||
ugGoto.apply(UTranslate.dx(dx)).draw(ULine.vline(dy));
|
||||
// ugGoto.draw(new ULine(dx, dy));
|
||||
|
@ -96,7 +96,7 @@ public class FtileBlackBlock extends AbstractFtile {
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final URectangle rect = new URectangle(width, height).rounded(5).ignoreForCompressionOnX();
|
||||
final URectangle rect = URectangle.build(width, height).rounded(5).ignoreForCompressionOnX();
|
||||
|
||||
final Style style = getSignature().getMergedStyle(skinParam().getCurrentStyleBuilder());
|
||||
final double shadowing = style.value(PName.Shadowing).asDouble();
|
||||
|
@ -100,7 +100,7 @@ public class FtileCircleEnd extends AbstractFtile {
|
||||
xTheoricalPosition = Math.round(xTheoricalPosition);
|
||||
yTheoricalPosition = Math.round(yTheoricalPosition);
|
||||
|
||||
final UEllipse circle = new UEllipse(SIZE, SIZE);
|
||||
final UEllipse circle = UEllipse.build(SIZE, SIZE);
|
||||
circle.setDeltaShadow(shadowing);
|
||||
ug = ug.apply(borderColor);
|
||||
final double thickness = 2.5;
|
||||
|
@ -97,7 +97,7 @@ public class FtileCircleSpot extends AbstractFtile {
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final UEllipse circle = new UEllipse(SIZE, SIZE);
|
||||
final UEllipse circle = UEllipse.build(SIZE, SIZE);
|
||||
|
||||
final HColor backColor = this.backColor == null ? style.value(PName.BackGroundColor).asColor(getIHtmlColorSet())
|
||||
: this.backColor;
|
||||
|
@ -92,7 +92,7 @@ public class FtileCircleStart extends AbstractFtile {
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final UEllipse circle = new UEllipse(SIZE, SIZE);
|
||||
final UEllipse circle = UEllipse.build(SIZE, SIZE);
|
||||
circle.setDeltaShadow(shadowing);
|
||||
ug.apply(borderColor).apply(backColor.bg()).draw(circle);
|
||||
}
|
||||
|
@ -94,13 +94,13 @@ public class FtileCircleStop extends AbstractFtile {
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final UEllipse circle = new UEllipse(SIZE, SIZE);
|
||||
final UEllipse circle = UEllipse.build(SIZE, SIZE);
|
||||
circle.setDeltaShadow(shadowing);
|
||||
|
||||
ug.apply(borderColor).apply(backColor.bg()).draw(circle);
|
||||
|
||||
final double delta = 5;
|
||||
final UEllipse circleSmall = new UEllipse(SIZE - delta * 2, SIZE - delta * 2);
|
||||
final UEllipse circleSmall = UEllipse.build(SIZE - delta * 2, SIZE - delta * 2);
|
||||
// if (skinParam().shadowing(null)) {
|
||||
// circleSmall.setDeltaShadow(3);
|
||||
// }
|
||||
|
@ -86,7 +86,7 @@ public class GtileCircleSpot extends AbstractGtile {
|
||||
? SkinParamUtils.getColor(skinParam(), null, ColorParam.activityBackground)
|
||||
: this.backColor;
|
||||
|
||||
final UEllipse circle = new UEllipse(SIZE, SIZE);
|
||||
final UEllipse circle = UEllipse.build(SIZE, SIZE);
|
||||
circle.setDeltaShadow(shadowing);
|
||||
ug.apply(borderColor).apply(backColor.bg()).apply(getThickness()).draw(circle);
|
||||
|
||||
|
@ -70,7 +70,7 @@ public class GtileCircleStart extends AbstractGtile {
|
||||
|
||||
@Override
|
||||
protected void drawUInternal(UGraphic ug) {
|
||||
final UEllipse circle = new UEllipse(SIZE, SIZE);
|
||||
final UEllipse circle = UEllipse.build(SIZE, SIZE);
|
||||
circle.setDeltaShadow(shadowing);
|
||||
ug.apply(HColors.none()).apply(backColor.bg()).draw(circle);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ public class CardBox extends AbstractTextBlock {
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final URectangle rect = new URectangle(calculateDimension(ug.getStringBounder()));
|
||||
final URectangle rect = URectangle.build(calculateDimension(ug.getStringBounder()));
|
||||
rect.setDeltaShadow(1);
|
||||
|
||||
ug.apply(HColors.BLACK).apply(HColors.LIGHT_GRAY.bg()).draw(rect);
|
||||
|
@ -76,7 +76,7 @@ public class BrailleDrawer implements UDrawable {
|
||||
private void drawCircle(UGraphic ug, int x, int y) {
|
||||
final double cx = x * step;
|
||||
final double cy = y * step;
|
||||
ug.apply(new UTranslate(cx, cy)).draw(new UEllipse(spotSize, spotSize));
|
||||
ug.apply(new UTranslate(cx, cy)).draw(UEllipse.build(spotSize, spotSize));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -151,8 +151,8 @@ public class BrailleGrid {
|
||||
drawPointInternal(x, y, bez.getP1());
|
||||
drawPointInternal(x, y, bez.getP2());
|
||||
if (bez.getP1().distance(bez.getP2()) > quanta) {
|
||||
final XCubicCurve2D part1 = new XCubicCurve2D();
|
||||
final XCubicCurve2D part2 = new XCubicCurve2D();
|
||||
final XCubicCurve2D part1 = XCubicCurve2D.none();
|
||||
final XCubicCurve2D part2 = XCubicCurve2D.none();
|
||||
bez.subdivide(part1, part2);
|
||||
drawCubic(x, y, part1);
|
||||
drawCubic(x, y, part2);
|
||||
|
@ -61,16 +61,17 @@ public class UGraphicBraille extends AbstractUGraphic<BrailleGrid> implements Cl
|
||||
|
||||
@Override
|
||||
protected AbstractCommonUGraphic copyUGraphic() {
|
||||
return new UGraphicBraille(this);
|
||||
final UGraphicBraille result = new UGraphicBraille(this);
|
||||
return result;
|
||||
}
|
||||
|
||||
public UGraphicBraille(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder) {
|
||||
super(defaultBackground, colorMapper, stringBounder, new BrailleGrid(QUANTA));
|
||||
copy(defaultBackground, colorMapper, stringBounder, new BrailleGrid(QUANTA));
|
||||
register();
|
||||
}
|
||||
|
||||
private UGraphicBraille(UGraphicBraille other) {
|
||||
super(other);
|
||||
copy(other);
|
||||
register();
|
||||
}
|
||||
|
||||
|
@ -87,8 +87,8 @@ public class LinkConstraint {
|
||||
return;
|
||||
}
|
||||
ug = ug.apply(HColors.BLACK);
|
||||
// ug.apply(new UTranslate(x1, y1)).draw(new URectangle(10, 10));
|
||||
// ug.apply(new UTranslate(x2, y2)).draw(new URectangle(10, 10));
|
||||
// ug.apply(new UTranslate(x1, y1)).draw(URectangle.build(10, 10));
|
||||
// ug.apply(new UTranslate(x2, y2)).draw(URectangle.build(10, 10));
|
||||
|
||||
final ULine line = new ULine(x2 - x1, y2 - y1);
|
||||
ug = ug.apply(new UStroke(3, 3, 1));
|
||||
|
@ -189,7 +189,7 @@ public class TextBlockMap extends AbstractTextBlock implements WithPorts {
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final UShape point = new UEllipse(getDiameter(), getDiameter());
|
||||
final UShape point = UEllipse.build(getDiameter(), getDiameter());
|
||||
ug = ug.apply(color).apply(color.bg());
|
||||
ug.draw(point);
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ class USymbolArtifact extends USymbol {
|
||||
private void drawArtifact(UGraphic ug, double widthTotal, double heightTotal, double shadowing,
|
||||
double roundCorner) {
|
||||
|
||||
final URectangle form = new URectangle(widthTotal, heightTotal).rounded(roundCorner);
|
||||
final URectangle form = URectangle.build(widthTotal, heightTotal).rounded(roundCorner);
|
||||
form.setDeltaShadow(shadowing);
|
||||
|
||||
ug.draw(form);
|
||||
|
@ -57,7 +57,7 @@ class USymbolCard extends USymbol {
|
||||
}
|
||||
|
||||
private void drawCard(UGraphic ug, double width, double height, double shadowing, double top, double roundCorner) {
|
||||
final URectangle shape = new URectangle(width, height).rounded(roundCorner);
|
||||
final URectangle shape = URectangle.build(width, height).rounded(roundCorner);
|
||||
shape.setDeltaShadow(shadowing);
|
||||
|
||||
ug.draw(shape);
|
||||
|
@ -95,7 +95,7 @@ class USymbolCloud extends USymbol {
|
||||
|
||||
points.add(points.get(0));
|
||||
|
||||
final UPath result = new UPath();
|
||||
final UPath result = UPath.none();
|
||||
result.moveTo(points.get(0));
|
||||
for (int i = 0; i < points.size() - 1; i++) {
|
||||
if (DEBUG) {
|
||||
@ -188,7 +188,7 @@ class USymbolCloud extends USymbol {
|
||||
if (NEW) {
|
||||
return getSpecificFrontierForCloudNew(width, height);
|
||||
}
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
path.moveTo(0, 10);
|
||||
double x = 0;
|
||||
for (int i = 0; i < width - 9; i += 10) {
|
||||
|
@ -56,7 +56,7 @@ class USymbolCollections extends USymbol {
|
||||
}
|
||||
|
||||
private void drawCollections(UGraphic ug, double width, double height, double shadowing, double roundCorner) {
|
||||
final URectangle small = new URectangle(width - getDeltaCollection(), height - getDeltaCollection())
|
||||
final URectangle small = URectangle.build(width - getDeltaCollection(), height - getDeltaCollection())
|
||||
.rounded(roundCorner);
|
||||
small.setDeltaShadow(shadowing);
|
||||
|
||||
|
@ -59,11 +59,11 @@ class USymbolComponent1 extends USymbol {
|
||||
private void drawComponent1(UGraphic ug, double widthTotal, double heightTotal, double shadowing,
|
||||
double roundCorner) {
|
||||
|
||||
final URectangle form = new URectangle(widthTotal, heightTotal).rounded(roundCorner);
|
||||
final URectangle form = URectangle.build(widthTotal, heightTotal).rounded(roundCorner);
|
||||
form.setDeltaShadow(shadowing);
|
||||
|
||||
ug.draw(form);
|
||||
final UShape small = new URectangle(10, 5);
|
||||
final UShape small = URectangle.build(10, 5);
|
||||
|
||||
// UML 1 Component Notation
|
||||
ug.apply(new UTranslate(-5, 5)).draw(small);
|
||||
|
@ -59,11 +59,11 @@ class USymbolComponent2 extends USymbol {
|
||||
private void drawComponent2(UGraphic ug, double widthTotal, double heightTotal, double shadowing,
|
||||
double roundCorner) {
|
||||
|
||||
final URectangle form = new URectangle(widthTotal, heightTotal).rounded(roundCorner);
|
||||
final URectangle form = URectangle.build(widthTotal, heightTotal).rounded(roundCorner);
|
||||
form.setDeltaShadow(shadowing);
|
||||
|
||||
final UShape small = new URectangle(15, 10);
|
||||
final UShape tiny = new URectangle(4, 2);
|
||||
final UShape small = URectangle.build(15, 10);
|
||||
final UShape tiny = URectangle.build(4, 2);
|
||||
|
||||
ug.draw(form);
|
||||
|
||||
|
@ -59,7 +59,7 @@ class USymbolDatabase extends USymbol {
|
||||
}
|
||||
|
||||
private void drawDatabase(UGraphic ug, double width, double height, double shadowing) {
|
||||
final UPath shape = new UPath();
|
||||
final UPath shape = UPath.none();
|
||||
shape.setDeltaShadow(shadowing);
|
||||
|
||||
shape.moveTo(0, 10);
|
||||
@ -79,7 +79,7 @@ class USymbolDatabase extends USymbol {
|
||||
}
|
||||
|
||||
private UPath getClosingPath(double width) {
|
||||
final UPath closing = new UPath();
|
||||
final UPath closing = UPath.none();
|
||||
closing.moveTo(0, 10);
|
||||
closing.cubicTo(0, 20, width / 2, 20, width / 2, 20);
|
||||
closing.cubicTo(width / 2, 20, width, 20, width, 10);
|
||||
|
@ -73,7 +73,7 @@ class USymbolFile extends USymbol {
|
||||
polygon.addPoint(0, 0);
|
||||
out = polygon;
|
||||
} else {
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
path.moveTo(0, roundCorner / 2);
|
||||
path.lineTo(0, height - roundCorner / 2);
|
||||
path.arcTo(new XPoint2D(roundCorner / 2, height), roundCorner / 2, 0, 0);
|
||||
@ -89,7 +89,7 @@ class USymbolFile extends USymbol {
|
||||
out.setDeltaShadow(shadowing);
|
||||
ug.draw(out);
|
||||
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
path.moveTo(width - cornersize, 0);
|
||||
if (roundCorner == 0) {
|
||||
path.lineTo(width - cornersize, cornersize);
|
||||
|
@ -101,7 +101,7 @@ public class USymbolFolder extends USymbol {
|
||||
poly.addPoint(0, 0);
|
||||
shape = poly;
|
||||
} else {
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
path.moveTo(roundCorner / 2, 0);
|
||||
path.lineTo(wtitle - roundCorner / 2, 0);
|
||||
// path.lineTo(wtitle, roundCorner / 2);
|
||||
|
@ -67,7 +67,7 @@ class USymbolFrame extends USymbol {
|
||||
|
||||
private void drawFrame(UGraphic ug, double width, double height, XDimension2D dimTitle, double shadowing,
|
||||
double roundCorner) {
|
||||
final Shadowable rectangle = new URectangle(width, height).rounded(roundCorner).ignoreForCompressionOnX()
|
||||
final Shadowable rectangle = URectangle.build(width, height).rounded(roundCorner).ignoreForCompressionOnX()
|
||||
.ignoreForCompressionOnY();
|
||||
rectangle.setDeltaShadow(shadowing);
|
||||
|
||||
@ -84,7 +84,7 @@ class USymbolFrame extends USymbol {
|
||||
}
|
||||
final double textHeight = getYpos(dimTitle);
|
||||
|
||||
final UPath line = new UPath();
|
||||
final UPath line = UPath.none();
|
||||
line.setIgnoreForCompressionOnX();
|
||||
line.moveTo(textWidth, 0);
|
||||
|
||||
|
@ -81,8 +81,8 @@ public class USymbolHexagon extends USymbol {
|
||||
|
||||
private void drawRect(UGraphic ug, double width, double height, double shadowing, double roundCorner,
|
||||
double diagonalCorner) {
|
||||
// final UShape shape = new URectangle(width, height);
|
||||
final UPath shape = new UPath();
|
||||
// final UShape shape = URectangle.build(width, height);
|
||||
final UPath shape = UPath.none();
|
||||
final double dx = width / 8;
|
||||
shape.moveTo(0, height / 2);
|
||||
shape.lineTo(dx, 0);
|
||||
|
@ -57,8 +57,8 @@ class USymbolPerson extends USymbol {
|
||||
}
|
||||
|
||||
private void drawHeadAndBody(UGraphic ug, double shadowing, XDimension2D dimBody, double headSize) {
|
||||
final UEllipse head = new UEllipse(headSize, headSize);
|
||||
final URectangle body = new URectangle(dimBody).rounded(headSize);
|
||||
final UEllipse head = UEllipse.build(headSize, headSize);
|
||||
final URectangle body = URectangle.build(dimBody).rounded(headSize);
|
||||
|
||||
body.setDeltaShadow(shadowing);
|
||||
head.setDeltaShadow(shadowing);
|
||||
|
@ -61,7 +61,7 @@ class USymbolQueue extends USymbol {
|
||||
private final double dx = 5;
|
||||
|
||||
private void drawQueue(UGraphic ug, double width, double height, double shadowing) {
|
||||
final UPath shape = new UPath();
|
||||
final UPath shape = UPath.none();
|
||||
shape.setDeltaShadow(shadowing);
|
||||
|
||||
shape.moveTo(dx, 0);
|
||||
@ -81,7 +81,7 @@ class USymbolQueue extends USymbol {
|
||||
}
|
||||
|
||||
private UPath getClosingPath(double width, double height) {
|
||||
final UPath closing = new UPath();
|
||||
final UPath closing = UPath.none();
|
||||
closing.moveTo(width - dx, 0);
|
||||
closing.cubicTo(width - dx * 2, 0, width - dx * 2, height / 2, width - dx * 2, height / 2);
|
||||
closing.cubicTo(width - dx * 2, height, width - dx, height, width - dx, height);
|
||||
|
@ -64,7 +64,7 @@ class USymbolRectangle extends USymbol {
|
||||
|
||||
private void drawRect(UGraphic ug, double width, double height, double shadowing, double roundCorner,
|
||||
double diagonalCorner) {
|
||||
final URectangle rect = new URectangle(width, height);
|
||||
final URectangle rect = URectangle.build(width, height);
|
||||
final Shadowable shape = diagonalCorner > 0 ? rect.diagonalCorner(diagonalCorner) : rect.rounded(roundCorner);
|
||||
shape.setDeltaShadow(shadowing);
|
||||
ug.draw(shape);
|
||||
|
@ -61,10 +61,10 @@ class USymbolStack extends USymbol {
|
||||
private void drawQueue(UGraphic ug, double width, double height, double shadowing, double roundCorner) {
|
||||
final double border = 15;
|
||||
|
||||
final URectangle rect = new URectangle(width - 2 * border, height).rounded(roundCorner);
|
||||
final URectangle rect = URectangle.build(width - 2 * border, height).rounded(roundCorner);
|
||||
ug.apply(HColors.none()).apply(UTranslate.dx(border)).draw(rect);
|
||||
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
if (roundCorner == 0) {
|
||||
path.moveTo(0, 0);
|
||||
path.lineTo(border, 0);
|
||||
|
@ -56,7 +56,7 @@ class USymbolStorage extends USymbol {
|
||||
}
|
||||
|
||||
private void drawStorage(UGraphic ug, double width, double height, double shadowing) {
|
||||
final URectangle shape = new URectangle(width, height).rounded(70);
|
||||
final URectangle shape = URectangle.build(width, height).rounded(70);
|
||||
shape.setDeltaShadow(shadowing);
|
||||
|
||||
ug.draw(shape);
|
||||
|
@ -75,7 +75,7 @@ public class BoxedCharacter extends AbstractTextBlock implements TextBlock {
|
||||
} else {
|
||||
ug = ug.apply(innerCircle.bg());
|
||||
}
|
||||
ug.draw(new URectangle(2 * radius, 2 * radius));
|
||||
ug.draw(URectangle.build(2 * radius, 2 * radius));
|
||||
ug = ug.apply(fontColor);
|
||||
ug = ug.apply(new UTranslate(radius, radius));
|
||||
ug.draw(new UCenteredCharacter(c.charAt(0), font));
|
||||
|
@ -121,8 +121,8 @@ public class EntityImageDesignedDomain extends AbstractEntityImage {
|
||||
|
||||
final double widthTotal = dimTotal.getWidth();
|
||||
final double heightTotal = dimTotal.getHeight();
|
||||
final URectangle rect = new URectangle(widthTotal, heightTotal);
|
||||
URectangle rect2 = new URectangle(4, heightTotal);
|
||||
final URectangle rect = URectangle.build(widthTotal, heightTotal);
|
||||
URectangle rect2 = URectangle.build(4, heightTotal);
|
||||
|
||||
ug = ug.apply(SkinParamUtils.getColor(getSkinParam(), getStereo(), ColorParam.designedBorder));
|
||||
HColor backcolor = getEntity().getColors().getColor(ColorType.BACK);
|
||||
|
@ -125,7 +125,7 @@ public class EntityImageDomain extends AbstractEntityImage {
|
||||
final XDimension2D dimTag = getTagDimension(stringBounder);
|
||||
final double widthTotal = dimTotal.getWidth();
|
||||
final double heightTotal = dimTotal.getHeight();
|
||||
final URectangle rect = new URectangle(widthTotal, heightTotal);
|
||||
final URectangle rect = URectangle.build(widthTotal, heightTotal);
|
||||
|
||||
ug = ug.apply(SkinParamUtils.getColor(getSkinParam(), getStereo(), ColorParam.domainBorder));
|
||||
HColor backcolor = getEntity().getColors().getColor(ColorType.BACK);
|
||||
|
@ -121,8 +121,8 @@ public class EntityImageMachine extends AbstractEntityImage {
|
||||
|
||||
final double widthTotal = dimTotal.getWidth();
|
||||
final double heightTotal = dimTotal.getHeight();
|
||||
final URectangle rect = new URectangle(widthTotal, heightTotal);
|
||||
URectangle rect2 = new URectangle(4, heightTotal);
|
||||
final URectangle rect = URectangle.build(widthTotal, heightTotal);
|
||||
URectangle rect2 = URectangle.build(4, heightTotal);
|
||||
|
||||
ug = ug.apply(SkinParamUtils.getColor(getSkinParam(), getStereo(), ColorParam.machineBorder));
|
||||
HColor backcolor = getEntity().getColors().getColor(ColorType.BACK);
|
||||
|
@ -85,7 +85,7 @@ public class CornerCurved implements UDrawable {
|
||||
|
||||
@Override
|
||||
public void drawU(UGraphic ug) {
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
final double a = delta / 4;
|
||||
|
||||
switch (type) {
|
||||
|
@ -108,7 +108,7 @@ public abstract class ETile extends AbstractTextBlock {
|
||||
}
|
||||
|
||||
static UPath getArrowToLeft() {
|
||||
final UPath arrow = new UPath();
|
||||
final UPath arrow = UPath.none();
|
||||
arrow.moveTo(0, 0);
|
||||
arrow.lineTo(0, -3);
|
||||
arrow.lineTo(-6, 0);
|
||||
@ -119,7 +119,7 @@ public abstract class ETile extends AbstractTextBlock {
|
||||
}
|
||||
|
||||
static UPath getArrowToRight() {
|
||||
final UPath arrow = new UPath();
|
||||
final UPath arrow = UPath.none();
|
||||
arrow.moveTo(0, 0);
|
||||
arrow.lineTo(0, -3);
|
||||
arrow.lineTo(6, 0);
|
||||
@ -130,7 +130,7 @@ public abstract class ETile extends AbstractTextBlock {
|
||||
}
|
||||
|
||||
static UPath getArrowToBottom() {
|
||||
final UPath arrow = new UPath();
|
||||
final UPath arrow = UPath.none();
|
||||
arrow.moveTo(0, 0);
|
||||
arrow.lineTo(3, 0);
|
||||
arrow.lineTo(0, 6);
|
||||
@ -141,7 +141,7 @@ public abstract class ETile extends AbstractTextBlock {
|
||||
}
|
||||
|
||||
static UPath getArrowToTop() {
|
||||
final UPath arrow = new UPath();
|
||||
final UPath arrow = UPath.none();
|
||||
arrow.moveTo(0, 0);
|
||||
arrow.lineTo(3, 0);
|
||||
arrow.lineTo(0, -6);
|
||||
|
@ -78,7 +78,7 @@ public class ETileBox extends ETile {
|
||||
this.skinParam = skinParam;
|
||||
this.value = value;
|
||||
this.fc = fc;
|
||||
this.utext = new UText(value, fc);
|
||||
this.utext = UText.build(value, fc);
|
||||
this.style = style;
|
||||
this.colorSet = colorSet;
|
||||
}
|
||||
@ -155,17 +155,17 @@ public class ETileBox extends ETile {
|
||||
final double posxBox = (dim.getWidth() - dimBox.getWidth()) / 2;
|
||||
|
||||
if (symbol == Symbol.TERMINAL_STRING1 || symbol == Symbol.TERMINAL_STRING2) {
|
||||
final URectangle rect = new URectangle(dimBox);
|
||||
final URectangle rect = URectangle.build(dimBox);
|
||||
ug.apply(new UTranslate(posxBox, posy)).apply(lineColor).apply(UStroke.withThickness(0.5)).draw(rect);
|
||||
} else if (symbol == Symbol.SPECIAL_SEQUENCE) {
|
||||
final URectangle rect = new URectangle(dimBox);
|
||||
final URectangle rect = URectangle.build(dimBox);
|
||||
ug.apply(new UTranslate(posxBox, posy)).apply(lineColor).apply(new UStroke(5, 5, 1)).draw(rect);
|
||||
// final URectangle rect1 = new URectangle(dimBox.delta(2)).rounded(12);
|
||||
// final URectangle rect2 = new URectangle(dimBox.delta(-2)).rounded(8);
|
||||
// final URectangle rect1 = URectangle.build(dimBox.delta(2)).rounded(12);
|
||||
// final URectangle rect2 = URectangle.build(dimBox.delta(-2)).rounded(8);
|
||||
// ug.apply(new UTranslate(posxBox - 1, posy - 1)).apply(lineColor).apply(new UStroke(5.0, 5.0, 1.0)).draw(rect1);
|
||||
// ug.apply(new UTranslate(posxBox + 1, posy + 1)).apply(lineColor).apply(UStroke.withThickness(0.5)).draw(rect2);
|
||||
} else {
|
||||
final URectangle rect = new URectangle(dimBox).rounded(10);
|
||||
final URectangle rect = URectangle.build(dimBox).rounded(10);
|
||||
ug.apply(new UTranslate(posxBox, posy)).apply(lineColor).apply(backgroundColor.bg()).apply(UStroke.withThickness(1.5))
|
||||
.draw(rect);
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ public class ETileOneOrMore extends ETile {
|
||||
public ETileOneOrMore(ETile orig, String loop, FontConfiguration fc, ISkinParam skinParam) {
|
||||
this.orig = orig;
|
||||
this.fc = fc;
|
||||
this.loop = loop == null ? null : new UText(loop, fc);
|
||||
this.loop = loop == null ? null : UText.build(loop, fc);
|
||||
}
|
||||
|
||||
public ETileOneOrMore(ETile orig) {
|
||||
@ -92,7 +92,7 @@ public class ETileOneOrMore extends ETile {
|
||||
final StringBounder stringBounder = ug.getStringBounder();
|
||||
final XDimension2D fullDim = calculateDimension(stringBounder);
|
||||
if (TRACE)
|
||||
ug.apply(HColors.RED).draw(new URectangle(fullDim));
|
||||
ug.apply(HColors.RED).draw(URectangle.build(fullDim));
|
||||
|
||||
final double h1 = getH1(stringBounder);
|
||||
|
||||
|
@ -93,7 +93,7 @@ public class ETileOptional extends ETile {
|
||||
final StringBounder stringBounder = ug.getStringBounder();
|
||||
final XDimension2D dim = calculateDimension(stringBounder);
|
||||
if (TRACE)
|
||||
ug.apply(HColors.BLUE).draw(new URectangle(dim));
|
||||
ug.apply(HColors.BLUE).draw(URectangle.build(dim));
|
||||
|
||||
final double linePos = getH1(stringBounder);
|
||||
|
||||
|
@ -79,7 +79,7 @@ public class ETileWithCircles extends ETile {
|
||||
ug = ug.apply(lineColor).apply(UStroke.withThickness(1.5));
|
||||
orig.drawU(ug.apply(UTranslate.dx(deltax)));
|
||||
|
||||
final UEllipse circle = new UEllipse(SIZE, SIZE);
|
||||
final UEllipse circle = UEllipse.build(SIZE, SIZE);
|
||||
|
||||
ug.apply(UStroke.withThickness(2)).apply(new UTranslate(0, linePos - SIZE / 2)).draw(circle);
|
||||
ug.apply(UStroke.withThickness(1)).apply(new CopyForegroundColorToBackgroundColor())
|
||||
|
@ -78,9 +78,9 @@ public class ETileZeroOrMore extends ETile {
|
||||
final XDimension2D fullDim = calculateDimension(stringBounder);
|
||||
if (TRACE) {
|
||||
if (specialForAlternate)
|
||||
ug.apply(HColors.COL_B38D22).draw(new URectangle(fullDim));
|
||||
ug.apply(HColors.COL_B38D22).draw(URectangle.build(fullDim));
|
||||
else
|
||||
ug.apply(HColors.GREEN).draw(new URectangle(fullDim));
|
||||
ug.apply(HColors.GREEN).draw(URectangle.build(fullDim));
|
||||
}
|
||||
|
||||
final double linePos = getH1(stringBounder);
|
||||
|
@ -53,7 +53,7 @@ public class TitleBox extends AbstractTextBlock {
|
||||
public TitleBox(String value, FontConfiguration fc) {
|
||||
this.value = value;
|
||||
this.fc = fc.add(FontStyle.BOLD);
|
||||
this.utext = new UText(value, this.fc);
|
||||
this.utext = UText.build(value, this.fc);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -244,7 +244,7 @@ public class PSystemColors extends PlainDiagram implements UDrawable {
|
||||
for (String name : colors.names()) {
|
||||
UGraphic tmp = getPositioned(ug, i, j);
|
||||
final HColor color = colors.getColorOrWhite(name);
|
||||
applyColor(tmp, color).draw(new URectangle(rectangleWidth, rectangleHeight));
|
||||
applyColor(tmp, color).draw(URectangle.build(rectangleWidth, rectangleHeight));
|
||||
final TextBlock tt = getTextName(font, name, color);
|
||||
final XDimension2D dimText = tt.calculateDimension(ug.getStringBounder());
|
||||
final double dy = (rectangleHeight - dimText.getHeight()) / 2;
|
||||
|
@ -247,7 +247,7 @@ public class CucaDiagramFileMakerElk implements CucaDiagramFileMaker {
|
||||
|
||||
private void drawSingleCluster(UGraphic ug, Entity group, ElkNode elkNode) {
|
||||
final XPoint2D corner = getPosition(elkNode);
|
||||
final URectangle rect = new URectangle(elkNode.getWidth(), elkNode.getHeight());
|
||||
final URectangle rect = URectangle.build(elkNode.getWidth(), elkNode.getHeight());
|
||||
|
||||
PackageStyle packageStyle = group.getPackageStyle();
|
||||
final ISkinParam skinParam = diagram.getSkinParam();
|
||||
|
@ -232,7 +232,7 @@ public class SvgNanoParser implements Sprite {
|
||||
final double ry = Double.parseDouble(extractData("r", s)) * scaley;
|
||||
|
||||
final UTranslate translate = new UTranslate(deltax + cx - rx, deltay + cy - ry);
|
||||
ugs.apply(translate).draw(new UEllipse(rx * 2, ry * 2));
|
||||
ugs.apply(translate).draw(UEllipse.build(rx * 2, ry * 2));
|
||||
}
|
||||
|
||||
private void drawEllipse(UGraphicWithScale ugs, String s, HColor colorForMonochrome) {
|
||||
@ -245,7 +245,7 @@ public class SvgNanoParser implements Sprite {
|
||||
final double rx = Double.parseDouble(extractData("rx", s));
|
||||
final double ry = Double.parseDouble(extractData("ry", s));
|
||||
|
||||
UPath path = new UPath();
|
||||
UPath path = UPath.none();
|
||||
path.moveTo(0, ry);
|
||||
|
||||
if (debug)
|
||||
@ -289,7 +289,7 @@ public class SvgNanoParser implements Sprite {
|
||||
final String text = m.group(1);
|
||||
HColor color = HColorSet.instance().getColorOrWhite(fill);
|
||||
final FontConfiguration fc = FontConfiguration.create(UFont.sansSerif(fontSize), color, color, null);
|
||||
final UText utext = new UText(text, fc);
|
||||
final UText utext = UText.build(text, fc);
|
||||
UGraphic ug = ugs.getUg();
|
||||
ug = ug.apply(new UTranslate(x, y));
|
||||
ug.draw(utext);
|
||||
|
@ -50,6 +50,7 @@ import ext.plantuml.com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
|
||||
import net.sourceforge.plantuml.utils.Log;
|
||||
|
||||
public class FlashCodeUtilsZxing implements FlashCodeUtils {
|
||||
// ::remove file when __MIT__
|
||||
|
||||
private static final Lock lock = new ReentrantLock();
|
||||
|
||||
|
@ -89,7 +89,7 @@ public class ActivityBox extends AbstractTextBlock {
|
||||
|
||||
final double widthTotal = dimTotal.getWidth();
|
||||
final double heightTotal = dimTotal.getHeight();
|
||||
final Shadowable rect = new URectangle(widthTotal, heightTotal).rounded(CORNER);
|
||||
final Shadowable rect = URectangle.build(widthTotal, heightTotal).rounded(CORNER);
|
||||
ug = ug.apply(HColors.MY_RED);
|
||||
ug = ug.apply(HColors.MY_YELLOW.bg());
|
||||
ug.apply(UStroke.withThickness(1.5)).draw(rect);
|
||||
|
@ -161,7 +161,7 @@ public class FlowDiagram extends UmlDiagram implements TextBlock {
|
||||
}
|
||||
ug = ug.apply(HColors.MY_RED);
|
||||
ug = ug.apply(HColors.MY_RED.bg());
|
||||
final UShape arrow = new UEllipse(7, 7);
|
||||
final UShape arrow = UEllipse.build(7, 7);
|
||||
for (Path p : field.getPaths()) {
|
||||
final TileArea start = p.getStart();
|
||||
final TileArea dest = p.getDest();
|
||||
|
@ -87,7 +87,7 @@ public class GitCurve {
|
||||
|
||||
public void drawCurve(HColor color, UGraphic ug) {
|
||||
ug = ug.apply(new UStroke(2, 2, 1));
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
|
||||
path.moveTo(xMirror.invGit(points.get(0)));
|
||||
|
||||
|
@ -95,7 +95,7 @@ public class MagicBox {
|
||||
|
||||
final double moveY = comment.calculateDimension(ug.getStringBounder()).getHeight();
|
||||
|
||||
final URectangle rect = new URectangle(sizeInDot.getWidth(), sizeInDot.getHeight() - moveY).rounded(8);
|
||||
final URectangle rect = URectangle.build(sizeInDot.getWidth(), sizeInDot.getHeight() - moveY).rounded(8);
|
||||
ug.apply(UStroke.withThickness(1.5)).apply(UTranslate.dy(moveY)).draw(rect);
|
||||
|
||||
comment.drawU(ug);
|
||||
|
@ -87,8 +87,8 @@ public class Tile extends AbstractTextBlock implements TextBlock {
|
||||
final double diffx2 = dimTotal.getWidth() - radius;
|
||||
final double diffy2 = dimTotal.getHeight() - radius;
|
||||
n.drawU(ug.apply(new UTranslate((diffx / 2), (diffy / 2))));
|
||||
ug.draw(new URectangle(SIZE, SIZE));
|
||||
ug.apply(new UTranslate(diffx2 / 2, diffy2 / 2)).draw(new UEllipse(radius, radius));
|
||||
ug.draw(URectangle.build(SIZE, SIZE));
|
||||
ug.apply(new UTranslate(diffx2 / 2, diffy2 / 2)).draw(UEllipse.build(radius, radius));
|
||||
}
|
||||
|
||||
public XDimension2D calculateDimension(StringBounder stringBounder) {
|
||||
|
@ -103,6 +103,7 @@ import java.util.Map;
|
||||
public class Jasic {
|
||||
// ::remove folder when __HAXE__
|
||||
// ::remove folder when __CORE__
|
||||
// ::remove folder when __MIT__
|
||||
|
||||
// Tokenizing (lexing) -----------------------------------------------------
|
||||
|
||||
|
@ -54,6 +54,7 @@ import net.sourceforge.plantuml.security.SImageIO;
|
||||
|
||||
public class PSystemJcckit extends AbstractPSystem {
|
||||
// ::remove folder when __CORE__
|
||||
// ::remove folder when __MIT__
|
||||
|
||||
private final PropertiesBasedConfigData prop;
|
||||
private final int width;
|
||||
|
@ -61,7 +61,7 @@ public class Arrow {
|
||||
final XPoint2D p4 = getPoint(p1, alpha - Math.PI / 2, dist * factor);
|
||||
final XPoint2D p11 = getPoint(p1, alpha, dist * factor2);
|
||||
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
path.moveTo(p4);
|
||||
path.lineTo(p11);
|
||||
path.lineTo(p3);
|
||||
|
@ -90,7 +90,7 @@ public class JsonCurve {
|
||||
}
|
||||
|
||||
public void drawCurve(HColor color, UGraphic ug) {
|
||||
final UPath path = new UPath();
|
||||
final UPath path = UPath.none();
|
||||
|
||||
path.moveTo(getVeryFirst());
|
||||
path.lineTo(xMirror.invAndXYSwitch(points.get(0)));
|
||||
@ -113,7 +113,7 @@ public class JsonCurve {
|
||||
public void drawSpot(UGraphic ug) {
|
||||
final double size = 3;
|
||||
ug = ug.apply(UTranslate.point(getVeryFirst()).compose(new UTranslate(-size, -size)));
|
||||
ug.apply(UStroke.simple()).draw(new UEllipse(2 * size, 2 * size));
|
||||
ug.apply(UStroke.simple()).draw(UEllipse.build(2 * size, 2 * size));
|
||||
}
|
||||
|
||||
private XPoint2D getVeryFirst() {
|
||||
|
@ -275,7 +275,7 @@ public class TextBlockJson extends AbstractTextBlock {
|
||||
trueWidth = 30;
|
||||
|
||||
final double round = styleNode.value(PName.RoundCorner).asDouble();
|
||||
final URectangle fullNodeRectangle = new URectangle(trueWidth, y).rounded(round);
|
||||
final URectangle fullNodeRectangle = URectangle.build(trueWidth, y).rounded(round);
|
||||
final HColor backColor = styleNode.value(PName.BackGroundColor).asColor(skinParam.getIHtmlColorSet());
|
||||
ugNode.apply(backColor.bg()).apply(backColor).draw(fullNodeRectangle);
|
||||
|
||||
@ -288,7 +288,7 @@ public class TextBlockJson extends AbstractTextBlock {
|
||||
final UGraphic ugline = ugSeparator.apply(UTranslate.dy(y));
|
||||
final double heightOfRow = line.getHeightOfRow(stringBounder);
|
||||
if (line.highlighted != null) {
|
||||
final URectangle back = new URectangle(trueWidth - 2, heightOfRow).rounded(4);
|
||||
final URectangle back = URectangle.build(trueWidth - 2, heightOfRow).rounded(4);
|
||||
final Style styleNodeHighlight = StyleSignatureBasic
|
||||
.of(SName.root, SName.element, diagramType, SName.node, SName.highlight)
|
||||
.withTOBECHANGED(line.highlighted.getStereotype()).getMergedStyle(styleBuilder);
|
||||
|
@ -35,7 +35,5 @@
|
||||
package net.sourceforge.plantuml.klimt;
|
||||
|
||||
public interface ClipContainer {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
public UClip getClip();
|
||||
}
|
||||
|
@ -45,23 +45,32 @@ import net.sourceforge.plantuml.regex.MyPattern;
|
||||
import net.sourceforge.plantuml.regex.Pattern2;
|
||||
|
||||
public class SvgAttributes {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final Map<String, String> attributes = new TreeMap<String, String>();
|
||||
|
||||
public SvgAttributes() {
|
||||
private SvgAttributes cloneMe() {
|
||||
final SvgAttributes result = new SvgAttributes();
|
||||
result.attributes.putAll(this.attributes);
|
||||
return result;
|
||||
}
|
||||
|
||||
private SvgAttributes(SvgAttributes other) {
|
||||
this.attributes.putAll(other.attributes);
|
||||
private SvgAttributes() {
|
||||
}
|
||||
|
||||
public SvgAttributes(String args) {
|
||||
public static SvgAttributes empty() {
|
||||
return new SvgAttributes();
|
||||
}
|
||||
|
||||
public static SvgAttributes build(String args) {
|
||||
final SvgAttributes result = new SvgAttributes();
|
||||
// ::comment when __HAXE__
|
||||
final Pattern2 p = MyPattern.cmpile("(\\w+)\\s*=\\s*([%g][^%g]*[%g]|(?:\\w+))");
|
||||
final Matcher2 m = p.matcher(args);
|
||||
while (m.find()) {
|
||||
attributes.put(m.group(1), StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m.group(2)));
|
||||
}
|
||||
while (m.find())
|
||||
result.attributes.put(m.group(1), StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(m.group(2)));
|
||||
// ::done
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public Map<String, String> attributes() {
|
||||
@ -69,13 +78,13 @@ public class SvgAttributes {
|
||||
}
|
||||
|
||||
public SvgAttributes add(String key, String value) {
|
||||
final SvgAttributes result = new SvgAttributes(this);
|
||||
final SvgAttributes result = cloneMe();
|
||||
result.attributes.put(key, value);
|
||||
return result;
|
||||
}
|
||||
|
||||
public SvgAttributes add(SvgAttributes toBeAdded) {
|
||||
final SvgAttributes result = new SvgAttributes(this);
|
||||
final SvgAttributes result = cloneMe();
|
||||
result.attributes.putAll(toBeAdded.attributes);
|
||||
return result;
|
||||
}
|
||||
|
@ -40,8 +40,6 @@ import java.awt.geom.Rectangle2D;
|
||||
import net.sourceforge.plantuml.klimt.geom.XPoint2D;
|
||||
|
||||
public class UClip implements UChange {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final double x;
|
||||
private final double y;
|
||||
private final double width;
|
||||
@ -113,27 +111,28 @@ public class UClip implements UChange {
|
||||
return true;
|
||||
}
|
||||
|
||||
// ::comment when __HAXE__
|
||||
public Rectangle2D.Double getClippedRectangle(Rectangle2D.Double r) {
|
||||
return (Rectangle2D.Double) r.createIntersection(new Rectangle2D.Double(x, y, width, height));
|
||||
}
|
||||
|
||||
public Line2D.Double getClippedLine(Line2D.Double line) {
|
||||
if (isInside(line.x1, line.y1) && isInside(line.x2, line.y2)) {
|
||||
if (isInside(line.x1, line.y1) && isInside(line.x2, line.y2))
|
||||
return line;
|
||||
}
|
||||
|
||||
if (isInside(line.x1, line.y1) == false && isInside(line.x2, line.y2) == false) {
|
||||
if (line.x1 == line.x2) {
|
||||
final double newy1 = getClippedY(line.y1);
|
||||
final double newy2 = getClippedY(line.y2);
|
||||
if (newy1 != newy2) {
|
||||
if (newy1 != newy2)
|
||||
return new Line2D.Double(line.x1, newy1, line.x2, newy2);
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if (line.x1 != line.x2 && line.y1 != line.y2) {
|
||||
if (line.x1 != line.x2 && line.y1 != line.y2)
|
||||
return null;
|
||||
}
|
||||
|
||||
assert line.x1 == line.x2 || line.y1 == line.y2;
|
||||
if (line.y1 == line.y2) {
|
||||
final double newx1 = getClippedX(line.x1);
|
||||
@ -148,28 +147,29 @@ public class UClip implements UChange {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
public boolean isInside(double x, double y, UPath shape) {
|
||||
return isInside(x + shape.getMinX(), y + shape.getMinY()) && isInside(x + shape.getMaxX(), y + shape.getMaxY());
|
||||
}
|
||||
// ::done
|
||||
|
||||
private double getClippedX(double xp) {
|
||||
if (xp < x) {
|
||||
if (xp < x)
|
||||
return x;
|
||||
}
|
||||
if (xp > x + width) {
|
||||
|
||||
if (xp > x + width)
|
||||
return x + width;
|
||||
}
|
||||
|
||||
return xp;
|
||||
}
|
||||
|
||||
private double getClippedY(double yp) {
|
||||
if (yp < y) {
|
||||
if (yp < y)
|
||||
return y;
|
||||
}
|
||||
if (yp > y + height) {
|
||||
|
||||
if (yp > y + height)
|
||||
return y + height;
|
||||
}
|
||||
|
||||
return yp;
|
||||
}
|
||||
|
||||
public boolean isInside(double x, double y, UPath shape) {
|
||||
return isInside(x + shape.getMinX(), y + shape.getMinY()) && isInside(x + shape.getMaxX(), y + shape.getMaxY());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,7 +50,6 @@ import net.sourceforge.plantuml.klimt.geom.USegmentType;
|
||||
import net.sourceforge.plantuml.klimt.geom.XPoint2D;
|
||||
|
||||
public class UPath extends AbstractShadowable implements Iterable<USegment>, UShapeIgnorableForCompression {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final String comment;
|
||||
private final String codeLine;
|
||||
@ -66,8 +65,8 @@ public class UPath extends AbstractShadowable implements Iterable<USegment>, USh
|
||||
this.codeLine = codeLine;
|
||||
}
|
||||
|
||||
public UPath() {
|
||||
this(null, null);
|
||||
public static UPath none() {
|
||||
return new UPath(null, null);
|
||||
}
|
||||
|
||||
public void add(double[] coord, USegmentType pathType) {
|
||||
@ -100,6 +99,7 @@ public class UPath extends AbstractShadowable implements Iterable<USegment>, USh
|
||||
return result;
|
||||
}
|
||||
|
||||
// ::comment when __HAXE__
|
||||
public UPath rotate(double theta) {
|
||||
final UPath result = new UPath(comment, codeLine);
|
||||
for (USegment seg : segments)
|
||||
@ -115,6 +115,7 @@ public class UPath extends AbstractShadowable implements Iterable<USegment>, USh
|
||||
|
||||
return result;
|
||||
}
|
||||
// ::done
|
||||
|
||||
public void moveTo(XPoint2D pt) {
|
||||
moveTo(pt.getX(), pt.getY());
|
||||
@ -180,10 +181,12 @@ public class UPath extends AbstractShadowable implements Iterable<USegment>, USh
|
||||
return minmax.getMinY();
|
||||
}
|
||||
|
||||
// ::comment when __HAXE__
|
||||
@Override
|
||||
public String toString() {
|
||||
return segments.toString();
|
||||
}
|
||||
// ::done
|
||||
|
||||
public Iterator<USegment> iterator() {
|
||||
return segments.iterator();
|
||||
|
@ -38,6 +38,7 @@ package net.sourceforge.plantuml.klimt.compress;
|
||||
import java.util.List;
|
||||
|
||||
public class CompressionTransform implements PiecewiseAffineTransform {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final List<Slot> all;
|
||||
|
||||
|
@ -39,6 +39,7 @@ import net.sourceforge.plantuml.klimt.font.StringBounder;
|
||||
import net.sourceforge.plantuml.klimt.shape.TextBlock;
|
||||
|
||||
public class CompressionXorYBuilder {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
public static TextBlock build(CompressionMode mode, TextBlock textBlock, StringBounder stringBounder) {
|
||||
final PiecewiseAffineTransform affine = getPiecewiseAffineTransform(mode, textBlock, stringBounder);
|
||||
|
@ -36,6 +36,7 @@
|
||||
package net.sourceforge.plantuml.klimt.compress;
|
||||
|
||||
public class Expand implements Comparable<Expand> {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final double position;
|
||||
private final double extend;
|
||||
|
@ -39,7 +39,7 @@ import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
public class ExpandTransform implements PiecewiseAffineTransform {
|
||||
// ::remove folder when __HAXE__
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final Set<Expand> all = new TreeSet<>();
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
package net.sourceforge.plantuml.klimt.compress;
|
||||
|
||||
public class PiecewiseAffineComposition implements PiecewiseAffineTransform {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final PiecewiseAffineComposition first;
|
||||
private final PiecewiseAffineComposition second;
|
||||
|
@ -45,6 +45,7 @@ import net.sourceforge.plantuml.klimt.shape.TextBlock;
|
||||
import net.sourceforge.plantuml.klimt.shape.TextBlockUtils;
|
||||
|
||||
public class PiecewiseAffineOnXorYBuilder extends AbstractTextBlock {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final TextBlock textBlock;
|
||||
private final CompressionMode mode;
|
||||
|
@ -36,14 +36,15 @@
|
||||
package net.sourceforge.plantuml.klimt.compress;
|
||||
|
||||
public class Slot implements Comparable<Slot> {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final double start;
|
||||
private final double end;
|
||||
|
||||
public Slot(double start, double end) {
|
||||
if (start >= end) {
|
||||
if (start >= end)
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
this.start = start;
|
||||
this.end = end;
|
||||
}
|
||||
@ -78,22 +79,22 @@ public class Slot implements Comparable<Slot> {
|
||||
}
|
||||
|
||||
public Slot intersect(double otherStart, double otherEnd) {
|
||||
if (otherStart >= end) {
|
||||
if (otherStart >= end)
|
||||
return null;
|
||||
}
|
||||
if (otherEnd <= start) {
|
||||
|
||||
if (otherEnd <= start)
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Slot(Math.max(start, otherStart), Math.min(end, otherEnd));
|
||||
}
|
||||
|
||||
public int compareTo(Slot other) {
|
||||
if (this.start < other.start) {
|
||||
if (this.start < other.start)
|
||||
return -1;
|
||||
}
|
||||
if (this.start > other.start) {
|
||||
|
||||
if (this.start > other.start)
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -56,6 +56,7 @@ import net.sourceforge.plantuml.klimt.shape.URectangle;
|
||||
import net.sourceforge.plantuml.klimt.shape.UText;
|
||||
|
||||
public class SlotFinder extends UGraphicNo {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
@Override
|
||||
public UGraphic apply(UChange change) {
|
||||
|
@ -45,6 +45,7 @@ import net.sourceforge.plantuml.klimt.drawing.UGraphic;
|
||||
import net.sourceforge.plantuml.klimt.shape.URectangle;
|
||||
|
||||
public class SlotSet implements Iterable<Slot> {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final List<Slot> all = new ArrayList<>();
|
||||
|
||||
@ -52,9 +53,9 @@ public class SlotSet implements Iterable<Slot> {
|
||||
final SlotSet result = new SlotSet();
|
||||
for (Slot slot : all) {
|
||||
final Slot intersec = slot.intersect(start, end);
|
||||
if (intersec != null) {
|
||||
if (intersec != null)
|
||||
result.all.add(intersec);
|
||||
}
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -73,18 +74,18 @@ public class SlotSet implements Iterable<Slot> {
|
||||
collisions.add(s);
|
||||
}
|
||||
}
|
||||
for (Slot s : collisions) {
|
||||
for (Slot s : collisions)
|
||||
newSlot = newSlot.merge(s);
|
||||
}
|
||||
|
||||
all.add(newSlot);
|
||||
}
|
||||
|
||||
public SlotSet smaller(double margin) {
|
||||
final SlotSet result = new SlotSet();
|
||||
for (Slot sl : all) {
|
||||
if (sl.size() <= 2 * margin) {
|
||||
if (sl.size() <= 2 * margin)
|
||||
continue;
|
||||
}
|
||||
|
||||
result.addSlot(sl.getStart() + margin, sl.getEnd() - margin);
|
||||
}
|
||||
return result;
|
||||
@ -108,9 +109,9 @@ public class SlotSet implements Iterable<Slot> {
|
||||
Collections.sort(all);
|
||||
Slot last = null;
|
||||
for (Slot slot : all) {
|
||||
if (last != null) {
|
||||
if (last != null)
|
||||
result.addSlot(last.getEnd(), slot.getStart());
|
||||
}
|
||||
|
||||
last = slot;
|
||||
}
|
||||
return result;
|
||||
@ -118,7 +119,7 @@ public class SlotSet implements Iterable<Slot> {
|
||||
|
||||
public void drawDebugX(UGraphic ug, double size) {
|
||||
for (Slot slot : all) {
|
||||
final URectangle rect = new URectangle(slot.getEnd() - slot.getStart(), size);
|
||||
final URectangle rect = URectangle.build(slot.getEnd() - slot.getStart(), size);
|
||||
ug.apply(UTranslate.dx(slot.getStart())).draw(rect);
|
||||
}
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ import net.sourceforge.plantuml.klimt.shape.ULine;
|
||||
import net.sourceforge.plantuml.klimt.shape.URectangle;
|
||||
|
||||
public class UGraphicCompressOnXorY extends UGraphicDelegator {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
public UGraphic apply(UChange change) {
|
||||
if (change instanceof UTranslate)
|
||||
|
@ -97,7 +97,7 @@ public class Position {
|
||||
public void drawDebug(UGraphic ug) {
|
||||
ug = ug.apply(HColors.BLACK).apply(HColors.none().bg());
|
||||
ug = ug.apply(new UTranslate(x, y));
|
||||
ug.draw(new URectangle(dim));
|
||||
ug.draw(URectangle.build(dim));
|
||||
}
|
||||
|
||||
public double getHeight() {
|
||||
|
@ -107,7 +107,7 @@ public class AtomTable extends AbstractAtom implements Atom {
|
||||
final double x1 = getStartingX(0);
|
||||
final double x2 = getStartingX(getNbCols());
|
||||
ug.apply(HColors.none()).apply(line.lineBackColor.bg()).apply(new UTranslate(x1, y1))
|
||||
.draw(new URectangle(x2 - x1, y2 - y1));
|
||||
.draw(URectangle.build(x2 - x1, y2 - y1));
|
||||
}
|
||||
for (int j = 0; j < getNbCols(); j++) {
|
||||
if (j >= line.cells.size()) {
|
||||
@ -126,7 +126,7 @@ public class AtomTable extends AbstractAtom implements Atom {
|
||||
final double y1 = getStartingY(i);
|
||||
final double y2 = getStartingY(i + 1);
|
||||
ug.apply(HColors.none()).apply(cellBackColor.bg()).apply(new UTranslate(x1, y1))
|
||||
.draw(new URectangle(x2 - x1, y2 - y1));
|
||||
.draw(URectangle.build(x2 - x1, y2 - y1));
|
||||
}
|
||||
final Position pos = positions.get(cell);
|
||||
final XDimension2D dimCell = cell.calculateDimension(ug.getStringBounder());
|
||||
|
@ -60,10 +60,10 @@ public class Bullet extends AbstractAtom implements Atom {
|
||||
ug = ug.apply(color).apply(color.bg()).apply(UStroke.withThickness(0));
|
||||
if (order == 0) {
|
||||
ug = ug.apply(UTranslate.dx(3));
|
||||
ug.draw(new UEllipse(5, 5));
|
||||
ug.draw(UEllipse.build(5, 5));
|
||||
} else {
|
||||
ug = ug.apply(UTranslate.dx(1 + 8 * order));
|
||||
ug.draw(new URectangle(3.5, 3.5));
|
||||
ug.draw(URectangle.build(3.5, 3.5));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ public class CommandCreoleSvgAttributeChange implements Command {
|
||||
final FontConfiguration fc1 = stripe.getActualFontConfiguration();
|
||||
FontConfiguration fc2 = fc1;
|
||||
if (m.group(2) != null) {
|
||||
fc2 = fc2.changeAttributes(new SvgAttributes(m.group(2)));
|
||||
fc2 = fc2.changeAttributes(SvgAttributes.build(m.group(2)));
|
||||
}
|
||||
|
||||
stripe.setActualFontConfiguration(fc2);
|
||||
|
@ -51,7 +51,7 @@ class SvgAttributesChange implements FontChange {
|
||||
if (m.find() == false) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
attributes = new SvgAttributes(m.group(1));
|
||||
attributes = SvgAttributes.build(m.group(1));
|
||||
}
|
||||
|
||||
public FontConfiguration apply(FontConfiguration initial) {
|
||||
|
@ -146,7 +146,7 @@ public final class AtomText extends AbstractAtom implements Atom {
|
||||
} else {
|
||||
final XDimension2D dim = ug.getStringBounder().calculateDimension(fontConfiguration.getFont(),
|
||||
s);
|
||||
final UText utext = new UText(s, useFontConfiguration);
|
||||
final UText utext = UText.build(s, useFontConfiguration);
|
||||
ug.apply(new UTranslate(x, ypos)).draw(utext);
|
||||
x += dim.getWidth();
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ public class StripeCode implements StripeRaw {
|
||||
public void drawU(UGraphic ug) {
|
||||
double y = 0;
|
||||
for (String s : raw) {
|
||||
final UText shape = new UText(s, fontConfiguration);
|
||||
final UText shape = UText.build(s, fontConfiguration);
|
||||
final StringBounder stringBounder = ug.getStringBounder();
|
||||
final XDimension2D dim = stringBounder.calculateDimension(fontConfiguration.getFont(), s);
|
||||
y += dim.getHeight();
|
||||
|
@ -55,7 +55,6 @@ import net.sourceforge.plantuml.klimt.shape.UHidden;
|
||||
import net.sourceforge.plantuml.url.Url;
|
||||
|
||||
public abstract class AbstractCommonUGraphic implements UGraphic {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private UStroke stroke = UStroke.simple();
|
||||
private UPattern pattern = UPattern.FULL;
|
||||
@ -64,13 +63,37 @@ public abstract class AbstractCommonUGraphic implements UGraphic {
|
||||
private HColor color = HColors.none();
|
||||
private boolean enlargeClip = false;
|
||||
|
||||
private final StringBounder stringBounder;
|
||||
private /*final*/ StringBounder stringBounder;
|
||||
private UTranslate translate = UTranslate.none();
|
||||
|
||||
private final ColorMapper colorMapper;
|
||||
private /*final*/ ColorMapper colorMapper;
|
||||
private UClip clip;
|
||||
|
||||
private final HColor defaultBackground;
|
||||
private /*final*/ HColor defaultBackground;
|
||||
|
||||
public void basicCopy(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder) {
|
||||
this.colorMapper = colorMapper;
|
||||
this.defaultBackground = Objects.requireNonNull(defaultBackground);
|
||||
this.stringBounder = stringBounder;
|
||||
}
|
||||
|
||||
protected void basicCopy(AbstractCommonUGraphic other) {
|
||||
this.defaultBackground = Objects.requireNonNull(other.defaultBackground);
|
||||
this.enlargeClip = other.enlargeClip;
|
||||
this.colorMapper = other.colorMapper;
|
||||
this.stringBounder = other.stringBounder;
|
||||
this.translate = other.translate;
|
||||
this.clip = other.clip;
|
||||
|
||||
this.stroke = other.stroke;
|
||||
this.pattern = other.pattern;
|
||||
this.hidden = other.hidden;
|
||||
this.color = other.color;
|
||||
this.backColor = other.backColor;
|
||||
}
|
||||
|
||||
protected abstract AbstractCommonUGraphic copyUGraphic();
|
||||
|
||||
|
||||
@Override
|
||||
public HColor getDefaultBackground() {
|
||||
@ -116,34 +139,6 @@ public abstract class AbstractCommonUGraphic implements UGraphic {
|
||||
this.enlargeClip = true;
|
||||
}
|
||||
|
||||
public AbstractCommonUGraphic(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder) {
|
||||
if (defaultBackground == null)
|
||||
throw new IllegalArgumentException();
|
||||
|
||||
this.colorMapper = colorMapper;
|
||||
this.defaultBackground = defaultBackground;
|
||||
this.stringBounder = stringBounder;
|
||||
}
|
||||
|
||||
protected AbstractCommonUGraphic(AbstractCommonUGraphic other) {
|
||||
this.defaultBackground = other.defaultBackground;
|
||||
if (defaultBackground == null)
|
||||
throw new IllegalArgumentException();
|
||||
this.enlargeClip = other.enlargeClip;
|
||||
this.colorMapper = other.colorMapper;
|
||||
this.stringBounder = other.stringBounder;
|
||||
this.translate = other.translate;
|
||||
this.clip = other.clip;
|
||||
|
||||
this.stroke = other.stroke;
|
||||
this.pattern = other.pattern;
|
||||
this.hidden = other.hidden;
|
||||
this.color = other.color;
|
||||
this.backColor = other.backColor;
|
||||
}
|
||||
|
||||
protected abstract AbstractCommonUGraphic copyUGraphic();
|
||||
|
||||
final public UParam getParam() {
|
||||
return new UParam() {
|
||||
|
||||
|
@ -69,8 +69,8 @@ import net.sourceforge.plantuml.klimt.shape.UText;
|
||||
public abstract class AbstractUGraphic<O> extends AbstractCommonUGraphic {
|
||||
// ::remove file when __HAXE__
|
||||
|
||||
private final O graphic;
|
||||
private final MinMaxMutable minmax;
|
||||
private /*final*/ O graphic;
|
||||
private /*final*/ MinMaxMutable minmax;
|
||||
|
||||
// It would be nice to do something like this but not sure how:
|
||||
// Map<Class<SHAPE>, UDriver<SHAPE, O>>
|
||||
@ -78,19 +78,20 @@ public abstract class AbstractUGraphic<O> extends AbstractCommonUGraphic {
|
||||
// https://stackoverflow.com/questions/416540/java-map-with-values-limited-by-keys-type-parameter
|
||||
private final Map<Class<? extends UShape>, UDriver<?, O>> drivers = new HashMap<>();
|
||||
|
||||
public AbstractUGraphic(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder, O graphic) {
|
||||
super(Objects.requireNonNull(defaultBackground), colorMapper, stringBounder);
|
||||
public void copy(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder, O graphic) {
|
||||
basicCopy(defaultBackground, colorMapper, stringBounder);
|
||||
// super(Objects.requireNonNull(defaultBackground), colorMapper, stringBounder);
|
||||
this.graphic = graphic;
|
||||
this.minmax = MinMaxMutable.getEmpty(true);
|
||||
}
|
||||
|
||||
protected AbstractUGraphic(AbstractUGraphic<O> other) {
|
||||
super(other);
|
||||
protected void copy(AbstractUGraphic<O> other) {
|
||||
basicCopy(other);
|
||||
this.graphic = other.graphic;
|
||||
this.minmax = other.minmax;
|
||||
// this.drivers.putAll(other.drivers);
|
||||
}
|
||||
|
||||
|
||||
protected final O getGraphicObject() {
|
||||
return graphic;
|
||||
}
|
||||
|
@ -74,5 +74,7 @@ public interface UGraphic {
|
||||
|
||||
public HColor getDefaultBackground();
|
||||
|
||||
// ::comment when __HAXE__
|
||||
public void writeToStream(OutputStream os, String metadata, int dpi) throws IOException;
|
||||
// ::done
|
||||
}
|
||||
|
@ -48,15 +48,16 @@ public class UGraphicNull extends AbstractUGraphic<String> implements EnsureVisi
|
||||
|
||||
@Override
|
||||
protected AbstractCommonUGraphic copyUGraphic() {
|
||||
return new UGraphicNull(this);
|
||||
final UGraphicNull result = new UGraphicNull(this);
|
||||
return result;
|
||||
}
|
||||
|
||||
private UGraphicNull(UGraphicNull other) {
|
||||
super(other);
|
||||
copy(other);
|
||||
}
|
||||
|
||||
public UGraphicNull() {
|
||||
super(HColors.BLACK, ColorMapper.IDENTITY, FileFormat.PNG.getDefaultStringBounder(), "foo");
|
||||
copy(HColors.BLACK, ColorMapper.IDENTITY, FileFormat.PNG.getDefaultStringBounder(), "foo");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -80,13 +80,14 @@ public class UGraphicDebug extends AbstractCommonUGraphic implements ClipContain
|
||||
|
||||
@Override
|
||||
protected AbstractCommonUGraphic copyUGraphic() {
|
||||
return new UGraphicDebug(this, output, scaleFactor, dim, svgLinkTarget, hoverPathColorRGB, seed,
|
||||
final UGraphicDebug result = new UGraphicDebug(this, output, scaleFactor, dim, svgLinkTarget, hoverPathColorRGB, seed,
|
||||
preserveAspectRatio);
|
||||
return result;
|
||||
}
|
||||
|
||||
private UGraphicDebug(UGraphicDebug other, List<String> output, double scaleFactor, XDimension2D dim,
|
||||
String svgLinkTarget, String hoverPathColorRGB, long seed, String preserveAspectRatio) {
|
||||
super(other);
|
||||
basicCopy(other);
|
||||
this.output = output;
|
||||
this.scaleFactor = scaleFactor;
|
||||
this.dim = dim;
|
||||
@ -98,7 +99,7 @@ public class UGraphicDebug extends AbstractCommonUGraphic implements ClipContain
|
||||
|
||||
public UGraphicDebug(double scaleFactor, XDimension2D dim, String svgLinkTarget, String hoverPathColorRGB,
|
||||
long seed, String preserveAspectRatio) {
|
||||
super(HColors.WHITE, ColorMapper.IDENTITY, new StringBounderDebug());
|
||||
basicCopy(HColors.WHITE, ColorMapper.IDENTITY, new StringBounderDebug());
|
||||
this.output = new ArrayList<>();
|
||||
this.scaleFactor = scaleFactor;
|
||||
this.dim = dim;
|
||||
|
@ -62,18 +62,19 @@ public class UGraphicEps extends AbstractUGraphic<EpsGraphics> implements ClipCo
|
||||
|
||||
@Override
|
||||
protected AbstractCommonUGraphic copyUGraphic() {
|
||||
return new UGraphicEps(this);
|
||||
final UGraphicEps result = new UGraphicEps(this);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected UGraphicEps(UGraphicEps other) {
|
||||
super(other);
|
||||
copy(other);
|
||||
this.strategyTOBEREMOVED = other.strategyTOBEREMOVED;
|
||||
register();
|
||||
}
|
||||
|
||||
public UGraphicEps(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder,
|
||||
EpsStrategy strategy) {
|
||||
super(defaultBackground, colorMapper, stringBounder, strategy.creatEpsGraphics());
|
||||
copy(defaultBackground, colorMapper, stringBounder, strategy.creatEpsGraphics());
|
||||
this.strategyTOBEREMOVED = strategy;
|
||||
register();
|
||||
}
|
||||
|
@ -107,11 +107,12 @@ public class UGraphicG2d extends AbstractUGraphic<Graphics2D> implements EnsureV
|
||||
|
||||
@Override
|
||||
protected AbstractCommonUGraphic copyUGraphic() {
|
||||
return new UGraphicG2d(this);
|
||||
final UGraphicG2d result = new UGraphicG2d(this);
|
||||
return result;
|
||||
}
|
||||
|
||||
private UGraphicG2d(UGraphicG2d other) {
|
||||
super(other);
|
||||
copy(other);
|
||||
// ::comment when __CORE__
|
||||
this.hasAffineTransform = other.hasAffineTransform;
|
||||
// ::done
|
||||
@ -126,25 +127,21 @@ public class UGraphicG2d extends AbstractUGraphic<Graphics2D> implements EnsureV
|
||||
|
||||
public UGraphicG2d(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder, Graphics2D g2d,
|
||||
double dpiFactor, FileFormat format) {
|
||||
// ::comment when __CORE__
|
||||
this(defaultBackground, colorMapper, stringBounder, g2d, dpiFactor, null, 0, 0, format);
|
||||
// ::done
|
||||
// ::uncomment when __CORE__
|
||||
// ::revert when __CORE__
|
||||
this(defaultBackground, colorMapper, stringBounder, g2d, dpiFactor, 0, 0, format, null);
|
||||
// this(defaultBackground, colorMapper, stringBounder, g2d, dpiFactor, 0, 0,
|
||||
// format);
|
||||
// ::done
|
||||
}
|
||||
|
||||
// ::comment when __CORE__
|
||||
// ::revert when __CORE__
|
||||
public UGraphicG2d(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder, Graphics2D g2d,
|
||||
double dpiFactor, AffineTransformation affineTransform, double dx, double dy, FileFormat format) {
|
||||
// ::done
|
||||
// ::uncomment when __CORE__
|
||||
double dpiFactor, double dx, double dy, FileFormat format, AffineTransformation affineTransform) {
|
||||
// public UGraphicG2d(HColor defaultBackground, ColorMapper colorMapper,
|
||||
// StringBounder stringBounder, Graphics2D g2d,
|
||||
// double dpiFactor, double dx, double dy, FileFormat format) {
|
||||
// ::done
|
||||
super(defaultBackground, colorMapper, stringBounder, g2d);
|
||||
copy(defaultBackground, colorMapper, stringBounder, g2d);
|
||||
this.format = format;
|
||||
this.dpiFactor = dpiFactor;
|
||||
if (dpiFactor != 1.0)
|
||||
|
@ -121,8 +121,8 @@ public class HandJiggle {
|
||||
final double flatness = curve.getFlatness();
|
||||
final double dist = curve.getP1().distance(curve.getP2());
|
||||
if (flatness > 0.1 && dist > 20) {
|
||||
final XCubicCurve2D left = new XCubicCurve2D();
|
||||
final XCubicCurve2D right = new XCubicCurve2D();
|
||||
final XCubicCurve2D left = XCubicCurve2D.none();
|
||||
final XCubicCurve2D right = XCubicCurve2D.none();
|
||||
curve.subdivide(left, right);
|
||||
curveTo(left);
|
||||
curveTo(right);
|
||||
@ -143,7 +143,7 @@ public class HandJiggle {
|
||||
UPath path = null;
|
||||
for (XPoint2D p : points) {
|
||||
if (path == null) {
|
||||
path = new UPath();
|
||||
path = UPath.none();
|
||||
path.moveTo(p);
|
||||
} else {
|
||||
path.lineTo(p);
|
||||
|
@ -49,7 +49,7 @@ public class UPathHand {
|
||||
|
||||
public UPathHand(UPath source, Random rnd) {
|
||||
|
||||
final UPath result = new UPath();
|
||||
final UPath result = UPath.none();
|
||||
|
||||
XPoint2D last = new XPoint2D(0, 0);
|
||||
|
||||
|
@ -56,7 +56,7 @@ public class UGraphicHtml5 extends AbstractUGraphic<Html5Drawer> implements Clip
|
||||
}
|
||||
|
||||
public UGraphicHtml5(HColor defaultBackground, ColorMapper colorMapper, StringBounder stringBounder) {
|
||||
super(defaultBackground, colorMapper, stringBounder, new Html5Drawer());
|
||||
copy(defaultBackground, colorMapper, stringBounder, new Html5Drawer());
|
||||
registerDriver(URectangle.class, new DriverRectangleHtml5(this));
|
||||
// registerDriver(UText.class, new DriverTextEps(imDummy, this, strategy));
|
||||
ignoreShape(UText.class);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user