JFace TableViewer mit verschiedenen Inhalten

Status
Nicht offen für weitere Antworten.

dzim

Top Contributor
Hallo zusammen,

ich bastel (immer noch) an meiner mittlerweise recht komplexen RCP-Anwendung und nachdem die ersten Hürden genommen wurden ging es auch gut vorwärts.
Jetzt aber bin ich ein wenig ins stocken geraten, da ich nicht weiiß, wie ich eine weitere Tabelle anlegen sollte.
Leider finde ich auch nix passendes im Netz, so wollte ich euch mal fragen.

Problem: Tabelle bestehend aus 3 Spalten

Code:
		assignTable = assignViewer.getTable();
		// FormLayout Blabla
		final FormData fd_table_1 = new FormData();
		fd_table_1.right = new FormAttachment(0, 489);
		fd_table_1.bottom = new FormAttachment(100, -57);
		fd_table_1.top = new FormAttachment(table, 5, SWT.DEFAULT);
		fd_table_1.left = new FormAttachment(0, 5);
		assignTable.setLayoutData(fd_table_1);

		assignTable.setLinesVisible(true);
		assignTable.setHeaderVisible(true);

		for (int i = 0; i < 3; i++) {
			final TableViewerColumn newColumnTableColumn = new TableViewerColumn(
					assignViewer, SWT.NONE);// new TableColumn(table, SWT.NONE);

			final int index = i;

			if (index==0) {
				newColumnTableColumn.getColumn().setWidth(200);
				newColumnTableColumn.getColumn().setText("CSV");
			}
			
			if (index==1) {
				newColumnTableColumn.getColumn().setWidth(200);
				newColumnTableColumn.getColumn().setText("map");
			}
			
			if (index==2) {
				newColumnTableColumn.getColumn().setWidth(50);
				newColumnTableColumn.getColumn().setText("check");
			}

			newColumnTableColumn.getColumn().setMoveable(false);
		}

...jede Spalte soll anders gehandhabt werden...

erste Spalte: Text (aus einer List<String> - aus meinem Model)
zweite Spalte: ComboBox - also DropDown-Box oder wie das heißt (erst einmal aus etwa 10 verschieden hardgecodeten einträgen)
dritte Spalte: Checkbox - häckchen gesetzt = true, ansonsten halt false

Ich weiß erstens nicht, wie die Tabelle von dem oben gezeigtem Quellcode weiter zu implementieren ist, aber auch nicht, wie ich da Content-/LabelProvider oder Editing Support implementieren soll.
Ich finde das gerade alles recht verwirrend!

Danke für eure Ratschläge/Links/whatever
D
 

byte

Top Contributor
Du musst einen Label und einen ContentProvider implementieren und dem TableViewer setzen. Danach setzt Du dem TableViewer mit setInput den Inhalt, also die entsprechenden Daten Deines Modells. Die Provider implementieren Callback-Methoden, die vom TableViewer aufgerufen werden, um (i) zu bestimmen, welche Objekte im Viewer angezeigt werden (ContentProvider) und (ii) zum bestimmen, wie diese Objekte dargestellt werden (LabelProvider). Der ContentProvider wird initial mit dem Objekt aufgerufen, das Du per setInput() dem Viewer gesetzt hast.
Wie Du diese beiden Interfaces implementierst, entnimmst Du der JFace API.
 

dzim

Top Contributor
Danke für das feedback.
Allerdings war ich damit schon soweit - ich habe erfolgreich eine Liste von Map<String,String>-Objekten in eine parallel laufende Tabelle gebracht (frag bitte nicht nach dem Sinn, aber es geht)
Problem ist wirklich mehr mein mangeldes Verstandnis dafür, die drei verschidenen Inhaltsmodelle - also Text, DropDown und Checkbox - in eine Tabelle zu vereinigen und zu verwalten...

D
 

dzim

Top Contributor
Getreu dem Motto "Trial & Error" habe ich es hinbekommen, ein eigens für diesen Viewer angelegtes einfaches, hardgecodetes Modell anzeigen zu lassen.
Auch über einen EditingSupport klappt es, eine der drei Zeilen mit einem CheckboxCellEditor von true auf false umzustellen und zurück.
Dabei ist es korrekt, dass die erste Zeile keinen Editor hat, die zweite soll einen ComboBoxCellEditor besitzen, die dritte besagten CheckBoxEditor.
Allerdings wird trotz (meiner Meinung nach korrektem) initialisieren des ComboBoxCellEditors nix angezeigt. Nada,

Code:
public CSVMappingTableEditingSupport(ColumnViewer viewer,
			MappingModel mapping, int column) {
		super(viewer);

		String[] map = new String[mapping.getMapping().size()];
		for (int i = 0; i < mapping.getMapping().size(); i++)
			map[i] = mapping.getMapping().get(i);
		
		if (column == 1)
			this.combo_editor = new ComboBoxCellEditor(((TableViewer) viewer)
					.getTable(), map);
		
		else if (column == 2)
			this.check_editor = new CheckboxCellEditor(((TableViewer) viewer)
					.getTable());

		this.mapping = mapping;
		this.column = column;
	}

Ich bin betriebsblind - ich seh den Fehler nicht...

D

edit:
Trotz hin und her spielens habe ich es nicht hinbekommen, den ComboBoxCellEditor tatsächlich darstellen zu lassen.
Er ist (laut meinen Tests) angelegt, die Liste der darzustellenden Begriffe ist gefüllt (konnte sie mit editor.getItems() nett auslesen) aber keinen Fehler finden. Ich raff es allmählich echt nicht mehr.
 

dzim

Top Contributor
Fehler gefunden:

Im EditingSupport und der getData() funktion lag die Ursache für das Problem. Nur ein falsches Handling der zu verarbeitenden Daten...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D SWT JFace TableViewer nächster CellEditor nach Enter aktivieren AWT, Swing, JavaFX & SWT 5
dzim NullPointer bei refresh() einer JFace TableViewer AWT, Swing, JavaFX & SWT 2
M JFace TableViewer + ContentProvider, wo sind die Spalten? AWT, Swing, JavaFX & SWT 6
B JFace Bezugsquelle AWT, Swing, JavaFX & SWT 5
A JFace/SWT: ListViewer Inhalt nach Selection in zweitem List Viewer aktualisieren! AWT, Swing, JavaFX & SWT 5
A JFace Wizard: Ist es möglich eine Page zu löschen? AWT, Swing, JavaFX & SWT 2
M Filter in die JFace/SWT Tabelle einbauen AWT, Swing, JavaFX & SWT 5
I SWTBot und JFace AWT, Swing, JavaFX & SWT 2
lumo SWT JFace Databinding +Custom Table AWT, Swing, JavaFX & SWT 2
E JFace ListSelectionDialog & Mouse-Events? AWT, Swing, JavaFX & SWT 2
M SWT /Jface Wann einen ColumnLabelProvider benutzen? AWT, Swing, JavaFX & SWT 2
K SWT/JFace AWT, Swing, JavaFX & SWT 8
J SWT JFace Tree in Section unsichtbar (Eclipse Forms) AWT, Swing, JavaFX & SWT 5
A SWT Eclipse JFace Binding TreeViewer AWT, Swing, JavaFX & SWT 4
J Welche Fallstricke gibt es bei TreeTables in SWT/JFace AWT, Swing, JavaFX & SWT 3
M SWT Jface Action und localised Strings AWT, Swing, JavaFX & SWT 6
M sortierbare Tabelle mit jface und databinding AWT, Swing, JavaFX & SWT 3
B Sudokuartiger View (RadiobuttonTableView) mit JFace Viewer? AWT, Swing, JavaFX & SWT 3
D SWT JFace Wizard Progressbar AWT, Swing, JavaFX & SWT 4
E SWT JFace TitleAreaDialog OK Button sperren AWT, Swing, JavaFX & SWT 3
N swt und awt in JFace ummodeln AWT, Swing, JavaFX & SWT 13
V SWT/JFace Interessante Links AWT, Swing, JavaFX & SWT 3
dzim JFace ListViewer-Einträge mit CellEditor? AWT, Swing, JavaFX & SWT 3
X RCP/SWT/JFace: Sprache lässt sich nicht ändern AWT, Swing, JavaFX & SWT 3
L Frage zu Erstellung des Menu mit JFace AWT, Swing, JavaFX & SWT 2
A Jface: Wie Inhalt des Hauptbereichs verändern AWT, Swing, JavaFX & SWT 5
S JFace Startprobleme AWT, Swing, JavaFX & SWT 2
G HTML-Link mit SWT bzw. JFACE AWT, Swing, JavaFX & SWT 4
G Dynamic Help mit SWT/JFace AWT, Swing, JavaFX & SWT 5
G JFace/SWT contra AWT/Swing AWT, Swing, JavaFX & SWT 10
F [jFace] ListViewer: zusätzliche Infos anzeigen lassen AWT, Swing, JavaFX & SWT 2
D JDIC Browser in SWT/JFace Anwendung nutzen AWT, Swing, JavaFX & SWT 2
S SWT/JFace TreeViewer: Rootknoten anzeigen AWT, Swing, JavaFX & SWT 10
J Fehler bei Applikationen mit JFace AWT, Swing, JavaFX & SWT 2
G JFace benutzen, aber wie! AWT, Swing, JavaFX & SWT 2
byte SWT -> JFace: TreeViewer AWT, Swing, JavaFX & SWT 4
S SWT/JFace TreeViewer-Problem AWT, Swing, JavaFX & SWT 2
V SWT (JFace): Foreground des Textes im TreeViewer ändern. AWT, Swing, JavaFX & SWT 2
V SWT (JFace): bekomme das FormLayout nicht hin. AWT, Swing, JavaFX & SWT 4
L (jface) InputDialog erweitern. AWT, Swing, JavaFX & SWT 2
K JavaFX TableViewer zeigt nichts an !! AWT, Swing, JavaFX & SWT 1
F TableViewer und Databinding Problem AWT, Swing, JavaFX & SWT 3
C SWT Wie greife ich auf den Inhalt einer bestimmten Zeile zu? (TableViewer) AWT, Swing, JavaFX & SWT 7
K SWT Group um TableViewer AWT, Swing, JavaFX & SWT 2
J Decorated TableViewer mit falschen Werten AWT, Swing, JavaFX & SWT 4
O Anzahl der Zeilen im TableViewer AWT, Swing, JavaFX & SWT 12
K SWT TableViewer refresh() im Dialog AWT, Swing, JavaFX & SWT 2
lumo SWT TableViewer und IColorProvider AWT, Swing, JavaFX & SWT 9
D SWT SWT TableViewer ausrichtung des Inhaltes nach Datentyp AWT, Swing, JavaFX & SWT 2
S TableViewer und Databinding AWT, Swing, JavaFX & SWT 7
dzim [SWT] Seltsames verhalten bei TableViewer mit TextCellEditor AWT, Swing, JavaFX & SWT 5
S Button in Tableviewer? AWT, Swing, JavaFX & SWT 10
C TableViewer Contentprovider AWT, Swing, JavaFX & SWT 8
JavaJakob22 ButtonGroups in verschiedenen Packages AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
P Zwischen verschiedenen Panels wechseln AWT, Swing, JavaFX & SWT 3
N JavaFX TreeView mit verschiedenen Datentypen AWT, Swing, JavaFX & SWT 8
B Java FX TableView Zeilen mit verschiedenen Typen AWT, Swing, JavaFX & SWT 15
R JTextArea mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 6
C Swing Aus verschiedenen Klassen zeichnen. AWT, Swing, JavaFX & SWT 2
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
F Swing Drag and Drop in JTree aus verschiedenen Listen AWT, Swing, JavaFX & SWT 6
HaukeG Swing Drag & Drop in verschiedenen Varianten AWT, Swing, JavaFX & SWT 4
X JTable mit verschiedenen Objekten füllen AWT, Swing, JavaFX & SWT 14
F jTable mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 4
MQue JTable mit verschiedenen Models AWT, Swing, JavaFX & SWT 4
K Design von verschiedenen Rechnern AWT, Swing, JavaFX & SWT 13
A Verständnissproblem bei verschiedenen GUI's AWT, Swing, JavaFX & SWT 6
A Design Problem bei verschiedenen Oberflächen AWT, Swing, JavaFX & SWT 3
S [SWT] Toogle Button 2 verschiedenen images? AWT, Swing, JavaFX & SWT 6
S Starten von verschiedenen JFrames AWT, Swing, JavaFX & SWT 11
C Verschachtelung von JPanels mit verschiedenen LayoutManager AWT, Swing, JavaFX & SWT 4
B Auto. anpassen bei verschiedenen Aulösungen AWT, Swing, JavaFX & SWT 9
T Die Schrift in verschiedenen Farben blinken zu lassen AWT, Swing, JavaFX & SWT 2
D Textzeielen mit verschiedenen Textfarben in JList? AWT, Swing, JavaFX & SWT 6
P in JFrame zwischen verschiedenen JPanels wechseln AWT, Swing, JavaFX & SWT 7
N Zufallszahlen in verschiedenen Bereichen. AWT, Swing, JavaFX & SWT 4
B JList Zeilen in verschiedenen Farben markieren. AWT, Swing, JavaFX & SWT 3
K JTextArea mit verschiedenen Farben betreiben [Chat] AWT, Swing, JavaFX & SWT 3
G JTextArea.append() in verschiedenen Farben AWT, Swing, JavaFX & SWT 2
J Daten in verschiedenen JTables AWT, Swing, JavaFX & SWT 5
K JFrames in verschiedenen Fenstern AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben