2009-08-20 6 views
1

Ich habe ein MultiSlider Widget mit dem GWT und dem gwt-dnd Addon erstellt, um Texte zu bewerten. Auf dem Screenshot sehen Sie den Schieberegler mit dem Wert 50 außerhalb des Schiebereglers gezogen. Es kann nicht außerhalb der Leiste abgelegt werden, aber es kann außerhalb davon gezogen werden.GWT DnD: In einem AbsolutePanel ziehbar bleiben

alt text http://lt3.hogent.be/hendi_docs/stackoverflow/gwt-dnd-multislider.png

Gibt es eine Möglichkeit in GWT, immer die Gleitnippel innerhalb der Schieberegler zu halten?

EDIT:

Der Schieberegler ist ein AbsolutePanel, und es ist auch das einzige Ablageziel für die Slider-Buttons. Das Schieberleistenfeld ist auch das Begrenzungsfeld für den Drop-Controller. Es ist nicht möglich, außerhalb der Leiste zu springen, aber das Ziehen ist möglich.

Nun was ich wirklich gerne wissen ist, wenn es möglich ist, den Mauszeiger auf der Leiste zu halten. Wenn eine Schaltfläche herausgezogen wird, bleibt sie beim Ablegen an ihrer alten Position (also OK). Ist es möglich, nur vertikales DRAGGING zu erlauben? Kann die Mausposition beim Ziehen eingestellt werden?

Antwort

2

Ich habe dragController.setConstrainWidgetToBoundaryPanel(true) verwendet, und ich denke, dragController.setBehaviorConstrainedToBoundaryPanel(true) macht die gleiche Sache. Weitere Informationen finden Sie unter javadoc for your version.

+0

Das hält die Schieberegler in der Leiste, nachdem sie fallengelassen wurden. Ich möchte, dass die Schieberegler in der Leiste bleiben, während sie gezogen werden. Kann z.B. die Maus X-Position eingestellt werden? – pvoosten

+0

Entschuldigung, ich habe das umgebende Panel als Grenzbereich verwendet. Ihre Lösung funktioniert jetzt. Vielen Dank! – pvoosten

1

Die Methode, nach der Sie suchen, ist in AbstractDragController mit dieser Signatur definiert; void setBehaviorConstrainedToBoundaryPanel (boolean constrainedToBoundaryPanel);

Die Grenzfläche (oft im ersten Parameter zum Drag Controller-Konstruktor übergeben) sollte in diesem Fall ein AbsolutePanel sein, das den Schieberegler umschließt.

Es kann auch hilfreich sein, das absolute Panel zu visualisieren, wenn die Dinge nicht wie erwartet funktionieren: absolutePanel.getElement(). GetStyle(). SetProperty ("border", "1px gestrichelt rot");

Verwandte Themen