/** * This searches for the right helper, gets and remembers a new instance of it and the Control it * returned. * * @see * org.nightlabs.jfire.base.ui.prop.search.PropertySetSearchFilterItemEditorHelper#getControl(org.eclipse.swt.widgets.Composite) */ @Override public Control getControl(Composite parent) { if (helper != null) if (helperControl != null && !helperControl.isDisposed()) return helperControl; // PropertySetSearchFilterItemEditorHelperRegistry registry = // PropertySetSearchFilterItemEditorHelperRegistry.sharedInstance(); StructFieldSearchFilterEditorRegistry registry = StructFieldSearchFilterEditorRegistry.sharedInstance(); if (getStructField() == null) throw new IllegalStateException( "Member personStructField is null. init(personStructField) might not have been called."); //$NON-NLS-1$ final IStructFieldSearchFilterItemEditor filterItemEditor = registry.createSearchFilterItemEditor(getStructField(), null); helper = new PropertySetStructFieldSearchItemEditorHelper() { @Override public ISearchFilterItem getSearchFilterItem() { return filterItemEditor.getSearchFilterItem(); } @Override public Control getControl(Composite parent) { return filterItemEditor.createControl(parent, false); } @Override public void close() {} public String getInput() { return filterItemEditor.getInput(); }; public void setInput(String input) { filterItemEditor.setInput(input); }; }; if (helper instanceof PropertySetStructFieldSearchItemEditorHelper) ((PropertySetStructFieldSearchItemEditorHelper) helper).init(getStructField()); helperControl = helper.getControl(parent); return helperControl; }