#13 Validierung

closed
epc-editor (12)
5
2009-04-20
2009-03-12
No

Initiierung per Short-Cut oder per Modellmodifikationsereignis

Discussion

  • Jörg Hartmann

    Jörg Hartmann - 2009-04-20

    1) Shortcut erstellen: Dazu eine "org.eclipse.ui.bindings" und "org.eclipse.ui.commands" extension erstellen. Im binding wird unter sequence ein key für den Shortcut angegeben (Bsp.: F5). Weiter wird im command tag des bindings die id auf die commandId des commands gestellt.
    2) Popupmenü über "org.eclipse.ui.popupMenus" erstellen. Im action tag die definitionId an die commandId des commands anpassen. Danach ist der Shortcut an das Menü gebunden.
    3) Damit die Validierung in jedem Diagram separat an/ausgeschaltet, definiert jeder DiagramEditPart seinen eigenen Validator.
    4) Dem ResourceSet wird ein ResourceSetListener hinzugefügt. Dieser sollte von ResourceSetListenerImpl erben, da dieser ein Notification-Filter besitzt.
    5) Filter konfigurieren. Dazu werden die Features der Notifications überprüft. Ändern von Labels, Connections und Compartments wird über das EMF Model abgefangen.
    Bsp:
    BflowPackage bflow = BflowFactoryImpl.eINSTANCE.getBflowPackage();
    EAttribute symbolName = bflow.getBflowSymbol_Name();
    NotificationFilter.createFeatureFilter(symbolName);
    Wird ein Node erzeugt, existiert das EObject vor dem Node. Ein Fehler würde also nicht im Node angezeigt werden, da dieser beim erstellen, also beim hinzufügen des EObjects ins Model, noch nicht existiert. Deshalb wird beim erstellen von Nodes auf das GMF Model "geschaut".
    Bsp:
    NotationPackage notation = NotationFactoryImpl.eINSTANCE.getNotationPackage();
    EReference nodes = notation.getView_PersistedChildren();
    NotificationFilter.createFeatureFilter(nodes);
    Abschließend können Filter mittels logischer Operationen (or, and) verknüpft werden. Dabei ist zu beachten, das jeder Filter unveränderlich ist (analog zu Strings). Eine Operation erzeugt also immer einen neuen Filter.
    Bsp: NotificationFilter filter = filter1.or(filter2)
    6) Nachdem der Filter konfiguriert wurde, muss die Validerung gestartet werden.
    Dazu im ResourceSetListener die Methode resourceSetChanged(ResourceSetChangeEvent event) anpassen und dort die Validierung starten.
    Dafür muss im GMF Generator Model die Validierung mit Markern aktiviert werden. Nach dem generieren ist unter *diagram.part die Klasse ValidateAction vorhanden.
    Damit kann die Validierung mittel ValidateAction.runValidation( diagramEditPart,
    diagramEditPart.getDiagramView()) gestartet werden.

     
  • Jörg Hartmann

    Jörg Hartmann - 2009-04-20
    • status: open --> closed
     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks