Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » JFace » [DataBinding] TableViewer with detail fields; Validation issues
[DataBinding] TableViewer with detail fields; Validation issues [message #644268] Fri, 10 December 2010 05:22
Code Monkey is currently offline Code Monkey
Messages: 1
Registered: December 2010
Junior Member
Dear all!

I'm searching for a best practice of something that I think is pretty much standard: A table that can be edited through detail fields (no inline editing). Contents of the table come from an ObservableList. The table selection is observed and bound to the detail fields (see code below). I have got everything working so far except the validation. The problem appears when nothing is selected in the table or the table is empty, which happens at least after startup. Without the selection the detail fields are bound to a null object which obviously causes all validations to fail. What I need is some way of temporary disabling binding or validation so there will not be displayed any error. The only way know to solve this, is to remove the binding every time the selection goes away and rebind if selection is no null. But this seems ugly to me. Is there a smarter way to do this?

Thanks
Werner
(Code Monkey)

Here is the binding code (I left out the Validators here):


foerderungSelection = ViewersObservables.observeSingleSelection(foerderungViewer);
		ObservableListContentProvider contentProvider =
		    new ObservableListContentProvider();
		foerderungViewer.setContentProvider( contentProvider );
		foerderungViewer.setLabelProvider(
		    new ObservableMapLabelProvider(BeansObservables.observeMaps(
			        contentProvider.getKnownElements(),
			        new String[] {
			        	"foerdergeber", "foerderprogramm", "projektnr", "rolleFh",
		        		"ansprechperson", "notiz" } )) {
		    	
		    	@Override
		    	public String getColumnText(Object element, int columnIndex) {
		    		if (columnIndex == 0) {
		    			if (element != null) {
		    				if (((Foerderung)element).getFoerdergeber() != null) {
		    					return ((Foerderung)element).getFoerdergeber().getBezeichnung();
		    				}
		    			}
		    			return null;
		    		}
		    		return super.getColumnText(element, columnIndex);
		    	}
		    	
		   });
		foerderungViewer.setInput(projektFoerderungenWList);
		
		IObservableValue guiFoerderungGeberFHAuswahl = ViewersObservables.
			observeSingleSelection(foerderungGeberFHAuswahl);
		IObservableValue guiFoerderungRolleFHAuswahl = ViewersObservables.
			observeSingleSelection(foerderungRolleFHAuswahl);
		IObservableValue guiFoerderungProgrammText = SWTObservables
			.observeText(foerderungProgrammText, SWT.Modify);
		IObservableValue guiFoerderungAnsprechpersonText = SWTObservables
			.observeText(foerderungAnsprechpersonText, SWT.Modify);
		IObservableValue guiFoerderungProjektnrText = SWTObservables
			.observeText(foerderungProjektnrText, SWT.Modify);
		IObservableValue guiFoerderungNotizText = SWTObservables
			.observeText(foerderungNotizText, SWT.Modify);
		
		// binding der detail ansicht zu aktuellen auswahl in der tabelle	
		bindingContext.bindValue(guiFoerderungGeberFHAuswahl, BeansObservables
				.observeDetailValue(foerderungSelection, "foerdergeber", Foerdergeber.class));
		bindingContext.bindValue(guiFoerderungRolleFHAuswahl, BeansObservables
				.observeDetailValue(foerderungSelection, "rolleFh", FoerderungRolleEnum.class));
		bindingContext.bindValue(guiFoerderungProgrammText, BeansObservables
				.observeDetailValue(foerderungSelection, "foerderprogramm", String.class));
		bindingContext.bindValue(guiFoerderungAnsprechpersonText, BeansObservables
				.observeDetailValue(foerderungSelection, "ansprechperson", String.class));
		bindingContext.bindValue(guiFoerderungProjektnrText, BeansObservables
				.observeDetailValue(foerderungSelection, "projektnr", String.class));
		bindingContext.bindValue(guiFoerderungNotizText, BeansObservables
				.observeDetailValue(foerderungSelection, "notiz", String.class));

Previous Topic:Embedding images in a org.eclipse.ui.editors.text.TextEditor
Next Topic:TextEditor and View
Goto Forum:
  


Current Time: Sat Aug 30 04:30:17 EDT 2014

Powered by FUDForum. Page generated in 0.02513 seconds