Tuesday, June 24, 2008

GMF Read only

In manchen Projekten lohnt es sich auch auf GMF zu setzen selbst wenn das Diagram read only ist und somit die Editierfunktionen von dem Framework nicht gefragt sind. GMF kommt schon mit einigen Features out of the box daher die man für solche Einsätze erstmal abstellen muss. Im folgenden Bild kann man zum Beispiel ein Popup Feature sehen welches nicht mehr hochkommen soll und somit dem Anwender das Erstellen eines neuen Element untersagt:


In den EditParts findet man die Methode createDefaultEditPolicies. Hier ist der richtige Platz um die nicht gewünschten Feature zu unterdrücken oder besser gesagt zu removen. Im folgenden Code Snippet kann man sehen wie dies funktioniert:

/**

* @generated

*/

protected void createDefaultEditPolicies() {

super.createDefaultEditPolicies();

installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,

new TopicSubtopicsItemSemanticEditPolicy());

removeEditPolicy(EditPolicyRoles.POPUPBAR_ROLE);

}


Diese Methode sollte man allerdings auch am besten in einem CustomXXXEditPart überschreiben damit man die Generierung von GMF immer verwenden kann ohne großes Bauchweh zu haben.
Die Klasse EditPolicyRoles hat noch einige andere Rollen die je nach Nutzen removed oder geadded werden können.

Dann mal wieder viel Spaß beim testen.