diff options
Diffstat (limited to 'src/net/sourceforge/plantuml/command/CommandTitle.java')
-rw-r--r-- | src/net/sourceforge/plantuml/command/CommandTitle.java | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/net/sourceforge/plantuml/command/CommandTitle.java b/src/net/sourceforge/plantuml/command/CommandTitle.java index 20bc0bf..864af6c 100644 --- a/src/net/sourceforge/plantuml/command/CommandTitle.java +++ b/src/net/sourceforge/plantuml/command/CommandTitle.java @@ -2,7 +2,7 @@ * PlantUML : a free UML diagram generator * ======================================================================== * - * (C) Copyright 2009-2017, Arnaud Roques + * (C) Copyright 2009-2020, Arnaud Roques * * Project Info: http://plantuml.com * @@ -35,24 +35,35 @@ */ package net.sourceforge.plantuml.command; -import java.util.List; - -import net.sourceforge.plantuml.UmlDiagram; +import net.sourceforge.plantuml.LineLocation; +import net.sourceforge.plantuml.TitledDiagram; +import net.sourceforge.plantuml.command.regex.IRegex; +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.cucadiagram.DisplayPositionned; import net.sourceforge.plantuml.graphic.HorizontalAlignment; import net.sourceforge.plantuml.graphic.VerticalAlignment; -public class CommandTitle extends SingleLineCommand<UmlDiagram> { +public class CommandTitle extends SingleLineCommand2<TitledDiagram> { public CommandTitle() { - super("(?i)^title(?:[%s]*:[%s]*|[%s]+)(.*[\\p{L}0-9_.].*)$"); + super(getRegexConcat()); + } + + static IRegex getRegexConcat() { + return RegexConcat.build(CommandTitle.class.getName(), // + RegexLeaf.start(), // + new RegexLeaf("title"), // + new RegexLeaf("(?:[%s]*:[%s]*|[%s]+)"), // + new RegexLeaf("TITLE", "(.*[\\p{L}0-9_.].*)"), RegexLeaf.end()); // } @Override - protected CommandExecutionResult executeArg(UmlDiagram diagram, List<String> arg) { - diagram.setTitle(DisplayPositionned.single(Display.getWithNewlines(arg.get(0)), HorizontalAlignment.CENTER, - VerticalAlignment.TOP)); + protected CommandExecutionResult executeArg(TitledDiagram diagram, LineLocation location, RegexResult arg) { + diagram.setTitle(DisplayPositionned.single(Display.getWithNewlines(arg.get("TITLE", 0)), + HorizontalAlignment.CENTER, VerticalAlignment.TOP)); return CommandExecutionResult.ok(); } } |