|
1 | 1 | from enum import Enum |
| 2 | +from . import Shape |
2 | 3 |
|
3 | 4 |
|
4 | 5 | class Styles(Enum): |
5 | 6 | NODE = "verticalAlign=top;align=left;overflow=fill;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeColor={stroke};strokeWidth=1;fillColor={fill};" |
6 | 7 | EDGE = "edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;exitX={exit_x:.3g};exitY={exit_y:.3g};entryX={entry_x:.3g};entryY={entry_y:.3g};jettySize=auto;orthogonalLoop=1;endArrow={end_arrow};dashed={dashed};endFill={end_fill};" |
7 | 8 | TEXT = "margin:0px;text-align:{align};{margin};font-size:{size}px;font-family:{family};color:{color};" |
8 | 9 |
|
| 10 | + ELLIPSE = "ellipse;" + NODE |
| 11 | + CIRCLE = "ellipse;aspect=fixed;" + NODE |
| 12 | + HEXAGON = "shape=hexagon;perimeter=hexagonPerimeter2;" + NODE |
| 13 | + EGG = "shape=mxgraph.flowchart.display;direction=south;" + NODE |
| 14 | + TRIANGLE = "triangle;direction=north;" + NODE |
| 15 | + LINE = "line;strokeWidth=2;verticalAlign=bottom;labelPosition=center;verticalLabelPosition=top;align=center;" + NODE |
| 16 | + DIAMOND = "rhombus;" + NODE |
| 17 | + TRAPEZOID = "shape=trapezoid;perimeter=trapezoidPerimeter;" + NODE |
| 18 | + PARALLELOGRAM = "shape=parallelogram;perimeter=parallelogramPerimeter;" + NODE |
| 19 | + HOUSE = "shape=offPageConnector;direction=west;" + NODE |
| 20 | + PENTAGON = "shape=mxgraph.basic.pentagon;" + NODE |
| 21 | + OCTAGON = "shape=mxgraph.basic.octagon2;align=center;verticalAlign=middle;dx=15;" + NODE |
| 22 | + DOUBLE_CIRCLE = "ellipse;shape=doubleEllipse;aspect=fixed;" + NODE |
| 23 | + DOUBLE_OCTAGON = "shape=image;html=1;verticalAlign=middle;verticalLabelPosition=middle;imageAspect=0;aspect=fixed;image=https://cdn4.iconfinder.com/data/icons/feather/24/octagon-128.png;labelPosition=center;align=center;" + NODE |
| 24 | + INV_TRIANGLE = "triangle;direction=south;" + NODE |
| 25 | + INV_TRAPEZOID = "shape=trapezoid;perimeter=trapezoidPerimeter;direction=west;" + NODE |
| 26 | + INV_HOUSE = "shape=offPageConnector;direction=east;" + NODE |
| 27 | + SQUARE = "aspect=fixed;" + NODE |
| 28 | + STAR = "shape=mxgraph.basic.star;labelPosition=center;align=center;verticalLabelPosition=middle;verticalAlign=middle;" + NODE |
| 29 | + UNDERLINE = "line;strokeWidth=2;verticalAlign=bottom;labelPosition=center;verticalLabelPosition=top;align=center;" |
| 30 | + CYLINDER = "shape=cylinder;boundedLbl=1;backgroundOutline=1;" + NODE |
| 31 | + NOTE = "shape=note;backgroundOutline=1;" + NODE |
| 32 | + TAB = "shape=folder;tabWidth=40;tabHeight=14;tabPosition=left;" + NODE |
| 33 | + FOLDER = "shape=mxgraph.office.concepts.folder;outlineConnect=0;align=center;verticalLabelPosition=middle;verticalAlign=middle;labelPosition=center;shadow=0;dashed=0;" + NODE |
| 34 | + CUBE = "shape=cube;boundedLbl=1;backgroundOutline=1;" + NODE |
| 35 | + COMPONENT = "shape=component;align=center;spacingLeft=36;verticalAlign=bottom;" + NODE |
| 36 | + RPROMOTER = "shape=mxgraph.arrows2.bendArrow;dy=15;dx=38;notch=0;arrowHead=55;rounded=0;shadow=0;dashed=0;align=center;verticalAlign=middle;" + NODE |
| 37 | + LPROMOTER = "flipH=1;" + RPROMOTER |
| 38 | + CDS = "shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=0;shadow=0;dashed=0;align=center;verticalAlign=middle;" + NODE |
| 39 | + RARROW = "shape=mxgraph.arrows2.arrow;dy=0.6;dx=40;align=center;labelPosition=center;notch=0;strokeWidth=2;verticalLabelPosition=middle;verticalAlign=middle;" + NODE |
| 40 | + LARROW = "flipH=1;" + RARROW |
| 41 | + |
| 42 | + @staticmethod |
| 43 | + def get_for_shape(dot_shape): |
| 44 | + if dot_shape == Shape.ELLIPSE or dot_shape == Shape.OVAL: |
| 45 | + return Styles.ELLIPSE |
| 46 | + elif dot_shape == Shape.BOX or dot_shape == Shape.RECT or dot_shape == Shape.RECTANGLE: |
| 47 | + return Styles.NODE |
| 48 | + elif dot_shape == Shape.HEXAGON or dot_shape == Shape.POLYGON: |
| 49 | + return Styles.HEXAGON |
| 50 | + elif dot_shape == Shape.CIRCLE: |
| 51 | + return Styles.CIRCLE |
| 52 | + elif dot_shape == Shape.EGG: |
| 53 | + return Styles.EGG |
| 54 | + elif dot_shape == Shape.TRIANGLE: |
| 55 | + return Styles.TRIANGLE |
| 56 | + elif dot_shape == Shape.PLAIN: |
| 57 | + return Styles.LINE |
| 58 | + elif dot_shape == Shape.DIAMOND: |
| 59 | + return Styles.DIAMOND |
| 60 | + elif dot_shape == Shape.TRAPEZIUM: |
| 61 | + return Styles.TRAPEZOID |
| 62 | + elif dot_shape == Shape.PARALLELOGRAM: |
| 63 | + return Styles.PARALLELOGRAM |
| 64 | + elif dot_shape == Shape.HOUSE: |
| 65 | + return Styles.HOUSE |
| 66 | + elif dot_shape == Shape.PENTAGON: |
| 67 | + return Styles.PENTAGON |
| 68 | + elif dot_shape == Shape.OCTAGON: |
| 69 | + return Styles.OCTAGON |
| 70 | + elif dot_shape == Shape.DOUBLE_CIRCLE: |
| 71 | + return Styles.DOUBLE_CIRCLE |
| 72 | + elif dot_shape == Shape.DOUBLE_OCTAGON: |
| 73 | + return Styles.DOUBLE_OCTAGON |
| 74 | + elif dot_shape == Shape.INV_TRIANGLE: |
| 75 | + return Styles.INV_TRIANGLE |
| 76 | + elif dot_shape == Shape.INV_TRAPEZIUM: |
| 77 | + return Styles.INV_TRAPEZOID |
| 78 | + elif dot_shape == Shape.INV_HOUSE: |
| 79 | + return Styles.INV_HOUSE |
| 80 | + elif dot_shape == Shape.SQUARE: |
| 81 | + return Styles.SQUARE |
| 82 | + elif dot_shape == Shape.STAR: |
| 83 | + return Styles.STAR |
| 84 | + elif dot_shape == Shape.UNDERLINE: |
| 85 | + return Styles.UNDERLINE |
| 86 | + elif dot_shape == Shape.CYLINDER: |
| 87 | + return Styles.CYLINDER |
| 88 | + elif dot_shape == Shape.NOTE: |
| 89 | + return Styles.NODE |
| 90 | + elif dot_shape == Shape.TAB: |
| 91 | + return Styles.TAB |
| 92 | + elif dot_shape == Shape.FOLDER: |
| 93 | + return Styles.FOLDER |
| 94 | + elif dot_shape == Shape.BOX_3D: |
| 95 | + return Styles.CUBE |
| 96 | + elif dot_shape == Shape.COMPONENT: |
| 97 | + return Styles.COMPONENT |
| 98 | + elif dot_shape == Shape.PROMOTER or dot_shape == Shape.RPROMOTER: |
| 99 | + return Styles.RPROMOTER |
| 100 | + elif dot_shape == Shape.LPROMOTER: |
| 101 | + return Styles.LPROMOTER |
| 102 | + elif dot_shape == Shape.CDS: |
| 103 | + return Styles.CDS |
| 104 | + elif dot_shape == Shape.RARROW: |
| 105 | + return Styles.RARROW |
| 106 | + elif dot_shape == Shape.LARROW: |
| 107 | + return Styles.LARROW |
| 108 | + else: |
| 109 | + return Styles.NODE |
| 110 | + |
9 | 111 | def format(self, **values): |
10 | 112 | return self.value.format(**values) |
0 commit comments