mirror of
https://github.com/octoleo/plantuml.git
synced 2024-10-31 19:22:31 +00:00
version 8031
This commit is contained in:
parent
9ca0fe659d
commit
902ab3e908
@ -124,4 +124,8 @@ public class BlockUml {
|
||||
return startLine;
|
||||
}
|
||||
|
||||
public final List<CharSequence2> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,6 +44,7 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
import net.sourceforge.plantuml.preproc.FileWithSuffix;
|
||||
import net.sourceforge.plantuml.preproc.Preprocessor;
|
||||
import net.sourceforge.plantuml.preproc.ReadLineReader;
|
||||
import net.sourceforge.plantuml.preproc.UncommentReadLine;
|
||||
@ -52,7 +53,7 @@ import net.sourceforge.plantuml.utils.StartUtils;
|
||||
final public class BlockUmlBuilder {
|
||||
|
||||
private final List<BlockUml> blocks = new ArrayList<BlockUml>();
|
||||
private Set<File> usedFiles = new HashSet<File>();
|
||||
private Set<FileWithSuffix> usedFiles = new HashSet<FileWithSuffix>();
|
||||
private final UncommentReadLine reader2;
|
||||
|
||||
public BlockUmlBuilder(List<String> config, String charset, Defines defines, Reader reader, File newCurrentDir,
|
||||
@ -70,8 +71,7 @@ final public class BlockUmlBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
public BlockUmlBuilder(List<String> config, String charset, Defines defines, Reader reader)
|
||||
throws IOException {
|
||||
public BlockUmlBuilder(List<String> config, String charset, Defines defines, Reader reader) throws IOException {
|
||||
this(config, charset, defines, reader, null, null);
|
||||
}
|
||||
|
||||
@ -124,7 +124,7 @@ final public class BlockUmlBuilder {
|
||||
return Collections.unmodifiableList(blocks);
|
||||
}
|
||||
|
||||
public final Set<File> getIncludedFiles() {
|
||||
public final Set<FileWithSuffix> getIncludedFiles() {
|
||||
return Collections.unmodifiableSet(usedFiles);
|
||||
}
|
||||
|
||||
|
@ -28,110 +28,111 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16778 $
|
||||
* Revision $Revision: 17054 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
|
||||
public enum ColorParam {
|
||||
background(HtmlColorUtils.WHITE),
|
||||
background(HtmlColorUtils.WHITE, ColorType.BACK),
|
||||
hyperlink(HtmlColorUtils.BLUE),
|
||||
|
||||
activityBackground(HtmlColorUtils.MY_YELLOW),
|
||||
activityBorder(HtmlColorUtils.MY_RED),
|
||||
activityBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
activityBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
activityStart(HtmlColorUtils.BLACK),
|
||||
activityEnd(HtmlColorUtils.BLACK),
|
||||
activityBar(HtmlColorUtils.BLACK),
|
||||
activityArrow(HtmlColorUtils.MY_RED),
|
||||
activityArrow(HtmlColorUtils.MY_RED, ColorType.ARROW),
|
||||
|
||||
usecaseBorder(HtmlColorUtils.MY_RED),
|
||||
usecaseBackground(HtmlColorUtils.MY_YELLOW),
|
||||
usecaseArrow(HtmlColorUtils.MY_RED),
|
||||
usecaseBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
usecaseBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
usecaseArrow(HtmlColorUtils.MY_RED, ColorType.ARROW),
|
||||
|
||||
objectBackground(HtmlColorUtils.MY_YELLOW),
|
||||
objectBorder(HtmlColorUtils.MY_RED),
|
||||
objectArrow(HtmlColorUtils.MY_RED),
|
||||
objectBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
objectBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
objectArrow(HtmlColorUtils.MY_RED, ColorType.ARROW),
|
||||
|
||||
classHeaderBackground(null),
|
||||
classBackground(HtmlColorUtils.MY_YELLOW),
|
||||
classBorder(HtmlColorUtils.MY_RED),
|
||||
classHeaderBackground(null, ColorType.BACK),
|
||||
classBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
classBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
stereotypeCBackground(HtmlColorUtils.COL_ADD1B2),
|
||||
stereotypeABackground(HtmlColorUtils.COL_A9DCDF),
|
||||
stereotypeIBackground(HtmlColorUtils.COL_B4A7E5),
|
||||
stereotypeEBackground(HtmlColorUtils.COL_EB937F),
|
||||
classArrow(HtmlColorUtils.MY_RED),
|
||||
classArrow(HtmlColorUtils.MY_RED, ColorType.ARROW),
|
||||
|
||||
packageBackground(HtmlColorUtils.MY_YELLOW),
|
||||
packageBorder(HtmlColorUtils.BLACK),
|
||||
packageBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
packageBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
|
||||
partitionBackground(HtmlColorUtils.MY_YELLOW),
|
||||
partitionBorder(HtmlColorUtils.BLACK),
|
||||
partitionBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
partitionBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
|
||||
componentBackground(HtmlColorUtils.MY_YELLOW),
|
||||
componentBorder(HtmlColorUtils.MY_RED),
|
||||
interfaceBackground(HtmlColorUtils.MY_YELLOW),
|
||||
interfaceBorder(HtmlColorUtils.MY_RED),
|
||||
// componentArrow,
|
||||
componentBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
componentBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
interfaceBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
interfaceBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
componentArrow(HtmlColorUtils.MY_RED, ColorType.ARROW),
|
||||
|
||||
stateBackground(HtmlColorUtils.MY_YELLOW),
|
||||
stateBorder(HtmlColorUtils.MY_RED),
|
||||
stateArrow(HtmlColorUtils.MY_RED),
|
||||
stateBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
stateBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
stateArrow(HtmlColorUtils.MY_RED, ColorType.ARROW),
|
||||
stateStart(HtmlColorUtils.BLACK),
|
||||
stateEnd(HtmlColorUtils.BLACK),
|
||||
|
||||
noteBackground(HtmlColorUtils.COL_FBFB77, true),
|
||||
noteBorder(HtmlColorUtils.MY_RED),
|
||||
noteBackground(HtmlColorUtils.COL_FBFB77, true, ColorType.BACK),
|
||||
noteBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
|
||||
legendBackground(HtmlColorUtils.COL_DDDDDD, true),
|
||||
legendBorder(HtmlColorUtils.BLACK),
|
||||
legendBackground(HtmlColorUtils.COL_DDDDDD, true, ColorType.BACK),
|
||||
legendBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
|
||||
actorBackground(HtmlColorUtils.MY_YELLOW, true),
|
||||
actorBorder(HtmlColorUtils.MY_RED),
|
||||
participantBackground(HtmlColorUtils.MY_YELLOW, true),
|
||||
participantBorder(HtmlColorUtils.MY_RED),
|
||||
sequenceGroupBorder(HtmlColorUtils.BLACK),
|
||||
sequenceGroupBackground(HtmlColorUtils.COL_EEEEEE, true),
|
||||
sequenceReferenceBorder(HtmlColorUtils.BLACK),
|
||||
sequenceReferenceHeaderBackground(HtmlColorUtils.COL_EEEEEE, true),
|
||||
sequenceReferenceBackground(HtmlColorUtils.WHITE, true),
|
||||
sequenceDividerBackground(HtmlColorUtils.COL_EEEEEE, true),
|
||||
sequenceDividerBorder(HtmlColorUtils.BLACK),
|
||||
sequenceLifeLineBackground(HtmlColorUtils.WHITE, true),
|
||||
sequenceLifeLineBorder(HtmlColorUtils.MY_RED),
|
||||
actorBackground(HtmlColorUtils.MY_YELLOW, true, ColorType.BACK),
|
||||
actorBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
participantBackground(HtmlColorUtils.MY_YELLOW, true, ColorType.BACK),
|
||||
participantBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
sequenceGroupBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
sequenceGroupBackground(HtmlColorUtils.COL_EEEEEE, true, ColorType.BACK),
|
||||
sequenceReferenceBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
sequenceReferenceHeaderBackground(HtmlColorUtils.COL_EEEEEE, true, ColorType.BACK),
|
||||
sequenceReferenceBackground(HtmlColorUtils.WHITE, true, ColorType.BACK),
|
||||
sequenceDividerBackground(HtmlColorUtils.COL_EEEEEE, true, ColorType.BACK),
|
||||
sequenceDividerBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
sequenceLifeLineBackground(HtmlColorUtils.WHITE, true, ColorType.BACK),
|
||||
sequenceLifeLineBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
sequenceArrow(HtmlColorUtils.MY_RED),
|
||||
sequenceBoxBorder(HtmlColorUtils.MY_RED),
|
||||
sequenceBoxBackground(HtmlColorUtils.COL_DDDDDD, true),
|
||||
sequenceBoxBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
sequenceBoxBackground(HtmlColorUtils.COL_DDDDDD, true, ColorType.BACK),
|
||||
|
||||
artifactBackground(HtmlColorUtils.MY_YELLOW),
|
||||
artifactBorder(HtmlColorUtils.BLACK),
|
||||
cloudBackground(HtmlColorUtils.MY_YELLOW),
|
||||
cloudBorder(HtmlColorUtils.BLACK),
|
||||
queueBackground(HtmlColorUtils.MY_YELLOW),
|
||||
queueBorder(HtmlColorUtils.MY_RED),
|
||||
databaseBackground(HtmlColorUtils.MY_YELLOW),
|
||||
databaseBorder(HtmlColorUtils.BLACK),
|
||||
folderBackground(HtmlColorUtils.MY_YELLOW),
|
||||
folderBorder(HtmlColorUtils.BLACK),
|
||||
frameBackground(HtmlColorUtils.MY_YELLOW),
|
||||
frameBorder(HtmlColorUtils.BLACK),
|
||||
nodeBackground(HtmlColorUtils.MY_YELLOW),
|
||||
nodeBorder(HtmlColorUtils.BLACK),
|
||||
rectangleBackground(HtmlColorUtils.MY_YELLOW),
|
||||
rectangleBorder(HtmlColorUtils.BLACK),
|
||||
agentBackground(HtmlColorUtils.MY_YELLOW),
|
||||
agentBorder(HtmlColorUtils.MY_RED),
|
||||
storageBackground(HtmlColorUtils.MY_YELLOW),
|
||||
storageBorder(HtmlColorUtils.BLACK),
|
||||
boundaryBackground(HtmlColorUtils.MY_YELLOW),
|
||||
boundaryBorder(HtmlColorUtils.MY_RED),
|
||||
controlBackground(HtmlColorUtils.MY_YELLOW),
|
||||
controlBorder(HtmlColorUtils.MY_RED),
|
||||
entityBackground(HtmlColorUtils.MY_YELLOW),
|
||||
entityBorder(HtmlColorUtils.MY_RED),
|
||||
artifactBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
artifactBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
cloudBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
cloudBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
queueBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
queueBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
databaseBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
databaseBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
folderBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
folderBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
frameBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
frameBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
nodeBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
nodeBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
rectangleBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
rectangleBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
agentBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
agentBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
storageBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
storageBorder(HtmlColorUtils.BLACK, ColorType.LINE),
|
||||
boundaryBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
boundaryBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
controlBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
controlBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
entityBackground(HtmlColorUtils.MY_YELLOW, ColorType.BACK),
|
||||
entityBorder(HtmlColorUtils.MY_RED, ColorType.LINE),
|
||||
|
||||
|
||||
iconPrivate(HtmlColorUtils.COL_C82930),
|
||||
@ -145,22 +146,28 @@ public enum ColorParam {
|
||||
|
||||
private final boolean isBackground;
|
||||
private final HtmlColor defaultValue;
|
||||
private final ColorType colorType;
|
||||
|
||||
private ColorParam(HtmlColor defaultValue, ColorType colorType) {
|
||||
this(defaultValue, false, colorType);
|
||||
}
|
||||
|
||||
private ColorParam(HtmlColor defaultValue) {
|
||||
this(defaultValue, false);
|
||||
this(defaultValue, false, null);
|
||||
}
|
||||
|
||||
private ColorParam() {
|
||||
this(null, false);
|
||||
this(null, false, null);
|
||||
}
|
||||
|
||||
private ColorParam(boolean isBackground) {
|
||||
this(null, isBackground);
|
||||
this(null, isBackground, null);
|
||||
}
|
||||
|
||||
private ColorParam(HtmlColor defaultValue, boolean isBackground) {
|
||||
private ColorParam(HtmlColor defaultValue, boolean isBackground, ColorType colorType) {
|
||||
this.isBackground = isBackground;
|
||||
this.defaultValue = defaultValue;
|
||||
this.colorType = colorType;
|
||||
}
|
||||
|
||||
protected boolean isBackground() {
|
||||
@ -170,4 +177,8 @@ public enum ColorParam {
|
||||
public final HtmlColor getDefaultValue() {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public ColorType getColorType() {
|
||||
return colorType;
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 12866 $
|
||||
* Revision $Revision: 17341 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
@ -38,12 +38,12 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
import net.sourceforge.plantuml.preproc.FileWithSuffix;
|
||||
|
||||
@Deprecated
|
||||
public class DirWatcher {
|
||||
@ -78,7 +78,7 @@ public class DirWatcher {
|
||||
if (watcher == null || watcher.hasChanged()) {
|
||||
final SourceFileReader sourceFileReader = new SourceFileReader(new Defines(), f, option.getOutputDir(),
|
||||
option.getConfig(), option.getCharset(), option.getFileFormatOption());
|
||||
final Set<File> files = new HashSet<File>(sourceFileReader.getIncludedFiles());
|
||||
final Set<File> files = FileWithSuffix.convert(sourceFileReader.getIncludedFiles());
|
||||
files.add(f);
|
||||
for (GeneratedImage g : sourceFileReader.getGeneratedImages()) {
|
||||
result.add(g);
|
||||
|
@ -36,7 +36,6 @@ package net.sourceforge.plantuml;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@ -49,6 +48,7 @@ import java.util.concurrent.Future;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
import net.sourceforge.plantuml.preproc.FileWithSuffix;
|
||||
|
||||
public class DirWatcher2 {
|
||||
|
||||
@ -90,7 +90,7 @@ public class DirWatcher2 {
|
||||
try {
|
||||
final List<GeneratedImage> generatedImages = sourceFileReader
|
||||
.getGeneratedImages();
|
||||
final Set<File> files = new HashSet<File>(sourceFileReader.getIncludedFiles());
|
||||
final Set<File> files = FileWithSuffix.convert(sourceFileReader.getIncludedFiles());
|
||||
files.add(f);
|
||||
modifieds.put(f, new FileWatcher(files));
|
||||
return Collections.unmodifiableList(generatedImages);
|
||||
|
@ -38,6 +38,7 @@ import java.awt.Graphics2D;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Dimension2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.Serializable;
|
||||
|
||||
import net.sourceforge.plantuml.eps.EpsStrategy;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
@ -64,7 +65,7 @@ import net.sourceforge.plantuml.StringUtils;
|
||||
* @author Arnaud Roques
|
||||
*
|
||||
*/
|
||||
public class FileFormatOption {
|
||||
public class FileFormatOption implements Serializable {
|
||||
|
||||
private final FileFormat fileFormat;
|
||||
private final AffineTransform affineTransform;
|
||||
@ -75,7 +76,7 @@ public class FileFormatOption {
|
||||
public FileFormatOption(FileFormat fileFormat) {
|
||||
this(fileFormat, null, true, false, "_top");
|
||||
}
|
||||
|
||||
|
||||
public String getSvgLinkTarget() {
|
||||
return svgLinkTarget;
|
||||
}
|
||||
@ -88,7 +89,8 @@ public class FileFormatOption {
|
||||
this(fileFormat, null, false, false, "_top");
|
||||
}
|
||||
|
||||
private FileFormatOption(FileFormat fileFormat, AffineTransform at, boolean withMetadata, boolean useRedForError, String svgLinkTarget) {
|
||||
private FileFormatOption(FileFormat fileFormat, AffineTransform at, boolean withMetadata, boolean useRedForError,
|
||||
String svgLinkTarget) {
|
||||
this.fileFormat = fileFormat;
|
||||
this.affineTransform = at;
|
||||
this.withMetadata = withMetadata;
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16629 $
|
||||
* Revision $Revision: 17071 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
@ -36,9 +36,6 @@ package net.sourceforge.plantuml;
|
||||
import java.awt.Font;
|
||||
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.skin.rose.Rose;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
|
||||
interface FontParamConstant {
|
||||
String FAMILY = "SansSerif";
|
||||
@ -153,11 +150,7 @@ public enum FontParam {
|
||||
}
|
||||
|
||||
public FontConfiguration getFontConfiguration(ISkinParam skinParam) {
|
||||
final UFont font = skinParam.getFont(this, null, false);
|
||||
final HtmlColor color = new Rose().getFontColor(skinParam, this);
|
||||
final HtmlColor hyperlinkColor = skinParam.getHyperlinkColor();
|
||||
final boolean useUnderlineForHyperlink = skinParam.useUnderlineForHyperlink();
|
||||
return new FontConfiguration(font, color, hyperlinkColor, useUnderlineForHyperlink);
|
||||
return new FontConfiguration(skinParam, this, null);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -28,65 +28,19 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 12869 $
|
||||
* Revision $Revision: 17137 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
public interface GeneratedImage extends Comparable<GeneratedImage> {
|
||||
|
||||
public class GeneratedImage implements Comparable<GeneratedImage> {
|
||||
public File getPngFile();
|
||||
|
||||
private final File pngFile;
|
||||
private final String description;
|
||||
private final BlockUml blockUml;
|
||||
public String getDescription();
|
||||
|
||||
public GeneratedImage(File pngFile, String description, BlockUml blockUml) {
|
||||
this.blockUml = blockUml;
|
||||
this.pngFile = pngFile;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public File getPngFile() {
|
||||
return pngFile;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public int lineErrorRaw() {
|
||||
final Diagram system = blockUml.getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
return ((PSystemError) system).getHigherErrorPosition() + blockUml.getStartLine();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return pngFile.getAbsolutePath() + " " + description;
|
||||
}
|
||||
|
||||
public int compareTo(GeneratedImage this2) {
|
||||
final int cmp = this.pngFile.compareTo(this2.pngFile);
|
||||
if (cmp != 0) {
|
||||
return cmp;
|
||||
}
|
||||
return this.description.compareTo(this2.description);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return pngFile.hashCode() + description.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
final GeneratedImage this2 = (GeneratedImage) obj;
|
||||
return this2.pngFile.equals(this.pngFile) && this2.description.equals(this.description);
|
||||
}
|
||||
public int lineErrorRaw();
|
||||
|
||||
}
|
||||
|
92
src/net/sourceforge/plantuml/GeneratedImageImpl.java
Normal file
92
src/net/sourceforge/plantuml/GeneratedImageImpl.java
Normal file
@ -0,0 +1,92 @@
|
||||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2014, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.sourceforge.net
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
|
||||
* in the United States and other countries.]
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 12869 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
|
||||
public class GeneratedImageImpl implements GeneratedImage {
|
||||
|
||||
private final File pngFile;
|
||||
private final String description;
|
||||
private final BlockUml blockUml;
|
||||
|
||||
public GeneratedImageImpl(File pngFile, String description, BlockUml blockUml) {
|
||||
this.blockUml = blockUml;
|
||||
this.pngFile = pngFile;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public File getPngFile() {
|
||||
return pngFile;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public int lineErrorRaw() {
|
||||
final Diagram system = blockUml.getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
return ((PSystemError) system).getHigherErrorPosition() + blockUml.getStartLine();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return pngFile.getAbsolutePath() + " " + description;
|
||||
}
|
||||
|
||||
public int compareTo(GeneratedImage this2) {
|
||||
final int cmp = this.pngFile.compareTo(this2.getPngFile());
|
||||
if (cmp != 0) {
|
||||
return cmp;
|
||||
}
|
||||
return this.description.compareTo(this2.getDescription());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return pngFile.hashCode() + description.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
final GeneratedImageImpl this2 = (GeneratedImageImpl) obj;
|
||||
return this2.pngFile.equals(this.pngFile) && this2.description.equals(this.description);
|
||||
}
|
||||
|
||||
}
|
@ -41,6 +41,7 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.IHtmlColorSet;
|
||||
import net.sourceforge.plantuml.graphic.SkinParameter;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.svek.PackageStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.ColorMapper;
|
||||
@ -57,6 +58,8 @@ public interface ISkinParam extends ISkinSimple {
|
||||
|
||||
public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable);
|
||||
|
||||
public Colors getColors(ColorParam param, Stereotype stereotype);
|
||||
|
||||
public HtmlColor getFontHtmlColor(FontParam param, Stereotype stereotype);
|
||||
|
||||
public UStroke getThickness(LineParam param, Stereotype stereotype);
|
||||
@ -116,11 +119,13 @@ public interface ISkinParam extends ISkinSimple {
|
||||
public IHtmlColorSet getIHtmlColorSet();
|
||||
|
||||
public int groupInheritance();
|
||||
|
||||
|
||||
public boolean useGuillemet();
|
||||
|
||||
public boolean handwritten();
|
||||
|
||||
public String getSvgLinkTarget();
|
||||
|
||||
public int getTabSize();
|
||||
|
||||
}
|
@ -41,5 +41,6 @@ public interface ISkinSimple extends SpriteContainer {
|
||||
|
||||
public String getMonospacedFamily();
|
||||
|
||||
public int getTabSize();
|
||||
|
||||
}
|
@ -43,5 +43,8 @@ public interface ISourceFileReader {
|
||||
public List<String> getEncodedUrl() throws IOException;
|
||||
|
||||
public boolean hasError();
|
||||
|
||||
public void setFileFormatOption(FileFormatOption fileFormatOption);
|
||||
|
||||
|
||||
}
|
||||
|
@ -34,16 +34,18 @@
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.ugraphic.UStroke;
|
||||
|
||||
public interface LineConfigurable {
|
||||
|
||||
public HtmlColor getSpecificLineColor();
|
||||
public Colors getColors(ISkinParam skinParam);
|
||||
|
||||
public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color);
|
||||
|
||||
public void setSpecificLineColor(HtmlColor specificLinecolor);
|
||||
// public void setSpecificLineStroke(UStroke specificLineStroke);
|
||||
|
||||
public UStroke getSpecificLineStroke();
|
||||
|
||||
public void setSpecificLineStroke(UStroke specificLineStoke);
|
||||
|
||||
}
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16732 $
|
||||
* Revision $Revision: 17125 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
@ -56,6 +56,7 @@ import net.sourceforge.plantuml.graphic.HtmlColorSetSimple;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.IHtmlColorSet;
|
||||
import net.sourceforge.plantuml.graphic.SkinParameter;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.svek.PackageStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.ColorMapper;
|
||||
@ -169,13 +170,28 @@ public class SkinParam implements ISkinParam {
|
||||
}
|
||||
}
|
||||
final String value = getValue(getParamName(param, clickable));
|
||||
final boolean acceptTransparent = param == ColorParam.background;
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
final boolean acceptTransparent = param == ColorParam.background;
|
||||
return getIHtmlColorSet().getColorIfValid(value, acceptTransparent);
|
||||
}
|
||||
|
||||
public Colors getColors(ColorParam param, Stereotype stereotype) {
|
||||
if (stereotype != null) {
|
||||
checkStereotype(stereotype);
|
||||
final String value2 = getValue(param.name() + "color" + stereotype.getLabel(false));
|
||||
if (value2 != null && getIHtmlColorSet().getColorIfValid(value2) != null) {
|
||||
return new Colors(value2, getIHtmlColorSet(), param.getColorType());
|
||||
}
|
||||
}
|
||||
final String value = getValue(getParamName(param, false));
|
||||
if (value == null) {
|
||||
return Colors.empty();
|
||||
}
|
||||
return new Colors(value, getIHtmlColorSet(), param.getColorType());
|
||||
}
|
||||
|
||||
private String getParamName(ColorParam param, boolean clickable) {
|
||||
String n = param.name();
|
||||
if (clickable && n.endsWith("Background")) {
|
||||
@ -681,4 +697,12 @@ public class SkinParam implements ISkinParam {
|
||||
return value;
|
||||
}
|
||||
|
||||
public int getTabSize() {
|
||||
final String value = getValue("tabsize");
|
||||
if (value != null && value.matches("\\d+")) {
|
||||
return Integer.parseInt(value);
|
||||
}
|
||||
return 8;
|
||||
}
|
||||
|
||||
}
|
||||
|
76
src/net/sourceforge/plantuml/SkinParamColors.java
Normal file
76
src/net/sourceforge/plantuml/SkinParamColors.java
Normal file
@ -0,0 +1,76 @@
|
||||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2014, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.sourceforge.net
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
|
||||
* in the United States and other countries.]
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 4246 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public class SkinParamColors extends SkinParamDelegator {
|
||||
|
||||
final private Colors colors;
|
||||
|
||||
public SkinParamColors(ISkinParam skinParam, Colors colors) {
|
||||
super(skinParam);
|
||||
this.colors = colors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + colors;
|
||||
}
|
||||
|
||||
public HtmlColor getFontHtmlColor(FontParam param, Stereotype stereotype) {
|
||||
final HtmlColor value = colors.getColor(ColorType.TEXT);
|
||||
if (value == null) {
|
||||
return super.getFontHtmlColor(param, stereotype);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) {
|
||||
final ColorType type = param.getColorType();
|
||||
if (type == null) {
|
||||
return super.getHtmlColor(param, stereotype, clickable);
|
||||
}
|
||||
final HtmlColor value = colors.getColor(type);
|
||||
if (value != null) {
|
||||
return value;
|
||||
}
|
||||
assert value == null;
|
||||
return super.getHtmlColor(param, stereotype, clickable);
|
||||
}
|
||||
|
||||
}
|
@ -41,6 +41,7 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.IHtmlColorSet;
|
||||
import net.sourceforge.plantuml.graphic.SkinParameter;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.svek.PackageStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.ColorMapper;
|
||||
@ -179,7 +180,7 @@ public class SkinParamDelegator implements ISkinParam {
|
||||
public Rankdir getRankdir() {
|
||||
return skinParam.getRankdir();
|
||||
}
|
||||
|
||||
|
||||
public boolean useOctagonForActivity(Stereotype stereotype) {
|
||||
return skinParam.useOctagonForActivity(stereotype);
|
||||
}
|
||||
@ -220,5 +221,12 @@ public class SkinParamDelegator implements ISkinParam {
|
||||
return skinParam.getMonospacedFamily();
|
||||
}
|
||||
|
||||
public Colors getColors(ColorParam param, Stereotype stereotype) {
|
||||
return skinParam.getColors(param, stereotype);
|
||||
}
|
||||
|
||||
public int getTabSize() {
|
||||
return skinParam.getTabSize();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -48,7 +48,6 @@ public class SkinParamForceColor extends SkinParamDelegator {
|
||||
}
|
||||
|
||||
public HtmlColor getHtmlColor(ColorParam param, Stereotype stereotype, boolean clickable) {
|
||||
System.err.println("param=" + param);
|
||||
if (colorParam == param) {
|
||||
return color;
|
||||
}
|
||||
|
@ -53,5 +53,5 @@ public class SkinParamUtils {
|
||||
public static HtmlColor getColor(ISkinParam skinParam, ColorParam colorParam, Stereotype stereo) {
|
||||
return rose.getHtmlColor(skinParam, colorParam, stereo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -53,6 +53,7 @@ import net.sourceforge.plantuml.code.Transcoder;
|
||||
import net.sourceforge.plantuml.code.TranscoderUtil;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
import net.sourceforge.plantuml.preproc.FileWithSuffix;
|
||||
|
||||
public class SourceFileReader implements ISourceFileReader {
|
||||
|
||||
@ -191,7 +192,7 @@ public class SourceFileReader implements ISourceFileReader {
|
||||
try {
|
||||
system = blockUml.getDiagram();
|
||||
} catch (Throwable t) {
|
||||
final GeneratedImage image = new GeneratedImage(suggested, "Crash Error", blockUml);
|
||||
final GeneratedImage image = new GeneratedImageImpl(suggested, "Crash Error", blockUml);
|
||||
OutputStream os = null;
|
||||
try {
|
||||
os = new BufferedOutputStream(new FileOutputStream(suggested));
|
||||
@ -221,7 +222,7 @@ public class SourceFileReader implements ISourceFileReader {
|
||||
ps.close();
|
||||
}
|
||||
}
|
||||
final GeneratedImage generatedImage = new GeneratedImage(f, desc, blockUml);
|
||||
final GeneratedImage generatedImage = new GeneratedImageImpl(f, desc, blockUml);
|
||||
result.add(generatedImage);
|
||||
}
|
||||
|
||||
@ -260,7 +261,7 @@ public class SourceFileReader implements ISourceFileReader {
|
||||
this.fileFormatOption = fileFormatOption;
|
||||
}
|
||||
|
||||
public final Set<File> getIncludedFiles() {
|
||||
public final Set<FileWithSuffix> getIncludedFiles() {
|
||||
return builder.getIncludedFiles();
|
||||
}
|
||||
|
||||
|
@ -49,6 +49,7 @@ import net.sourceforge.plantuml.code.Transcoder;
|
||||
import net.sourceforge.plantuml.code.TranscoderUtil;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
import net.sourceforge.plantuml.preproc.FileWithSuffix;
|
||||
|
||||
public class SourceFileReader2 implements ISourceFileReader {
|
||||
|
||||
@ -94,7 +95,7 @@ public class SourceFileReader2 implements ISourceFileReader {
|
||||
|
||||
for (File f : PSystemUtils.exportDiagrams(system, suggested, fileFormatOption)) {
|
||||
final String desc = "[" + file.getName() + "] " + system.getDescription();
|
||||
final GeneratedImage generatedImage = new GeneratedImage(f, desc, blockUml);
|
||||
final GeneratedImage generatedImage = new GeneratedImageImpl(f, desc, blockUml);
|
||||
result.add(generatedImage);
|
||||
}
|
||||
|
||||
@ -129,7 +130,7 @@ public class SourceFileReader2 implements ISourceFileReader {
|
||||
this.fileFormatOption = fileFormatOption;
|
||||
}
|
||||
|
||||
public final Set<File> getIncludedFiles() {
|
||||
public final Set<FileWithSuffix> getIncludedFiles2() {
|
||||
return builder.getIncludedFiles();
|
||||
}
|
||||
|
||||
|
@ -34,11 +34,15 @@
|
||||
package net.sourceforge.plantuml;
|
||||
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public interface SpecificBackcolorable {
|
||||
|
||||
public HtmlColor getSpecificBackColor();
|
||||
public Colors getColors(ISkinParam skinParam);
|
||||
|
||||
public void setSpecificBackcolor(HtmlColor specificBackcolor);
|
||||
public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color);
|
||||
|
||||
public void setColors(Colors colors);
|
||||
|
||||
}
|
@ -58,4 +58,8 @@ public class SpriteContainerEmpty implements SpriteContainer, ISkinSimple {
|
||||
return CommandCreoleMonospaced.MONOSPACED;
|
||||
}
|
||||
|
||||
public int getTabSize() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
}
|
@ -57,8 +57,8 @@ import net.sourceforge.plantuml.cucadiagram.Link;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkDecor;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public class CommandLinkActivity extends SingleLineCommand2<ActivityDiagram> {
|
||||
|
||||
@ -118,7 +118,7 @@ public class CommandLinkActivity extends SingleLineCommand2<ActivityDiagram> {
|
||||
entity1.setStereotype(new Stereotype(arg.get("STEREOTYPE", 0)));
|
||||
}
|
||||
if (arg.get("BACKCOLOR", 0) != null) {
|
||||
entity1.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet()
|
||||
entity1.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet()
|
||||
.getColorIfValid(arg.get("BACKCOLOR", 0)));
|
||||
}
|
||||
|
||||
@ -127,7 +127,7 @@ public class CommandLinkActivity extends SingleLineCommand2<ActivityDiagram> {
|
||||
return CommandExecutionResult.error("No such activity");
|
||||
}
|
||||
if (arg.get("BACKCOLOR2", 0) != null) {
|
||||
entity2.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet()
|
||||
entity2.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet()
|
||||
.getColorIfValid(arg.get("BACKCOLOR2", 0)));
|
||||
}
|
||||
if (arg.get("STEREOTYPE2", 0) != null) {
|
||||
|
@ -61,6 +61,7 @@ import net.sourceforge.plantuml.cucadiagram.Link;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkDecor;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public class CommandLinkLongActivity extends CommandMultilines2<ActivityDiagram> {
|
||||
|
||||
@ -114,7 +115,7 @@ public class CommandLinkLongActivity extends CommandMultilines2<ActivityDiagram>
|
||||
entity1.setStereotype(new Stereotype(line0.get("STEREOTYPE", 0)));
|
||||
}
|
||||
if (line0.get("BACKCOLOR", 0) != null) {
|
||||
entity1.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet()
|
||||
entity1.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet()
|
||||
.getColorIfValid(line0.get("BACKCOLOR", 0)));
|
||||
}
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
@ -175,7 +176,7 @@ public class CommandLinkLongActivity extends CommandMultilines2<ActivityDiagram>
|
||||
entity2.setStereotype(new Stereotype(lineLast.get(2)));
|
||||
}
|
||||
if (lineLast.get(4) != null) {
|
||||
entity2.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(lineLast.get(4)));
|
||||
entity2.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(lineLast.get(4)));
|
||||
}
|
||||
|
||||
if (entity1 == null || entity2 == null) {
|
||||
|
@ -28,13 +28,14 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 14661 $
|
||||
* Revision $Revision: 17003 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.activitydiagram.command;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.activitydiagram.ActivityDiagram;
|
||||
import net.sourceforge.plantuml.command.CommandExecutionResult;
|
||||
import net.sourceforge.plantuml.command.SingleLineCommand;
|
||||
@ -43,8 +44,7 @@ import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.GroupType;
|
||||
import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.cucadiagram.IGroup;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorSet;
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public class CommandPartition extends SingleLineCommand<ActivityDiagram> {
|
||||
|
||||
@ -60,7 +60,7 @@ public class CommandPartition extends SingleLineCommand<ActivityDiagram> {
|
||||
currentPackage);
|
||||
final String color = arg.get(1);
|
||||
if (color != null) {
|
||||
p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
}
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
@ -62,6 +62,7 @@ import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockCompressed;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockRecentred;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.sequencediagram.NotePosition;
|
||||
import net.sourceforge.plantuml.skin.rose.Rose;
|
||||
import net.sourceforge.plantuml.svek.DecorateEntityImage;
|
||||
@ -109,10 +110,10 @@ public class ActivityDiagram3 extends UmlDiagram {
|
||||
return swinlanes.nextLinkRenderer();
|
||||
}
|
||||
|
||||
public void addActivity(Display activity, HtmlColor color, BoxStyle style, Url url) {
|
||||
public void addActivity(Display activity, BoxStyle style, Url url, Colors colors) {
|
||||
manageSwimlaneStrategy();
|
||||
final InstructionSimple ins = new InstructionSimple(activity, color, nextLinkRenderer(),
|
||||
swinlanes.getCurrentSwimlane(), style, url);
|
||||
final InstructionSimple ins = new InstructionSimple(activity, nextLinkRenderer(),
|
||||
swinlanes.getCurrentSwimlane(), style, url, colors);
|
||||
current().add(ins);
|
||||
setNextLinkRendererInternal(null);
|
||||
manageHasUrl(activity);
|
||||
@ -210,10 +211,8 @@ public class ActivityDiagram3 extends UmlDiagram {
|
||||
if (Display.isNull(title)) {
|
||||
return original;
|
||||
}
|
||||
final TextBlock text = title.create(
|
||||
new FontConfiguration(getFont(FontParam.TITLE), getFontColor(FontParam.TITLE, null), getSkinParam()
|
||||
.getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink()), HorizontalAlignment.CENTER,
|
||||
getSkinParam());
|
||||
final TextBlock text = title.create(new FontConfiguration(getSkinParam(), FontParam.TITLE, null),
|
||||
HorizontalAlignment.CENTER, getSkinParam());
|
||||
|
||||
return new DecorateTextBlock(original, text, HorizontalAlignment.CENTER);
|
||||
}
|
||||
@ -225,11 +224,9 @@ public class ActivityDiagram3 extends UmlDiagram {
|
||||
return original;
|
||||
}
|
||||
final TextBlock textFooter = Display.isNull(footer) ? null : footer.create(new FontConfiguration(
|
||||
getFont(FontParam.FOOTER), getFontColor(FontParam.FOOTER, null), getSkinParam().getHyperlinkColor(),
|
||||
getSkinParam().useUnderlineForHyperlink()), getFooterAlignment(), getSkinParam());
|
||||
getSkinParam(), FontParam.FOOTER, null), getFooterAlignment(), getSkinParam());
|
||||
final TextBlock textHeader = Display.isNull(header) ? null : header.create(new FontConfiguration(
|
||||
getFont(FontParam.HEADER), getFontColor(FontParam.HEADER, null), getSkinParam().getHyperlinkColor(),
|
||||
getSkinParam().useUnderlineForHyperlink()), getHeaderAlignment(), getSkinParam());
|
||||
getSkinParam(), FontParam.HEADER, null), getHeaderAlignment(), getSkinParam());
|
||||
|
||||
return new DecorateTextBlock(original, textHeader, getHeaderAlignment(), textFooter, getFooterAlignment());
|
||||
}
|
||||
@ -330,6 +327,7 @@ public class ActivityDiagram3 extends UmlDiagram {
|
||||
}
|
||||
|
||||
public CommandExecutionResult endif() {
|
||||
// System.err.println("Activity3::endif");
|
||||
if (current() instanceof InstructionIf) {
|
||||
((InstructionIf) current()).endif(nextLinkRenderer());
|
||||
setNextLinkRendererInternal(null);
|
||||
@ -407,14 +405,18 @@ public class ActivityDiagram3 extends UmlDiagram {
|
||||
}
|
||||
|
||||
private void setNextLinkRendererInternal(LinkRendering link) {
|
||||
// System.err.println("setNextLinkRendererInternal=" + link);
|
||||
swinlanes.setNextLinkRenderer(link);
|
||||
}
|
||||
|
||||
private void setNextLink(LinkRendering linkRenderer) {
|
||||
// System.err.println("setNextLink=" + linkRenderer);
|
||||
if (current() instanceof InstructionCollection) {
|
||||
final Instruction last = ((InstructionCollection) current()).getLast();
|
||||
if (last instanceof InstructionWhile) {
|
||||
((InstructionWhile) last).afterEndwhile(linkRenderer);
|
||||
} else if (last instanceof InstructionIf) {
|
||||
((InstructionIf) last).afterEndwhile(linkRenderer);
|
||||
}
|
||||
}
|
||||
this.setNextLinkRendererInternal(linkRenderer);
|
||||
|
@ -48,7 +48,6 @@ public class Branch {
|
||||
private final Display labelTest;
|
||||
private final Display labelPositive;
|
||||
private final HtmlColor color;
|
||||
|
||||
private LinkRendering inlinkRendering;
|
||||
|
||||
private Ftile ftile;
|
||||
|
@ -57,7 +57,8 @@ public class InstructionIf implements Instruction, InstructionCollection {
|
||||
private final Instruction parent;
|
||||
|
||||
private Branch current;
|
||||
private final LinkRendering inlinkRendering;
|
||||
private final LinkRendering topInlinkRendering;
|
||||
private LinkRendering afterEndwhile;
|
||||
|
||||
private final Swimlane swimlane;
|
||||
|
||||
@ -65,8 +66,7 @@ public class InstructionIf implements Instruction, InstructionCollection {
|
||||
LinkRendering inlinkRendering, HtmlColor color, ISkinParam skinParam) {
|
||||
this.parent = parent;
|
||||
this.skinParam = skinParam;
|
||||
|
||||
this.inlinkRendering = inlinkRendering;
|
||||
this.topInlinkRendering = inlinkRendering;
|
||||
this.swimlane = swimlane;
|
||||
this.thens.add(new Branch(swimlane, whenThen, labelTest, color));
|
||||
this.current = this.thens.get(0);
|
||||
@ -87,7 +87,7 @@ public class InstructionIf implements Instruction, InstructionCollection {
|
||||
this.elseBranch = new Branch(swimlane, Display.NULL, Display.NULL, null);
|
||||
}
|
||||
elseBranch.updateFtile(factory);
|
||||
Ftile result = factory.createIf(swimlane, thens, elseBranch);
|
||||
Ftile result = factory.createIf(swimlane, thens, elseBranch, afterEndwhile, topInlinkRendering);
|
||||
if (note != null) {
|
||||
result = new FtileWithNoteOpale(result, note, position, skinParam, false);
|
||||
}
|
||||
@ -130,7 +130,7 @@ public class InstructionIf implements Instruction, InstructionCollection {
|
||||
}
|
||||
|
||||
public LinkRendering getInLinkRendering() {
|
||||
return inlinkRendering;
|
||||
return topInlinkRendering;
|
||||
}
|
||||
|
||||
public boolean addNote(Display note, NotePosition position) {
|
||||
@ -165,9 +165,13 @@ public class InstructionIf implements Instruction, InstructionCollection {
|
||||
|
||||
public Instruction getLast() {
|
||||
if (elseBranch == null) {
|
||||
return thens.get(thens.size()-1).getLast();
|
||||
return thens.get(thens.size() - 1).getLast();
|
||||
}
|
||||
return elseBranch.getLast();
|
||||
}
|
||||
|
||||
public void afterEndwhile(LinkRendering linkRenderer) {
|
||||
this.afterEndwhile = linkRenderer;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -41,31 +41,35 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileKilled;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.sequencediagram.NotePosition;
|
||||
|
||||
public class InstructionSimple extends MonoSwimable implements Instruction {
|
||||
|
||||
private boolean killed = false;
|
||||
private final Display label;
|
||||
private final HtmlColor color;
|
||||
private final Colors colors;
|
||||
private final LinkRendering inlinkRendering;
|
||||
private Display note;
|
||||
private NotePosition notePosition;
|
||||
private final BoxStyle style;
|
||||
private final Url url;
|
||||
|
||||
public InstructionSimple(Display label, HtmlColor color, LinkRendering inlinkRendering, Swimlane swimlane,
|
||||
BoxStyle style, Url url) {
|
||||
public InstructionSimple(Display label, LinkRendering inlinkRendering, Swimlane swimlane,
|
||||
BoxStyle style, Url url, Colors colors) {
|
||||
super(swimlane);
|
||||
if (colors == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
this.url = url;
|
||||
this.style = style;
|
||||
this.label = label;
|
||||
this.color = color;
|
||||
this.inlinkRendering = inlinkRendering;
|
||||
this.colors = colors;
|
||||
}
|
||||
|
||||
public Ftile createFtile(FtileFactory factory) {
|
||||
Ftile result = factory.activity(label, color, getSwimlaneIn(), style);
|
||||
Ftile result = factory.activity(label, getSwimlaneIn(), style, colors);
|
||||
if (url != null) {
|
||||
result = factory.addUrl(result, url);
|
||||
}
|
||||
|
@ -93,7 +93,6 @@ public class InstructionWhile implements Instruction, InstructionCollection {
|
||||
if (note != null) {
|
||||
tmp = new FtileWithNoteOpale(tmp, note, position, skinParam, false);
|
||||
}
|
||||
// tmp = factory.decorateOut(tmp, afterEndwhile);
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,8 @@ import net.sourceforge.plantuml.command.regex.RegexResult;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public class CommandActivity3 extends SingleLineCommand2<ActivityDiagram3> {
|
||||
|
||||
@ -58,13 +60,18 @@ public class CommandActivity3 extends SingleLineCommand2<ActivityDiagram3> {
|
||||
static RegexConcat getRegexConcat() {
|
||||
return new RegexConcat(new RegexLeaf("^"), //
|
||||
new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), //
|
||||
ColorParser.exp5(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf(":"), //
|
||||
new RegexLeaf("LABEL", "(.*)"), //
|
||||
new RegexLeaf("STYLE", ENDING_GROUP), //
|
||||
new RegexLeaf("$"));
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) {
|
||||
|
||||
@ -76,9 +83,9 @@ public class CommandActivity3 extends SingleLineCommand2<ActivityDiagram3> {
|
||||
url = urlBuilder.getUrl(arg.get("URL", 0));
|
||||
}
|
||||
|
||||
final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0));
|
||||
final Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
final BoxStyle style = BoxStyle.fromChar(arg.get("STYLE", 0).charAt(0));
|
||||
diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), color, style, url);
|
||||
diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), style, url, colors);
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
|
@ -41,6 +41,7 @@ import net.sourceforge.plantuml.command.regex.RegexConcat;
|
||||
import net.sourceforge.plantuml.command.regex.RegexLeaf;
|
||||
import net.sourceforge.plantuml.command.regex.RegexResult;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public class CommandActivityLegacy1 extends SingleLineCommand2<ActivityDiagram3> {
|
||||
|
||||
@ -57,7 +58,7 @@ public class CommandActivityLegacy1 extends SingleLineCommand2<ActivityDiagram3>
|
||||
|
||||
@Override
|
||||
protected CommandExecutionResult executeArg(ActivityDiagram3 diagram, RegexResult arg) {
|
||||
diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), null, BoxStyle.PLAIN, null);
|
||||
diagram.addActivity(Display.getWithNewlines(arg.get("LABEL", 0)), BoxStyle.PLAIN, null, Colors.empty());
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
|
@ -43,8 +43,9 @@ import net.sourceforge.plantuml.command.MultilinesStrategy;
|
||||
import net.sourceforge.plantuml.command.regex.RegexConcat;
|
||||
import net.sourceforge.plantuml.command.regex.RegexLeaf;
|
||||
import net.sourceforge.plantuml.command.regex.RegexResult;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public class CommandActivityLong3 extends CommandMultilines2<ActivityDiagram3> {
|
||||
|
||||
@ -57,9 +58,13 @@ public class CommandActivityLong3 extends CommandMultilines2<ActivityDiagram3> {
|
||||
return "^(.*)" + CommandActivity3.ENDING_GROUP + "$";
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
static RegexConcat getRegexConcat() {
|
||||
return new RegexConcat(new RegexLeaf("^"), //
|
||||
ColorParser.exp5(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf(":"), //
|
||||
new RegexLeaf("DATA", "(.*)"), //
|
||||
new RegexLeaf("$"));
|
||||
@ -68,10 +73,11 @@ public class CommandActivityLong3 extends CommandMultilines2<ActivityDiagram3> {
|
||||
public CommandExecutionResult executeNow(ActivityDiagram3 diagram, BlocLines lines) {
|
||||
lines = lines.removeEmptyColumns();
|
||||
final RegexResult line0 = getStartingPattern().matcher(StringUtils.trin(lines.getFirst499()));
|
||||
final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0));
|
||||
final Colors colors = color().getColor(line0, diagram.getSkinParam().getIHtmlColorSet());
|
||||
// final HtmlColor color = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0));
|
||||
final BoxStyle style = BoxStyle.fromChar(lines.getLastChar());
|
||||
lines = lines.removeStartingAndEnding2(line0.get("DATA", 0));
|
||||
diagram.addActivity(lines.toDisplay(), color, style, null);
|
||||
diagram.addActivity(lines.toDisplay(), style, null, colors);
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
}
|
||||
|
@ -50,7 +50,6 @@ import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.skin.rose.Rose;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeBackColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.UPolygon;
|
||||
import net.sourceforge.plantuml.ugraphic.UTranslate;
|
||||
@ -71,13 +70,10 @@ public class EntityImageLegend extends AbstractTextBlock implements TextBlock {
|
||||
final Rose rose = new Rose();
|
||||
|
||||
noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.legendBackground);
|
||||
|
||||
borderColor = rose.getHtmlColor(skinParam, ColorParam.legendBorder);
|
||||
final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.LEGEND);
|
||||
final UFont fontNote = skinParam.getFont(FontParam.LEGEND, null, false);
|
||||
|
||||
this.textBlock = note.create(new FontConfiguration(fontNote, fontColor,
|
||||
skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink()), HorizontalAlignment.LEFT, skinParam);
|
||||
this.textBlock = note.create(new FontConfiguration(skinParam, FontParam.LEGEND, null),
|
||||
HorizontalAlignment.LEFT, skinParam);
|
||||
}
|
||||
|
||||
public static TextBlock create(Display legend, ISkinParam skinParam) {
|
||||
|
@ -42,6 +42,7 @@ import net.sourceforge.plantuml.activitydiagram3.LinkRendering;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.sequencediagram.NotePosition;
|
||||
|
||||
public interface FtileFactory extends ISkinSimple {
|
||||
@ -56,7 +57,7 @@ public interface FtileFactory extends ISkinSimple {
|
||||
|
||||
public Ftile end(Swimlane swimlane);
|
||||
|
||||
public Ftile activity(Display label, HtmlColor color, Swimlane swimlane, BoxStyle style);
|
||||
public Ftile activity(Display label, Swimlane swimlane, BoxStyle style, Colors colors);
|
||||
|
||||
public Ftile addNote(Ftile ftile, Display note, NotePosition notePosition);
|
||||
|
||||
@ -68,12 +69,14 @@ public interface FtileFactory extends ISkinSimple {
|
||||
|
||||
public Ftile assembly(Ftile tile1, Ftile tile2);
|
||||
|
||||
public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color, LinkRendering backRepeatLinkRendering);
|
||||
public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color,
|
||||
LinkRendering backRepeatLinkRendering);
|
||||
|
||||
public Ftile createWhile(Swimlane swimlane, Ftile whileBlock, Display test, Display yes, Display out,
|
||||
LinkRendering afterEndwhile, HtmlColor color);
|
||||
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch);
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch, LinkRendering afterEndwhile,
|
||||
LinkRendering topInlinkRendering);
|
||||
|
||||
public Ftile createFork(Swimlane swimlane, List<Ftile> all);
|
||||
|
||||
|
@ -48,10 +48,10 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.sequencediagram.NotePosition;
|
||||
import net.sourceforge.plantuml.skin.rose.Rose;
|
||||
import net.sourceforge.plantuml.ugraphic.Sprite;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
|
||||
public class FtileFactoryDelegator implements FtileFactory {
|
||||
|
||||
@ -69,20 +69,16 @@ public class FtileFactoryDelegator implements FtileFactory {
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
|
||||
protected final TextBlock getTextBlock(Display display) {
|
||||
if (Display.isNull(display)) {
|
||||
return null;
|
||||
}
|
||||
final ISkinParam skinParam = getSkinParam();
|
||||
final UFont font = skinParam.getFont(FontParam.ACTIVITY_ARROW, null, false);
|
||||
final HtmlColor color = rose.getFontColor(skinParam, FontParam.ACTIVITY_ARROW);
|
||||
final FontConfiguration fontConfiguration = new FontConfiguration(font, color, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
final FontConfiguration fontConfiguration = new FontConfiguration(skinParam, FontParam.ACTIVITY_ARROW, null);
|
||||
return display.create(fontConfiguration, HorizontalAlignment.LEFT, this, CreoleMode.SIMPLE_LINE);
|
||||
}
|
||||
|
||||
|
||||
protected Display getInLinkRenderingDisplay(Ftile tile) {
|
||||
final LinkRendering linkRendering = tile.getInLinkRendering();
|
||||
if (linkRendering == null) {
|
||||
@ -108,8 +104,8 @@ public class FtileFactoryDelegator implements FtileFactory {
|
||||
return factory.stop(swimlane);
|
||||
}
|
||||
|
||||
public Ftile activity(Display label, HtmlColor color, Swimlane swimlane, BoxStyle style) {
|
||||
return factory.activity(label, color, swimlane, style);
|
||||
public Ftile activity(Display label, Swimlane swimlane, BoxStyle style, Colors colors) {
|
||||
return factory.activity(label, swimlane, style, colors);
|
||||
}
|
||||
|
||||
public Ftile addNote(Ftile ftile, Display note, NotePosition notePosition) {
|
||||
@ -132,7 +128,8 @@ public class FtileFactoryDelegator implements FtileFactory {
|
||||
return factory.assembly(tile1, tile2);
|
||||
}
|
||||
|
||||
public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color, LinkRendering backRepeatLinkRendering) {
|
||||
public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color,
|
||||
LinkRendering backRepeatLinkRendering) {
|
||||
return factory.repeat(swimlane, repeat, test, yes, out, color, backRepeatLinkRendering);
|
||||
}
|
||||
|
||||
@ -141,8 +138,8 @@ public class FtileFactoryDelegator implements FtileFactory {
|
||||
return factory.createWhile(swimlane, whileBlock, test, yes, out, afterEndwhile, color);
|
||||
}
|
||||
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch) {
|
||||
return factory.createIf(swimlane, thens, elseBranch);
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch, LinkRendering afterEndwhile, LinkRendering topInlinkRendering) {
|
||||
return factory.createIf(swimlane, thens, elseBranch, afterEndwhile, topInlinkRendering);
|
||||
}
|
||||
|
||||
public Ftile createFork(Swimlane swimlane, List<Ftile> all) {
|
||||
@ -197,4 +194,8 @@ public class FtileFactoryDelegator implements FtileFactory {
|
||||
return skinParam.getMonospacedFamily();
|
||||
}
|
||||
|
||||
public int getTabSize() {
|
||||
return skinParam.getTabSize();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -33,15 +33,17 @@
|
||||
*/
|
||||
package net.sourceforge.plantuml.activitydiagram3.ftile;
|
||||
|
||||
import net.sourceforge.plantuml.ISkinParam;
|
||||
import net.sourceforge.plantuml.SpecificBackcolorable;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.ugraphic.UTranslate;
|
||||
|
||||
public class Swimlane implements SpecificBackcolorable {
|
||||
|
||||
private final String name;
|
||||
private HtmlColor color;
|
||||
private Display display;
|
||||
|
||||
private UTranslate translate = new UTranslate();
|
||||
@ -79,16 +81,24 @@ public class Swimlane implements SpecificBackcolorable {
|
||||
this.totalWidth = totalWidth;
|
||||
}
|
||||
|
||||
public HtmlColor getSpecificBackColor() {
|
||||
return color;
|
||||
public Colors getColors(ISkinParam skinParam) {
|
||||
return colors;
|
||||
}
|
||||
|
||||
public void setSpecificBackcolor(HtmlColor specificBackcolor) {
|
||||
this.color = specificBackcolor;
|
||||
public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) {
|
||||
if (color != null) {
|
||||
this.colors = colors.add(type, color);
|
||||
}
|
||||
}
|
||||
|
||||
private Colors colors = Colors.empty();
|
||||
|
||||
public final double getTotalWidth() {
|
||||
return totalWidth;
|
||||
}
|
||||
|
||||
public void setColors(Colors colors) {
|
||||
this.colors = colors;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -64,6 +64,7 @@ import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.graphic.UGraphicDelegator;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.svek.UGraphicForSnake;
|
||||
import net.sourceforge.plantuml.ugraphic.CompressionTransform;
|
||||
import net.sourceforge.plantuml.ugraphic.LimitFinder;
|
||||
@ -73,7 +74,6 @@ import net.sourceforge.plantuml.ugraphic.SlotSet;
|
||||
import net.sourceforge.plantuml.ugraphic.UChange;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeBackColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.ULine;
|
||||
import net.sourceforge.plantuml.ugraphic.URectangle;
|
||||
@ -98,9 +98,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock {
|
||||
}
|
||||
|
||||
private FontConfiguration getFontConfiguration() {
|
||||
final UFont font = skinParam.getFont(FontParam.TITLE, null, false);
|
||||
return new FontConfiguration(font, HtmlColorUtils.BLACK, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
return new FontConfiguration(skinParam, FontParam.TITLE, null);
|
||||
}
|
||||
|
||||
private FtileFactory getFtileFactory() {
|
||||
@ -120,7 +118,7 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock {
|
||||
public void swimlane(String name, HtmlColor color, Display label) {
|
||||
currentSwimlane = getOrCreate(name);
|
||||
if (color != null) {
|
||||
currentSwimlane.setSpecificBackcolor(color);
|
||||
currentSwimlane.setSpecificColorTOBEREMOVED(ColorType.BACK, color);
|
||||
}
|
||||
if (Display.isNull(label) == false) {
|
||||
currentSwimlane.setDisplay(label);
|
||||
@ -242,15 +240,17 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock {
|
||||
|
||||
double x2 = 0;
|
||||
for (Swimlane swimlane : swimlanes) {
|
||||
if (swimlane.getSpecificBackColor() != null) {
|
||||
final UGraphic background = ug.apply(new UChangeBackColor(swimlane.getSpecificBackColor()))
|
||||
.apply(new UChangeColor(swimlane.getSpecificBackColor())).apply(new UTranslate(x2, 0));
|
||||
final HtmlColor back = swimlane.getColors(skinParam).getColor(ColorType.BACK);
|
||||
if (back != null) {
|
||||
final UGraphic background = ug.apply(new UChangeBackColor(back)).apply(new UChangeColor(back))
|
||||
.apply(new UTranslate(x2, 0));
|
||||
background.draw(new URectangle(swimlane.getTotalWidth(), dimensionFull.getHeight()
|
||||
+ titleHeightTranslate.getDy()));
|
||||
}
|
||||
|
||||
if (OptionFlags.SWI2 == false) {
|
||||
final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT, skinParam);
|
||||
final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(),
|
||||
HorizontalAlignment.LEFT, skinParam);
|
||||
final double titleWidth = swTitle.calculateDimension(stringBounder).getWidth();
|
||||
final double posTitle = x2 + (swimlane.getTotalWidth() - titleWidth) / 2;
|
||||
swTitle.drawU(ug.apply(new UTranslate(posTitle, 0)));
|
||||
@ -282,7 +282,8 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock {
|
||||
final MinMax minMax = limitFinder.getMinMax();
|
||||
|
||||
final double drawingWidth = minMax.getWidth() + 2 * separationMargin;
|
||||
final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT, skinParam);
|
||||
final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT,
|
||||
skinParam);
|
||||
final double titleWidth = swTitle.calculateDimension(stringBounder).getWidth();
|
||||
final double totalWidth = Math.max(drawingWidth, titleWidth + 2 * separationMargin);
|
||||
|
||||
@ -297,7 +298,8 @@ public class Swimlanes extends AbstractTextBlock implements TextBlock {
|
||||
private UTranslate getTitleHeightTranslate(final StringBounder stringBounder) {
|
||||
double titlesHeight = 0;
|
||||
for (Swimlane swimlane : swimlanes) {
|
||||
final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT, skinParam);
|
||||
final TextBlock swTitle = swimlane.getDisplay().create(getFontConfiguration(), HorizontalAlignment.LEFT,
|
||||
skinParam);
|
||||
|
||||
titlesHeight = Math.max(titlesHeight, swTitle.calculateDimension(stringBounder).getHeight());
|
||||
}
|
||||
|
@ -64,17 +64,17 @@ public class FloatingNote extends AbstractTextBlock implements Stencil, TextBloc
|
||||
public FloatingNote(Display note, ISkinParam skinParam) {
|
||||
|
||||
final Rose rose = new Rose();
|
||||
final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE);
|
||||
final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false);
|
||||
|
||||
final HtmlColor noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground);
|
||||
final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder);
|
||||
|
||||
final FontConfiguration fc = new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink());
|
||||
final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.NOTE, null);
|
||||
|
||||
final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL).createSheet(note);
|
||||
final SheetBlock2 sheetBlock2 = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), this, new UStroke(1));
|
||||
this.opale = new Opale(borderColor, noteBackgroundColor, sheetBlock2, skinParam.shadowing(), false);
|
||||
final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL)
|
||||
.createSheet(note);
|
||||
final SheetBlock2 sheetBlock2 = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), this,
|
||||
new UStroke(1));
|
||||
this.opale = new Opale(borderColor, noteBackgroundColor, sheetBlock2, skinParam.shadowing(), false);
|
||||
|
||||
// this.text = sheetBlock2;
|
||||
|
||||
|
@ -40,14 +40,15 @@ import net.sourceforge.plantuml.FontParam;
|
||||
import net.sourceforge.plantuml.ISkinParam;
|
||||
import net.sourceforge.plantuml.OptionFlags;
|
||||
import net.sourceforge.plantuml.activitydiagram3.Branch;
|
||||
import net.sourceforge.plantuml.activitydiagram3.LinkRendering;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactoryDelegator;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond.ConditionalBuilder;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
|
||||
public class FtileFactoryDelegatorIf extends FtileFactoryDelegator {
|
||||
|
||||
@ -56,13 +57,10 @@ public class FtileFactoryDelegatorIf extends FtileFactoryDelegator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch) {
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch, LinkRendering afterEndwhile,
|
||||
LinkRendering topInlinkRendering) {
|
||||
|
||||
final ConditionStyle conditionStyle = getSkinParam().getConditionStyle();
|
||||
final UFont fontArrow = getSkinParam().getFont(FontParam.ACTIVITY_ARROW, null, false);
|
||||
final UFont fontTest = getSkinParam().getFont(
|
||||
conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND : FontParam.ACTIVITY_ARROW, null,
|
||||
false);
|
||||
final Branch branch0 = thens.get(0);
|
||||
|
||||
final HtmlColor borderColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityBorder);
|
||||
@ -70,17 +68,20 @@ public class FtileFactoryDelegatorIf extends FtileFactoryDelegator {
|
||||
ColorParam.activityBackground) : branch0.getColor();
|
||||
final HtmlColor arrowColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityArrow);
|
||||
|
||||
final FontConfiguration fcArrow = new FontConfiguration(getSkinParam(), FontParam.ACTIVITY_ARROW, null);
|
||||
if (thens.size() > 1) {
|
||||
return FtileIfLong2.create(swimlane, borderColor, backColor, fontArrow, arrowColor, getFactory(),
|
||||
conditionStyle, thens, elseBranch, getSkinParam().getHyperlinkColor(), getSkinParam()
|
||||
.useUnderlineForHyperlink());
|
||||
return FtileIfLong2.create(swimlane, borderColor, backColor, arrowColor, getFactory(), conditionStyle,
|
||||
thens, elseBranch, fcArrow, topInlinkRendering, afterEndwhile);
|
||||
}
|
||||
final FontParam testParam = conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND
|
||||
: FontParam.ACTIVITY_ARROW;
|
||||
final FontConfiguration fcTest = new FontConfiguration(getSkinParam(), testParam, null);
|
||||
if (OptionFlags.USE_NEW_IF) {
|
||||
return ConditionalBuilder.create(swimlane, borderColor, backColor, fontArrow, fontTest, arrowColor,
|
||||
getFactory(), conditionStyle, thens.get(0), elseBranch, getSkinParam(), getStringBounder());
|
||||
return ConditionalBuilder.create(swimlane, borderColor, backColor, arrowColor, getFactory(),
|
||||
conditionStyle, thens.get(0), elseBranch, getSkinParam(), getStringBounder(), fcArrow, fcTest);
|
||||
} else {
|
||||
return FtileIfOrigin.create(swimlane, borderColor, backColor, fontArrow, fontTest, arrowColor,
|
||||
getFactory(), conditionStyle, thens.get(0), elseBranch, getSkinParam(), getStringBounder());
|
||||
return FtileIfOrigin.create(swimlane, borderColor, backColor, arrowColor, getFactory(), conditionStyle,
|
||||
thens.get(0), elseBranch, getSkinParam(), getStringBounder(), fcArrow, fcTest);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -42,9 +42,9 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactoryDelegator;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
|
||||
public class FtileFactoryDelegatorRepeat extends FtileFactoryDelegator {
|
||||
|
||||
@ -56,9 +56,6 @@ public class FtileFactoryDelegatorRepeat extends FtileFactoryDelegator {
|
||||
public Ftile repeat(Swimlane swimlane, Ftile repeat, Display test, Display yes, Display out, HtmlColor color,
|
||||
LinkRendering backRepeatLinkRendering) {
|
||||
final ConditionStyle conditionStyle = getSkinParam().getConditionStyle();
|
||||
final UFont font = getSkinParam().getFont(
|
||||
conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND : FontParam.ACTIVITY_ARROW, null,
|
||||
false);
|
||||
|
||||
final HtmlColor borderColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityBorder);
|
||||
final HtmlColor backColor = color == null ? getRose().getHtmlColor(getSkinParam(),
|
||||
@ -68,9 +65,11 @@ public class FtileFactoryDelegatorRepeat extends FtileFactoryDelegator {
|
||||
final LinkRendering endRepeatLinkRendering = repeat.getOutLinkRendering();
|
||||
final HtmlColor endRepeatLinkColor = endRepeatLinkRendering == null ? null : endRepeatLinkRendering.getColor();
|
||||
|
||||
return FtileRepeat.create(backRepeatLinkRendering, swimlane, repeat, test, yes, out, borderColor, backColor, font, arrowColor,
|
||||
endRepeatLinkColor, conditionStyle, this, getSkinParam().getHyperlinkColor(), getSkinParam()
|
||||
.useUnderlineForHyperlink());
|
||||
}
|
||||
final FontParam fontParam = conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND
|
||||
: FontParam.ACTIVITY_ARROW;
|
||||
final FontConfiguration fc = new FontConfiguration(getSkinParam(), fontParam, null);
|
||||
|
||||
return FtileRepeat.create(backRepeatLinkRendering, swimlane, repeat, test, yes, out, borderColor, backColor,
|
||||
arrowColor, endRepeatLinkColor, conditionStyle, this, fc);
|
||||
}
|
||||
}
|
||||
|
@ -42,9 +42,9 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactory;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.FtileFactoryDelegator;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
|
||||
public class FtileFactoryDelegatorWhile extends FtileFactoryDelegator {
|
||||
|
||||
@ -61,14 +61,17 @@ public class FtileFactoryDelegatorWhile extends FtileFactoryDelegator {
|
||||
final HtmlColor arrowColor = getRose().getHtmlColor(getSkinParam(), ColorParam.activityArrow);
|
||||
|
||||
final ConditionStyle conditionStyle = getSkinParam().getConditionStyle();
|
||||
final UFont fontArrow = getSkinParam().getFont(FontParam.ACTIVITY_ARROW, null, false);
|
||||
final UFont fontTest = getSkinParam().getFont(
|
||||
conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND : FontParam.ACTIVITY_ARROW, null, false);
|
||||
final FontParam testParam = conditionStyle == ConditionStyle.INSIDE ? FontParam.ACTIVITY_DIAMOND
|
||||
: FontParam.ACTIVITY_ARROW;
|
||||
final FontConfiguration fcTest = new FontConfiguration(getSkinParam(), testParam, null);
|
||||
|
||||
final LinkRendering endInlinkRendering = whileBlock.getOutLinkRendering();
|
||||
final HtmlColor endInlinkColor = endInlinkRendering == null ? arrowColor : endInlinkRendering.getColor();
|
||||
|
||||
final FontConfiguration fontArrow = new FontConfiguration(getSkinParam(), FontParam.ACTIVITY_ARROW, null);
|
||||
|
||||
return FtileWhile.create(swimlane, whileBlock, test, borderColor, backColor, arrowColor, yes, out,
|
||||
fontArrow, endInlinkColor, afterEndwhile, getFactory(), conditionStyle, fontTest, getSkinParam().getHyperlinkColor(), getSkinParam().useUnderlineForHyperlink());
|
||||
endInlinkColor, afterEndwhile, fontArrow, getFactory(), conditionStyle, fcTest);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ public class FtileGroup extends AbstractFtile {
|
||||
this.titleColor = titleColor;
|
||||
final UFont font = new UFont("Serif", Font.PLAIN, 14);
|
||||
final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
skinParam.useUnderlineForHyperlink(), skinParam.getTabSize());
|
||||
if (title == null) {
|
||||
this.name = TextBlockUtils.empty(0, 0);
|
||||
} else {
|
||||
|
@ -66,11 +66,9 @@ import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.UStroke;
|
||||
import net.sourceforge.plantuml.ugraphic.UTranslate;
|
||||
@ -110,21 +108,16 @@ class FtileIfAndStop extends AbstractFtile {
|
||||
return getSwimlaneIn();
|
||||
}
|
||||
|
||||
static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont fontArrow, UFont fontTest,
|
||||
HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch nonStop,
|
||||
ISkinParam skinParam, StringBounder stringBounder, Display labelTest) {
|
||||
static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor,
|
||||
FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch nonStop, ISkinParam skinParam,
|
||||
StringBounder stringBounder, Display labelTest) {
|
||||
|
||||
backColor = HtmlColorUtils.BLUE;
|
||||
// backColor = HtmlColorUtils.BLUE;
|
||||
|
||||
// final Ftile tileNonStop = new FtileMinWidth(nonStop.getFtile(), 30);
|
||||
final Ftile tileNonStop = nonStop.getFtile();
|
||||
|
||||
final HtmlColor fontColor = skinParam.getFontHtmlColor(FontParam.ACTIVITY_DIAMOND, null);
|
||||
|
||||
final FontConfiguration fcArrow = new FontConfiguration(fontArrow, fontColor, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
final FontConfiguration fcTest = new FontConfiguration(fontTest, fontColor, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
final FontConfiguration fcTest = new FontConfiguration(skinParam, FontParam.ACTIVITY_DIAMOND, null);
|
||||
|
||||
final Ftile stopFtile = ftileFactory.stop(swimlane);
|
||||
|
||||
@ -133,7 +126,8 @@ class FtileIfAndStop extends AbstractFtile {
|
||||
// final TextBlock tb2 = Display.create(branch2.getLabelPositive(), fcArrow, HorizontalAlignment.LEFT,
|
||||
// ftileFactory);
|
||||
|
||||
final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL).createSheet(labelTest);
|
||||
final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL)
|
||||
.createSheet(labelTest);
|
||||
final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, 0, skinParam.getPadding());
|
||||
final TextBlock tbTest = new SheetBlock2(sheetBlock1, Diamond.asStencil(sheetBlock1), new UStroke(1.5));
|
||||
|
||||
|
@ -43,6 +43,7 @@ import java.util.Set;
|
||||
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.activitydiagram3.Branch;
|
||||
import net.sourceforge.plantuml.activitydiagram3.LinkRendering;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Arrows;
|
||||
@ -55,16 +56,14 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileMinWidth;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Snake;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.vcompact.cond.FtileIfWithLinks;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside2;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.UTranslate;
|
||||
|
||||
@ -131,10 +130,9 @@ class FtileIfLong2 extends AbstractFtile {
|
||||
return getSwimlaneIn();
|
||||
}
|
||||
|
||||
static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont font,
|
||||
HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle, List<Branch> thens,
|
||||
Branch branch2, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) {
|
||||
|
||||
static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor,
|
||||
FtileFactory ftileFactory, ConditionStyle conditionStyle, List<Branch> thens, Branch branch2,
|
||||
FontConfiguration fc, LinkRendering topInlinkRendering, LinkRendering afterEndwhile) {
|
||||
final List<Ftile> tiles = new ArrayList<Ftile>();
|
||||
|
||||
for (Branch branch : thens) {
|
||||
@ -143,9 +141,6 @@ class FtileIfLong2 extends AbstractFtile {
|
||||
|
||||
final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30);
|
||||
|
||||
final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, hyperlinkColor,
|
||||
useUnderlineForHyperlink);
|
||||
|
||||
List<Ftile> diamonds = new ArrayList<Ftile>();
|
||||
final List<Connection> conns = new ArrayList<Connection>();
|
||||
for (Branch branch : thens) {
|
||||
@ -169,20 +164,22 @@ class FtileIfLong2 extends AbstractFtile {
|
||||
final Ftile ftile = tiles.get(i);
|
||||
final Ftile diam = diamonds.get(i);
|
||||
|
||||
final HtmlColor color = thens.get(i).getInlinkRenderingColor();
|
||||
final HtmlColor color = FtileIfWithLinks.getInColor(thens.get(i), arrowColor);
|
||||
conns.add(result.new ConnectionVerticalIn(diam, ftile, color == null ? arrowColor : color));
|
||||
conns.add(result.new ConnectionVerticalOut(ftile, arrowColor));
|
||||
}
|
||||
|
||||
final HtmlColor topInColor = LinkRendering.getColor(topInlinkRendering, arrowColor);
|
||||
for (int i = 0; i < diamonds.size() - 1; i++) {
|
||||
final Ftile diam1 = diamonds.get(i);
|
||||
final Ftile diam2 = diamonds.get(i + 1);
|
||||
conns.add(result.new ConnectionHorizontal(diam1, diam2, arrowColor));
|
||||
conns.add(result.new ConnectionHorizontal(diam1, diam2, topInColor));
|
||||
}
|
||||
conns.add(result.new ConnectionIn(arrowColor));
|
||||
conns.add(result.new ConnectionLastElseIn(arrowColor));
|
||||
conns.add(result.new ConnectionIn(topInColor));
|
||||
conns.add(result.new ConnectionLastElseIn(FtileIfWithLinks.getInColor(branch2, arrowColor)));
|
||||
conns.add(result.new ConnectionLastElseOut(arrowColor));
|
||||
conns.add(result.new ConnectionHline(arrowColor));
|
||||
final HtmlColor horizontalOutColor = LinkRendering.getColor(afterEndwhile, arrowColor);
|
||||
conns.add(result.new ConnectionHline(horizontalOutColor));
|
||||
|
||||
return FtileUtils.addConnection(result, conns);
|
||||
}
|
||||
@ -503,5 +500,4 @@ class FtileIfLong2 extends AbstractFtile {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -55,11 +55,9 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.FtileUtils;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Snake;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDiamondInside;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
@ -119,8 +117,8 @@ class FtileIfLongUnused extends AbstractFtile {
|
||||
|
||||
final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30);
|
||||
|
||||
final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, hyperlinkColor,
|
||||
useUnderlineForHyperlink);
|
||||
final FontConfiguration fc = null;
|
||||
// new FontConfiguration(font, HtmlColorUtils.BLACK, hyperlinkColor, useUnderlineForHyperlink);
|
||||
|
||||
final List<Ftile> diamonds = new ArrayList<Ftile>();
|
||||
final List<Connection> conns = new ArrayList<Connection>();
|
||||
|
@ -120,9 +120,9 @@ class FtileIfOrigin extends AbstractFtile {
|
||||
return getSwimlaneIn();
|
||||
}
|
||||
|
||||
static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont fontArrow, UFont fontTest,
|
||||
HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch branch1,
|
||||
Branch branch2, ISkinParam skinParam, StringBounder stringBounder) {
|
||||
static Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor,
|
||||
FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch branch1, Branch branch2,
|
||||
ISkinParam skinParam, StringBounder stringBounder, FontConfiguration fcArrow, FontConfiguration fcTest) {
|
||||
|
||||
final Display labelTest = branch1.getLabelTest();
|
||||
// if (branch1.isOnlySingleStop() || branch2.isOnlySingleStop()) {
|
||||
@ -134,17 +134,18 @@ class FtileIfOrigin extends AbstractFtile {
|
||||
final Ftile tile1 = new FtileMinWidth(branch1.getFtile(), 30);
|
||||
final Ftile tile2 = new FtileMinWidth(branch2.getFtile(), 30);
|
||||
|
||||
final HtmlColor fontColor = skinParam.getFontHtmlColor(FontParam.ACTIVITY_DIAMOND, null);
|
||||
// final FontConfiguration fcArrow = new FontConfiguration(fontArrow, fontColor, skinParam.getHyperlinkColor(),
|
||||
// skinParam.useUnderlineForHyperlink());
|
||||
// final FontConfiguration fcTest = new FontConfiguration(fontTest, fontColor, skinParam.getHyperlinkColor(),
|
||||
// skinParam.useUnderlineForHyperlink());
|
||||
|
||||
final FontConfiguration fcArrow = new FontConfiguration(fontArrow, fontColor, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
final FontConfiguration fcTest = new FontConfiguration(fontTest, fontColor, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
final TextBlock tb1 = branch1.getLabelPositive().create(fcArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
final TextBlock tb2 = branch2.getLabelPositive().create(fcArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
|
||||
final TextBlock tb1 = branch1.getLabelPositive().create(fcArrow, HorizontalAlignment.LEFT, ftileFactory, CreoleMode.SIMPLE_LINE);
|
||||
final TextBlock tb2 = branch2.getLabelPositive().create(fcArrow, HorizontalAlignment.LEFT, ftileFactory, CreoleMode.SIMPLE_LINE);
|
||||
|
||||
final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL).createSheet(labelTest);
|
||||
final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL)
|
||||
.createSheet(labelTest);
|
||||
final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, 0, skinParam.getPadding());
|
||||
final TextBlock tbTest = new SheetBlock2(sheetBlock1, Diamond.asStencil(sheetBlock1), new UStroke(1.5));
|
||||
|
||||
@ -163,9 +164,11 @@ class FtileIfOrigin extends AbstractFtile {
|
||||
if (tile1.calculateDimension(stringBounder).hasPointOut()
|
||||
&& tile2.calculateDimension(stringBounder).hasPointOut()) {
|
||||
final Display out1 = LinkRendering.getDisplay(branch1.getFtile().getOutLinkRendering());
|
||||
final TextBlock tbout1 = out1 == null ? null : out1.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory, CreoleMode.SIMPLE_LINE);
|
||||
final TextBlock tbout1 = out1 == null ? null : out1.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
final Display out2 = LinkRendering.getDisplay(branch2.getFtile().getOutLinkRendering());
|
||||
final TextBlock tbout2 = out2 == null ? null : out2.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory, CreoleMode.SIMPLE_LINE);
|
||||
final TextBlock tbout2 = out2 == null ? null : out2.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
diamond2 = new FtileDiamond(tile1.shadowing(), backColor, borderColor, swimlane).withWest(tbout1).withEast(
|
||||
tbout2);
|
||||
} else {
|
||||
@ -216,7 +219,7 @@ class FtileIfOrigin extends AbstractFtile {
|
||||
color = getInColor(branch);
|
||||
usingArrow = branch.isEmpty() ? null : Arrows.asToDown();
|
||||
}
|
||||
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final StringBounder stringBounder = ug.getStringBounder();
|
||||
final Point2D p1 = getP1(stringBounder);
|
||||
@ -299,7 +302,7 @@ class FtileIfOrigin extends AbstractFtile {
|
||||
this.myArrowColor = myArrowColor == null ? arrowColor : myArrowColor;
|
||||
this.branchEmpty = branchEmpty;
|
||||
}
|
||||
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
final StringBounder stringBounder = ug.getStringBounder();
|
||||
|
||||
|
@ -62,12 +62,10 @@ import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.UTranslate;
|
||||
|
||||
@ -99,16 +97,16 @@ class FtileRepeat extends AbstractFtile {
|
||||
}
|
||||
|
||||
public static Ftile create(LinkRendering backRepeatLinkRendering, Swimlane swimlane, Ftile repeat, Display test,
|
||||
Display yes, Display out, HtmlColor borderColor, HtmlColor backColor, UFont fontTest, HtmlColor arrowColor,
|
||||
Display yes, Display out, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor,
|
||||
HtmlColor endRepeatLinkColor, ConditionStyle conditionStyle, ISkinSimple spriteContainer,
|
||||
HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) {
|
||||
FontConfiguration fontConfiguration) {
|
||||
|
||||
final FontConfiguration fc = new FontConfiguration(fontTest, HtmlColorUtils.BLACK, hyperlinkColor,
|
||||
useUnderlineForHyperlink);
|
||||
// final FontConfiguration fc = new FontConfiguration(fontTest, HtmlColorUtils.BLACK, hyperlinkColor,
|
||||
// useUnderlineForHyperlink);
|
||||
final TextBlock tbTest = (Display.isNull(test) || test.isWhite()) ? TextBlockUtils.empty(0, 0) : test.create(
|
||||
fc, HorizontalAlignment.LEFT, spriteContainer);
|
||||
final TextBlock yesTb = yes.create(fc, HorizontalAlignment.LEFT, spriteContainer);
|
||||
final TextBlock outTb = out.create(fc, HorizontalAlignment.LEFT, spriteContainer);
|
||||
fontConfiguration, HorizontalAlignment.LEFT, spriteContainer);
|
||||
final TextBlock yesTb = yes.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer);
|
||||
final TextBlock outTb = out.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer);
|
||||
|
||||
final Ftile diamond1 = new FtileDiamond(repeat.shadowing(), backColor, borderColor, swimlane);
|
||||
final FtileRepeat result;
|
||||
@ -129,17 +127,17 @@ class FtileRepeat extends AbstractFtile {
|
||||
|
||||
final List<Connection> conns = new ArrayList<Connection>();
|
||||
final Display in1 = LinkRendering.getDisplay(repeat.getInLinkRendering());
|
||||
final TextBlock tbin1 = in1 == null ? null : in1.create(fc, HorizontalAlignment.LEFT, spriteContainer,
|
||||
final TextBlock tbin1 = in1 == null ? null : in1.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
conns.add(result.new ConnectionIn(LinkRendering.getColor(repeat.getInLinkRendering(), arrowColor), tbin1));
|
||||
|
||||
final Display backLink1 = LinkRendering.getDisplay(backRepeatLinkRendering);
|
||||
final TextBlock tbbackLink1 = backLink1 == null ? null : backLink1.create(fc, HorizontalAlignment.LEFT,
|
||||
final TextBlock tbbackLink1 = backLink1 == null ? null : backLink1.create(fontConfiguration, HorizontalAlignment.LEFT,
|
||||
spriteContainer, CreoleMode.SIMPLE_LINE);
|
||||
conns.add(result.new ConnectionBack(LinkRendering.getColor(backRepeatLinkRendering, arrowColor), tbbackLink1));
|
||||
|
||||
final Display out1 = LinkRendering.getDisplay(repeat.getOutLinkRendering());
|
||||
final TextBlock tbout1 = out1 == null ? null : out1.create(fc, HorizontalAlignment.LEFT, spriteContainer,
|
||||
final TextBlock tbout1 = out1 == null ? null : out1.create(fontConfiguration, HorizontalAlignment.LEFT, spriteContainer,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
|
||||
conns.add(result.new ConnectionOut(LinkRendering.getColor(endRepeatLinkColor, arrowColor), tbout1));
|
||||
|
@ -41,7 +41,6 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import net.sourceforge.plantuml.Direction;
|
||||
import net.sourceforge.plantuml.FileGroup;
|
||||
import net.sourceforge.plantuml.ISkinSimple;
|
||||
import net.sourceforge.plantuml.activitydiagram3.LinkRendering;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractConnection;
|
||||
@ -63,7 +62,6 @@ import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
@ -71,7 +69,6 @@ import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeBackColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UEmpty;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.UTranslate;
|
||||
|
||||
@ -102,10 +99,7 @@ class FtileWhile extends AbstractFtile {
|
||||
this.supplementarySouthText = supplementarySouthText;
|
||||
}
|
||||
|
||||
private static TextBlock createLabel1(Display test, Display yes, UFont font, ISkinSimple spriteContainer,
|
||||
HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) {
|
||||
final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, hyperlinkColor,
|
||||
useUnderlineForHyperlink);
|
||||
private static TextBlock createLabel1(Display test, Display yes, ISkinSimple spriteContainer, FontConfiguration fc) {
|
||||
final TextBlock tmpb = yes.create(fc, HorizontalAlignment.LEFT, spriteContainer);
|
||||
if (test == null) {
|
||||
return tmpb;
|
||||
@ -115,17 +109,13 @@ class FtileWhile extends AbstractFtile {
|
||||
}
|
||||
|
||||
public static Ftile create(Swimlane swimlane, Ftile whileBlock, Display test, HtmlColor borderColor,
|
||||
HtmlColor backColor, HtmlColor arrowColor, Display yes, Display out2, UFont fontArrow,
|
||||
HtmlColor endInlinkColor, LinkRendering afterEndwhile, FtileFactory ftileFactory,
|
||||
ConditionStyle conditionStyle, UFont fontTest, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) {
|
||||
HtmlColor backColor, HtmlColor arrowColor, Display yes, Display out2, HtmlColor endInlinkColor,
|
||||
LinkRendering afterEndwhile, FontConfiguration fontArrow, FtileFactory ftileFactory,
|
||||
ConditionStyle conditionStyle, FontConfiguration fcTest) {
|
||||
|
||||
final FontConfiguration fcArrow = new FontConfiguration(fontArrow, HtmlColorUtils.BLACK, hyperlinkColor,
|
||||
useUnderlineForHyperlink);
|
||||
final FontConfiguration fcTest = new FontConfiguration(fontTest, HtmlColorUtils.BLACK, hyperlinkColor,
|
||||
useUnderlineForHyperlink);
|
||||
final TextBlock yesTb = yes.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory);
|
||||
final TextBlock yesTb = yes.create(fontArrow, HorizontalAlignment.LEFT, ftileFactory);
|
||||
final TextBlock testTb = test.create(fcTest, HorizontalAlignment.LEFT, ftileFactory);
|
||||
final TextBlock out = out2.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory);
|
||||
final TextBlock out = out2.create(fontArrow, HorizontalAlignment.LEFT, ftileFactory);
|
||||
|
||||
final Ftile diamond1;
|
||||
final TextBlock supplementarySouthText;
|
||||
@ -138,8 +128,7 @@ class FtileWhile extends AbstractFtile {
|
||||
diamond1 = new FtileDiamondFoo1(whileBlock.shadowing(), backColor, borderColor, swimlane, testTb)
|
||||
.withNorth(yesTb).withWest(out);
|
||||
} else if (conditionStyle == ConditionStyle.DIAMOND) {
|
||||
supplementarySouthText = createLabel1(test, yes, fontArrow, ftileFactory, hyperlinkColor,
|
||||
useUnderlineForHyperlink);
|
||||
supplementarySouthText = createLabel1(test, yes, ftileFactory, fontArrow);
|
||||
diamond1 = new FtileDiamond(whileBlock.shadowing(), backColor, borderColor, swimlane).withWest(out)
|
||||
.withSouth(supplementarySouthText);
|
||||
} else {
|
||||
|
@ -95,15 +95,18 @@ public class FtileWithNoteOpale extends AbstractFtile implements Stencil {
|
||||
// this.arrowColor = arrowColor;
|
||||
|
||||
final Rose rose = new Rose();
|
||||
final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE);
|
||||
final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false);
|
||||
// final HtmlColor fontColor = rose.getFontColor(skinParam, FontParam.NOTE);
|
||||
// final UFont fontNote = skinParam.getFont(FontParam.NOTE, null, false);
|
||||
|
||||
final HtmlColor noteBackgroundColor = rose.getHtmlColor(skinParam, ColorParam.noteBackground);
|
||||
final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.noteBorder);
|
||||
|
||||
final FontConfiguration fc = new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink());
|
||||
// final FontConfiguration fc = new FontConfiguration(fontNote, fontColor, skinParam.getHyperlinkColor(),
|
||||
// skinParam.useUnderlineForHyperlink());
|
||||
final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.NOTE, null);
|
||||
|
||||
final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL).createSheet(note);
|
||||
final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL)
|
||||
.createSheet(note);
|
||||
final TextBlock text = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), this, new UStroke(1));
|
||||
opale = new Opale(borderColor, noteBackgroundColor, text, skinParam.shadowing(), withLink);
|
||||
|
||||
|
@ -56,6 +56,7 @@ import net.sourceforge.plantuml.activitydiagram3.ftile.vertical.FtileDecorateOut
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.sequencediagram.NotePosition;
|
||||
import net.sourceforge.plantuml.skin.rose.Rose;
|
||||
import net.sourceforge.plantuml.ugraphic.Sprite;
|
||||
@ -91,12 +92,13 @@ public class VCompactFactory implements FtileFactory {
|
||||
return new FtileCircleEnd(shadowing(), color, swimlane);
|
||||
}
|
||||
|
||||
public Ftile activity(Display label, final HtmlColor color, Swimlane swimlane, BoxStyle style) {
|
||||
final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.activityBorder);
|
||||
final HtmlColor backColor = color == null ? rose.getHtmlColor(skinParam, ColorParam.activityBackground) : color;
|
||||
public Ftile activity(Display label, Swimlane swimlane, BoxStyle style, Colors colors) {
|
||||
// final HtmlColor borderColor = rose.getHtmlColor(skinParam, ColorParam.activityBorder);
|
||||
// final HtmlColor backColor = color == null ? rose.getHtmlColor(skinParam, ColorParam.activityBackground) :
|
||||
// color;
|
||||
final UFont font = skinParam.getFont(FontParam.ACTIVITY, null, false);
|
||||
final HtmlColor arrowColor = rose.getHtmlColor(skinParam, ColorParam.activityArrow);
|
||||
return new FtileBox(shadowing(), label, borderColor, backColor, font, arrowColor, swimlane, style, skinParam);
|
||||
return new FtileBox(shadowing(), label, font, arrowColor, swimlane, style, colors.mute(skinParam));
|
||||
}
|
||||
|
||||
public Ftile addNote(Ftile ftile, Display note, NotePosition notePosition) {
|
||||
@ -121,7 +123,8 @@ public class VCompactFactory implements FtileFactory {
|
||||
return whileBlock;
|
||||
}
|
||||
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch) {
|
||||
public Ftile createIf(Swimlane swimlane, List<Branch> thens, Branch elseBranch, LinkRendering afterEndwhile,
|
||||
LinkRendering topInlinkRendering) {
|
||||
final List<Ftile> ftiles = new ArrayList<Ftile>();
|
||||
for (Branch branch : thens) {
|
||||
ftiles.add(branch.getFtile());
|
||||
@ -180,4 +183,8 @@ public class VCompactFactory implements FtileFactory {
|
||||
return skinParam.getMonospacedFamily();
|
||||
}
|
||||
|
||||
public int getTabSize() {
|
||||
return skinParam.getTabSize();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -60,7 +60,6 @@ import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.svek.ConditionStyle;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.ugraphic.UStroke;
|
||||
|
||||
public class ConditionalBuilder {
|
||||
@ -68,8 +67,6 @@ public class ConditionalBuilder {
|
||||
private final Swimlane swimlane;
|
||||
private final HtmlColor borderColor;
|
||||
private final HtmlColor backColor;
|
||||
private final UFont fontArrow;
|
||||
private final UFont fontTest;
|
||||
private final HtmlColor arrowColor;
|
||||
private final FtileFactory ftileFactory;
|
||||
private final ConditionStyle conditionStyle;
|
||||
@ -77,18 +74,18 @@ public class ConditionalBuilder {
|
||||
private final Branch branch2;
|
||||
private final ISkinParam skinParam;
|
||||
private final StringBounder stringBounder;
|
||||
private final FontConfiguration fontArrow;
|
||||
private final FontConfiguration fontTest;
|
||||
|
||||
private final Ftile tile1;
|
||||
private final Ftile tile2;
|
||||
|
||||
public ConditionalBuilder(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont fontArrow,
|
||||
UFont fontTest, HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle,
|
||||
Branch branch1, Branch branch2, ISkinParam skinParam, StringBounder stringBounder) {
|
||||
public ConditionalBuilder(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor,
|
||||
FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch branch1, Branch branch2,
|
||||
ISkinParam skinParam, StringBounder stringBounder, FontConfiguration fontArrow, FontConfiguration fontTest) {
|
||||
this.swimlane = swimlane;
|
||||
this.borderColor = borderColor;
|
||||
this.backColor = backColor;
|
||||
this.fontArrow = fontArrow;
|
||||
this.fontTest = fontTest;
|
||||
this.arrowColor = arrowColor;
|
||||
this.ftileFactory = ftileFactory;
|
||||
this.conditionStyle = conditionStyle;
|
||||
@ -96,17 +93,19 @@ public class ConditionalBuilder {
|
||||
this.branch2 = branch2;
|
||||
this.skinParam = skinParam;
|
||||
this.stringBounder = stringBounder;
|
||||
this.fontArrow = fontArrow.changeColor(fontColor());
|
||||
this.fontTest = fontTest.changeColor(fontColor());
|
||||
|
||||
this.tile1 = new FtileMinWidth(branch1.getFtile(), 30);
|
||||
this.tile2 = new FtileMinWidth(branch2.getFtile(), 30);
|
||||
|
||||
}
|
||||
|
||||
static public Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, UFont fontArrow,
|
||||
UFont fontTest, HtmlColor arrowColor, FtileFactory ftileFactory, ConditionStyle conditionStyle,
|
||||
Branch branch1, Branch branch2, ISkinParam skinParam, StringBounder stringBounder) {
|
||||
final ConditionalBuilder builder = new ConditionalBuilder(swimlane, borderColor, backColor, fontArrow,
|
||||
fontTest, arrowColor, ftileFactory, conditionStyle, branch1, branch2, skinParam, stringBounder);
|
||||
static public Ftile create(Swimlane swimlane, HtmlColor borderColor, HtmlColor backColor, HtmlColor arrowColor,
|
||||
FtileFactory ftileFactory, ConditionStyle conditionStyle, Branch branch1, Branch branch2,
|
||||
ISkinParam skinParam, StringBounder stringBounder, FontConfiguration fcArrow, FontConfiguration fcTest) {
|
||||
final ConditionalBuilder builder = new ConditionalBuilder(swimlane, borderColor, backColor, arrowColor,
|
||||
ftileFactory, conditionStyle, branch1, branch2, skinParam, stringBounder, fcArrow, fcTest);
|
||||
return builder.createWithLinks();
|
||||
// return builder.createWithDiamonds();
|
||||
// return builder.createNude();
|
||||
@ -156,9 +155,7 @@ public class ConditionalBuilder {
|
||||
final TextBlock tb1 = getLabelBranch1();
|
||||
final TextBlock tb2 = getLabelBranch2();
|
||||
|
||||
final FontConfiguration fcTest = new FontConfiguration(fontTest, fontColor(), skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
final Sheet sheet = new CreoleParser(fcTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL)
|
||||
final Sheet sheet = new CreoleParser(fontTest, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL)
|
||||
.createSheet(labelTest);
|
||||
final SheetBlock1 sheetBlock1 = new SheetBlock1(sheet, 0, skinParam.getPadding());
|
||||
final TextBlock tbTest = new SheetBlock2(sheetBlock1, Diamond.asStencil(sheetBlock1), new UStroke(1.5));
|
||||
@ -177,28 +174,26 @@ public class ConditionalBuilder {
|
||||
}
|
||||
|
||||
private TextBlock getLabelBranch2() {
|
||||
final TextBlock tb2 = branch2.getLabelPositive().create(fcArrow(), HorizontalAlignment.LEFT, ftileFactory,
|
||||
final TextBlock tb2 = branch2.getLabelPositive().create(fontArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
return tb2;
|
||||
}
|
||||
|
||||
private TextBlock getLabelBranch1() {
|
||||
final TextBlock tb1 = branch1.getLabelPositive().create(fcArrow(), HorizontalAlignment.LEFT, ftileFactory,
|
||||
final TextBlock tb1 = branch1.getLabelPositive().create(fontArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
return tb1;
|
||||
}
|
||||
|
||||
private Ftile getDiamond2() {
|
||||
final FontConfiguration fcArrow = fcArrow();
|
||||
|
||||
final Ftile diamond2;
|
||||
if (hasTwoBranches()) {
|
||||
final Display out1 = LinkRendering.getDisplay(branch1.getFtile().getOutLinkRendering());
|
||||
final TextBlock tbout1 = out1 == null ? null : out1.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
final TextBlock tbout1 = out1 == null ? null : out1.create(fontArrow, HorizontalAlignment.LEFT,
|
||||
ftileFactory, CreoleMode.SIMPLE_LINE);
|
||||
final Display out2 = LinkRendering.getDisplay(branch2.getFtile().getOutLinkRendering());
|
||||
final TextBlock tbout2 = out2 == null ? null : out2.create(fcArrow, HorizontalAlignment.LEFT, ftileFactory,
|
||||
CreoleMode.SIMPLE_LINE);
|
||||
final TextBlock tbout2 = out2 == null ? null : out2.create(fontArrow, HorizontalAlignment.LEFT,
|
||||
ftileFactory, CreoleMode.SIMPLE_LINE);
|
||||
diamond2 = new FtileDiamond(tile1.shadowing(), backColor, borderColor, swimlane).withWest(tbout1).withEast(
|
||||
tbout2);
|
||||
} else {
|
||||
@ -214,11 +209,6 @@ public class ConditionalBuilder {
|
||||
&& tile2.calculateDimension(stringBounder).hasPointOut();
|
||||
}
|
||||
|
||||
private FontConfiguration fcArrow() {
|
||||
return new FontConfiguration(fontArrow, fontColor(), skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
}
|
||||
|
||||
private HtmlColor fontColor() {
|
||||
return skinParam.getFontHtmlColor(FontParam.ACTIVITY_DIAMOND, null);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ public class FtileIfWithLinks extends FtileIfWithDiamonds {
|
||||
this.arrowColor = arrowColor;
|
||||
}
|
||||
|
||||
private HtmlColor getInColor(Branch branch) {
|
||||
public static HtmlColor getInColor(Branch branch, HtmlColor arrowColor) {
|
||||
if (branch.isEmpty()) {
|
||||
return LinkRendering.getColor(branch.getFtile().getOutLinkRendering(), arrowColor);
|
||||
}
|
||||
@ -84,7 +84,7 @@ public class FtileIfWithLinks extends FtileIfWithDiamonds {
|
||||
|
||||
public ConnectionHorizontalThenVertical(Ftile tile, Branch branch) {
|
||||
super(diamond1, tile);
|
||||
color = getInColor(branch);
|
||||
color = getInColor(branch, arrowColor);
|
||||
usingArrow = branch.isEmpty() ? null : Arrows.asToDown();
|
||||
}
|
||||
|
||||
|
@ -37,14 +37,14 @@ import java.awt.geom.Dimension2D;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
|
||||
import net.sourceforge.plantuml.ColorParam;
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.FontParam;
|
||||
import net.sourceforge.plantuml.ISkinParam;
|
||||
import net.sourceforge.plantuml.SkinParamUtils;
|
||||
import net.sourceforge.plantuml.activitydiagram3.LinkRendering;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.AbstractFtile;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.BoxStyle;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Ftile;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.FtileEmpty;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.FtileGeometry;
|
||||
import net.sourceforge.plantuml.activitydiagram3.ftile.Swimlane;
|
||||
import net.sourceforge.plantuml.creole.CreoleMode;
|
||||
@ -73,11 +73,10 @@ public class FtileBox extends AbstractFtile {
|
||||
|
||||
private final TextBlock tb;
|
||||
|
||||
private final HtmlColor borderColor;
|
||||
private final HtmlColor backColor;
|
||||
private final LinkRendering inRenreding;
|
||||
private final Swimlane swimlane;
|
||||
private final BoxStyle style;
|
||||
private final ISkinParam skinParam;
|
||||
|
||||
final public LinkRendering getInLinkRendering() {
|
||||
return inRenreding;
|
||||
@ -111,19 +110,16 @@ public class FtileBox extends AbstractFtile {
|
||||
|
||||
}
|
||||
|
||||
public FtileBox(boolean shadowing, Display label, HtmlColor color, HtmlColor backColor, UFont font,
|
||||
HtmlColor arrowColor, Swimlane swimlane, BoxStyle style, ISkinParam skinParam) {
|
||||
public FtileBox(boolean shadowing, Display label, UFont font, HtmlColor arrowColor, Swimlane swimlane,
|
||||
BoxStyle style, ISkinParam skinParam) {
|
||||
super(shadowing);
|
||||
this.style = style;
|
||||
this.borderColor = color;
|
||||
this.skinParam = skinParam;
|
||||
this.swimlane = swimlane;
|
||||
this.backColor = backColor;
|
||||
this.inRenreding = new LinkRendering(arrowColor);
|
||||
final HtmlColor fontColor = skinParam.getFontHtmlColor(FontParam.ACTIVITY, null);
|
||||
final FontConfiguration fc = new FontConfiguration(font, fontColor, skinParam.getHyperlinkColor(),
|
||||
skinParam.useUnderlineForHyperlink());
|
||||
|
||||
final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL).createSheet(label);
|
||||
final FontConfiguration fc = new FontConfiguration(skinParam, FontParam.ACTIVITY, null);
|
||||
final Sheet sheet = new CreoleParser(fc, HorizontalAlignment.LEFT, skinParam, CreoleMode.FULL)
|
||||
.createSheet(label);
|
||||
this.tb = new SheetBlock2(new SheetBlock1(sheet, 0, skinParam.getPadding()), new MyStencil(), new UStroke(1));
|
||||
this.print = label.toString();
|
||||
}
|
||||
@ -141,6 +137,9 @@ public class FtileBox extends AbstractFtile {
|
||||
final double heightTotal = dimTotal.getHeight();
|
||||
final UDrawable rect = style.getUDrawable(widthTotal, heightTotal, shadowing());
|
||||
|
||||
final HtmlColor borderColor = SkinParamUtils.getColor(skinParam, ColorParam.activityBorder, null);
|
||||
final HtmlColor backColor = SkinParamUtils.getColor(skinParam, ColorParam.activityBackground, null);
|
||||
|
||||
ug = ug.apply(new UChangeColor(borderColor)).apply(new UChangeBackColor(backColor)).apply(new UStroke(1.5));
|
||||
rect.drawU(ug);
|
||||
|
||||
|
@ -49,8 +49,12 @@ import net.sourceforge.plantuml.cucadiagram.Code;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.ILeaf;
|
||||
import net.sourceforge.plantuml.cucadiagram.LeafType;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkStyle;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public class CommandCreateClass extends SingleLineCommand2<ClassDiagram> {
|
||||
|
||||
@ -94,8 +98,8 @@ public class CommandCreateClass extends SingleLineCommand2<ClassDiagram> {
|
||||
new RegexLeaf("$"));
|
||||
}
|
||||
|
||||
public static ColorParser color() {
|
||||
return ColorParser.simpleColor();
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -129,9 +133,27 @@ public class CommandCreateClass extends SingleLineCommand2<ClassDiagram> {
|
||||
entity.addUrl(url);
|
||||
}
|
||||
|
||||
entity.setSpecificBackcolor(color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet()));
|
||||
entity.setSpecificLineColor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)));
|
||||
CommandCreateClassMultilines.applyStroke(entity, arg.get("LINECOLOR", 0));
|
||||
Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
|
||||
final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1));
|
||||
if (lineColor != null) {
|
||||
colors = colors.add(ColorType.LINE, lineColor);
|
||||
}
|
||||
if (arg.get("LINECOLOR", 0) != null) {
|
||||
colors = colors.addLegacyStroke(arg.get("LINECOLOR", 0));
|
||||
}
|
||||
entity.setColors(colors);
|
||||
|
||||
// entity.setSpecificColorTOBEREMOVED(ColorType.LINE, lineColor);
|
||||
// entity.setSpecificColorTOBEREMOVED(ColorType.HEADER, colors.getColor(ColorType.HEADER));
|
||||
//
|
||||
// if (colors.getLineStyle() != null) {
|
||||
// entity.setSpecificLineStroke(LinkStyle.getStroke(colors.getLineStyle()));
|
||||
// }
|
||||
//
|
||||
// if (arg.get("LINECOLOR", 0) != null) {
|
||||
// entity.applyStroke(arg.get("LINECOLOR", 0));
|
||||
// }
|
||||
|
||||
// manageExtends(diagram, arg, entity);
|
||||
CommandCreateClassMultilines.manageExtends("EXTENDS", diagram, arg, entity);
|
||||
@ -139,7 +161,6 @@ public class CommandCreateClass extends SingleLineCommand2<ClassDiagram> {
|
||||
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
// public static void manageExtends(ClassDiagram system, RegexResult arg, final IEntity entity) {
|
||||
// if (arg.get("EXTENDS", 1) != null) {
|
||||
// final Mode mode = arg.get("EXTENDS", 1).equalsIgnoreCase("extends") ? Mode.EXTENDS : Mode.IMPLEMENTS;
|
||||
|
@ -54,12 +54,13 @@ import net.sourceforge.plantuml.cucadiagram.ILeaf;
|
||||
import net.sourceforge.plantuml.cucadiagram.LeafType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Link;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkDecor;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkStyle;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.skin.VisibilityModifier;
|
||||
import net.sourceforge.plantuml.ugraphic.UStroke;
|
||||
|
||||
public class CommandCreateClassMultilines extends CommandMultilines2<ClassDiagram> {
|
||||
|
||||
@ -99,7 +100,7 @@ public class CommandCreateClassMultilines extends CommandMultilines2<ClassDiagra
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
ColorParser.exp1(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf("LINECOLOR", "(?:##(?:\\[(dotted|dashed|bold)\\])?(\\w+)?)?"), //
|
||||
new RegexLeaf("EXTENDS", "([%s]+(extends)[%s]+(" + CODES + "))?"), //
|
||||
@ -107,6 +108,10 @@ public class CommandCreateClassMultilines extends CommandMultilines2<ClassDiagra
|
||||
new RegexLeaf("[%s]*\\{[%s]*$"));
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
public CommandExecutionResult executeNow(ClassDiagram diagram, BlocLines lines) {
|
||||
lines = lines.trimSmart(1);
|
||||
lines = lines.removeComments();
|
||||
@ -199,9 +204,22 @@ public class CommandCreateClassMultilines extends CommandMultilines2<ClassDiagra
|
||||
result.addUrl(url);
|
||||
}
|
||||
|
||||
result.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
result.setSpecificLineColor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)));
|
||||
applyStroke(result, arg.get("LINECOLOR", 0));
|
||||
Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
|
||||
final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1));
|
||||
if (lineColor != null) {
|
||||
colors = colors.add(ColorType.LINE, lineColor);
|
||||
}
|
||||
if (arg.get("LINECOLOR", 0) != null) {
|
||||
colors = colors.addLegacyStroke(arg.get("LINECOLOR", 0));
|
||||
}
|
||||
result.setColors(colors);
|
||||
|
||||
// result.setSpecificColorTOBEREMOVED(ColorType.BACK,
|
||||
// diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
// result.setSpecificColorTOBEREMOVED(ColorType.LINE,
|
||||
// diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1)));
|
||||
// result.applyStroke(arg.get("LINECOLOR", 0));
|
||||
|
||||
if (generic != null) {
|
||||
result.setGeneric(generic);
|
||||
@ -209,26 +227,4 @@ public class CommandCreateClassMultilines extends CommandMultilines2<ClassDiagra
|
||||
return result;
|
||||
}
|
||||
|
||||
public static UStroke getStroke(LinkStyle style) {
|
||||
if (style == LinkStyle.DASHED) {
|
||||
return new UStroke(6, 6, 1);
|
||||
}
|
||||
if (style == LinkStyle.DOTTED) {
|
||||
return new UStroke(1, 3, 1);
|
||||
}
|
||||
if (style == LinkStyle.BOLD) {
|
||||
return new UStroke(2.5);
|
||||
}
|
||||
return new UStroke();
|
||||
}
|
||||
|
||||
public static void applyStroke(IEntity entity, String s) {
|
||||
if (s == null) {
|
||||
return;
|
||||
}
|
||||
final LinkStyle style = LinkStyle.valueOf(StringUtils.goUpperCase(s));
|
||||
entity.setSpecificLineStroke(getStroke(style));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ import net.sourceforge.plantuml.cucadiagram.LeafType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public class CommandCreateElementFull2 extends SingleLineCommand2<ClassDiagram> {
|
||||
|
||||
@ -213,7 +214,7 @@ public class CommandCreateElementFull2 extends SingleLineCommand2<ClassDiagram>
|
||||
entity.addUrl(url);
|
||||
}
|
||||
|
||||
entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
|
@ -58,6 +58,10 @@ import net.sourceforge.plantuml.cucadiagram.LinkArrow;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkDecor;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorSet;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.objectdiagram.AbstractClassOrObjectDiagram;
|
||||
|
||||
final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrObjectDiagram> {
|
||||
@ -100,13 +104,18 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
new RegexLeaf("COUPLE2",
|
||||
"\\([%s]*(\\.?[\\p{L}0-9_]+(?:\\.[\\p{L}0-9_]+)*)[%s]*,[%s]*(\\.?[\\p{L}0-9_]+(?:\\.[\\p{L}0-9_]+)*)[%s]*\\)")),
|
||||
new RegexLeaf("[%s]*"), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf("LABEL_LINK", "(?::[%s]*(.+))?"), //
|
||||
new RegexLeaf("$"));
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.LINE);
|
||||
}
|
||||
|
||||
private static String getClassIdentifier() {
|
||||
return "(" + getSeparator() + "?[\\p{L}0-9_$]+(?:" + getSeparator()
|
||||
+ "[\\p{L}0-9_$]+)*|[%g][^%g]+[%g])[%s]*(\\<\\<.*\\>\\>)?";
|
||||
return "(" + getSeparator() + "?[\\p{L}0-9_$]+(?:" + getSeparator() + "[\\p{L}0-9_$]+)*|[%g][^%g]+[%g])";
|
||||
}
|
||||
|
||||
private static String getSeparator() {
|
||||
@ -158,16 +167,18 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
((ILeaf) cl2).muteToType(type, null);
|
||||
}
|
||||
}
|
||||
if (arg.get("ENT1", 2) != null) {
|
||||
cl1.setStereotype(new Stereotype(arg.get("ENT1", 2), diagram.getSkinParam().getCircledCharacterRadius(),
|
||||
diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam()
|
||||
.getIHtmlColorSet()));
|
||||
}
|
||||
if (arg.get("ENT2", 2) != null) {
|
||||
cl2.setStereotype(new Stereotype(arg.get("ENT2", 2), diagram.getSkinParam().getCircledCharacterRadius(),
|
||||
diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam()
|
||||
.getIHtmlColorSet()));
|
||||
}
|
||||
// if (arg.get("ENT1", 2) != null) {
|
||||
// cl1.setStereotype(new Stereotype(arg.get("ENT1", 2), diagram.getSkinParam().getCircledCharacterRadius(),
|
||||
// diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam()
|
||||
// .getIHtmlColorSet()));
|
||||
// }
|
||||
// if (arg.get("ENT2", 2) != null) {
|
||||
// cl2.setStereotype(new Stereotype(arg.get("ENT2", 2), diagram.getSkinParam().getCircledCharacterRadius(),
|
||||
// diagram.getSkinParam().getFont(FontParam.CIRCLED_CHARACTER, null, false), diagram.getSkinParam()
|
||||
// .getIHtmlColorSet()));
|
||||
// }
|
||||
|
||||
Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
|
||||
final LinkType linkType = getLinkType(arg);
|
||||
final Direction dir = getDirection(arg);
|
||||
@ -244,7 +255,8 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
link = link.getInv();
|
||||
}
|
||||
link.setLinkArrow(linkArrow);
|
||||
applyStyle(arg.getLazzy("ARROW_STYLE", 0), link);
|
||||
colors = applyStyle(arg.getLazzy("ARROW_STYLE", 0), link, colors);
|
||||
link.setColors(colors);
|
||||
|
||||
addLink(diagram, link, arg.get("HEADER", 0));
|
||||
|
||||
@ -288,6 +300,8 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
queue = getQueueLength(arg);
|
||||
}
|
||||
|
||||
Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
|
||||
final Display labelLink = Display.getWithNewlines(arg.get("LABEL_LINK", 0));
|
||||
final String firstLabel = arg.get("FIRST_LABEL", 0);
|
||||
final String secondLabel = arg.get("SECOND_LABEL", 0);
|
||||
@ -295,7 +309,10 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
diagram.getLabeldistance(), diagram.getLabelangle());
|
||||
|
||||
diagram.resetPragmaLabel();
|
||||
applyStyle(arg.getLazzy("ARROW_STYLE", 0), link);
|
||||
|
||||
colors = applyStyle(arg.getLazzy("ARROW_STYLE", 0), link, colors);
|
||||
link.setColors(colors);
|
||||
|
||||
addLink(diagram, link, arg.get("HEADER", 0));
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
@ -471,9 +488,14 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
return s;
|
||||
}
|
||||
|
||||
public static void applyStyle(String arrowStyle, Link link) {
|
||||
@Deprecated
|
||||
public static Colors applyStyle(String arrowStyle, Link link) {
|
||||
return applyStyle(arrowStyle, link, null);
|
||||
}
|
||||
|
||||
public static Colors applyStyle(String arrowStyle, Link link, Colors colors) {
|
||||
if (arrowStyle == null) {
|
||||
return;
|
||||
return colors;
|
||||
}
|
||||
final StringTokenizer st = new StringTokenizer(arrowStyle, ",");
|
||||
while (st.hasMoreTokens()) {
|
||||
@ -490,8 +512,12 @@ final public class CommandLinkClass extends SingleLineCommand2<AbstractClassOrOb
|
||||
link.goNorank();
|
||||
} else {
|
||||
link.setSpecificColor(s);
|
||||
if (colors != null) {
|
||||
colors = colors.add(ColorType.LINE, HtmlColorSet.getInstance().getColorIfValid(s));
|
||||
}
|
||||
}
|
||||
}
|
||||
return colors;
|
||||
}
|
||||
|
||||
private boolean isInversed(LinkDecor decors1, LinkDecor decors2) {
|
||||
|
@ -44,6 +44,7 @@ import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.cucadiagram.IGroup;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public class CommandNamespace extends SingleLineCommand2<ClassDiagram> {
|
||||
|
||||
@ -73,7 +74,7 @@ public class CommandNamespace extends SingleLineCommand2<ClassDiagram> {
|
||||
}
|
||||
final String color = arg.get("COLOR", 0);
|
||||
if (color != null) {
|
||||
p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
}
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
@ -49,6 +49,8 @@ import net.sourceforge.plantuml.cucadiagram.IGroup;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.utils.UniqueSequence;
|
||||
|
||||
public class CommandPackage extends SingleLineCommand2<AbstractEntityDiagram> {
|
||||
@ -66,9 +68,13 @@ public class CommandPackage extends SingleLineCommand2<AbstractEntityDiagram> {
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
ColorParser.exp1(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("[%s]*\\{$"));
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CommandExecutionResult executeArg(AbstractEntityDiagram diagram, RegexResult arg) {
|
||||
@ -107,10 +113,13 @@ public class CommandPackage extends SingleLineCommand2<AbstractEntityDiagram> {
|
||||
p.addUrl(url);
|
||||
}
|
||||
|
||||
final String color = arg.get("COLOR", 0);
|
||||
if (color != null) {
|
||||
p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
}
|
||||
final Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
p.setColors(colors);
|
||||
|
||||
// final String color = arg.get("COLOR", 0);
|
||||
// if (color != null) {
|
||||
// p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
// }
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
|
@ -35,13 +35,14 @@ package net.sourceforge.plantuml.command;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.classdiagram.AbstractEntityDiagram;
|
||||
import net.sourceforge.plantuml.cucadiagram.Code;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.GroupType;
|
||||
import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.cucadiagram.IGroup;
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.utils.UniqueSequence;
|
||||
|
||||
public class CommandPackageEmpty extends SingleLineCommand<AbstractEntityDiagram> {
|
||||
@ -72,7 +73,7 @@ public class CommandPackageEmpty extends SingleLineCommand<AbstractEntityDiagram
|
||||
currentPackage);
|
||||
final String color = arg.get(2);
|
||||
if (color != null) {
|
||||
p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
}
|
||||
diagram.endGroup();
|
||||
return CommandExecutionResult.ok();
|
||||
|
@ -55,6 +55,7 @@ import net.sourceforge.plantuml.cucadiagram.Link;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkDecor;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkType;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.utils.UniqueSequence;
|
||||
|
||||
public final class FactoryNoteActivityCommand implements SingleMultiFactoryCommand<ActivityDiagram> {
|
||||
@ -128,7 +129,7 @@ public final class FactoryNoteActivityCommand implements SingleMultiFactoryComma
|
||||
|
||||
private CommandExecutionResult executeInternal(ActivityDiagram diagram, RegexResult arg, IEntity note) {
|
||||
|
||||
note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
note.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
|
||||
IEntity activity = diagram.getLastEntityConsulted();
|
||||
if (activity == null) {
|
||||
|
@ -48,6 +48,7 @@ import net.sourceforge.plantuml.cucadiagram.Code;
|
||||
import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.cucadiagram.LeafType;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public final class FactoryNoteCommand implements SingleMultiFactoryCommand<AbstractEntityDiagram> {
|
||||
|
||||
@ -108,7 +109,7 @@ public final class FactoryNoteCommand implements SingleMultiFactoryCommand<Abstr
|
||||
}
|
||||
final IEntity entity = diagram.createLeaf(code, display.toDisplay(), LeafType.NOTE, null);
|
||||
assert entity != null;
|
||||
entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
|
@ -58,6 +58,8 @@ import net.sourceforge.plantuml.cucadiagram.Link;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkDecor;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkType;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.utils.UniqueSequence;
|
||||
|
||||
public final class FactoryNoteOnEntityCommand implements SingleMultiFactoryCommand<AbstractEntityDiagram> {
|
||||
@ -78,13 +80,17 @@ public final class FactoryNoteOnEntityCommand implements SingleMultiFactoryComma
|
||||
new RegexConcat(new RegexLeaf("[%s]+of[%s]+"), partialPattern), //
|
||||
new RegexLeaf("")), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
ColorParser.exp1(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("[%s]*:[%s]*"), //
|
||||
new RegexLeaf("NOTE", "(.*)"), //
|
||||
new RegexLeaf("$") //
|
||||
);
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
private RegexConcat getRegexConcatMultiLine(IRegex partialPattern, final boolean withBracket) {
|
||||
return new RegexConcat(new RegexLeaf("^note[%s]+"), //
|
||||
new RegexLeaf("POSITION", "(right|left|top|bottom)"), //
|
||||
@ -92,7 +98,7 @@ public final class FactoryNoteOnEntityCommand implements SingleMultiFactoryComma
|
||||
new RegexConcat(new RegexLeaf("[%s]+of[%s]+"), partialPattern), //
|
||||
new RegexLeaf("")), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
ColorParser.exp1(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf(withBracket ? "[%s]*\\{" : "[%s]*"), //
|
||||
new RegexLeaf("$") //
|
||||
);
|
||||
@ -160,7 +166,12 @@ public final class FactoryNoteOnEntityCommand implements SingleMultiFactoryComma
|
||||
|
||||
final IEntity note = diagram
|
||||
.createLeaf(UniqueSequence.getCode("GMN"), strings.toDisplay(), LeafType.NOTE, null);
|
||||
note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)));
|
||||
|
||||
Colors colors = color().getColor(line0, diagram.getSkinParam().getIHtmlColorSet());
|
||||
// System.err.println("colors=" + colors);
|
||||
// note.setSpecificColorTOBEREMOVED(ColorType.BACK,
|
||||
// diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)));
|
||||
note.setColors(colors);
|
||||
if (url != null) {
|
||||
note.addUrl(url);
|
||||
}
|
||||
|
@ -50,6 +50,8 @@ import net.sourceforge.plantuml.command.regex.RegexResult;
|
||||
import net.sourceforge.plantuml.cucadiagram.CucaDiagram;
|
||||
import net.sourceforge.plantuml.cucadiagram.Link;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public final class FactoryNoteOnLinkCommand implements SingleMultiFactoryCommand<CucaDiagram> {
|
||||
|
||||
@ -57,7 +59,7 @@ public final class FactoryNoteOnLinkCommand implements SingleMultiFactoryCommand
|
||||
return new RegexConcat(new RegexLeaf("^note[%s]+"), //
|
||||
new RegexLeaf("POSITION", "(right|left|top|bottom)?[%s]*on[%s]+link"), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
ColorParser.exp1(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("[%s]*:[%s]*"), //
|
||||
new RegexLeaf("NOTE", "(.*)"), //
|
||||
new RegexLeaf("$"));
|
||||
@ -67,10 +69,14 @@ public final class FactoryNoteOnLinkCommand implements SingleMultiFactoryCommand
|
||||
return new RegexConcat(new RegexLeaf("^note[%s]+"), //
|
||||
new RegexLeaf("POSITION", "(right|left|top|bottom)?[%s]*on[%s]+link"), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
ColorParser.exp1(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("$"));
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
public Command<CucaDiagram> createMultiLine(boolean withBracket) {
|
||||
return new CommandMultilines2<CucaDiagram>(getRegexConcatMultiLine(), MultilinesStrategy.KEEP_STARTING_QUOTE) {
|
||||
|
||||
@ -121,8 +127,8 @@ public final class FactoryNoteOnLinkCommand implements SingleMultiFactoryCommand
|
||||
if (url != null) {
|
||||
note = note.subExtract(1, 0);
|
||||
}
|
||||
link.addNote(note.toDisplay(), position,
|
||||
diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
final Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
link.addNote(note.toDisplay(), position, colors);
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
|
@ -45,6 +45,7 @@ import net.sourceforge.plantuml.command.regex.RegexConcat;
|
||||
import net.sourceforge.plantuml.command.regex.RegexLeaf;
|
||||
import net.sourceforge.plantuml.command.regex.RegexResult;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.sequencediagram.Note;
|
||||
import net.sourceforge.plantuml.sequencediagram.NotePosition;
|
||||
import net.sourceforge.plantuml.sequencediagram.NoteStyle;
|
||||
@ -115,7 +116,7 @@ public final class FactorySequenceNoteCommand implements SingleMultiFactoryComma
|
||||
if (strings.size() > 0) {
|
||||
final boolean tryMerge = arg.get("VMERGE", 0) != null;
|
||||
final Note note = new Note(p, position, strings.toDisplay());
|
||||
note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
note.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
note.setStyle(NoteStyle.getNoteStyle(arg.get("STYLE", 0)));
|
||||
diagram.addNote(note, tryMerge);
|
||||
}
|
||||
|
@ -45,6 +45,7 @@ import net.sourceforge.plantuml.command.regex.RegexConcat;
|
||||
import net.sourceforge.plantuml.command.regex.RegexLeaf;
|
||||
import net.sourceforge.plantuml.command.regex.RegexResult;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.sequencediagram.Note;
|
||||
import net.sourceforge.plantuml.sequencediagram.NoteStyle;
|
||||
import net.sourceforge.plantuml.sequencediagram.Participant;
|
||||
@ -118,7 +119,7 @@ public final class FactorySequenceNoteOverSeveralCommand implements SingleMultiF
|
||||
if (lines.size() > 0) {
|
||||
final boolean tryMerge = line0.get("VMERGE", 0) != null;
|
||||
final Note note = new Note(p1, p2, lines.toDisplay());
|
||||
note.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)));
|
||||
note.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)));
|
||||
note.setStyle(NoteStyle.getNoteStyle(line0.get("STYLE", 0)));
|
||||
diagram.addNote(note, tryMerge);
|
||||
}
|
||||
|
@ -54,6 +54,11 @@ public class RegexLeaf implements IRegex {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " " + name + " " + pattern;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ import javax.imageio.ImageIO;
|
||||
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.FileSystem;
|
||||
import net.sourceforge.plantuml.code.Base64Coder;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.ImgValign;
|
||||
@ -58,6 +59,7 @@ import net.sourceforge.plantuml.ugraphic.UImage;
|
||||
|
||||
public class AtomImg implements Atom {
|
||||
|
||||
private static final String DATA_IMAGE_PNG_BASE64 = "data:image/png;base64,";
|
||||
private final BufferedImage image;
|
||||
|
||||
private AtomImg(BufferedImage image) {
|
||||
@ -66,18 +68,25 @@ public class AtomImg implements Atom {
|
||||
|
||||
public static Atom create(String src, final ImgValign valign, final int vspace) {
|
||||
final UFont font = new UFont("Monospaced", Font.PLAIN, 14);
|
||||
final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true);
|
||||
final FontConfiguration fc = FontConfiguration.blackBlueTrue(font);
|
||||
|
||||
if (src.startsWith(DATA_IMAGE_PNG_BASE64)) {
|
||||
final String data = src.substring(DATA_IMAGE_PNG_BASE64.length(), src.length());
|
||||
try {
|
||||
final byte bytes[] = Base64Coder.decode(data);
|
||||
return build(src, fc, bytes);
|
||||
} catch (Exception e) {
|
||||
return AtomText.create("ERROR " + e.toString(), fc);
|
||||
}
|
||||
|
||||
}
|
||||
try {
|
||||
final File f = FileSystem.getInstance().getFile(src);
|
||||
if (f.exists() == false) {
|
||||
// Check if valid URL
|
||||
if (src.startsWith("http:") || src.startsWith("https:")) {
|
||||
final byte image[] = getFile(src);
|
||||
final BufferedImage read = ImageIO.read(new ByteArrayInputStream(image));
|
||||
if (read == null) {
|
||||
return AtomText.create("(Cannot decode: " + src + ")", fc);
|
||||
}
|
||||
return new AtomImg(read);
|
||||
return build(src, fc, image);
|
||||
}
|
||||
return AtomText.create("(File not found: " + f + ")", fc);
|
||||
}
|
||||
@ -95,6 +104,14 @@ public class AtomImg implements Atom {
|
||||
}
|
||||
}
|
||||
|
||||
private static Atom build(String source, final FontConfiguration fc, final byte[] data) throws IOException {
|
||||
final BufferedImage read = ImageIO.read(new ByteArrayInputStream(data));
|
||||
if (read == null) {
|
||||
return AtomText.create("(Cannot decode: " + source + ")", fc);
|
||||
}
|
||||
return new AtomImg(read);
|
||||
}
|
||||
|
||||
// Added by Alain Corbiere
|
||||
static byte[] getFile(String host) throws IOException {
|
||||
final ByteArrayOutputStream image = new ByteArrayOutputStream();
|
||||
|
@ -158,7 +158,15 @@ public class AtomText implements Atom {
|
||||
}
|
||||
|
||||
private double getTabSize(StringBounder stringBounder) {
|
||||
return stringBounder.calculateDimension(fontConfiguration.getFont(), " ").getWidth();
|
||||
return stringBounder.calculateDimension(fontConfiguration.getFont(), tabString()).getWidth();
|
||||
}
|
||||
|
||||
private String tabString() {
|
||||
final int nb = fontConfiguration.getTabSize();
|
||||
if (nb >= 1 && nb < 7) {
|
||||
return " ".substring(0, nb);
|
||||
}
|
||||
return " ";
|
||||
}
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
|
@ -47,7 +47,6 @@ import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.ugraphic.ColorMapperIdentity;
|
||||
import net.sourceforge.plantuml.ugraphic.ImageBuilder;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
@ -70,13 +69,13 @@ public class PSystemCreole extends AbstractPSystem {
|
||||
public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException {
|
||||
final Display display = Display.create(lines);
|
||||
final UFont font = new UFont("Serif", Font.PLAIN, 14);
|
||||
final FontConfiguration fontConfiguration = new FontConfiguration(font, HtmlColorUtils.BLACK,
|
||||
HtmlColorUtils.BLUE, true);
|
||||
final FontConfiguration fontConfiguration = FontConfiguration.blackBlueTrue(font);
|
||||
final Sheet sheet = new CreoleParser(fontConfiguration, HorizontalAlignment.LEFT, null, CreoleMode.FULL)
|
||||
.createSheet(display);
|
||||
final SheetBlock1 sheetBlock = new SheetBlock1(sheet, 0, 0);
|
||||
|
||||
final ImageBuilder builder = new ImageBuilder(new ColorMapperIdentity(), 1.0, null, null, null, 0, 0, null, false);
|
||||
final ImageBuilder builder = new ImageBuilder(new ColorMapperIdentity(), 1.0, null, null, null, 0, 0, null,
|
||||
false);
|
||||
builder.addUDrawable(sheetBlock);
|
||||
return builder.writeImageTOBEMOVED(fileFormat, os);
|
||||
|
||||
|
@ -77,8 +77,7 @@ public class BodyEnhanced extends AbstractTextBlock implements TextBlock {
|
||||
this.skinParam = skinParam;
|
||||
this.manageUrl = true;
|
||||
|
||||
this.titleConfig = new FontConfiguration(skinParam.getFont(fontParam, null, false), new Rose().getFontColor(
|
||||
skinParam, fontParam), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink());
|
||||
this.titleConfig = new FontConfiguration(skinParam, fontParam, null);
|
||||
this.lineFirst = true;
|
||||
this.align = HorizontalAlignment.LEFT;
|
||||
this.manageHorizontalLine = true;
|
||||
@ -145,7 +144,8 @@ public class BodyEnhanced extends AbstractTextBlock implements TextBlock {
|
||||
}
|
||||
members = new ArrayList<Member>();
|
||||
final List<String> allTree = buildAllTree(s, it);
|
||||
final TextBlock bloc = Display.create(allTree).create(fontParam.getFontConfiguration(skinParam), align, skinParam, CreoleMode.FULL);
|
||||
final TextBlock bloc = Display.create(allTree).create(fontParam.getFontConfiguration(skinParam), align,
|
||||
skinParam, CreoleMode.FULL);
|
||||
blocks.add(bloc);
|
||||
} else {
|
||||
final Member m = new MemberImpl(s, MemberImpl.isMethod(s), manageModifier, manageUrl);
|
||||
|
@ -46,6 +46,8 @@ import net.sourceforge.plantuml.cucadiagram.entity.EntityFactory;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.svek.IEntityImage;
|
||||
import net.sourceforge.plantuml.svek.PackageStyle;
|
||||
import net.sourceforge.plantuml.svek.SingleStrategy;
|
||||
@ -126,16 +128,6 @@ public class GroupRoot implements IGroup {
|
||||
|
||||
}
|
||||
|
||||
public HtmlColor getSpecificBackColor() {
|
||||
throw new UnsupportedOperationException();
|
||||
|
||||
}
|
||||
|
||||
public void setSpecificBackcolor(HtmlColor specificBackcolor) {
|
||||
throw new UnsupportedOperationException();
|
||||
|
||||
}
|
||||
|
||||
public IGroup getParentContainer() {
|
||||
return null;
|
||||
}
|
||||
@ -212,22 +204,6 @@ public class GroupRoot implements IGroup {
|
||||
return false;
|
||||
}
|
||||
|
||||
public HtmlColor getSpecificLineColor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setSpecificLineColor(HtmlColor specificLinecolor) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public UStroke getSpecificLineStroke() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setSpecificLineStroke(UStroke specificLineStoke) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public boolean hasUrl() {
|
||||
return false;
|
||||
}
|
||||
@ -268,4 +244,28 @@ public class GroupRoot implements IGroup {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public Colors getColors(ISkinParam skinParam) {
|
||||
return Colors.empty();
|
||||
}
|
||||
|
||||
public void setColors(Colors colors) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setSpecificLineStroke(UStroke specificLineStroke) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void applyStroke(String s) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void applyStroke(Colors colors) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ import net.sourceforge.plantuml.Removeable;
|
||||
import net.sourceforge.plantuml.SpecificBackcolorable;
|
||||
import net.sourceforge.plantuml.Url;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public interface IEntity extends SpecificBackcolorable, Hideable, Removeable, LineConfigurable {
|
||||
|
||||
@ -86,4 +87,7 @@ public interface IEntity extends SpecificBackcolorable, Hideable, Removeable, Li
|
||||
|
||||
public Map<String, Display> getTips();
|
||||
|
||||
@Deprecated
|
||||
public void applyStroke(String s);
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16541 $
|
||||
* Revision $Revision: 17068 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.cucadiagram;
|
||||
@ -45,11 +45,10 @@ import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorSet;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.graphic.USymbolInterface;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
import net.sourceforge.plantuml.utils.UniqueSequence;
|
||||
|
||||
@ -67,7 +66,7 @@ public class Link implements Hideable, Removeable {
|
||||
|
||||
private Display note;
|
||||
private Position notePosition;
|
||||
private HtmlColor noteColor;
|
||||
private Colors noteColors;
|
||||
|
||||
private boolean invis = false;
|
||||
private double weight = 1.0;
|
||||
@ -298,25 +297,25 @@ public class Link implements Hideable, Removeable {
|
||||
return note;
|
||||
}
|
||||
|
||||
public final HtmlColor getNoteColor() {
|
||||
return noteColor;
|
||||
public final Colors getNoteColors() {
|
||||
return noteColors;
|
||||
}
|
||||
|
||||
public final Position getNotePosition() {
|
||||
return notePosition;
|
||||
}
|
||||
|
||||
public final void addNote(Display note, Position position, HtmlColor noteColor) {
|
||||
public final void addNote(Display note, Position position, Colors colors) {
|
||||
this.note = note;
|
||||
this.notePosition = position;
|
||||
this.noteColor = noteColor;
|
||||
this.noteColors = colors;
|
||||
}
|
||||
|
||||
public final void addNote(String n, Position position, HtmlColor noteColor) {
|
||||
this.note = Display.getWithNewlines(n);
|
||||
this.notePosition = position;
|
||||
this.noteColor = noteColor;
|
||||
}
|
||||
// public final void addNote(String n, Position position, Colors colors) {
|
||||
// this.note = Display.getWithNewlines(n);
|
||||
// this.notePosition = position;
|
||||
// this.noteColors = colors;
|
||||
// }
|
||||
|
||||
public boolean isAutoLinkOfAGroup() {
|
||||
if (getEntity1().isGroup() == false) {
|
||||
@ -370,8 +369,7 @@ public class Link implements Hideable, Removeable {
|
||||
private double getQualifierMargin(StringBounder stringBounder, UFont fontQualif, String qualif,
|
||||
ISkinSimple spriteContainer) {
|
||||
if (qualif != null) {
|
||||
final TextBlock b = Display.create(qualif).create(
|
||||
new FontConfiguration(fontQualif, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true),
|
||||
final TextBlock b = Display.create(qualif).create(FontConfiguration.blackBlueTrue(fontQualif),
|
||||
HorizontalAlignment.LEFT, spriteContainer);
|
||||
final Dimension2D dim = b.calculateDimension(stringBounder);
|
||||
return Math.max(dim.getWidth(), dim.getHeight());
|
||||
@ -495,4 +493,14 @@ public class Link implements Hideable, Removeable {
|
||||
this.sametail = sametail;
|
||||
}
|
||||
|
||||
private Colors colors;
|
||||
|
||||
public void setColors(Colors colors) {
|
||||
this.colors = colors;
|
||||
}
|
||||
|
||||
public final Colors getColors() {
|
||||
return colors;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -33,10 +33,27 @@
|
||||
*/
|
||||
package net.sourceforge.plantuml.cucadiagram;
|
||||
|
||||
import net.sourceforge.plantuml.ugraphic.UStroke;
|
||||
|
||||
public enum LinkStyle {
|
||||
|
||||
NORMAL, DASHED, DOTTED, BOLD, INVISIBLE,
|
||||
|
||||
DOUBLE_tobedone, __toremove_INTERFACE_PROVIDER, __toremove_INTERFACE_USER;
|
||||
|
||||
public static UStroke getStroke(LinkStyle style) {
|
||||
if (style == LinkStyle.DASHED) {
|
||||
return new UStroke(6, 6, 1);
|
||||
}
|
||||
if (style == LinkStyle.DOTTED) {
|
||||
return new UStroke(1, 3, 1);
|
||||
}
|
||||
if (style == LinkStyle.BOLD) {
|
||||
return new UStroke(2.5);
|
||||
}
|
||||
return new UStroke();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ public class MethodsOrFieldsArea extends AbstractTextBlock implements TextBlockW
|
||||
return new TextBlockLineBefore(TextBlockUtils.withMargin(this, 6, 4));
|
||||
}
|
||||
|
||||
private final UFont font;
|
||||
private final FontParam fontParam;
|
||||
private final ISkinParam skinParam;
|
||||
private final HtmlColor color;
|
||||
private final HtmlColor hyperlinkColor;
|
||||
@ -86,7 +86,7 @@ public class MethodsOrFieldsArea extends AbstractTextBlock implements TextBlockW
|
||||
HorizontalAlignment align) {
|
||||
this.align = align;
|
||||
this.skinParam = skinParam;
|
||||
this.font = skinParam.getFont(fontParam, null, false);
|
||||
this.fontParam = fontParam;
|
||||
this.color = rose.getFontColor(skinParam, fontParam);
|
||||
this.hyperlinkColor = skinParam.getHyperlinkColor();
|
||||
this.useUnderlineForHyperlink = skinParam.useUnderlineForHyperlink();
|
||||
@ -128,7 +128,7 @@ public class MethodsOrFieldsArea extends AbstractTextBlock implements TextBlockW
|
||||
if (withVisibilityChar && s.startsWith("#")) {
|
||||
s = CharHidder.addTileAtBegin(s);
|
||||
}
|
||||
FontConfiguration config = new FontConfiguration(font, color, hyperlinkColor, useUnderlineForHyperlink);
|
||||
FontConfiguration config = new FontConfiguration(skinParam, fontParam, null);
|
||||
if (m.isAbstract()) {
|
||||
config = config.italic();
|
||||
}
|
||||
@ -164,7 +164,7 @@ public class MethodsOrFieldsArea extends AbstractTextBlock implements TextBlockW
|
||||
final Dimension2D dim = bloc.calculateDimension(stringBounder);
|
||||
return dim;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Rectangle2D getInnerPosition(String member, StringBounder stringBounder) {
|
||||
return bloc.getInnerPosition(member, stringBounder);
|
||||
|
@ -41,6 +41,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.sourceforge.plantuml.FontParam;
|
||||
import net.sourceforge.plantuml.ISkinParam;
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.Url;
|
||||
import net.sourceforge.plantuml.cucadiagram.Bodier;
|
||||
@ -59,10 +60,11 @@ import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.cucadiagram.dot.Neighborhood;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.svek.IEntityImage;
|
||||
import net.sourceforge.plantuml.svek.PackageStyle;
|
||||
import net.sourceforge.plantuml.svek.SingleStrategy;
|
||||
import net.sourceforge.plantuml.ugraphic.UStroke;
|
||||
import net.sourceforge.plantuml.utils.UniqueSequence;
|
||||
|
||||
final class EntityImpl implements ILeaf, IGroup {
|
||||
@ -94,15 +96,11 @@ final class EntityImpl implements ILeaf, IGroup {
|
||||
private boolean autonom = true;
|
||||
|
||||
// Other
|
||||
|
||||
private HtmlColor specificBackcolor;
|
||||
private boolean nearDecoration = false;
|
||||
private int xposition;
|
||||
private IEntityImage svekImage;
|
||||
|
||||
private boolean removed = false;
|
||||
private HtmlColor specificLineColor;
|
||||
private UStroke specificStroke;
|
||||
private USymbol symbol;
|
||||
private final int rawLayout;
|
||||
private char concurrentSeparator;
|
||||
@ -211,14 +209,6 @@ final class EntityImpl implements ILeaf, IGroup {
|
||||
return code + " " + display + "(" + leafType + ") " + xposition + " " + getUid();
|
||||
}
|
||||
|
||||
public HtmlColor getSpecificBackColor() {
|
||||
return specificBackcolor;
|
||||
}
|
||||
|
||||
public void setSpecificBackcolor(HtmlColor color) {
|
||||
this.specificBackcolor = color;
|
||||
}
|
||||
|
||||
public final Url getUrl99() {
|
||||
return url;
|
||||
}
|
||||
@ -512,22 +502,6 @@ final class EntityImpl implements ILeaf, IGroup {
|
||||
this.removed = removed;
|
||||
}
|
||||
|
||||
public HtmlColor getSpecificLineColor() {
|
||||
return specificLineColor;
|
||||
}
|
||||
|
||||
public void setSpecificLineColor(HtmlColor specificLinecolor) {
|
||||
this.specificLineColor = specificLinecolor;
|
||||
}
|
||||
|
||||
public UStroke getSpecificLineStroke() {
|
||||
return specificStroke;
|
||||
}
|
||||
|
||||
public void setSpecificLineStroke(UStroke specificLineStroke) {
|
||||
this.specificStroke = specificLineStroke;
|
||||
}
|
||||
|
||||
private int layer;
|
||||
|
||||
public int getHectorLayer() {
|
||||
@ -584,4 +558,35 @@ final class EntityImpl implements ILeaf, IGroup {
|
||||
return Collections.unmodifiableMap(tips);
|
||||
}
|
||||
|
||||
private Colors colors = Colors.empty();
|
||||
|
||||
public Colors getColors(ISkinParam skinParam) {
|
||||
return colors;
|
||||
}
|
||||
|
||||
public void setColors(Colors colors) {
|
||||
this.colors = colors;
|
||||
}
|
||||
|
||||
public void setSpecificColorTOBEREMOVED(ColorType type, HtmlColor color) {
|
||||
if (color != null) {
|
||||
this.colors = colors.add(type, color);
|
||||
}
|
||||
}
|
||||
|
||||
// public void setSpecificLineStroke(UStroke specificLineStroke) {
|
||||
// colors = colors.addSpecificLineStroke(specificLineStroke);
|
||||
// }
|
||||
|
||||
@Deprecated
|
||||
public void applyStroke(String s) {
|
||||
throw new UnsupportedOperationException();
|
||||
// if (s == null) {
|
||||
// return;
|
||||
// }
|
||||
// final LinkStyle style = LinkStyle.valueOf(StringUtils.goUpperCase(s));
|
||||
// colors = colors.addSpecificLineStroke(style);
|
||||
// // setSpecificLineStroke(LinkStyle.getStroke(style));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -50,8 +50,11 @@ import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.cucadiagram.LeafType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.descdiagram.DescriptionDiagram;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public class CommandCreateElementFull extends SingleLineCommand2<DescriptionDiagram> {
|
||||
|
||||
@ -87,9 +90,14 @@ public class CommandCreateElementFull extends SingleLineCommand2<DescriptionDiag
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf("URL", "(" + UrlBuilder.getRegexp() + ")?"), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
ColorParser.exp1(), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("$"));
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.BACK);
|
||||
}
|
||||
|
||||
|
||||
private static final String CODE_CORE = "[\\p{L}0-9_.]+|\\(\\)[%s]*[\\p{L}0-9_.]+|\\(\\)[%s]*[%g][^%g]+[%g]|:[^:]+:|\\([^()]+\\)|\\[[^\\[\\]]+\\]";
|
||||
private static final String CODE = "(" + CODE_CORE + ")";
|
||||
@ -217,7 +225,15 @@ public class CommandCreateElementFull extends SingleLineCommand2<DescriptionDiag
|
||||
entity.addUrl(url);
|
||||
}
|
||||
|
||||
entity.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
|
||||
final HtmlColor lineColor = diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("LINECOLOR", 1));
|
||||
if (lineColor != null) {
|
||||
colors = colors.add(ColorType.LINE, lineColor);
|
||||
}
|
||||
entity.setColors(colors);
|
||||
|
||||
//entity.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(arg.get("COLOR", 0)));
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
||||
|
@ -53,6 +53,7 @@ import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.descdiagram.DescriptionDiagram;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
|
||||
public class CommandCreateElementMultilines extends CommandMultilines2<DescriptionDiagram> {
|
||||
|
||||
@ -151,7 +152,7 @@ public class CommandCreateElementMultilines extends CommandMultilines2<Descripti
|
||||
.getIHtmlColorSet()));
|
||||
}
|
||||
|
||||
result.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)));
|
||||
result.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(line0.get("COLOR", 0)));
|
||||
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
@ -34,7 +34,9 @@ package net.sourceforge.plantuml.descdiagram.command;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import net.sourceforge.plantuml.ColorParam;
|
||||
import net.sourceforge.plantuml.Direction;
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.classdiagram.command.CommandLinkClass;
|
||||
import net.sourceforge.plantuml.command.CommandExecutionResult;
|
||||
import net.sourceforge.plantuml.command.SingleLineCommand2;
|
||||
@ -53,7 +55,9 @@ import net.sourceforge.plantuml.cucadiagram.LinkType;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.descdiagram.DescriptionDiagram;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
|
||||
public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
|
||||
@ -83,9 +87,17 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
new RegexLeaf("[%s]*"), //
|
||||
getGroup("ENT2"), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
color().getRegex(), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf("STEREOTYPE", "(\\<\\<.*\\>\\>)?"), //
|
||||
new RegexLeaf("[%s]*"), //
|
||||
new RegexLeaf("LABEL_LINK", "(?::[%s]*(.+))?$"));
|
||||
}
|
||||
|
||||
private static ColorParser color() {
|
||||
return ColorParser.simpleColor(ColorType.LINE);
|
||||
}
|
||||
|
||||
private LinkType getLinkType(RegexResult arg) {
|
||||
final String head1 = trimAndLowerCase(arg.get("HEAD1", 0));
|
||||
final String head2 = trimAndLowerCase(arg.get("HEAD2", 0));
|
||||
@ -186,7 +198,7 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
private static RegexLeaf getGroup(String name) {
|
||||
return new RegexLeaf(
|
||||
name,
|
||||
"([\\p{L}0-9_.]+|\\(\\)[%s]*[\\p{L}0-9_.]+|\\(\\)[%s]*[%g][^%g]+[%g]|:[^:]+:|(?!\\[\\*\\])\\[[^\\[\\]]+\\]|\\((?!\\*\\))[^)]+\\))(?:[%s]*(\\<\\<.*\\>\\>))?");
|
||||
"([\\p{L}0-9_.]+|\\(\\)[%s]*[\\p{L}0-9_.]+|\\(\\)[%s]*[%g][^%g]+[%g]|:[^:]+:|(?!\\[\\*\\])\\[[^\\[\\]]+\\]|\\((?!\\*\\))[^)]+\\))");
|
||||
}
|
||||
|
||||
static class Labels {
|
||||
@ -213,7 +225,8 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
final Matcher m1 = p1.matcher(labelLink);
|
||||
if (m1.matches()) {
|
||||
firstLabel = m1.group(1);
|
||||
labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(m1.group(2))));
|
||||
labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils
|
||||
.trin(m1.group(2))));
|
||||
secondLabel = m1.group(3);
|
||||
return;
|
||||
}
|
||||
@ -221,7 +234,8 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
final Matcher m2 = p2.matcher(labelLink);
|
||||
if (m2.matches()) {
|
||||
firstLabel = m2.group(1);
|
||||
labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(m2.group(2))));
|
||||
labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils
|
||||
.trin(m2.group(2))));
|
||||
secondLabel = null;
|
||||
return;
|
||||
}
|
||||
@ -229,7 +243,8 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
final Matcher m3 = p3.matcher(labelLink);
|
||||
if (m3.matches()) {
|
||||
firstLabel = null;
|
||||
labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(m3.group(1))));
|
||||
labelLink = StringUtils.trin(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils
|
||||
.trin(m3.group(1))));
|
||||
secondLabel = m3.group(2);
|
||||
}
|
||||
}
|
||||
@ -244,21 +259,18 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
if (diagram.isGroup(ent1) && diagram.isGroup(ent2)) {
|
||||
return executePackageLink(diagram, arg);
|
||||
}
|
||||
// if (diagram.isGroup(ent1) || diagram.isGroup(ent2)) {
|
||||
// return CommandExecutionResult.error("Package can be only linked to other package");
|
||||
// }
|
||||
|
||||
final IEntity cl1 = diagram.isGroup(ent1) ? diagram.getGroup(Code.of(arg.get("ENT1", 0))) : getOrCreateLeaf(
|
||||
diagram, ent1);
|
||||
final IEntity cl2 = diagram.isGroup(ent2) ? diagram.getGroup(Code.of(arg.get("ENT2", 0))) : getOrCreateLeaf(
|
||||
diagram, ent2);
|
||||
|
||||
if (arg.get("ENT1", 1) != null) {
|
||||
cl1.setStereotype(new Stereotype(arg.get("ENT1", 1)));
|
||||
}
|
||||
if (arg.get("ENT2", 1) != null) {
|
||||
cl2.setStereotype(new Stereotype(arg.get("ENT2", 1)));
|
||||
}
|
||||
// if (arg.get("ENT1", 1) != null) {
|
||||
// cl1.setStereotype(new Stereotype(arg.get("ENT1", 1)));
|
||||
// }
|
||||
// if (arg.get("ENT2", 1) != null) {
|
||||
// cl2.setStereotype(new Stereotype(arg.get("ENT2", 1)));
|
||||
// }
|
||||
|
||||
final LinkType linkType = getLinkType(arg);
|
||||
final Direction dir = getDirection(arg);
|
||||
@ -277,7 +289,14 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
if (dir == Direction.LEFT || dir == Direction.UP) {
|
||||
link = link.getInv();
|
||||
}
|
||||
CommandLinkClass.applyStyle(arg.getLazzy("ARROW_STYLE", 0), link);
|
||||
Colors colors = color().getColor(arg, diagram.getSkinParam().getIHtmlColorSet());
|
||||
colors = CommandLinkClass.applyStyle(arg.getLazzy("ARROW_STYLE", 0), link, colors);
|
||||
if (arg.get("STEREOTYPE", 0) != null) {
|
||||
final Stereotype stereotype = new Stereotype(arg.get("STEREOTYPE", 0));
|
||||
colors = colors.applyStereotype(stereotype, diagram.getSkinParam(), ColorParam.componentArrow);
|
||||
}
|
||||
|
||||
link.setColors(colors);
|
||||
diagram.addLink(link);
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
@ -285,9 +304,8 @@ public class CommandLinkElement extends SingleLineCommand2<DescriptionDiagram> {
|
||||
private ILeaf getOrCreateLeaf(DescriptionDiagram diagram, final Code code2) {
|
||||
final String code = code2.getFullName();
|
||||
if (code.startsWith("()")) {
|
||||
return diagram.getOrCreateLeaf(
|
||||
Code.of(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils.trin(code.substring(2)))),
|
||||
LeafType.DESCRIPTION, USymbol.INTERFACE);
|
||||
return diagram.getOrCreateLeaf(Code.of(StringUtils.eventuallyRemoveStartingAndEndingDoubleQuote(StringUtils
|
||||
.trin(code.substring(2)))), LeafType.DESCRIPTION, USymbol.INTERFACE);
|
||||
}
|
||||
final char codeChar = code.length() > 2 ? code.charAt(0) : 0;
|
||||
if (codeChar == '(') {
|
||||
|
@ -49,6 +49,7 @@ import net.sourceforge.plantuml.cucadiagram.IGroup;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.USymbol;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorParser;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.utils.UniqueSequence;
|
||||
|
||||
public class CommandPackageWithUSymbol extends SingleLineCommand2<AbstractEntityDiagram> {
|
||||
@ -99,7 +100,7 @@ public class CommandPackageWithUSymbol extends SingleLineCommand2<AbstractEntity
|
||||
}
|
||||
final String color = arg.get("COLOR", 0);
|
||||
if (color != null) {
|
||||
p.setSpecificBackcolor(diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
p.setSpecificColorTOBEREMOVED(ColorType.BACK, diagram.getSkinParam().getIHtmlColorSet().getColorIfValid(color));
|
||||
}
|
||||
return CommandExecutionResult.ok();
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ import net.sourceforge.plantuml.version.PSystemVersion;
|
||||
|
||||
public class PSystemDonors extends AbstractPSystem {
|
||||
|
||||
public static final String DONORS = "UDfTaijIwp0CXlTw2gypmqE4XYcJbikqm8ATceX6rBMAxHIIfpygXzHkjR96j--NLThYpyZ3CqNofdHH76C3BrGaapqi9Ra-G3cLuWRcFeLeW3LjC4H6PnwbSr2wLhoP2yMHJi-F3ysOqj714hD1BaB5ayCMojHQZh3k4y80SoukpGdK4sKVO1tfq94pCv63wgkcEHHWiRyg5GypiUpCIlf0KFTNyU9JLCZa71WUCchSvwwEAYtze6jrdREEjUiM_Q1ALsVPRWkFENqSuSdoKGigRdPAVewmWxjmRkqoY8AEK8rxZdumI-oaHQXFIt_lKDjdUGNPz5rgkq7Nv31gdl8fL_qVddONgbnxuVvMiZQoMlRa8uzmdyAjm0Ct7LbpYso7N84TSvWGhj5gGdTJO_FLKp1Ll_6eNskJ_3VvZDHqPk4nO4BQabvize7VfqFJ5BEG8-Ttytivhqa_8wooMpwD-0UUmSRE";
|
||||
public static final String DONORS = "UDfTKi6IsZ0ClUihVCwq7v4b7Jg1tUr0syFUHA8b0cEbjaERV7sLROCDEbaZFUaz-PMs-1_auHj5ygPqKHnZ0z-fI24Ns4fAVO1oWU81rZwLQ8Gz7J14HcTUf7DGkbQyMGl5YURd-xjsBEteO8lP8XUXuYLX2sKQBLVO3ud226ikxiC9r0lB8S0-Kj-HCokHNlLLonuAiBayGCN3IYmxivCX4DJ3GxquYGfPafxXEMEDbppLLQMbF-XQFUUgOvrwH3-gqjrDjZl2Iyu-Jl1g-Qg0YfkpChzLsC6NS1ljCX85NQ6QBXpzQBROIOjGpqT_wr37Ptq5sVHT6kTHp-GmQf_oKrxrF_9qlbFbshlq0yawo2hirKUUu6igjmBFt7HapHEo7NC5Tih9XF18hIPqdsjiVWqKJ3KSFEhNsYJ_fvmYDPtPU0oOA1r97PjzuE_PQDfYDdBbt3SVplcHz3F2BlFolE9EvqdHVUOoES-7UXAF3ct_oRnHHEa3_0KmFDNM";
|
||||
|
||||
public ImageData exportDiagram(OutputStream os, int num, FileFormatOption fileFormat) throws IOException {
|
||||
final GraphicStrings result = getGraphicStrings();
|
||||
|
@ -46,7 +46,6 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.ugraphic.Shadowable;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeBackColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeColor;
|
||||
@ -71,7 +70,7 @@ public class ActivityBox extends AbstractTextBlock {
|
||||
this.id = id;
|
||||
this.label = label;
|
||||
final UFont font = new UFont("Serif", Font.PLAIN, 14);
|
||||
final FontConfiguration fc = new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true);
|
||||
final FontConfiguration fc = FontConfiguration.blackBlueTrue(font);
|
||||
tb = Display.create(label).create(fc, HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
}
|
||||
|
||||
@ -90,14 +89,14 @@ public class ActivityBox extends AbstractTextBlock {
|
||||
public void drawU(UGraphic ug) {
|
||||
final Dimension2D dimTotal = calculateDimension(ug.getStringBounder());
|
||||
// final Dimension2D dimDesc = tb.calculateDimension(ug.getStringBounder());
|
||||
|
||||
|
||||
final double widthTotal = dimTotal.getWidth();
|
||||
final double heightTotal = dimTotal.getHeight();
|
||||
final Shadowable rect = new URectangle(widthTotal, heightTotal, CORNER, CORNER);
|
||||
ug = ug.apply(new UChangeColor(HtmlColorUtils.MY_RED));
|
||||
ug = ug.apply(new UChangeBackColor(HtmlColorUtils.MY_YELLOW));
|
||||
ug.apply(new UStroke(1.5)).draw(rect);
|
||||
|
||||
|
||||
tb.drawU(ug.apply(new UTranslate(MARGIN, MARGIN)));
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,6 @@ import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.graphic.TextBlockUtils;
|
||||
import net.sourceforge.plantuml.ugraphic.UChangeColor;
|
||||
import net.sourceforge.plantuml.ugraphic.UEllipse;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
@ -62,7 +61,7 @@ public class Tile extends AbstractTextBlock implements TextBlock {
|
||||
private final int num;
|
||||
|
||||
private final UFont numberFont = new UFont("Monospaced", Font.PLAIN, 11);
|
||||
private final FontConfiguration fc = new FontConfiguration(numberFont, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true);
|
||||
private final FontConfiguration fc = FontConfiguration.blackBlueTrue(numberFont);
|
||||
private final Map<TileGeometry, TileArea> geometries;
|
||||
|
||||
Tile(int num) {
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17068 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graph;
|
||||
@ -269,7 +269,9 @@ public class Elastane {
|
||||
final String label = l.getLabel().get(0).toString();
|
||||
if (label != null) {
|
||||
// polyline.getFirst().getCenter();
|
||||
final TextBlock textBlock = Display.create(label).create(new FontConfiguration(UFont.getCurrentFont(g2d), HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
final TextBlock textBlock = Display.create(label).create(
|
||||
FontConfiguration.blackBlueTrue(UFont.getCurrentFont(g2d)), HorizontalAlignment.LEFT,
|
||||
new SpriteContainerEmpty());
|
||||
textBlock.calculateDimension(StringBounderUtils.asStringBounder(g2d));
|
||||
// textBlock.drawTOBEREMOVED(new ColorMapperIdentity(), g2d, center.getXint() - dim.getWidth() / 2,
|
||||
// center.getYint() - dim.getHeight() / 2);
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17068 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graph;
|
||||
@ -59,8 +59,8 @@ class EntityImageActivity extends AbstractEntityImage {
|
||||
|
||||
public EntityImageActivity(IEntity entity) {
|
||||
super(entity);
|
||||
this.text = entity.getDisplay().create(new FontConfiguration(getFont14(),
|
||||
HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
this.text = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()),
|
||||
HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -97,7 +97,7 @@ class EntityImageActivity extends AbstractEntityImage {
|
||||
g2d.draw(p);
|
||||
// g2d.drawRect(0, 0, width - 1, height - 1);
|
||||
g2d.setColor(Color.BLACK);
|
||||
// text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin);
|
||||
// text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17068 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graph;
|
||||
@ -38,11 +38,9 @@ import java.awt.geom.Dimension2D;
|
||||
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.SpriteContainerEmpty;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
import net.sourceforge.plantuml.skin.CircleInterface;
|
||||
@ -55,8 +53,8 @@ class EntityImageCircleInterface extends AbstractEntityImage {
|
||||
|
||||
public EntityImageCircleInterface(IEntity entity) {
|
||||
super(entity);
|
||||
this.name = entity.getDisplay().create(new FontConfiguration(getFont14(),
|
||||
HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
this.name = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()),
|
||||
HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
this.circleInterface = new CircleInterface(getYellow(), getRed());
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17068 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graph;
|
||||
@ -39,11 +39,9 @@ import java.awt.geom.Dimension2D;
|
||||
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.SpriteContainerEmpty;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.StringBounderUtils;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
@ -55,8 +53,8 @@ class EntityImageDefault extends AbstractEntityImage {
|
||||
|
||||
public EntityImageDefault(IEntity entity) {
|
||||
super(entity);
|
||||
this.textBlock = entity.getDisplay().create(new FontConfiguration(getFont14(), HtmlColorUtils.BLACK,
|
||||
HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
this.textBlock = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()),
|
||||
HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -72,6 +70,6 @@ class EntityImageDefault extends AbstractEntityImage {
|
||||
final int height = (int) dim.getHeight();
|
||||
g2d.setColor(Color.BLACK);
|
||||
g2d.drawRect(0, 0, width, height);
|
||||
// textBlock.drawTOBEREMOVED(colorMapper, g2d, 0, 0);
|
||||
// textBlock.drawTOBEREMOVED(colorMapper, g2d, 0, 0);
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17128 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graph;
|
||||
@ -40,11 +40,9 @@ import java.awt.geom.Dimension2D;
|
||||
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.SpriteContainerEmpty;
|
||||
import net.sourceforge.plantuml.cucadiagram.Display;
|
||||
import net.sourceforge.plantuml.cucadiagram.IEntity;
|
||||
import net.sourceforge.plantuml.graphic.FontConfiguration;
|
||||
import net.sourceforge.plantuml.graphic.HorizontalAlignment;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColorUtils;
|
||||
import net.sourceforge.plantuml.graphic.StringBounder;
|
||||
import net.sourceforge.plantuml.graphic.StringBounderUtils;
|
||||
import net.sourceforge.plantuml.graphic.TextBlock;
|
||||
@ -59,8 +57,8 @@ class EntityImageNote extends AbstractEntityImage {
|
||||
|
||||
public EntityImageNote(IEntity entity) {
|
||||
super(entity);
|
||||
this.text = entity.getDisplay().create(new FontConfiguration(getFont14(),
|
||||
HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
this.text = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()),
|
||||
HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -92,7 +90,7 @@ class EntityImageNote extends AbstractEntityImage {
|
||||
g2d.drawLine(width - xMargin, yMargin, width, yMargin);
|
||||
|
||||
g2d.setColor(Color.BLACK);
|
||||
// text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin);
|
||||
// text.drawTOBEREMOVED(colorMapper, g2d, xMargin, yMargin);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17068 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graph;
|
||||
@ -57,8 +57,8 @@ class EntityImageUsecase extends AbstractEntityImage {
|
||||
|
||||
public EntityImageUsecase(IEntity entity) {
|
||||
super(entity);
|
||||
this.name = entity.getDisplay().create(new FontConfiguration(getFont14(),
|
||||
HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
this.name = entity.getDisplay().create(FontConfiguration.blackBlueTrue(getFont14()),
|
||||
HorizontalAlignment.CENTER, new SpriteContainerEmpty());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -93,9 +93,9 @@ class EntityImageUsecase extends AbstractEntityImage {
|
||||
g2d.setColor(colorMapper.getMappedColor(getRed()));
|
||||
g2d.draw(ellipse);
|
||||
|
||||
// final Dimension2D nameDim = name.calculateDimension(StringBounderUtils.asStringBounder(g2d));
|
||||
// final double posx = (w - nameDim.getWidth()) / 2;
|
||||
// final double posy = (h - nameDim.getHeight()) / 2;
|
||||
// final Dimension2D nameDim = name.calculateDimension(StringBounderUtils.asStringBounder(g2d));
|
||||
// final double posx = (w - nameDim.getWidth()) / 2;
|
||||
// final double posy = (h - nameDim.getHeight()) / 2;
|
||||
// final Shape rect = new Rectangle2D.Double(posx, posy, nameDim.getWidth(), nameDim.getHeight());
|
||||
// g2d.draw(rect);
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17068 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graph;
|
||||
@ -81,7 +81,8 @@ public class MethodsOrFieldsArea {
|
||||
}
|
||||
|
||||
private TextBlock createTextBlock(String s) {
|
||||
return Display.create(s).create(new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
return Display.create(s).create(FontConfiguration.blackBlueTrue(font), HorizontalAlignment.LEFT,
|
||||
new SpriteContainerEmpty());
|
||||
}
|
||||
|
||||
public void draw(UGraphic ug, double x, double y) {
|
||||
|
@ -96,8 +96,9 @@ public class DateEventUtils {
|
||||
|
||||
private static TextBlock getComment(final List<String> asList, HtmlColor color) {
|
||||
final UFont font = new UFont("SansSerif", Font.BOLD, 14);
|
||||
TextBlock comment = Display.create(asList).create(new FontConfiguration(font, color,
|
||||
HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
TextBlock comment = Display.create(asList).create(
|
||||
new FontConfiguration(font, color, HtmlColorUtils.BLUE, true), HorizontalAlignment.LEFT,
|
||||
new SpriteContainerEmpty());
|
||||
comment = TextBlockUtils.withMargin(comment, 4, 4);
|
||||
comment = new TextBlockBordered(comment, color);
|
||||
comment = TextBlockUtils.withMargin(comment, 10, 10);
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 15932 $
|
||||
* Revision $Revision: 17124 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graphic;
|
||||
@ -40,6 +40,8 @@ import net.sourceforge.plantuml.FontParam;
|
||||
import net.sourceforge.plantuml.ISkinParam;
|
||||
import net.sourceforge.plantuml.SkinParamUtils;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.color.ColorType;
|
||||
import net.sourceforge.plantuml.graphic.color.Colors;
|
||||
import net.sourceforge.plantuml.ugraphic.UFont;
|
||||
|
||||
public class FontConfiguration {
|
||||
@ -55,19 +57,29 @@ public class FontConfiguration {
|
||||
private final SvgAttributes svgAttributes;
|
||||
private final boolean hyperlink;
|
||||
private final boolean useUnderlineForHyperlink;
|
||||
private final int tabSize;
|
||||
|
||||
public FontConfiguration(UFont font, HtmlColor color, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) {
|
||||
this(font, color, hyperlinkColor, useUnderlineForHyperlink, 8);
|
||||
}
|
||||
|
||||
public FontConfiguration(UFont font, HtmlColor color, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink,
|
||||
int tabSize) {
|
||||
this(getStyles(font), font, color, font, color, null, FontPosition.NORMAL, new SvgAttributes(), false,
|
||||
hyperlinkColor, useUnderlineForHyperlink);
|
||||
hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public static FontConfiguration blackBlueTrue(UFont font) {
|
||||
return new FontConfiguration(font, HtmlColorUtils.BLACK, HtmlColorUtils.BLUE, true, 8);
|
||||
}
|
||||
|
||||
public FontConfiguration(ISkinParam skinParam, FontParam fontParam, Stereotype stereo) {
|
||||
this(SkinParamUtils.getFont(skinParam, fontParam, stereo), SkinParamUtils.getFontColor(skinParam, fontParam,
|
||||
stereo), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink());
|
||||
stereo), skinParam.getHyperlinkColor(), skinParam.useUnderlineForHyperlink(), skinParam.getTabSize());
|
||||
}
|
||||
|
||||
//---
|
||||
|
||||
|
||||
// ---
|
||||
|
||||
public final boolean useUnderlineForHyperlink() {
|
||||
return useUnderlineForHyperlink;
|
||||
}
|
||||
@ -76,7 +88,7 @@ public class FontConfiguration {
|
||||
return hyperlinkColor;
|
||||
}
|
||||
|
||||
//---
|
||||
// ---
|
||||
|
||||
private static EnumSet<FontStyle> getStyles(UFont font) {
|
||||
final boolean bold = font.isBold();
|
||||
@ -100,7 +112,7 @@ public class FontConfiguration {
|
||||
|
||||
private FontConfiguration(EnumSet<FontStyle> styles, UFont motherFont, HtmlColor motherColor, UFont currentFont,
|
||||
HtmlColor currentColor, HtmlColor extendedColor, FontPosition fontPosition, SvgAttributes svgAttributes,
|
||||
boolean hyperlink, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink) {
|
||||
boolean hyperlink, HtmlColor hyperlinkColor, boolean useUnderlineForHyperlink, int tabSize) {
|
||||
this.styles = styles;
|
||||
this.currentFont = currentFont;
|
||||
this.motherFont = motherFont;
|
||||
@ -112,6 +124,7 @@ public class FontConfiguration {
|
||||
this.hyperlink = hyperlink;
|
||||
this.hyperlinkColor = hyperlinkColor;
|
||||
this.useUnderlineForHyperlink = useUnderlineForHyperlink;
|
||||
this.tabSize = tabSize;
|
||||
}
|
||||
|
||||
public FontConfiguration forceFont(UFont newFont, HtmlColor htmlColorForStereotype) {
|
||||
@ -119,7 +132,8 @@ public class FontConfiguration {
|
||||
return add(FontStyle.ITALIC);
|
||||
}
|
||||
FontConfiguration result = new FontConfiguration(styles, newFont, motherColor, newFont, currentColor,
|
||||
extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink,
|
||||
tabSize);
|
||||
if (htmlColorForStereotype != null) {
|
||||
result = result.changeColor(htmlColorForStereotype);
|
||||
}
|
||||
@ -128,27 +142,40 @@ public class FontConfiguration {
|
||||
|
||||
public FontConfiguration changeAttributes(SvgAttributes toBeAdded) {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, extendedColor,
|
||||
fontPosition, svgAttributes.add(toBeAdded), hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
fontPosition, svgAttributes.add(toBeAdded), hyperlink, hyperlinkColor, useUnderlineForHyperlink,
|
||||
tabSize);
|
||||
}
|
||||
|
||||
private FontConfiguration withHyperlink() {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, extendedColor,
|
||||
fontPosition, svgAttributes, true, hyperlinkColor, useUnderlineForHyperlink);
|
||||
fontPosition, svgAttributes, true, hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public FontConfiguration changeColor(HtmlColor htmlColor) {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, currentFont, htmlColor, extendedColor,
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public FontConfiguration mute(Colors colors) {
|
||||
if (colors == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
final HtmlColor color = colors.getColor(ColorType.TEXT);
|
||||
if (color == null) {
|
||||
return this;
|
||||
}
|
||||
return changeColor(color);
|
||||
}
|
||||
|
||||
FontConfiguration changeExtendedColor(HtmlColor newExtendedColor) {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, newExtendedColor,
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public FontConfiguration changeSize(float size) {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, currentFont.deriveSize(size), currentColor,
|
||||
extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
extendedColor, fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink,
|
||||
tabSize);
|
||||
}
|
||||
|
||||
public FontConfiguration bigger(double delta) {
|
||||
@ -157,25 +184,25 @@ public class FontConfiguration {
|
||||
|
||||
public FontConfiguration changeFontPosition(FontPosition fontPosition) {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, currentFont, currentColor, extendedColor,
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public FontConfiguration changeFamily(String family) {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, new UFont(family, currentFont.getStyle(),
|
||||
currentFont.getSize()), currentColor, extendedColor, fontPosition, svgAttributes, hyperlink,
|
||||
hyperlinkColor, useUnderlineForHyperlink);
|
||||
hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public FontConfiguration resetFont() {
|
||||
return new FontConfiguration(styles, motherFont, motherColor, motherFont, motherColor, null,
|
||||
FontPosition.NORMAL, new SvgAttributes(), hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
FontPosition.NORMAL, new SvgAttributes(), hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
FontConfiguration add(FontStyle style) {
|
||||
final EnumSet<FontStyle> r = styles.clone();
|
||||
r.add(style);
|
||||
return new FontConfiguration(r, motherFont, motherColor, currentFont, currentColor, extendedColor,
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public FontConfiguration italic() {
|
||||
@ -201,7 +228,7 @@ public class FontConfiguration {
|
||||
final EnumSet<FontStyle> r = styles.clone();
|
||||
r.remove(style);
|
||||
return new FontConfiguration(r, motherFont, motherColor, currentFont, currentColor, extendedColor,
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink);
|
||||
fontPosition, svgAttributes, hyperlink, hyperlinkColor, useUnderlineForHyperlink, tabSize);
|
||||
}
|
||||
|
||||
public UFont getFont() {
|
||||
@ -239,4 +266,8 @@ public class FontConfiguration {
|
||||
return currentFont.getSize2D();
|
||||
}
|
||||
|
||||
public int getTabSize() {
|
||||
return tabSize;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -28,7 +28,7 @@
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 16528 $
|
||||
* Revision $Revision: 17072 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graphic;
|
||||
@ -61,7 +61,7 @@ public class GraphicStrings extends AbstractTextBlock implements IEntityImage {
|
||||
private final HtmlColor green;
|
||||
|
||||
private final HtmlColor hyperlinkColor = HtmlColorUtils.BLUE;
|
||||
|
||||
|
||||
private final boolean useUnderlineForHyperlink = true;
|
||||
|
||||
private final List<String> strings;
|
||||
@ -110,11 +110,15 @@ public class GraphicStrings extends AbstractTextBlock implements IEntityImage {
|
||||
private TextBlock getTextBlock() {
|
||||
TextBlock result = null;
|
||||
if (maxLine == 0) {
|
||||
result = Display.create(strings).create(new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink), HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
result = Display.create(strings).create(
|
||||
new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink),
|
||||
HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
} else {
|
||||
for (int i = 0; i < strings.size(); i += maxLine) {
|
||||
final int n = Math.min(i + maxLine, strings.size());
|
||||
final TextBlock textBlock1 = Display.create(strings.subList(i, n)).create(new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink), HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
final TextBlock textBlock1 = Display.create(strings.subList(i, n)).create(
|
||||
new FontConfiguration(font, green, hyperlinkColor, useUnderlineForHyperlink),
|
||||
HorizontalAlignment.LEFT, new SpriteContainerEmpty());
|
||||
if (result == null) {
|
||||
result = textBlock1;
|
||||
} else {
|
||||
|
@ -245,6 +245,9 @@ public class HtmlColorSetSimple implements IHtmlColorSet {
|
||||
final Color color;
|
||||
if (s.equalsIgnoreCase("transparent")) {
|
||||
return new HtmlColorTransparent();
|
||||
} else if (s.matches("[0-9A-Fa-f]{3}")) {
|
||||
s = "" + s.charAt(0) + s.charAt(0) + s.charAt(1) + s.charAt(1) + s.charAt(2) + s.charAt(2);
|
||||
color = new Color(Integer.parseInt(s, 16));
|
||||
} else if (s.matches("[0-9A-Fa-f]{6}")) {
|
||||
color = new Color(Integer.parseInt(s, 16));
|
||||
} else {
|
||||
@ -259,6 +262,9 @@ public class HtmlColorSetSimple implements IHtmlColorSet {
|
||||
|
||||
private boolean isValid(String s, boolean acceptTransparent) {
|
||||
s = removeFirstDieseAndgoLowerCase(s);
|
||||
if (s.matches("[0-9A-Fa-f]{3}")) {
|
||||
return true;
|
||||
}
|
||||
if (s.matches("[0-9A-Fa-f]{6}")) {
|
||||
return true;
|
||||
}
|
||||
|
@ -36,6 +36,7 @@ package net.sourceforge.plantuml.graphic;
|
||||
import java.awt.geom.Dimension2D;
|
||||
|
||||
import net.sourceforge.plantuml.Dimension2DDouble;
|
||||
import net.sourceforge.plantuml.graphic.USymbol.Margin;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.URectangle;
|
||||
import net.sourceforge.plantuml.ugraphic.UShape;
|
||||
@ -48,7 +49,6 @@ class USymbolComponent2 extends USymbol {
|
||||
return SkinParameter.COMPONENT2;
|
||||
}
|
||||
|
||||
|
||||
private void drawNode(UGraphic ug, double widthTotal, double heightTotal, boolean shadowing) {
|
||||
|
||||
final URectangle form = new URectangle(widthTotal, heightTotal);
|
||||
@ -72,7 +72,8 @@ class USymbolComponent2 extends USymbol {
|
||||
return new Margin(10 + 5, 20 + 5, 15 + 5, 5 + 5);
|
||||
}
|
||||
|
||||
public TextBlock asSmall(TextBlock name, final TextBlock label, TextBlock stereotype, final SymbolContext symbolContext) {
|
||||
public TextBlock asSmall(TextBlock name, final TextBlock label, final TextBlock stereotype,
|
||||
final SymbolContext symbolContext) {
|
||||
return new AbstractTextBlock() {
|
||||
|
||||
public void drawU(UGraphic ug) {
|
||||
@ -80,12 +81,16 @@ class USymbolComponent2 extends USymbol {
|
||||
ug = symbolContext.apply(ug);
|
||||
drawNode(ug, dim.getWidth(), dim.getHeight(), symbolContext.isShadowing());
|
||||
final Margin margin = getMargin();
|
||||
label.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1())));
|
||||
|
||||
final TextBlock tb = TextBlockUtils.mergeTB(stereotype, label, HorizontalAlignment.CENTER);
|
||||
tb.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1())));
|
||||
// label.drawU(ug.apply(new UTranslate(margin.getX1(), margin.getY1())));
|
||||
}
|
||||
|
||||
public Dimension2D calculateDimension(StringBounder stringBounder) {
|
||||
final Dimension2D dim = label.calculateDimension(stringBounder);
|
||||
return getMargin().addDimension(dim);
|
||||
final Dimension2D dimLabel = label.calculateDimension(stringBounder);
|
||||
final Dimension2D dimStereo = stereotype.calculateDimension(stringBounder);
|
||||
return getMargin().addDimension(Dimension2DDouble.mergeTB(dimStereo, dimLabel));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -42,24 +42,57 @@ public class ColorParser {
|
||||
|
||||
private static final String COLOR_REGEXP = "#\\w+[-\\\\|/]?\\w+";
|
||||
|
||||
private static final String PART2 = "#(?:\\w+[-\\\\|/]?\\w+;)?(?:(?:text|back|header|line|line\\.dashed|line\\.dotted|line\\.bold)(?::\\w+[-\\\\|/]?\\w+)?(?:;|(?![\\w;:.])))+";
|
||||
private static final String COLORS_REGEXP = "(?:" + COLOR_REGEXP + ")|(?:" + PART2 + ")";
|
||||
|
||||
private final RegexLeaf regex;
|
||||
private final String name;
|
||||
private final ColorType mainType;
|
||||
|
||||
private ColorParser(String name, RegexLeaf regex) {
|
||||
private ColorParser(String name, RegexLeaf regex, ColorType mainType) {
|
||||
this.regex = regex;
|
||||
this.name = name;
|
||||
this.mainType = mainType;
|
||||
}
|
||||
|
||||
public HtmlColor getColor(RegexResult arg, IHtmlColorSet set) {
|
||||
return set.getColorIfValid(arg.get("COLOR", 0));
|
||||
public HtmlColor getLegacyColoe(RegexResult arg, IHtmlColorSet set) {
|
||||
if (mainType != null) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
final String data = arg.get("COLOR", 0);
|
||||
if (data != null && data.matches(PART2)) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
final HtmlColor result = set.getColorIfValid(data);
|
||||
return result;
|
||||
}
|
||||
|
||||
public Colors getColor(RegexResult arg, IHtmlColorSet set) {
|
||||
if (mainType == null) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
final String data = arg.get(name, 0);
|
||||
if (data == null) {
|
||||
return Colors.empty();
|
||||
}
|
||||
return new Colors(data, set, mainType);
|
||||
// return result.getColor(type);
|
||||
}
|
||||
|
||||
// New Parsers
|
||||
public static ColorParser simpleColor(ColorType mainType) {
|
||||
return new ColorParser("COLOR", new RegexLeaf("COLOR", "(" + COLORS_REGEXP + ")?"), mainType);
|
||||
}
|
||||
|
||||
public static ColorParser simpleColor(String optPrefix, ColorType mainType) {
|
||||
return new ColorParser("COLOR", new RegexLeaf("COLOR", "(?:" + optPrefix + " (" + COLORS_REGEXP + "))?"),
|
||||
mainType);
|
||||
}
|
||||
|
||||
// Old Parsers
|
||||
|
||||
public static RegexLeaf exp1() {
|
||||
return simpleColor().regex;
|
||||
}
|
||||
|
||||
public static ColorParser simpleColor() {
|
||||
return new ColorParser("COLOR", new RegexLeaf("COLOR", "(" + COLOR_REGEXP + ")?"));
|
||||
return simpleColor(null).regex;
|
||||
}
|
||||
|
||||
public static RegexLeaf exp2() {
|
||||
|
47
src/net/sourceforge/plantuml/graphic/color/ColorType.java
Normal file
47
src/net/sourceforge/plantuml/graphic/color/ColorType.java
Normal file
@ -0,0 +1,47 @@
|
||||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2014, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.sourceforge.net
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
|
||||
* in the United States and other countries.]
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 7946 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graphic.color;
|
||||
|
||||
public enum ColorType {
|
||||
TEXT, LINE, BACK, HEADER, ARROW;
|
||||
|
||||
public static ColorType getType(String s) {
|
||||
final int x = s.indexOf('.');
|
||||
if (x != -1) {
|
||||
s = s.substring(0, x);
|
||||
}
|
||||
final ColorType key = ColorType.valueOf(s.toUpperCase());
|
||||
return key;
|
||||
}
|
||||
}
|
189
src/net/sourceforge/plantuml/graphic/color/Colors.java
Normal file
189
src/net/sourceforge/plantuml/graphic/color/Colors.java
Normal file
@ -0,0 +1,189 @@
|
||||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2014, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.sourceforge.net
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
|
||||
* in the United States and other countries.]
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
* Revision $Revision: 7946 $
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.graphic.color;
|
||||
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import net.sourceforge.plantuml.ColorParam;
|
||||
import net.sourceforge.plantuml.ISkinParam;
|
||||
import net.sourceforge.plantuml.SkinParamColors;
|
||||
import net.sourceforge.plantuml.StringUtils;
|
||||
import net.sourceforge.plantuml.cucadiagram.LinkStyle;
|
||||
import net.sourceforge.plantuml.cucadiagram.Stereotype;
|
||||
import net.sourceforge.plantuml.graphic.HtmlColor;
|
||||
import net.sourceforge.plantuml.graphic.IHtmlColorSet;
|
||||
import net.sourceforge.plantuml.ugraphic.UGraphic;
|
||||
import net.sourceforge.plantuml.ugraphic.UStroke;
|
||||
|
||||
public class Colors {
|
||||
|
||||
private final Map<ColorType, HtmlColor> map = new EnumMap<ColorType, HtmlColor>(ColorType.class);
|
||||
private LinkStyle lineStyle = null;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return map.toString() + " " + lineStyle;
|
||||
}
|
||||
|
||||
public static Colors empty() {
|
||||
return new Colors();
|
||||
}
|
||||
|
||||
private Colors copy() {
|
||||
final Colors result = new Colors();
|
||||
result.map.putAll(this.map);
|
||||
result.lineStyle = this.lineStyle;
|
||||
return result;
|
||||
}
|
||||
|
||||
private Colors() {
|
||||
}
|
||||
|
||||
public Colors(String data, IHtmlColorSet set, ColorType mainType) {
|
||||
data = StringUtils.goLowerCase(data);
|
||||
|
||||
for (final StringTokenizer st = new StringTokenizer(data, "#;"); st.hasMoreTokens();) {
|
||||
final String s = st.nextToken();
|
||||
final int x = s.indexOf(':');
|
||||
if (x == -1) {
|
||||
if (s.contains(".") == false) {
|
||||
map.put(mainType, set.getColorIfValid(s));
|
||||
}
|
||||
} else {
|
||||
final ColorType key = ColorType.getType(s.substring(0, x));
|
||||
final HtmlColor color = set.getColorIfValid(s.substring(x + 1));
|
||||
map.put(key, color);
|
||||
}
|
||||
}
|
||||
if (data.contains("line.dashed")) {
|
||||
lineStyle = LinkStyle.DASHED;
|
||||
} else if (data.contains("line.dotted")) {
|
||||
lineStyle = LinkStyle.DOTTED;
|
||||
} else if (data.contains("line.bold")) {
|
||||
lineStyle = LinkStyle.BOLD;
|
||||
}
|
||||
}
|
||||
|
||||
public HtmlColor getColor(ColorType key) {
|
||||
if (key == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
return map.get(key);
|
||||
}
|
||||
|
||||
public HtmlColor getColor(ColorType key1, ColorType key2) {
|
||||
final HtmlColor result = getColor(key1);
|
||||
if (result != null) {
|
||||
return result;
|
||||
}
|
||||
return getColor(key2);
|
||||
}
|
||||
|
||||
public UStroke getSpecificLineStroke() {
|
||||
if (lineStyle == null) {
|
||||
return null;
|
||||
}
|
||||
return LinkStyle.getStroke(lineStyle);
|
||||
}
|
||||
|
||||
// public Colors addSpecificLineStroke(UStroke specificStroke) {
|
||||
// final Colors result = copy();
|
||||
// result.specificStroke = specificStroke;
|
||||
// return result;
|
||||
// }
|
||||
|
||||
public Colors add(ColorType type, HtmlColor color) {
|
||||
final Colors result = copy();
|
||||
result.map.put(type, color);
|
||||
return result;
|
||||
}
|
||||
|
||||
private Colors add(ColorType colorType, Colors other) {
|
||||
final Colors result = copy();
|
||||
result.map.putAll(other.map);
|
||||
if (other.lineStyle != null) {
|
||||
result.lineStyle = other.lineStyle;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public final LinkStyle getLineStyle() {
|
||||
return lineStyle;
|
||||
}
|
||||
|
||||
public ISkinParam mute(ISkinParam skinParam) {
|
||||
return new SkinParamColors(skinParam, this);
|
||||
}
|
||||
|
||||
public Colors addLegacyStroke(String s) {
|
||||
if (s == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
final Colors result = copy();
|
||||
result.lineStyle = LinkStyle.valueOf(StringUtils.goUpperCase(s));
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
public static UGraphic applyStroke(UGraphic ug, Colors colors) {
|
||||
if (colors == null) {
|
||||
return ug;
|
||||
}
|
||||
if (colors.lineStyle == null) {
|
||||
return ug;
|
||||
}
|
||||
return ug.apply(LinkStyle.getStroke(colors.lineStyle));
|
||||
}
|
||||
|
||||
public Colors applyStereotype(Stereotype stereotype, ISkinParam skinParam, ColorParam param) {
|
||||
if (stereotype == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
if (param == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
final ColorType colorType = param.getColorType();
|
||||
if (colorType == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
if (getColor(colorType) != null) {
|
||||
return this;
|
||||
}
|
||||
final Colors colors = skinParam.getColors(param, stereotype);
|
||||
return add(colorType, colors);
|
||||
}
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user