Modelleigenschaften im Property Sheet ändern

anduril23

Grünschnabel
Hallo,
in meinem Editor habe ich in der Erweiterung der Klasse ShapeNodeEditPart die Methode

Code:
protected void refreshBounds(){
		syncWithModel();
		super.refreshBounds();
	}

überschrieben um die Eigenschaften x,y,width,length des Modell mit der Änderung der View abzugleichen. Dies geschieht in der Methode

Code:
private void syncWithModel(){
		NodeImpl o = ((NodeImpl)this.getModel());
		FootprintImpl fp = ((FootprintImpl)o.getElement());
		
		int length = this.getFigure().getBounds().height,
			width = this.getFigure().getBounds().width,
			x = this.getFigure().getBounds().x,
			y = this.getFigure().getBounds().y;
		
		if(x!=0 && fp.getX()!=x)fp.setX(new Integer(x));
		if(y!=0 && fp.getY()!=y)fp.setY(new Integer(y));
		if(length!=0 && fp.getLength()!=length)fp.setLength(new Integer(length));
		if(width!=0 && fp.getWidth()!=width){
			fp.setWidth(new Integer(width));	
		}
		
	}

Allerdings ist das so noch einen Schritt verzögert. Sprich, wenn ich in der View Größenänderungen vornehme wird das im Property Sheet erst dann aktualisiert, wenn ich die Größe in der View nochmal ändere. Dann wird dort der Wert der ersten Änderung angenommen. Was muss ich machen, damit der Wert direkt übernommen wird? Oder kann ich irgendwie direkt auf den Property Sheet zugreifen um ihn zu aktualisieren?

Danke

edit: Das Problem scheint zu sein, dass die Figur (ShapeNodeEditPart) zu diesem Zeitpunkt noch nicht aktualisiert zu sein. Width und height der Figur sind also noch die Alten. Wo muss ich denn ansetzen, damit ich von Hand die Modelleigenschaften ändern kann?
 
Zuletzt bearbeitet:
Zurück