# GMF Layout mit Rectangles



## SEA (5. Mrz 2011)

Hallo,

ich möchte mit Hilfe von GMF eine Baumansicht darstellen. Für die einzelnen Knoten benötige ich dafür folgendes Layout:


```
|------------------------|
| [Integer] |  [String]  |
|------------------------|
```

Leider stehen bei mir die Labels immer an der falschen Stelle oder tauchen gar nicht erst auf ... Kann mir jemand sagen, was ich falsche mache?

XML-Ausschnitt:

```
<descriptors name="NodeFigure">
	<actualFigure xsi:type="gmfgraph:Rectangle" name="NodeFigure">
		<layout xsi:type="gmfgraph:BorderLayout" />
		<backgroundColor xsi:type="gmfgraph:ConstantColor"
			value="green" />
		<children xsi:type="gmfgraph:Rectangle" name="left">
			<layoutData xsi:type="gmfgraph:BorderLayoutData"
				alignment="BEGINNING" />
			<backgroundColor xsi:type="gmfgraph:ConstantColor"
				value="yellow" />
			<children xsi:type="gmfgraph:Label" name="NodeColumnFigure"
				text="" />
		</children>
		<children xsi:type="gmfgraph:Rectangle" name="right">
			<layoutData xsi:type="gmfgraph:BorderLayoutData"
				alignment="END" />
			<backgroundColor xsi:type="gmfgraph:ConstantColor"
				value="gray" />
			<children xsi:type="gmfgraph:Label" name="NodeSplitCountFigure"
				text="" />
		</children>
	</actualFigure>
	<accessors accessor="getFigureColumn"
		figure="//@figures.0/@descriptors.0/@actualFigure/@children.0/@children.0" />
	<accessors
		figure="//@figures.0/@descriptors.0/@actualFigure/@children.1/@children.0" />
</descriptors>
```

Vielen Dank und viele Grüße
SEA


----------



## Wildcard (7. Mrz 2011)

Schonmal ein FlowLayout oder so versucht?


----------



## SEA (11. Mrz 2011)

Bei mir funktioniert nun die Diagrammdarstellung wie gewünscht. Ich habe folgende Änderungen vorgenommen:

1. Feature Label anlegen
Man muss für jedes anzuzeigende Label ein "Feature Label" im gmfmap-Model anlegen. Dieses Feature-Label besitzt die Eigenschaft "Misc->Diagram Label", über die man dieses Label mit dem Diagram Label im gmfgraph-Model verbinden kann.

2. Layoutinformationen detailierter angeben
Im gmfgraph-Model habe ich noch zusätzliche Eigenschaften für das BorderLayout eingetragen ...


```
<descriptors name="NodeFigure">
	<actualFigure xsi:type="gmfgraph:Rectangle" name="NodeFigure">
		<layout xsi:type="gmfgraph:BorderLayout" />
		<backgroundColor xsi:type="gmfgraph:ConstantColor"
			value="green" />
		<children xsi:type="gmfgraph:Rectangle" name="left">
			<layoutData xsi:type="gmfgraph:BorderLayoutData"
				alignment="BEGINNING" />
			<layout xsi:type="gmfgraph:BorderLayout" />
			<backgroundColor xsi:type="gmfgraph:ConstantColor"
				value="yellow" />
			<children xsi:type="gmfgraph:Label" name="NodeColumnFigure"
				text="k">
				<layoutData xsi:type="gmfgraph:BorderLayoutData" />
			</children>
		</children>
		<children xsi:type="gmfgraph:Rectangle" name="right">
			<layoutData xsi:type="gmfgraph:BorderLayoutData"
				alignment="END" />
			<layout xsi:type="gmfgraph:BorderLayout" />
			<backgroundColor xsi:type="gmfgraph:ConstantColor"
				value="gray" />
			<children xsi:type="gmfgraph:Label" name="NodeSplitCountFigure"
				text="k">
				<layoutData xsi:type="gmfgraph:BorderLayoutData" />
			</children>
		</children>
	</actualFigure>
	<accessors accessor="getFigureColumn"
		figure="//@figures.0/@descriptors.0/@actualFigure/@children.0/@children.0" />
	<accessors
		figure="//@figures.0/@descriptors.0/@actualFigure/@children.1/@children.0" />
</descriptors>
```


----------

