expandBar....collapse/expand automatisch

Ronin-Jay

Erfahrenes Mitglied
Hallo,

ich würde gerne meine Expandbars (3Stück) zeitgesteuert für eine Anzeige öffnen und schließen lassen. Wie muß ich da vorgehen. Die "Bars" kann man ja einfach über .setExpanded(true/false) schließen oder öffnen. Wenn ich die Aktion auf nen Button lege, funktioniert auch alles wunderbar.
Wenn ich es jetzt allerdings zeitgesteuert ablaufen lasse:
Java:
...
item0.setExpanded(false);
item1.setExpanded(true);
Thread.sleep(5000);
item1.setExpanded(false);
item2.setExpanded(true);
...
dann passiert nichts? Woran liegts?
Ich möchte es letztendlich so realisieren, daß man einen Zeitraum definiert (8-10Uhr => Item0, 10:30-14Uhr => item1, 14-... => item2) und die Bars dann automatisch wechseln...
 
Hallo,

füge folgenden Code-Abschnitt in die Snippet-Klasse ein (einfach in die Main-Methode, aber direkt nachdem shell.open();):
Java:
new Thread(new Runnable() {
	/** {@inheritDoc} */
	public void run() {
		while (!display.isDisposed()) {
			final Calendar cal = Calendar.getInstance();
			final int sec = cal.get(Calendar.SECOND);
			display.asyncExec(new Runnable() {
				public void run() {
					if (sec % 3 == 0) {
						item0.setExpanded(true);
						item1.setExpanded(false);
						item2.setExpanded(false);
					} else if (sec % 2 == 0) {
						item0.setExpanded(false);
						item1.setExpanded(true);
						item2.setExpanded(false);
					} else {
						item0.setExpanded(false);
						item1.setExpanded(false);
						item2.setExpanded(true);
					}
				}
			});
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
			}
		}
	}
}).start();
Wenn's das ist, was Du suchst, passe den Code einfach an Deine Klasse an (z.B. in der while-Schleife kannst Du nach aktuellen HOURs fragen und die Bedingungen entsprechend ändern).

Grüße
Vincent
 
Vielen Dank Vincent!
Also muß ich es def. in einen eigenen Thread packen!? Jedenfalls klappt es so wie ich es mir vorstelle....

Vielen Dank für Deine schnelle Hilfe.
 
Zurück