hi,
mein Problem liegt im NotationPackage. und zwar hab ich attribute die mit dem NotationPackage mitaktualisiert gehören. Wie stelle ich es an?
Also sobald sich etwas an der Größe der Figur ändert, werden die Attributswerte mitgesetzt. doch das problem ist, dass die Notationpackage werte nicht geändert werden, auch nicht mit setLocation() setSize() refresh(), wie kann ich diese manuel setzen? ist es möglich? oder muss ich mir bei jedem mal neu laden, alle verfügbaren elemente reinladen, .updateFace() machen (setzt mittels den hilfsvariablen die größe), dass sie sich zur aktuellen größe wieder ausklappen?
Also kann mir wer sagen wie ich am besten Werte vom NotationPackage ändere?
ich hab 3 möglichkeiten nur weiß ich nicht welche die bessere ist, da alle nicht so toll sind
-über addPropertyChangeListener()
-über aktuallisierung bei neuladen und diese neu zeichnen (nur wenn es anders nicht geht oder nur vorrübergehend)
-direktes setzen im NotationPackage, nur weiß ich nicht wie
meine werte sind übrigens
NotationPackage.eINSTANCE.getLocation_X();
NotationPackage.eINSTANCE.getLocation_Y();
.
.
(die Location und Size)
Danke
mein Problem liegt im NotationPackage. und zwar hab ich attribute die mit dem NotationPackage mitaktualisiert gehören. Wie stelle ich es an?
Java:
@Override
protected void handleNotificationEvent(Notification notification) {
if (notification.getNotifier() instanceof ElementImpl) {
RectangleImpl notifier = (RectangleImpl) notification.getNotifier();
int featureId = ((EAttribute) notification.getFeature())
.getFeatureID();
x = notifier.getX();
y = notifier.getY();
width = notifier.getWidth();
height = notifier.getHeight();
switch (featureId) {
case 0:
this.getPrimaryShape().updateFace();
break;
case 1:
this.getPrimaryShape().updateFace();
break;
case 3:
this.getPrimaryShape().updateFace();
break;
case 4:
this.getPrimaryShape().updateFace();
break;
default:
System.out.println("default");
break;
}
System.out.println("getFeatureid "
+ ((EAttribute) notification.getFeature()).getFeatureID()
+ " value " + notification.getNewValue());
// notifier.eSet(((EAttribute)notification.getFeature()).getFeatureID(),
// notification.getNewValue());
((RectangleShapeFigure) getPrimaryShape()).updateFace();
}
super.handleNotificationEvent(notification);
}
Also sobald sich etwas an der Größe der Figur ändert, werden die Attributswerte mitgesetzt. doch das problem ist, dass die Notationpackage werte nicht geändert werden, auch nicht mit setLocation() setSize() refresh(), wie kann ich diese manuel setzen? ist es möglich? oder muss ich mir bei jedem mal neu laden, alle verfügbaren elemente reinladen, .updateFace() machen (setzt mittels den hilfsvariablen die größe), dass sie sich zur aktuellen größe wieder ausklappen?
Also kann mir wer sagen wie ich am besten Werte vom NotationPackage ändere?
ich hab 3 möglichkeiten nur weiß ich nicht welche die bessere ist, da alle nicht so toll sind
-über addPropertyChangeListener()
-über aktuallisierung bei neuladen und diese neu zeichnen (nur wenn es anders nicht geht oder nur vorrübergehend)
-direktes setzen im NotationPackage, nur weiß ich nicht wie
meine werte sind übrigens
NotationPackage.eINSTANCE.getLocation_X();
NotationPackage.eINSTANCE.getLocation_Y();
.
.
(die Location und Size)
Danke
Zuletzt bearbeitet: