public ReferralLayerBlock(Layer<?> referral) { super(referral); this.layer = (VectorLayer) referral; final ChangedHandler filterChangedHandler = new FilterChangedHandler(); dateForm1 = new ReferralDateFilterForm(filterChangedHandler); dateForm2 = new ReferralDateFilterForm(filterChangedHandler); FeatureInfo featureInfo = layer.getLayerInfo().getFeatureInfo(); AssociationAttributeInfo statusInfo = (AssociationAttributeInfo) featureInfo.getAttributesMap().get(KtunaxaConstant.ATTRIBUTE_STATUS); AssociationAttributeInfo agencyTypeInfo = (AssociationAttributeInfo) featureInfo.getAttributesMap().get(KtunaxaConstant.ATTRIBUTE_EXTERNAL_AGENCY_TYPE); AssociationAttributeInfo typeInfo = (AssociationAttributeInfo) featureInfo.getAttributesMap().get(KtunaxaConstant.ATTRIBUTE_TYPE); clearStatus.setStartRow(false); clearStatus.setEndRow(false); clearStatus.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { status.clearValue(); filterChangedHandler.onChanged(null); } }); clearAgency.setStartRow(false); clearAgency.setEndRow(false); clearAgency.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { agency.clearValue(); filterChangedHandler.onChanged(null); } }); clearType.setStartRow(false); clearType.setEndRow(false); clearType.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { type.clearValue(); filterChangedHandler.onChanged(null); } }); form.setWidth100(); status.getItem().setTitle("Status"); status.getItem().addChangedHandler(filterChangedHandler); status.init(statusInfo, new DefaultAttributeProvider(layer, statusInfo.getName())); agency.getItem().setTitle("External Agency Type"); agency.getItem().addChangedHandler(filterChangedHandler); agency.init(agencyTypeInfo, new DefaultAttributeProvider(layer, agencyTypeInfo.getName())); type.getItem().setTitle("Type"); type.getItem().addChangedHandler(filterChangedHandler); type.init(typeInfo, new DefaultAttributeProvider(layer, typeInfo.getName())); form.setNumCols(4); form.setFields( status.getItem(), clearStatus, agency.getItem(), clearAgency, type.getItem(), clearType); addMember(form); addMember(dateForm1); addMember(dateForm2); }