# Tabellenspalten anzeigen und verstecken



## dzim (1. Apr 2010)

Hallo zusammen,

der Titel des Threads hier sagt eigentlich schon alles:
Ich möchte gerne wissen, ob (die Antwort wird wohl ja sein) und wie (das ist das eigentliche Problem) man Tabellenspalten anzeigen und verstecken (idealerweise auch neu arrangieren kann) kann, wie es etwa im "Tasks"-View in Eclipse gemacht werden kann (rechts der Pfeil nach unten > Column... (und dann im "Configure Columns"-Dialog)).

Viele Grüße und vielen Dank,
Daniel


----------



## Wildcard (2. Apr 2010)

Die TableColumn kannst du mit dispose entfernen und verschieben geht mit TableColumn.setMovable


----------



## dzim (6. Apr 2010)

Hi,

ich hab es jetzt gemacht, wie Lars Vogel es beschrieben hat: Eclipse JFace TableViewer - Tutorial

ABER: Es gibt auch da noch Probleme!
Ich habe eine Tabelle mit TableColumnLayout, wenn ich da jetzt die letzte Spalte entferne, wird sie zwar auf Breite 0 gesetzt, aber dennoch mit der letzen Breite (bei mir. z.B. 100) angezeigt. K.A. was man dagegen tun kann...

Disposen ist an und für sich gut, aber dann müsste ich die ja wieder komplett anlegen - ich weiß nicht, ob sich das mit meinem TableViewer so gut verträgt und so viel arbeit wollte ich da eigentlich nicht rein stecken...


----------



## Wildcard (6. Apr 2010)

Es gibt für SWT jede Menge mächtigere Table Implementierungen. Vielleicht passt eine davon besser für dich? Siehe zum Beispiel Nebula:
Nebula Project


----------



## lumo (7. Apr 2010)

ich hab mit den tabellen lange rumgekämpft (mit den celleditoren kämpf ich noch immer)
hab das so gelöst dass wenn ich eine spalte nicht angezeigt haben will

setze ich die breite auf 0 und danach moveable/resizeable = false
wenn ich sie wieder sichtbar mache, dann umgekehrt, moveable/resizeable = true und dann die breite auf die alte gespeicherte breite zurücksetzen.

danach (musst du nur noch den tablecursor, insofern du einen verwendest) so umschreiben, dass er ausgeblendete spalten überspringt (hab ich schon implementiert, also wenn du das brauchst, meld dich...)


----------



## dzim (7. Apr 2010)

@Wildcard:
Hm. ich hab schon einige Widgets von Nebula verwendet (PShelf, FormattedText und DateChooser um genau zu sein).
XViewer scheint da das zu sein, was ich verwenden sollte... auch wenn ich keinen Tree brauche. Aber das ist ja meine Sache, wie ich es dar stelle. Grind sieht zwar (vor allem aus Kundensicht - die lieben Excel-Tabellen gerade zu abgöttisch... :-/ ).
Noch gibt es gute Möglichkeiten, was anderes zu probieren.
Danke für den Tipp!

@lumo: Wie hast du das Problem in den Griff bekommen, dass er dennoch immer die letzte Spalte anzeigen will? Ich hab auch mal Lars Vogel angeschrieben und er meinte, das ist nen bug der API - wenn du einen Workaround hast, wäre das wohl nicht nur für mich, sondern auch für ihn und sein Tutorial interessant. Letzten Endes aber bin ich opportunistisch: Wenn du mir deinen Codeschnippsel schicken könntest, wäre das super!


----------



## lumo (7. Apr 2010)

@dzim ich bin nicht über das problem gelaufen, dass ich eine spalte nicht ausblenden kann...
hab allerdings kein tutorial verwendet...

@all wie installier/update ich meine nebula components?
hab die binaries runtergeladen, aber in meiner palette erscheinen die trotzdem nicht *huh?*

unten angehängt mein beispiel, sollte eigentlich genau das tun, was du suchst...
(den cell editor kannst du rauswerfen und einen eigenen einsetzen, das ist z.Z. mein schlaftfeld )

wenn ich jetzt noch nebula in mein ide reinbekomme, dann könnte ich mir das auch ansehen (nebula selbst hab ich ja eigentlich schon drin, nur fehlen mir ein paar dieser komponenten - tollerweise genau die, die ich brauchen würde...)


----------



## dzim (7. Apr 2010)

Ich hab's so gemacht:
1) zips geladen und entpackt (da drin sollten dann die plugins und features sein)
2) in Eclipse: Preferences > Plug-In Development > Target Platform > dort die aktive Platform wählen und mit "edit" anpassen
3) "add" > Directory und dann das Verzeichnis mit den plugins und features angeben (ich hab die Nebula-Sachen in einem und die Delta-Pack-Sachen in einem jeweils anderen Verzeichnis und nicht ins Eclipse selbst hinein - finde ich macht sich leichter beim warten, speziell wenn ich nen update vom Eclipse selbst mache)

Wenn du dann "Finish" drückst, wird die Target Platform neu geladen und du kanns die Nebula-Plugins als normale Plugins in deine Dependencies eintragen - die identifier enthalten IMHO immer nebula im Namen).


----------



## dzim (7. Apr 2010)

hey lumo: einen kleinen issue hab ich noch gefunden...
wenn du die zweite spalte schließt, nimmt deine dritte automatisch deren platz ein, schließt du diese auch, wird der neue (und viel größere wert gespeichert - beim neu öffnen ist die jobspalte dann auf einmal sehr breit... aber ansonsten hast du nicht das problem wie ich, daher werde ich mal versuchen deinen überichtlich dokumentierten code zu verstehen und replizieren ;-)

edit:
also deine createMenuItem-Methode sieht auch nicht viel anders aus als meine, nur dass ich nicht die werte in props speicher. und trotzdem geht es nicht :-(


----------



## lumo (7. Apr 2010)

dzim hat gesagt.:


> daher werde ich mal versuchen deinen überichtlich dokumentierten code zu verstehen und replizieren ;-)


ironie  *G* dokumentiert wird am schlachtfeld nicht! da wird nur geklebt und weggeworfen (zumindest bei mir so)

bei code der weiter verwendet wird, gibts nat. javadoc und comments

bei etwaigen fragen einfach hier posten, bin morgen vormittag wieder online


----------



## Wildcard (7. Apr 2010)

zu Nebula: die einzelnen Widgets haben auch eine Update Site. Ihr könnt das also entweder direkt in die IDE installieren, oder per Target Platform Definition auf die Update Seite(n) zeigen.


----------



## lumo (8. Apr 2010)

ja, nur dass die angegebenen update seiten nicht bei allen funktionieren.
eclipse sagt mir dass dort kein installierbares package liegt (bei einigen)

was ich auch nicht ganz verstehe, warum gibts da keine komplette sammlung? (sodass man nicht alle links einzeln hinzufügen muss)

BTW: ich habs direkt per updateseite (eine komponente ging (drei versucht)) ins ide installiert
aber im gui editor gibts die trotzdem noch nicht... ich kann komponenten mit ner jar hinzufügen, allerdings akzeptiert er die jar nicht als valid component *mann mann mann*

genaue nachricht für die update-seite: "There are no categorized items"

hier noch die info, wenn ich versuche die component händisch hinzuzufügen (plugin und feature hab ich in den eclipse ordner geschoben!)
also er findet das package die klasse und alles, aber nach dem auswählen sagt er class not found :noe:;(


----------



## Wildcard (9. Apr 2010)

Mach den Teil des Codes doch ohne VE.


----------



## lumo (12. Apr 2010)

Wildcard hat gesagt.:


> Mach den Teil des Codes doch ohne VE.



lol, das ist nicht hilfreich.
es geht ja drum das ich die komponente gar nicht in meinen editor bekomme...
wozu kaufe ich einen visuellen editor, wenn ichs danach ohne den editor per hand schreibe?
hinweis: ja der editor kann mit den nebula komponenten umgehen... das problem liegt wohl wo anders (hab zig nebula komponenten eingebunden - ein paar "fehlen" eben...)


----------



## Wildcard (12. Apr 2010)

lumo hat gesagt.:


> lol, das ist nicht hilfreich.
> es geht ja drum das ich die komponente gar nicht in meinen editor bekomme...
> wozu kaufe ich einen visuellen editor, wenn ichs danach ohne den editor per hand schreibe?


Welchen Editor denn? Den VE muss man nicht kaufen. Egal welcher es ist, er wird wohl mit eigenen Controls umgehen können? Schrei (händisch) ein Composite in das du deine Nebula Komponete packst, nenn es MyNebulaXYBean, binde es ein und schon hast du VE Support (und vorher solltest du einen Bug Report erstellen damit das Problem in Zukunft nicht mehr auftritt)


----------



## lumo (13. Apr 2010)

ich verwende den WindowBuilder Pro das ist so ziemlich der beste gui editor den ich bis jetzt verwendet habe (und ist nicht mal extrem teuer)

nochmal... das problem liegt definitiv nicht am editor, der zeigt mir jede komponente, solange diese von eclipse gefunden wird...
das problem ist ja, dass eclipse mir die namen im autocomplete sogar anzeigt, allerdings wenn ich sie dann ausgewählht habe, schreit er auf dass er die klasse nicht findet -> woher hat er dann das autocomplete?? (wie im oberen screenshot)


----------



## lumo (13. Apr 2010)

so, hab jetzt versucht die nebula komponenten aus ihrem CVS auszuchecken...

Nebula Source Code

-> shock


----------

