build working again, better project structure, more documentation
This commit is contained in:
parent
b33c0504f6
commit
9b56e9c991
|
@ -0,0 +1,334 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||||
|
<!--Created by yEd 3.16.2.1-->
|
||||||
|
<key attr.name="Beschreibung" attr.type="string" for="graph" id="d0"/>
|
||||||
|
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||||
|
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||||
|
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||||
|
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||||
|
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||||
|
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||||
|
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||||
|
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||||
|
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||||
|
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||||
|
<graph edgedefault="directed" id="G">
|
||||||
|
<data key="d0"/>
|
||||||
|
<node id="n0">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="217.0" width="146.0" x="451.0" y="560.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="39.9150390625" x="53.04248046875" y="3.0">Field<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel>- owningStructure
|
||||||
|
- binary
|
||||||
|
- logical
|
||||||
|
- visual
|
||||||
|
- representation</y:AttributeLabel>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n1">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="100.0" x="870.0" y="390.5"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="51.27734375" x="24.361328125" y="3.0">Binary<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n2">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="100.0" x="870.0" y="560.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="55.9111328125" x="22.04443359375" y="3.0">Logical<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n3">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="100.0" x="870.0" y="729.5"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="48.73828125" x="25.630859375" y="3.0">Visual<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n4">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="134.0" x="853.0" y="899.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="117.013671875" x="8.4931640625" y="3.0">Representation<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n5">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="117.0" width="100.0" x="303.66666666666674" y="610.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="73.646484375" x="13.1767578125" y="3.0">Structure<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel>- name
|
||||||
|
- description
|
||||||
|
- fields</y:AttributeLabel>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n6">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="100.0" x="474.0" y="274.953125"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="95.3046875" x="2.34765625" y="3.0">FieldFactory<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n7">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="146.0" x="280.66666666666674" y="274.953125"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="129.0361328125" x="8.48193359375" y="3.0">StructureFactory<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n8">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="146.0" x="280.66666666666674" y="153.953125"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="139.09716796875" x="3.451416015625" y="3.0">AStructureFactory<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n9">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="115.0" x="466.5" y="153.953125"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="105.36572265625" x="4.817138671875" y="3.0">AFieldFactory<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<edge id="e0" source="n1" target="n0">
|
||||||
|
<data key="d8"/>
|
||||||
|
<data key="d9"/>
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="none" target="none"/>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e1" source="n2" target="n0">
|
||||||
|
<data key="d8"/>
|
||||||
|
<data key="d9"/>
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||||
|
<y:Point x="710.5" y="574.0"/>
|
||||||
|
<y:Point x="710.5" y="668.5"/>
|
||||||
|
</y:Path>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="none" target="none"/>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e2" source="n3" target="n0">
|
||||||
|
<data key="d8"/>
|
||||||
|
<data key="d9"/>
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="none" target="none"/>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e3" source="n4" target="n0">
|
||||||
|
<data key="d8"/>
|
||||||
|
<data key="d9"/>
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="none" target="none"/>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e4" source="n5" target="n0">
|
||||||
|
<data key="d8"/>
|
||||||
|
<data key="d9"/>
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="diamond" target="none"/>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e5" source="n7" target="n8">
|
||||||
|
<data key="d8"/>
|
||||||
|
<data key="d9"/>
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="none" target="white_delta"/>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e6" source="n6" target="n9">
|
||||||
|
<data key="d8"/>
|
||||||
|
<data key="d9"/>
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="none" target="white_delta"/>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
</graph>
|
||||||
|
<data key="d7">
|
||||||
|
<y:Resources/>
|
||||||
|
</data>
|
||||||
|
</graphml>
|
|
@ -0,0 +1,203 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:java="http://www.yworks.com/xml/yfiles-common/1.0/java" xmlns:sys="http://www.yworks.com/xml/yfiles-common/markup/primitives/2.0" xmlns:x="http://www.yworks.com/xml/yfiles-common/markup/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
|
||||||
|
<!--Created by yEd 3.16.2.1-->
|
||||||
|
<key attr.name="Beschreibung" attr.type="string" for="graph" id="d0"/>
|
||||||
|
<key for="port" id="d1" yfiles.type="portgraphics"/>
|
||||||
|
<key for="port" id="d2" yfiles.type="portgeometry"/>
|
||||||
|
<key for="port" id="d3" yfiles.type="portuserdata"/>
|
||||||
|
<key attr.name="url" attr.type="string" for="node" id="d4"/>
|
||||||
|
<key attr.name="description" attr.type="string" for="node" id="d5"/>
|
||||||
|
<key for="node" id="d6" yfiles.type="nodegraphics"/>
|
||||||
|
<key for="graphml" id="d7" yfiles.type="resources"/>
|
||||||
|
<key attr.name="url" attr.type="string" for="edge" id="d8"/>
|
||||||
|
<key attr.name="description" attr.type="string" for="edge" id="d9"/>
|
||||||
|
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
|
||||||
|
<graph edgedefault="directed" id="G">
|
||||||
|
<data key="d0"/>
|
||||||
|
<node id="n0">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="40.0634765625" x="447.96826171875" y="163.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="30.0634765625" x="5.0" y="3.0">GUI<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n1">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="58.4462890625" x="438.77685546875" y="288.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="48.4462890625" x="5.0" y="3.0">Model<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n2">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="126.88037109375" x="404.559814453125" y="413.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="116.88037109375" x="5.0" y="3.0">ByteDispatcher<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n3">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="150.55712890625" x="689.221435546875" y="288.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="140.55712890625" x="5.0" y="3.0">DefinitionManager<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<node id="n4">
|
||||||
|
<data key="d4"/>
|
||||||
|
<data key="d5"/>
|
||||||
|
<data key="d6">
|
||||||
|
<y:UMLClassNode>
|
||||||
|
<y:Geometry height="28.0" width="155.1337890625" x="686.93310546875" y="413.0"/>
|
||||||
|
<y:Fill color="#FFCC00" transparent="false"/>
|
||||||
|
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="19.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="145.1337890625" x="5.0" y="3.0">ProtocolDefinitions<y:LabelModel>
|
||||||
|
<y:SmartNodeLabelModel distance="4.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="-0.03703090122767855" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
</y:NodeLabel>
|
||||||
|
<y:UML clipContent="true" constraint="" omitDetails="false" stereotype="" use3DEffect="true">
|
||||||
|
<y:AttributeLabel/>
|
||||||
|
<y:MethodLabel/>
|
||||||
|
</y:UML>
|
||||||
|
</y:UMLClassNode>
|
||||||
|
</data>
|
||||||
|
</node>
|
||||||
|
<edge id="e0" source="n4" target="n3">
|
||||||
|
<data key="d10">
|
||||||
|
<y:BezierEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="standard" target="standard"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="83.458984375" x="20.2705078125" y="-58.476806640625">Reads/Writes<y:LabelModel>
|
||||||
|
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="62.0" distanceToCenter="true" position="right" ratio="0.5144861928474422" segment="-1"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
</y:BezierEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e1" source="n3" target="n1">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="standard" target="standard"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="125.306640625" x="-158.68402099609375" y="-38.984375">Generates/Produces<y:LabelModel>
|
||||||
|
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.5" segment="0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e2" source="n2" target="n1">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="none" target="standard"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="71.0" y="-4.122128335962259">
|
||||||
|
<y:LabelModel>
|
||||||
|
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartEdgeLabelModelParameter angle="6.283185307179586" distance="73.0" distanceToCenter="true" position="right" ratio="0.02195563603440471" segment="-1"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
<edge id="e3" source="n1" target="n0">
|
||||||
|
<data key="d10">
|
||||||
|
<y:PolyLineEdge>
|
||||||
|
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||||
|
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||||
|
<y:Arrows source="standard" target="none"/>
|
||||||
|
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="54.484375" x="2.7578125" y="-57.476806640625">Displays<y:LabelModel>
|
||||||
|
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||||
|
</y:LabelModel>
|
||||||
|
<y:ModelParameter>
|
||||||
|
<y:SmartEdgeLabelModelParameter angle="0.0" distance="30.0" distanceToCenter="true" position="right" ratio="0.5" segment="0"/>
|
||||||
|
</y:ModelParameter>
|
||||||
|
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||||
|
</y:EdgeLabel>
|
||||||
|
<y:BendStyle smoothed="false"/>
|
||||||
|
</y:PolyLineEdge>
|
||||||
|
</data>
|
||||||
|
</edge>
|
||||||
|
</graph>
|
||||||
|
<data key="d7">
|
||||||
|
<y:Resources/>
|
||||||
|
</data>
|
||||||
|
</graphml>
|
|
@ -7,7 +7,8 @@ set(SOURCES mainwindow.cpp
|
||||||
add_subdirectory(model)
|
add_subdirectory(model)
|
||||||
add_subdirectory(editor)
|
add_subdirectory(editor)
|
||||||
add_subdirectory(parser)
|
add_subdirectory(parser)
|
||||||
|
add_subdirectory(core)
|
||||||
|
|
||||||
add_library(src ${HEADERS} ${SOURCES})
|
add_library(src ${HEADERS} ${SOURCES})
|
||||||
target_link_libraries(src model editor protocol)
|
target_link_libraries(src model editor protocol core )
|
||||||
qt5_use_modules(src Widgets)
|
qt5_use_modules(src Widgets)
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
|
||||||
|
set(HEADERS
|
||||||
|
Tree.h
|
||||||
|
TreeNode.h
|
||||||
|
)
|
||||||
|
|
||||||
|
set(SOURCES
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(core ${HEADERS} ${SOURCES})
|
|
@ -30,6 +30,7 @@ public:
|
||||||
void moveChildren(std::shared_ptr<TreeNode<T>> to); //all
|
void moveChildren(std::shared_ptr<TreeNode<T>> to); //all
|
||||||
|
|
||||||
void addChild(std::shared_ptr<TreeNode<T>> child);
|
void addChild(std::shared_ptr<TreeNode<T>> child);
|
||||||
|
void addChildren(std::shared_ptr<TreeNode<T>> nodeWithChildren);
|
||||||
bool removeChild(std::shared_ptr<TreeNode<T>> child);
|
bool removeChild(std::shared_ptr<TreeNode<T>> child);
|
||||||
bool remove();
|
bool remove();
|
||||||
|
|
||||||
|
@ -190,11 +191,22 @@ template <class T>
|
||||||
void TreeNode<T>::addChild(std::shared_ptr<TreeNode<T>> child)
|
void TreeNode<T>::addChild(std::shared_ptr<TreeNode<T>> child)
|
||||||
{
|
{
|
||||||
this->getChildren().push_back(child);
|
this->getChildren().push_back(child);
|
||||||
//this->getChildren().append(child);
|
|
||||||
child->setParent(std::shared_ptr<TreeNode<T>>(this));
|
child->setParent(std::shared_ptr<TreeNode<T>>(this));
|
||||||
fireTreeChanged();
|
fireTreeChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
void TreeNode<T>::addChildren(std::shared_ptr<TreeNode<T>> nodeWithChildren)
|
||||||
|
{
|
||||||
|
for(std::shared_ptr<TreeNode<T>> child : nodeWithChildren->getChildren())
|
||||||
|
{
|
||||||
|
this->getChildren().push_back(child);
|
||||||
|
child->setParent(std::shared_ptr<TreeNode<T>>(this));
|
||||||
|
}
|
||||||
|
fireTreeChanged();
|
||||||
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
bool TreeNode<T>::removeChild(std::shared_ptr<TreeNode<T>> child)
|
bool TreeNode<T>::removeChild(std::shared_ptr<TreeNode<T>> child)
|
||||||
{
|
{
|
|
@ -53,12 +53,12 @@ void EditorElementData::setIsMultiLine(bool value)
|
||||||
multiline = value;
|
multiline = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
ValueType EditorElementData::getType() const
|
ValueTypeShort EditorElementData::getType() const
|
||||||
{
|
{
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorElementData::setType(const ValueType &value)
|
void EditorElementData::setType(const ValueTypeShort &value)
|
||||||
{
|
{
|
||||||
type = value;
|
type = value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
enum class ValueType {
|
enum class ValueTypeShort {
|
||||||
BIN,OCT,DEC,HEX,TXT
|
BIN,OCT,DEC,HEX,TXT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,8 +43,8 @@ public:
|
||||||
bool isMultiLine() const;
|
bool isMultiLine() const;
|
||||||
void setIsMultiLine(bool value);
|
void setIsMultiLine(bool value);
|
||||||
|
|
||||||
ValueType getType() const;
|
ValueTypeShort getType() const;
|
||||||
void setType(const ValueType &value);
|
void setType(const ValueTypeShort &value);
|
||||||
|
|
||||||
QString getRegex() const;
|
QString getRegex() const;
|
||||||
void setRegex(const QString &value);
|
void setRegex(const QString &value);
|
||||||
|
@ -78,7 +78,7 @@ private:
|
||||||
QString id;
|
QString id;
|
||||||
QList<QString> syntaxes;
|
QList<QString> syntaxes;
|
||||||
bool multiline;
|
bool multiline;
|
||||||
ValueType type;
|
ValueTypeShort type;
|
||||||
ulong bytes;
|
ulong bytes;
|
||||||
ulong bits;
|
ulong bits;
|
||||||
QString regex;
|
QString regex;
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
GuidedEditorElementView::GuidedEditorElementView(const std::shared_ptr<TreeNode> &ref, QWidget* parent)
|
GuidedEditorElementView::GuidedEditorElementView(const std::shared_ptr<TreeNode<Field>> &ref, QWidget* parent)
|
||||||
: GuidedEditorElementView(parent)
|
: GuidedEditorElementView(parent)
|
||||||
{
|
{
|
||||||
this->setReference(ref);
|
this->setReference(ref);
|
||||||
|
@ -34,13 +34,13 @@ void GuidedEditorElementView::render()
|
||||||
}
|
}
|
||||||
|
|
||||||
//title
|
//title
|
||||||
title->setText(reference->getData()->getTitle());
|
title->setText(QString::fromStdString(reference->getData()->getName()));
|
||||||
layout->addWidget(title);
|
layout->addWidget(title);
|
||||||
|
|
||||||
if (reference->getChildren().size() == 0) {
|
if (reference->getChildren().size() == 0) {
|
||||||
// need global information about showing syntax, and other hints
|
// need global information about showing syntax, and other hints
|
||||||
|
|
||||||
if (reference->getData()->isMultiLine()) {
|
if (false ){// reference->getData()->isMultiLine()) {
|
||||||
layout->addWidget(edit);
|
layout->addWidget(edit);
|
||||||
} else {
|
} else {
|
||||||
layout->addWidget(line);
|
layout->addWidget(line);
|
||||||
|
@ -51,7 +51,7 @@ void GuidedEditorElementView::render()
|
||||||
subContainer = new QWidget(this);
|
subContainer = new QWidget(this);
|
||||||
FlowLayout* flayout = new FlowLayout(subContainer);
|
FlowLayout* flayout = new FlowLayout(subContainer);
|
||||||
//create and render subelementviews! this is DEPTH_FIRST!!! TODO: make this breadth first!
|
//create and render subelementviews! this is DEPTH_FIRST!!! TODO: make this breadth first!
|
||||||
for (std::shared_ptr<TreeNode> node : reference->getChildren()) {
|
for (std::shared_ptr<TreeNode<Field>> node : reference->getChildren()) {
|
||||||
GuidedEditorElementView* view = new GuidedEditorElementView(subContainer);
|
GuidedEditorElementView* view = new GuidedEditorElementView(subContainer);
|
||||||
view->setReference(node);
|
view->setReference(node);
|
||||||
flayout->addWidget(view);
|
flayout->addWidget(view);
|
||||||
|
@ -104,15 +104,15 @@ void GuidedEditorElementView::nodeChanged()
|
||||||
this->render();
|
this->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<TreeNode> GuidedEditorElementView::getReference() const
|
std::shared_ptr<TreeNode<Field>> GuidedEditorElementView::getReference() const
|
||||||
{
|
{
|
||||||
return reference;
|
return reference;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuidedEditorElementView::setReference(const std::shared_ptr<TreeNode>& value)
|
void GuidedEditorElementView::setReference(const std::shared_ptr<TreeNode<Field>>& value)
|
||||||
{
|
{
|
||||||
reference = value;
|
reference = value;
|
||||||
QRegExp r(reference->getData()->getRegex());
|
/*QRegExp r(reference->getData()->getRegex());
|
||||||
validator->setRegExp(r);
|
validator->setRegExp(r);
|
||||||
if (reference->getData()->isMultiLine()) {
|
if (reference->getData()->isMultiLine()) {
|
||||||
edit = new QTextEdit(this);
|
edit = new QTextEdit(this);
|
||||||
|
@ -120,5 +120,5 @@ void GuidedEditorElementView::setReference(const std::shared_ptr<TreeNode>& valu
|
||||||
} else {
|
} else {
|
||||||
line = new QLineEdit(this);
|
line = new QLineEdit(this);
|
||||||
this->connect(line, &QLineEdit::textChanged, this, &GuidedEditorElementView::dataChanged);
|
this->connect(line, &QLineEdit::textChanged, this, &GuidedEditorElementView::dataChanged);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,17 +11,18 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "editorelementdata.h"
|
#include "editorelementdata.h"
|
||||||
#include "EditorNode.h"
|
#include "../core/TreeNode.h"
|
||||||
|
#include "../model/Field.h"
|
||||||
|
|
||||||
class GuidedEditorElementView : public QWidget {
|
class GuidedEditorElementView : public QWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit GuidedEditorElementView(const std::shared_ptr<TreeNode> &ref,QWidget* parent = 0);
|
explicit GuidedEditorElementView(const std::shared_ptr<TreeNode<Field>> &ref,QWidget* parent = 0);
|
||||||
explicit GuidedEditorElementView(QWidget* parent = 0);
|
explicit GuidedEditorElementView(QWidget* parent = 0);
|
||||||
|
|
||||||
|
|
||||||
std::shared_ptr<TreeNode> getReference() const;
|
std::shared_ptr<TreeNode<Field>> getReference() const;
|
||||||
void setReference(const std::shared_ptr<TreeNode> &value);
|
void setReference(const std::shared_ptr<TreeNode<Field>> &value);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
|
@ -40,7 +41,7 @@ private:
|
||||||
QMap<QString, QWidget*> otherWidgets;
|
QMap<QString, QWidget*> otherWidgets;
|
||||||
QRegExpValidator* validator;
|
QRegExpValidator* validator;
|
||||||
QWidget* subContainer;
|
QWidget* subContainer;
|
||||||
std::shared_ptr<TreeNode> reference;
|
std::shared_ptr<TreeNode<Field>> reference;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GUIDEDEDITORELEMENTVIEW_H
|
#endif // GUIDEDEDITORELEMENTVIEW_H
|
||||||
|
|
|
@ -24,7 +24,7 @@ GuidedEditorView::GuidedEditorView(QWidget* parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
GuidedEditorView::GuidedEditorView(
|
GuidedEditorView::GuidedEditorView(
|
||||||
EditorTree* tree,
|
Tree<Field>* tree,
|
||||||
QWidget* parent)
|
QWidget* parent)
|
||||||
: GuidedEditorView(parent)
|
: GuidedEditorView(parent)
|
||||||
{
|
{
|
||||||
|
@ -41,13 +41,13 @@ void GuidedEditorView::addElement(EditorElementData* element)
|
||||||
//this->update();
|
//this->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuidedEditorView::setTree(EditorTree* tree)
|
void GuidedEditorView::setTree(Tree<Field>* tree)
|
||||||
{
|
{
|
||||||
this->tree = tree;
|
this->tree = tree;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuidedEditorView::treeDataChangedSlot(std::shared_ptr<TreeNode> node)
|
void GuidedEditorView::treeDataChangedSlot(std::shared_ptr<TreeNode<Field>> node)
|
||||||
{
|
{
|
||||||
// get node view
|
// get node view
|
||||||
auto view = nodeToViewMap[node];
|
auto view = nodeToViewMap[node];
|
||||||
|
@ -55,7 +55,7 @@ void GuidedEditorView::treeDataChangedSlot(std::shared_ptr<TreeNode> node)
|
||||||
view->dataChanged();
|
view->dataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuidedEditorView::treeChangedSlot(std::shared_ptr<TreeNode> node)
|
void GuidedEditorView::treeChangedSlot(std::shared_ptr<TreeNode<Field>> node)
|
||||||
{
|
{
|
||||||
// get node view
|
// get node view
|
||||||
auto view = nodeToViewMap[node];
|
auto view = nodeToViewMap[node];
|
||||||
|
@ -67,7 +67,7 @@ void GuidedEditorView::render()
|
||||||
{
|
{
|
||||||
if(tree != nullptr) {
|
if(tree != nullptr) {
|
||||||
// root node is invisible!
|
// root node is invisible!
|
||||||
for(std::shared_ptr<TreeNode> node : tree->getRoot()->getChildren()){
|
for(std::shared_ptr<TreeNode<Field>> node : tree->getRoot()->getChildren()){
|
||||||
auto view = new GuidedEditorElementView(node, this);
|
auto view = new GuidedEditorElementView(node, this);
|
||||||
this->editorLayout->addWidget(view);
|
this->editorLayout->addWidget(view);
|
||||||
this->nodeToViewMap.insert(node, view);
|
this->nodeToViewMap.insert(node, view);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef GUIDEDEDITOR_H
|
#ifndef GUIDEDEDITOR_H
|
||||||
#define GUIDEDEDITOR_H
|
#define GUIDEDEDITOR_H
|
||||||
#include "EditorTree.h"
|
#include "../core/Tree.h"
|
||||||
#include "editorelementdata.h"
|
#include "editorelementdata.h"
|
||||||
#include "guidededitorelementview.h"
|
#include "guidededitorelementview.h"
|
||||||
#include "flowlayout.h"
|
#include "flowlayout.h"
|
||||||
|
@ -11,24 +11,24 @@ class GuidedEditorView : public QWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit GuidedEditorView(QWidget* parent = 0);
|
explicit GuidedEditorView(QWidget* parent = 0);
|
||||||
explicit GuidedEditorView(EditorTree* tree, QWidget* parent = 0);
|
explicit GuidedEditorView(Tree<Field>* tree, QWidget* parent = 0);
|
||||||
~GuidedEditorView();
|
~GuidedEditorView();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void addElement(EditorElementData* element);
|
void addElement(EditorElementData* element);
|
||||||
void setTree(EditorTree* tree);
|
void setTree(Tree<Field>* tree);
|
||||||
|
|
||||||
void treeDataChangedSlot(std::shared_ptr<TreeNode> node);
|
void treeDataChangedSlot(std::shared_ptr<TreeNode<Field>> node);
|
||||||
void treeChangedSlot(std::shared_ptr<TreeNode> node);
|
void treeChangedSlot(std::shared_ptr<TreeNode<Field>> node);
|
||||||
|
|
||||||
void render();
|
void render();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FlowLayout* editorLayout;
|
FlowLayout* editorLayout;
|
||||||
EditorTree* tree;
|
Tree<Field>* tree;
|
||||||
QMap<std::shared_ptr<TreeNode>, GuidedEditorElementView*> nodeToViewMap;
|
QMap<std::shared_ptr<TreeNode<Field>>, GuidedEditorElementView*> nodeToViewMap;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
|
|
||||||
set(HEADERS Protocol.h
|
set(HEADERS Protocol.h
|
||||||
Field.h
|
Field.h
|
||||||
Tree.h
|
|
||||||
TreeNode.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SOURCES Protocol.cpp
|
set(SOURCES Protocol.cpp
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "field.h"
|
#include "Field.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
Field::Field(std::string name, uint32_t sizeInBit, uint16_t layer): name(name), sizeInBit(sizeInBit), layer(layer)
|
Field::Field(std::string name, uint32_t sizeInBit, uint16_t layer): name(name), sizeInBit(sizeInBit), layer(layer)
|
||||||
|
|
|
@ -42,19 +42,19 @@ void DataLoader::loadSingleProtocol(std::__cxx11::string filename)
|
||||||
protocolList.push_back(node);
|
protocolList.push_back(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<EditorNode> DataLoader::generateTree(YAML::Node &node)
|
std::shared_ptr<TreeNode<Field>> DataLoader::generateTree(YAML::Node &node)
|
||||||
{
|
{
|
||||||
if(!node["protocol"])
|
if(!node["protocol"])
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
// root node containing the protocol.
|
// root node containing the protocol.
|
||||||
std::shared_ptr<EditorNode> editorNode = std::shared_ptr<EditorNode>(new EditorNode());
|
std::shared_ptr<TreeNode<Field>> editorNode = std::shared_ptr<TreeNode<Field>>(new TreeNode<Field>());
|
||||||
std::shared_ptr<EditorElementData> data = std::shared_ptr<EditorElementData>(new EditorElementData());
|
/*/std::shared_ptr<EditorElementData> data = std::shared_ptr<EditorElementData>(new EditorElementData());
|
||||||
|
|
||||||
data->setTitle(node["protocol"]["name"].as<std::string>());
|
//data->setTitle(node["protocol"]["name"].as<std::string>());
|
||||||
if(node["protocol"]["longname"])
|
if(node["protocol"]["longname"])
|
||||||
data->setHint("subtitle", node["protocol"]["longname"].as<std::string>());
|
data->setHint("subtitle", node["protocol"]["longname"].as<std::string>());
|
||||||
editorNode->setData(data);
|
editorNode->setData(data);*/
|
||||||
// add children containing the fields
|
// add children containing the fields
|
||||||
auto fields = node["protocol"]["fields"];
|
auto fields = node["protocol"]["fields"];
|
||||||
for(YAML::Node n : fields) {
|
for(YAML::Node n : fields) {
|
||||||
|
@ -87,12 +87,12 @@ std::list<std::string> DataLoader::getProtocolNames()
|
||||||
return names;
|
return names;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<EditorNode> DataLoader::genNode(YAML::Node &n, std::shared_ptr<EditorNode> parent)
|
std::shared_ptr<TreeNode<Field>> DataLoader::genNode(YAML::Node &n, std::shared_ptr<TreeNode<Field>> parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
std::shared_ptr<EditorNode> newNode = std::shared_ptr<EditorNode>(new EditorNode());
|
std::shared_ptr<TreeNode<Field>> newNode = std::shared_ptr<TreeNode<Field>>(new TreeNode<Field>());
|
||||||
newNode->setParent(parent);
|
newNode->setParent(parent);
|
||||||
std::shared_ptr<EditorElementData> newData = std::shared_ptr<EditorElementData>(new EditorElementData());
|
/*std::shared_ptr<EditorElementData> newData = std::shared_ptr<EditorElementData>(new EditorElementData());
|
||||||
newData->setTitle(n["field"].as<std::string>());
|
newData->setTitle(n["field"].as<std::string>());
|
||||||
if(n["desc"])
|
if(n["desc"])
|
||||||
newData->setHint("desc",n["desc"].as<std::string>());
|
newData->setHint("desc",n["desc"].as<std::string>());
|
||||||
|
@ -106,7 +106,7 @@ std::shared_ptr<EditorNode> DataLoader::genNode(YAML::Node &n, std::shared_ptr<E
|
||||||
newData->setOptional(n["data"].as<bool>());
|
newData->setOptional(n["data"].as<bool>());
|
||||||
if(n["nextlayer"])
|
if(n["nextlayer"])
|
||||||
newData->setNextLayer(n["nextlayer"].as<bool>());
|
newData->setNextLayer(n["nextlayer"].as<bool>());
|
||||||
newNode->setData(newData);
|
newNode->setData(newData);*/
|
||||||
if(n["subfields"])
|
if(n["subfields"])
|
||||||
{
|
{
|
||||||
auto fields = n["subfields"];
|
auto fields = n["subfields"];
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
#include "../model/TreeNode.h"
|
#include "../core/TreeNode.h"
|
||||||
|
#include "../model/Field.h"
|
||||||
|
|
||||||
|
|
||||||
class DataLoader {
|
class DataLoader {
|
||||||
|
@ -18,13 +19,13 @@ public:
|
||||||
|
|
||||||
void loadSingleProtocol(std::string filename);
|
void loadSingleProtocol(std::string filename);
|
||||||
|
|
||||||
std::shared_ptr<TreeNode<T>> generateTree(YAML::Node &node);
|
std::shared_ptr<TreeNode<Field>> generateTree(YAML::Node &node);
|
||||||
|
|
||||||
bool getProtocolByName(std::string name, YAML::Node &node);
|
bool getProtocolByName(std::string name, YAML::Node &node);
|
||||||
std::list<std::string> getProtocolNames();
|
std::list<std::string> getProtocolNames();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<TreeNode<T>> genNode(YAML::Node& n, std::shared_ptr<TreeNode<T>> parent = nullptr);
|
std::shared_ptr<TreeNode<Field>> genNode(YAML::Node& n, std::shared_ptr<TreeNode<Field>> parent = nullptr);
|
||||||
std::string directory;
|
std::string directory;
|
||||||
std::list<YAML::Node> protocolList;
|
std::list<YAML::Node> protocolList;
|
||||||
};
|
};
|
||||||
|
|
Reference in New Issue