GEF Kanäle

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo an alle,

ich bin gef anfänger und möchte gerne ein kanal/rohr modellieren, dass flüssigkeit von einem device zum andern transportieren soll...die devices sind im moment einfach quadrate und die kanäle PolylineConnections und vom prinzip funktionierts auch, jetzt sitze ich seit ein paar tagen an nem problem zu dem mir verschiedene ansätze eingefallen sind, jedoch keiner funktioniert. ich möchte nämlich, wie bei kanälen üblich, die connections nicht als einfach polyline zeichnen.
meine ansätze waren:
1. im editpart des kanals zusätzlich eine polyline zeichnen, die sich in refreshvisuals immer wieder auf die polyline legt.
jedoch funktioniert die translation irgendwie nich, ausserdem hätte ich dann probleme beim drag&drop der connection bendpoints.
2. eine kanalklasse von polyline erben lassen und eine seele(einfache polyline) als attribut hinzufügen. jedoch hab ich keine ahnung wie ich dem updatemanager klar machen kann, dass er die mit zeichnen soll.

...das waren auch schon meine ideen, wie gesagt ich bin anfänger, vielleicht kann mir jmd von euch einen ansatz geben.

danke im voraus

daniel
 

paradox

Mitglied
ja...das ist die frage, entweder man zeichnet 2 polylines mit nem gewissen abstand, oder ein rectangle mit white als backgroundcolour, oder man erbt von polylineconnection und verändert irgendwie die zugrunde liegende figure.
ich dacht das hätte ich in meinen ansätzen beschrieben...ich weiß halt nich was am besten geeignet ist und ob man überhaupt so nen aufwand betreiben muss.
also prinzipiell will ich einfach nur nen kanal erstellen der per router definiert wird. wie man das am besten hinbekommt
weiß ich nich und die versuche, die ich angestrengt hab sind kläglich gescheitert.
ich möchte halt nur gern an dem router mechanismus von gef festhalten, deswegen ja der umweg über connections, sonst könnte ich wirklich einfach rectangles zeichnen.

daniel
 

Wildcard

Top Contributor
Überschreib doch die paintFigure der Connection-Figure und zeichne dort was du sehen möchtest
 

paradox

Mitglied
hi,
ich habe in der paintFigure() jetzt ein kleineres Rectangle gezeichnet in weiß, so bekomm ich dann meinen kanal...danke

mit dem aufbau des szenarios klappt jetzt alles super, jetzt möchte ich aber gerne eine simulation starten und in dieser soll flüssigkeit durch den kanal laufen. die flüssigkeit wollte ich jetzt ebenfalls in paintFigure() zusätzlich in den Kanal zeichnen, dazu setze ich über einen EditPart alle 200ms einen prozentwert für den füllstand des kanals, den ich dann neu zeichnen möchte, jedoch bekomm ich nich raus wie ich das erreichen kann.. ich habe verschieden kombination von repaint() über invalidate() und getUpdateManager().performUpdate() ausprobiert.
die paintFigure() methode wird aber nicht zu den gewünschten zeitpunkten (alle 200 ms) aufgerufen.

was mache ich falsch oder wie sollte ich es besser machen?
danke.

daniel
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben