# SWT Toolbar: Toolitem entfernen und wieder hinzufügen



## Gast (23. Aug 2007)

Hi

Ich suche nach einer Möglichkeit, wie ich bei einer Toolbar ein Toolitem zur Laufzeit entfernen und später an der selben Position wieder einfügen kann.

Obwohl das Problem eigentlich keines sein sollte, konnte ich bisher keine Lösung dafür finden und bin für Vorschläge dankbar.

Gruss Mike


----------



## Gast (23. Aug 2007)

Noch ein wenig mehr infos:

Initialisierung der Toolbar:

```
toolBar = new ToolBar(shell, SWT.WRAP);
```


Initialisierung eines Toolitems:

```
tConfigItem = new ToolItem(toolBar, SWT.END);
```


Nun suche ich nach etwas wie:

```
toolBar.removeItem(int index)
```
aber das gibts leider nicht....[/code]


----------



## merlin2 (23. Aug 2007)

Ich kenne mich mit SWT nicht aus, aber gibt es vielleicht folgendes?

```
remove(int)
```
oder

```
remove(ToolItem)
```


----------



## Gast (23. Aug 2007)

Leider nicht... alle remove Methoden beziehen sich auf irgendwelche Listener.
Trotzdem danke für die Antwort.


----------



## Wildcard (23. Aug 2007)

Ja... SWT ist ein Krampf und keine API.
Spontan fällt mir dazu auch nichts anderes ein, als mehrere Toolbars in ein StackLayout zu packen.  :autsch:


----------



## Gast (23. Aug 2007)

Die Lösung mit dem StackLayout passt leider nicht so wirklich.

Vielleicht noch der Hintergrund zur Frage: Ich entwickle ein Tool, welches auf einem iPAQ PDA läuft. Ich habe gerade ein Konfigurationsmenu dafür gemacht, welches es ermöglichen soll gewisse Funktionen zu deaktivieren (eben die Buttons aus der Toolbar zu entfernen). Blosses deaktivieren der Buttons ist nicht erwünscht (wäre ja auch zu schön gewesen  ).


----------



## Wildcard (23. Aug 2007)

Also mit JFace geht's so:

```
IToolBarManager manager = actionBars.getToolBarManager();
        manager.remove(IContributionItem)
```
Aber ich weiß nicht ob du JFace verwendest.
Im Zweifelsfall mal schauen wie die das umsetzen.


----------



## Gast (23. Aug 2007)

Ich verwende nicht JFace (das gibts in SWT glaub nicht), sondern die Klassen ToolBar und ToolItem.

Leider scheint es auch keinen entsprechenden ToolBarManager zu geben.

Aber ich denke, das Problem mus doch lösbar sein, ist ja eigentlich ne ziemlich elementare Sache.


----------



## Wildcard (23. Aug 2007)

JFace ist ein Lightweight Aufsatz auf SWT der die Programmierung etwas weniger schmerzhaft macht.
Benutzt du wirklich pures SWT?  :shock:


----------



## Guest (23. Aug 2007)

Wildcard hat gesagt.:
			
		

> Benutzt du wirklich pures SWT?  :shock:



glaub schon  

Ich mache an dem Tool nur einige Weiterentwicklungen. Und da das Teil auf dem PDA laufen muss, muss ich SWT verwenden.

Wie gehts denn ohne JFace?!


----------



## Wildcard (23. Aug 2007)

Wie gesagt, ich würde mir deren Implementierung ansehen.
Ich bin selbst kein SWT Fachmann und verwende es nur gezwungenermaßen und indirekt über JFace.


----------



## Wildcard (23. Aug 2007)

hmm, folgendes könnte funktionieren:
Das ToolItem disposen und danach layouten.
Wenn das Ding später aber wieder an die gleiche Stelle soll, müsstest du wohl alle disposen und neu erstellen.
Warum hat das Ding kein setVisible?  :lol:


----------



## Gast (23. Aug 2007)

ok, disposen könnte funktionieren. was meinst du mit layouten? refresehen, repainten?

weil disposen hab ich schon versucht, hatte alleine keine Wirkung.


----------



## Wildcard (23. Aug 2007)

Vom Composite den layout Manager geben lassen und layout aufrufen.


----------



## Gast (23. Aug 2007)

Ich hab grad gesehen, dass es auch ein Objekt namens CoolBar gibt, kennt sich wer damit aus? Könnte das Ding vielleicht mein Problem lösen?


----------



## Gast (23. Aug 2007)

dispose hat zur Folge, dass das Icon keine Funktion nicht mehr hat, aber sichtbar ist es leider noch immer...


----------



## Gast (2. Sep 2007)

Hi

Ich suche immer noch nach einer Möglichkeit das Problem zu lösen.. Hat vielleicht noch jemand eine Idee?!

Gibt es eine Möglichkeit über Layouts die ToolItems zu entfernen?

Thx & Gruss

Mike


----------

