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(editor)
|
||||
add_subdirectory(parser)
|
||||
add_subdirectory(core)
|
||||
|
||||
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)
|
||||
|
|
|
@ -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 addChild(std::shared_ptr<TreeNode<T>> child);
|
||||
void addChildren(std::shared_ptr<TreeNode<T>> nodeWithChildren);
|
||||
bool removeChild(std::shared_ptr<TreeNode<T>> child);
|
||||
bool remove();
|
||||
|
||||
|
@ -190,11 +191,22 @@ template <class T>
|
|||
void TreeNode<T>::addChild(std::shared_ptr<TreeNode<T>> child)
|
||||
{
|
||||
this->getChildren().push_back(child);
|
||||
//this->getChildren().append(child);
|
||||
child->setParent(std::shared_ptr<TreeNode<T>>(this));
|
||||
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>
|
||||
bool TreeNode<T>::removeChild(std::shared_ptr<TreeNode<T>> child)
|
||||
{
|
|
@ -53,12 +53,12 @@ void EditorElementData::setIsMultiLine(bool value)
|
|||
multiline = value;
|
||||
}
|
||||
|
||||
ValueType EditorElementData::getType() const
|
||||
ValueTypeShort EditorElementData::getType() const
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
void EditorElementData::setType(const ValueType &value)
|
||||
void EditorElementData::setType(const ValueTypeShort &value)
|
||||
{
|
||||
type = value;
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include <list>
|
||||
#include <string>
|
||||
|
||||
enum class ValueType {
|
||||
enum class ValueTypeShort {
|
||||
BIN,OCT,DEC,HEX,TXT
|
||||
};
|
||||
|
||||
|
@ -43,8 +43,8 @@ public:
|
|||
bool isMultiLine() const;
|
||||
void setIsMultiLine(bool value);
|
||||
|
||||
ValueType getType() const;
|
||||
void setType(const ValueType &value);
|
||||
ValueTypeShort getType() const;
|
||||
void setType(const ValueTypeShort &value);
|
||||
|
||||
QString getRegex() const;
|
||||
void setRegex(const QString &value);
|
||||
|
@ -78,7 +78,7 @@ private:
|
|||
QString id;
|
||||
QList<QString> syntaxes;
|
||||
bool multiline;
|
||||
ValueType type;
|
||||
ValueTypeShort type;
|
||||
ulong bytes;
|
||||
ulong bits;
|
||||
QString regex;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#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)
|
||||
{
|
||||
this->setReference(ref);
|
||||
|
@ -34,13 +34,13 @@ void GuidedEditorElementView::render()
|
|||
}
|
||||
|
||||
//title
|
||||
title->setText(reference->getData()->getTitle());
|
||||
title->setText(QString::fromStdString(reference->getData()->getName()));
|
||||
layout->addWidget(title);
|
||||
|
||||
if (reference->getChildren().size() == 0) {
|
||||
// need global information about showing syntax, and other hints
|
||||
|
||||
if (reference->getData()->isMultiLine()) {
|
||||
if (false ){// reference->getData()->isMultiLine()) {
|
||||
layout->addWidget(edit);
|
||||
} else {
|
||||
layout->addWidget(line);
|
||||
|
@ -51,7 +51,7 @@ void GuidedEditorElementView::render()
|
|||
subContainer = new QWidget(this);
|
||||
FlowLayout* flayout = new FlowLayout(subContainer);
|
||||
//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);
|
||||
view->setReference(node);
|
||||
flayout->addWidget(view);
|
||||
|
@ -104,15 +104,15 @@ void GuidedEditorElementView::nodeChanged()
|
|||
this->render();
|
||||
}
|
||||
|
||||
std::shared_ptr<TreeNode> GuidedEditorElementView::getReference() const
|
||||
std::shared_ptr<TreeNode<Field>> GuidedEditorElementView::getReference() const
|
||||
{
|
||||
return reference;
|
||||
}
|
||||
|
||||
void GuidedEditorElementView::setReference(const std::shared_ptr<TreeNode>& value)
|
||||
void GuidedEditorElementView::setReference(const std::shared_ptr<TreeNode<Field>>& value)
|
||||
{
|
||||
reference = value;
|
||||
QRegExp r(reference->getData()->getRegex());
|
||||
/*QRegExp r(reference->getData()->getRegex());
|
||||
validator->setRegExp(r);
|
||||
if (reference->getData()->isMultiLine()) {
|
||||
edit = new QTextEdit(this);
|
||||
|
@ -120,5 +120,5 @@ void GuidedEditorElementView::setReference(const std::shared_ptr<TreeNode>& valu
|
|||
} else {
|
||||
line = new QLineEdit(this);
|
||||
this->connect(line, &QLineEdit::textChanged, this, &GuidedEditorElementView::dataChanged);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
@ -11,17 +11,18 @@
|
|||
#include <memory>
|
||||
|
||||
#include "editorelementdata.h"
|
||||
#include "EditorNode.h"
|
||||
#include "../core/TreeNode.h"
|
||||
#include "../model/Field.h"
|
||||
|
||||
class GuidedEditorElementView : public QWidget {
|
||||
Q_OBJECT
|
||||
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);
|
||||
|
||||
|
||||
std::shared_ptr<TreeNode> getReference() const;
|
||||
void setReference(const std::shared_ptr<TreeNode> &value);
|
||||
std::shared_ptr<TreeNode<Field>> getReference() const;
|
||||
void setReference(const std::shared_ptr<TreeNode<Field>> &value);
|
||||
|
||||
signals:
|
||||
|
||||
|
@ -40,7 +41,7 @@ private:
|
|||
QMap<QString, QWidget*> otherWidgets;
|
||||
QRegExpValidator* validator;
|
||||
QWidget* subContainer;
|
||||
std::shared_ptr<TreeNode> reference;
|
||||
std::shared_ptr<TreeNode<Field>> reference;
|
||||
};
|
||||
|
||||
#endif // GUIDEDEDITORELEMENTVIEW_H
|
||||
|
|
|
@ -24,7 +24,7 @@ GuidedEditorView::GuidedEditorView(QWidget* parent)
|
|||
}
|
||||
|
||||
GuidedEditorView::GuidedEditorView(
|
||||
EditorTree* tree,
|
||||
Tree<Field>* tree,
|
||||
QWidget* parent)
|
||||
: GuidedEditorView(parent)
|
||||
{
|
||||
|
@ -41,13 +41,13 @@ void GuidedEditorView::addElement(EditorElementData* element)
|
|||
//this->update();
|
||||
}
|
||||
|
||||
void GuidedEditorView::setTree(EditorTree* tree)
|
||||
void GuidedEditorView::setTree(Tree<Field>* tree)
|
||||
{
|
||||
this->tree = tree;
|
||||
|
||||
}
|
||||
|
||||
void GuidedEditorView::treeDataChangedSlot(std::shared_ptr<TreeNode> node)
|
||||
void GuidedEditorView::treeDataChangedSlot(std::shared_ptr<TreeNode<Field>> node)
|
||||
{
|
||||
// get node view
|
||||
auto view = nodeToViewMap[node];
|
||||
|
@ -55,7 +55,7 @@ void GuidedEditorView::treeDataChangedSlot(std::shared_ptr<TreeNode> node)
|
|||
view->dataChanged();
|
||||
}
|
||||
|
||||
void GuidedEditorView::treeChangedSlot(std::shared_ptr<TreeNode> node)
|
||||
void GuidedEditorView::treeChangedSlot(std::shared_ptr<TreeNode<Field>> node)
|
||||
{
|
||||
// get node view
|
||||
auto view = nodeToViewMap[node];
|
||||
|
@ -67,7 +67,7 @@ void GuidedEditorView::render()
|
|||
{
|
||||
if(tree != nullptr) {
|
||||
// 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);
|
||||
this->editorLayout->addWidget(view);
|
||||
this->nodeToViewMap.insert(node, view);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef GUIDEDEDITOR_H
|
||||
#define GUIDEDEDITOR_H
|
||||
#include "EditorTree.h"
|
||||
#include "../core/Tree.h"
|
||||
#include "editorelementdata.h"
|
||||
#include "guidededitorelementview.h"
|
||||
#include "flowlayout.h"
|
||||
|
@ -11,24 +11,24 @@ class GuidedEditorView : public QWidget {
|
|||
Q_OBJECT
|
||||
public:
|
||||
explicit GuidedEditorView(QWidget* parent = 0);
|
||||
explicit GuidedEditorView(EditorTree* tree, QWidget* parent = 0);
|
||||
explicit GuidedEditorView(Tree<Field>* tree, QWidget* parent = 0);
|
||||
~GuidedEditorView();
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
void addElement(EditorElementData* element);
|
||||
void setTree(EditorTree* tree);
|
||||
void setTree(Tree<Field>* tree);
|
||||
|
||||
void treeDataChangedSlot(std::shared_ptr<TreeNode> node);
|
||||
void treeChangedSlot(std::shared_ptr<TreeNode> node);
|
||||
void treeDataChangedSlot(std::shared_ptr<TreeNode<Field>> node);
|
||||
void treeChangedSlot(std::shared_ptr<TreeNode<Field>> node);
|
||||
|
||||
void render();
|
||||
|
||||
private:
|
||||
FlowLayout* editorLayout;
|
||||
EditorTree* tree;
|
||||
QMap<std::shared_ptr<TreeNode>, GuidedEditorElementView*> nodeToViewMap;
|
||||
Tree<Field>* tree;
|
||||
QMap<std::shared_ptr<TreeNode<Field>>, GuidedEditorElementView*> nodeToViewMap;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
set(HEADERS Protocol.h
|
||||
Field.h
|
||||
Tree.h
|
||||
TreeNode.h
|
||||
)
|
||||
|
||||
set(SOURCES Protocol.cpp
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "field.h"
|
||||
#include "Field.h"
|
||||
#include <memory>
|
||||
|
||||
Field::Field(std::string name, uint32_t sizeInBit, uint16_t layer): name(name), sizeInBit(sizeInBit), layer(layer)
|
||||
|
|
|
@ -78,7 +78,7 @@ class Field
|
|||
{
|
||||
public:
|
||||
Field(std::string name, uint32_t sizeInBit, uint16_t layer);
|
||||
void setValue(std::string& value) {this->value = value; this->valueType = ValueType::text; }
|
||||
void setValue(std::string& value) { this->value = value; this->valueType = ValueType::text; }
|
||||
void setValue(std::string& value, ValueType type);
|
||||
|
||||
const std::string getValue() { return value; }
|
||||
|
|
|
@ -42,19 +42,19 @@ void DataLoader::loadSingleProtocol(std::__cxx11::string filename)
|
|||
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"])
|
||||
return nullptr;
|
||||
|
||||
// root node containing the protocol.
|
||||
std::shared_ptr<EditorNode> editorNode = std::shared_ptr<EditorNode>(new EditorNode());
|
||||
std::shared_ptr<EditorElementData> data = std::shared_ptr<EditorElementData>(new EditorElementData());
|
||||
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());
|
||||
|
||||
data->setTitle(node["protocol"]["name"].as<std::string>());
|
||||
//data->setTitle(node["protocol"]["name"].as<std::string>());
|
||||
if(node["protocol"]["longname"])
|
||||
data->setHint("subtitle", node["protocol"]["longname"].as<std::string>());
|
||||
editorNode->setData(data);
|
||||
editorNode->setData(data);*/
|
||||
// add children containing the fields
|
||||
auto fields = node["protocol"]["fields"];
|
||||
for(YAML::Node n : fields) {
|
||||
|
@ -87,12 +87,12 @@ std::list<std::string> DataLoader::getProtocolNames()
|
|||
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);
|
||||
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>());
|
||||
if(n["desc"])
|
||||
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>());
|
||||
if(n["nextlayer"])
|
||||
newData->setNextLayer(n["nextlayer"].as<bool>());
|
||||
newNode->setData(newData);
|
||||
newNode->setData(newData);*/
|
||||
if(n["subfields"])
|
||||
{
|
||||
auto fields = n["subfields"];
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
#include <string>
|
||||
#include <list>
|
||||
|
||||
#include "../model/TreeNode.h"
|
||||
#include "../core/TreeNode.h"
|
||||
#include "../model/Field.h"
|
||||
|
||||
|
||||
class DataLoader {
|
||||
|
@ -18,13 +19,13 @@ public:
|
|||
|
||||
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);
|
||||
std::list<std::string> getProtocolNames();
|
||||
|
||||
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::list<YAML::Node> protocolList;
|
||||
};
|
||||
|
|
Reference in New Issue