Eclipse-Platform Combo-Binding für User-Einträge

MarkusJo

Mitglied
Hallo,
ich habe eine editierbare ComboBox auf meinem Screen. Sie stellt einen String Array dar und ist auf ein String-Feld gebunden.

Das Binding sieht wie folgt aus

Java:
		IViewerObservableValue orderNumberViewerObsevable = ViewersObservables.observeSingleSelection(this.orderNumberComboViewer);
		IObservableValue orderNumberModelObsevable = EMFEditProperties.value(editingDomain, TimetablePackage.Literals.PROTOCOL_SHEET_ENTRY__ORDER_NUMBER).observeDetail(masterTreeViewerObservable);
		bindingContext.bindValue(orderNumberViewerObsevable, orderNumberModelObsevable);

Es funzt auch, wenn ich einen Eintrag auswähle der in der Input-Liste ist.....ich mag jedoch auch die Möglichkeit haben selbst einen Eintrag ins Textfeld der ComboBox zu tippen....der soll dann auch im gebunden String-Attribut stehen.....das funzt jedoch nicht. Wenn ich in die Combo einen String eintrage der nicht in der InputListe ist wird er nicht ins Modell geschrieben. Und wen ich ins Modell einen String schreibe der nicht in er InputListe ist wird dieser auch nicht hoch in die Ui (die Combo) geschrieben.

Geht das denn ? Was muss ich dazu noch tun ?

Grüße
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Es funzt auch, wenn ich einen Eintrag auswähle der in der Input-Liste ist.....ich mag jedoch auch die Möglichkeit haben selbst einen Eintrag ins Textfeld der ComboBox zu tippen....der soll dann auch im gebunden String-Attribut stehen.....das funzt jedoch nicht. Wenn ich in die Combo einen String eintrage der nicht in der InputListe ist wird er nicht ins Modell geschrieben. Und wen ich ins Modell einen String schreibe der nicht in er InputListe ist wird dieser auch nicht hoch in die Ui (die Combo) geschrieben.

Warum nimmst du für sowas eine Combo?

Nimm einfach ein Text mit AutoCompletion dann ist das binding auch easy und hast sogar Filterung dabei.

swt-jface:autocompletefield - Java Wiki
 

MarkusJo

Mitglied
Ich nehme eine Combo, weil der Nutzer die Vorschläge alle direkt sehen soll und nicht erst wie bei Autocompletion wenn er erste Buchstaben eingestippt hat.

Weiß denn jemand ob/wie das geht ?
 

MarkusJo

Mitglied
Geht auch ? Dass man bei dem AutoCompletion Feld die Auswahlen sieht ohne überhaupt einen Buchstaben eingegeben zu haben ? Wie ? Wo stehen die Eclipse Methodenvorschläge ?
 
G

Gast2

Gast
Ja musst ein bischen Code lesen ist ja alles Open Source.
Die AutoCompletion Klasse ist ja nur ein Wrapper um das eigentlich Proposal, soviel ich weiß kannst du irgendwo ein Short Cut setzen wann die Liste aufgehen soll.
Musst halt eine MyAutoCompletion machen. Ich weiß ja nicht wann du die Completion öffnen willst.

War ja auch noch so eine Idee.
 

MarkusJo

Mitglied
Nagut, das würde ich wohl finden.

Das Feldchen wäre für eine andere Stelle bei mir im Code schick....aber da geht es um comlexe Objekte die in der Auswahlliste zu sehen sein müssten.....also zwar schon deren Text-Repräsentation, aber dahinter würde ein Datentyp liegen der dann auch ins Modell geschrieben werden sollte. Das geht mir diesem Feld nicht oder ?

Gibt es etwas vorgefertigtes was das kann und was man auch schön per SWT-Bindung binden kann ?
 
G

Gast2

Gast
Nagut, das würde ich wohl finden.

Das Feldchen wäre für eine andere Stelle bei mir im Code schick....aber da geht es um comlexe Objekte die in der Auswahlliste zu sehen sein müssten.....also zwar schon deren Text-Repräsentation, aber dahinter würde ein Datentyp liegen der dann auch ins Modell geschrieben werden sollte. Das geht mir diesem Feld nicht oder ?

Gibt es etwas vorgefertigtes was das kann und was man auch schön per SWT-Bindung binden kann ?

Ja mach einfach mal ein fertiges KSKB, um dein Problem nachzuvollziehen. Normal sollte das auch so mit einer Combo gehen. Ich sehe kein Grund war dagegen spricht. Bist hast du nur die Selection gebunden, die Eingabe musst du natürlich auch noch binden.

EDIT:
Also du brauchst ein 2tes Binding mit sowas hier
IObservableValue widgetObservable1 = WidgetProperties.text().observe(viewer.getControl());
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Hier hast mal was zum rumspielen
Java:
package test;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;

import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.beans.BeanProperties;
import org.eclipse.core.databinding.beans.PojoObservables;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.databinding.viewers.IViewerObservableValue;
import org.eclipse.jface.databinding.viewers.ViewerProperties;
import org.eclipse.jface.databinding.viewers.ViewersObservables;
import org.eclipse.jface.fieldassist.AutoCompleteField;
import org.eclipse.jface.fieldassist.ComboContentAdapter;
import org.eclipse.jface.fieldassist.TextContentAdapter;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;

public class View extends ViewPart {
	public static final String ID = "test.view";

	private ComboViewer viewer;

	private Person person = new Person();

	/**
	 * The content provider class is responsible for providing objects to the
	 * view. It can wrap existing objects in adapters or simply return objects
	 * as-is. These objects may be sensitive to the current input of the view,
	 * or ignore it and always show the same content (like Task List, for
	 * example).
	 */
	class ViewContentProvider implements IStructuredContentProvider {
		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
		}

		public void dispose() {
		}

		public Object[] getElements(Object parent) {
			if (parent instanceof Object[]) {
				return (Object[]) parent;
			}
			return new Object[0];
		}
	}

	class ViewLabelProvider extends LabelProvider implements
			ITableLabelProvider {
		public String getColumnText(Object obj, int index) {
			return getText(obj);
		}

		public Image getColumnImage(Object obj, int index) {
			return getImage(obj);
		}

		public Image getImage(Object obj) {
			return PlatformUI.getWorkbench().getSharedImages()
					.getImage(ISharedImages.IMG_OBJ_ELEMENT);
		}
	}

	/**
	 * This is a callback that will allow us to create the viewer and initialize
	 * it.
	 */
	public void createPartControl(Composite parent) {
		viewer = new ComboViewer(parent, SWT.DROP_DOWN);
		viewer.setContentProvider(new ViewContentProvider());
		viewer.setLabelProvider(new ViewLabelProvider());
		// Provide the input to the ContentProvider
		viewer.setInput(new String[] { "One", "Two", "Three" });

		viewer.addFilter(new ViewerFilter() {
			
			@Override
			public boolean select(Viewer viewer, Object parentElement, Object element) {
				return element.toString().equals("One") || element.toString().equals("Three");
			}
		});
		
		new AutoCompleteField(viewer.getCombo(), new ComboContentAdapter(), new String[] { "One", "Two", "Three" });
		
		
		DataBindingContext bindingContext = new DataBindingContext();


		// The second key to binding a combo to an Enum is to use a
		// selection observable from the ComboViewer:
		IObservableValue widgetObservable = ViewersObservables.observeSingleSelection(viewer);
		bindingContext.bindValue(widgetObservable, PojoObservables.observeValue(person, "name"));
		
		IObservableValue widgetObservable1 = WidgetProperties.text().observe(viewer.getControl());
		bindingContext.bindValue(widgetObservable1, PojoObservables.observeValue(person, "name"));

		Button button = new Button(parent, SWT.PUSH);
		button.addSelectionListener(new SelectionListener() {

			@Override
			public void widgetSelected(SelectionEvent e) {
				System.out.println(person.getName());

			}

			@Override
			public void widgetDefaultSelected(SelectionEvent e) {
				// TODO Auto-generated method stub

			}
		});

	}

	/**
	 * Passing the focus request to the viewer's control.
	 */
	public void setFocus() {
		viewer.getControl().setFocus();
	}

	public static class Person {
		private String name;
		private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
				this);

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
			changeSupport.firePropertyChange("name", "", name);
		}

		public void addPropertyChangeListener(final PropertyChangeListener listener) {
			changeSupport.addPropertyChangeListener(listener);
		}

		public void removePropertyChangeListener(final PropertyChangeListener listener) {
			changeSupport.removePropertyChangeListener(listener);
		}
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
Encera Java FX im Eclipse-Marketplace nichtmehr auffindbar AWT, Swing, JavaFX & SWT 6
CodingBerlin JavaFX Programm läuft nur unter Eclipse AWT, Swing, JavaFX & SWT 1
D Verschieden Scenen ansprechen mit dem Scene Builder und JavaFX (Eclipse) AWT, Swing, JavaFX & SWT 16
G javafx build.fxbuild in eclipse und ANT AWT, Swing, JavaFX & SWT 9
D runnable Jar mit Javafx erstellen(Eclipse) AWT, Swing, JavaFX & SWT 10
C JavaFX mit CSS in Eclipse AWT, Swing, JavaFX & SWT 2
S Swing Schrift sehr klein Ubuntu/eclipse AWT, Swing, JavaFX & SWT 18
A Eclipse Windowbuilder Frameanzeige falsch AWT, Swing, JavaFX & SWT 3
C JavaFX Veränderungen in Scenebuilder in Eclipse als Quellcode anzeigen lassen AWT, Swing, JavaFX & SWT 11
VPChief Swing Eclipse: Nach Exportieren, Button funktioniert nicht mehr AWT, Swing, JavaFX & SWT 26
VPChief Eclipse: Projekt mit src ordner exportieren. AWT, Swing, JavaFX & SWT 76
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
F Kein JavaFX mehr im Eclipse Wizard AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
B Swing Eclipse is running under 0, but this Java project has a 1.6 Java compliance level, so WindowBuilder AWT, Swing, JavaFX & SWT 2
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
R JavaFX lässt sich nicht in Eclipse einbinden AWT, Swing, JavaFX & SWT 4
S download WindowBuilder Pro Eclipse AWT, Swing, JavaFX & SWT 1
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
I JAVAFX - CSS - automatische Property- und Methoden-Vorlagen in Eclipse AWT, Swing, JavaFX & SWT 17
I JAVA 8, JAVAFX und Eclipse – muss Eclipse extra eingerichtet werden? AWT, Swing, JavaFX & SWT 9
Z ProgressBar in Eclipse mit Wizard page? AWT, Swing, JavaFX & SWT 1
C Applet Applet funktioniert in Eclipse aber nicht in Browser AWT, Swing, JavaFX & SWT 1
J JavaFX Anwendung läuft in eclipse, nicht aber exportiert AWT, Swing, JavaFX & SWT 2
R Eclipse GUI Programmieren AWT, Swing, JavaFX & SWT 8
P Ubuntu - Eclipse - Windowbuilder AWT, Swing, JavaFX & SWT 0
M 3D-Grafik Mac Java 3D in Eclipse Exception AWT, Swing, JavaFX & SWT 0
O Eclipse Hitbox(en) AWT, Swing, JavaFX & SWT 6
D Robot Programm mit Escape abbrechen (aus Eclipse heraus) AWT, Swing, JavaFX & SWT 2
M LookAndFeel Oberfläche wie Eclipse/Business Objects oder Solvatio AWT, Swing, JavaFX & SWT 2
N Programm läuft perfekt in Eclipse aber nicht in .JAR AWT, Swing, JavaFX & SWT 3
T SWT benötige den richtigen SWT style --> org.eclipse.swt.SWT.* AWT, Swing, JavaFX & SWT 2
C Eclipse Filter-Muster AWT, Swing, JavaFX & SWT 2
H org.eclipse.swt.widgets.Scale MouseRelease listener AWT, Swing, JavaFX & SWT 1
H org.eclipse.swt.Slider ohne Buttons AWT, Swing, JavaFX & SWT 1
H org.eclipse.swt.widgets.Slider und negative Werte AWT, Swing, JavaFX & SWT 3
L Eclipse Fehler besser zu verstehen!!! AWT, Swing, JavaFX & SWT 4
B JAVAFX und CSS Datei in Eclipse AWT, Swing, JavaFX & SWT 4
M Swing in Eclipse AWT, Swing, JavaFX & SWT 1
A Eclipse Windowbuilder AWT, Swing, JavaFX & SWT 2
B JavaFX FXML - Eclipse einrichten AWT, Swing, JavaFX & SWT 2
G Eclipse: Design Tab wird nicht mehr angezeigt AWT, Swing, JavaFX & SWT 4
S Swing SplitButton wie in Eclipse AWT, Swing, JavaFX & SWT 5
P JApplet verhält sich im Browser anders als im Eclipse (AppletViewer) AWT, Swing, JavaFX & SWT 3
A Kinect und Eclipse AWT, Swing, JavaFX & SWT 2
K Eclipse Layout (Gimp Layout, Tiled Layout...) AWT, Swing, JavaFX & SWT 4
J SWING - Programm ohne Eclipse etc. starten AWT, Swing, JavaFX & SWT 7
J SWT in eclipse importieren AWT, Swing, JavaFX & SWT 11
K Eclipse-Java Export/Import mit Oberfläche AWT, Swing, JavaFX & SWT 2
T eclipse.swt.widgets saveState NPE AWT, Swing, JavaFX & SWT 5
V Laden einer Bitmap / Eclipse-Problem? AWT, Swing, JavaFX & SWT 4
K 2D-Grafik Punkt in Eclipse AWT, Swing, JavaFX & SWT 4
S JavaFX 2.0 in Eclipse RAP??? AWT, Swing, JavaFX & SWT 6
D VE in Eclipse mag einfach nicht funktionieren AWT, Swing, JavaFX & SWT 5
S FileFilter Problem Eclipse AWT, Swing, JavaFX & SWT 7
V Eclipse View Right-Click Menu hinzufügen AWT, Swing, JavaFX & SWT 2
lumo SWT Exception in thread "main" org.eclipse.swt.SWTError: No more handles AWT, Swing, JavaFX & SWT 3
T SWT Drag&Drop: Eclipse FileTransfer mit Icons AWT, Swing, JavaFX & SWT 14
M GEF und Eclipse Plugin schwierigkeiten AWT, Swing, JavaFX & SWT 2
B Debugging in Eclipse, Aufrufreihenfolge AWT, Swing, JavaFX & SWT 3
E Wo findet man: org.eclipse.core.runtime.ListenerList AWT, Swing, JavaFX & SWT 4
S [Eclipse RCP] Relativer Pfad AWT, Swing, JavaFX & SWT 8
Binary.Coder Netbeans GUI zu Eclipse (schon gegooglet und einiges ausprobiert). AWT, Swing, JavaFX & SWT 4
P SWT Eclipse Draw2D Drag and Drop (ruckelt) AWT, Swing, JavaFX & SWT 4
G Große dynamische ContextMenus erzeugen (Eclipse RCP) AWT, Swing, JavaFX & SWT 4
Crashbreaker SWT Frames wie bei Eclipse AWT, Swing, JavaFX & SWT 43
J Swing Pro WindowBuilder in Eclipse AWT, Swing, JavaFX & SWT 2
D Problem mit SmartGWT (2.4) und Eclipse (3.6) AWT, Swing, JavaFX & SWT 6
J SWT JFace Tree in Section unsichtbar (Eclipse Forms) AWT, Swing, JavaFX & SWT 5
M 3D-Grafik Java3D-Application als executable .jar exportieren (Eclipse) AWT, Swing, JavaFX & SWT 5
K SWT oder AWT als Download für Eclipse AWT, Swing, JavaFX & SWT 5
dzim SWT Layout mit Sections aus Eclipse Forms AWT, Swing, JavaFX & SWT 17
A SWT Eclipse JFace Binding TreeViewer AWT, Swing, JavaFX & SWT 4
A Suche: Eclipse-GUI-Layout AWT, Swing, JavaFX & SWT 5
E JavaHelp mit Eclipse AWT, Swing, JavaFX & SWT 2
B SWT Hello World-Anwendung mit GUI in Eclipse -Problem mit Import von SWT AWT, Swing, JavaFX & SWT 9
J eclipse/Visual Editor: Auf Felder/Methoden vom Hauptframe zugreifen AWT, Swing, JavaFX & SWT 4
M Swing Memory Spiel in Eclipse AWT, Swing, JavaFX & SWT 5
U Netbeans GUI nach Eclipse AWT, Swing, JavaFX & SWT 7
J Anwendung von Swing nach SWT bzw. Eclipse portieren AWT, Swing, JavaFX & SWT 3
G Look And Feel in Eclipse AWT, Swing, JavaFX & SWT 2
D Swing eine Art vorschlagsfenster wie in eclipse bei "." AWT, Swing, JavaFX & SWT 5
M SWT pack() von org.eclipse.swt.widgets.Control AWT, Swing, JavaFX & SWT 8
H Eclipse View / Window Layout AWT, Swing, JavaFX & SWT 3
S Dropdown-Menü wie auf der Eclipse-Toolbar AWT, Swing, JavaFX & SWT 7
T [Applet] startet in Eclipse aber nicht im Browser AWT, Swing, JavaFX & SWT 2
D Autovervollständigung wie bei Dreamweaver/Eclipse AWT, Swing, JavaFX & SWT 4
K Eclipse Visual Editor rendert die Komponenten nicht richtig AWT, Swing, JavaFX & SWT 2
K nervende eigenschaft von eclipse AWT, Swing, JavaFX & SWT 3
P Programm terminiert nicht (unter Eclipse) AWT, Swing, JavaFX & SWT 5
I Spezieller Knopf in Swing? Soll sein wie der Run in Eclipse. AWT, Swing, JavaFX & SWT 4
S Eclipse Icon Set AWT, Swing, JavaFX & SWT 6
T SWT/Eclipse Form Controls zur Laufzeit hinzufügen,GridLayout AWT, Swing, JavaFX & SWT 4
F Bilder im Quellcode verstecken - Eclipse AWT, Swing, JavaFX & SWT 15
W java.lang.NoClassDefFoundError: org/eclipse/swt/graphics/Dev AWT, Swing, JavaFX & SWT 1
D Tooltips in Eclipse AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben