org.eclipse.swt.widgets.Slider und negative Werte

hirsra

Aktives Mitglied
Hallo.

Ich soll für einen Slider das Minimum auf einen negativen Wert setzen. Doch leider geht das nicht so einfach. Hat jemand eine Idee wie ich den Bereich eines Sliders auch auf negative Werte erweitern kann? (Vielleicht mit einer Erweiterung welche den angezeigten Wert, und den mittels getSelection() erhaltenen Wert, mit einem (negativen) Offset verknüpft.

Also z.B. Range von 0..100, aber Anzeige und mit getSelection() erhaltene Werte z.B. im Bereich von -50..+50. (Durch einen Offset von -50)

Bin mal gespannt ob jemand einen Trick kennt.
Rainer
 
Die Doku Help - Eclipse Platform (ist war Helios und etwas veraltet, aber so viel tut sich an der SWT-API leider nicht mehr) verrät mir: Es geht einfach nicht.
Ich würde es tatsächlich dann auch nur irgendwo umrechnen und dann anzeigen. Was andere fällt mir da auch nicht ein. Sorry.
 
Also ich hab mal das Text-Widget in welchem der Value des Sliders angezeigt wird mit einem Verify-Listener versehen. Dieser Listener manipuliert nun über den erhaltenen Event den Wert für das Textfeld.(siehe nachfolgenden Code)

Java:
public class SliderOffsetHandler extends Object implements VerifyListener{
	private int offset;
	
	public SliderOffsetHandler(final int offset) {
		
		super();
		
		this.offset = offset;
	}
	
	public void verifyText(VerifyEvent event) {

		Activator.logger.info(String.format("verifyText: %s", event));
		
		event.text = Integer.valueOf((new Integer(event.text)).intValue()
                                           + this.offset).toString();
		event.doit = true;
	}

}

Dadurch hat zwar der Slider keine negativen Werte, aber das Textfeld das die Wert des Sliders anzeigt. Nun brauche in nur noch mit dem Wert des Textfelds weiterarbeiten.
 
Cool. Ich bin schon zu lange aus SWT raus und hätte noch nicht einmal die Idee mit dem VerificationListener gehabt ;-)
 

Zurück
Oben