private void submitSearch() { List<ModelData> query = new ArrayList<ModelData>(); for (Field<?> field : formFields) { ModelData md = new BaseModelData(); MetaField mf = findField(field.getName()); if (mf == null || !enabledFields.containsKey(mf.getName()) || field.getValue() == null || field.getValue().toString().length() == 0 || !field.isValid()) { GWT.log("Will not submit field " + field.getName() + ".", null); continue; } md.set("field", mf); md.set("value", field.getValue()); query.add(md); } GWT.log("Submitting search with " + query.size() + " query elements.", null); AppEvent evt = new AppEvent(ApplicationEvents.SUBMIT_ADVANCED_SEARCH, query); evt.setData("asset", combo.getValue().getBean()); Dispatcher.forwardEvent(evt); }
private void initComponents(boolean force) { if (!force && combo.getStore().getCount() > 0) { return; } mask("Loading asset types..."); service.getSearchables( new AsyncCallback<List<MetaAsset>>() { public void onFailure(Throwable caught) { GWT.log("Could not load searchable asset types.", caught); unmask(); MessageBox.info("Operation failed", "Could not load searchable asset types.", null); } public void onSuccess(List<MetaAsset> result) { GWT.log("Loaded " + result.size() + " searchable asset types.", null); if (result.isEmpty()) { MessageBox.info("No searchable types", "No searchable asset types exist.", null); return; } List<BeanModel> models = convertToModels(result); combo.getStore().add(models); combo.setValue(models.get(0)); unmask(); // layout(); setWidth(getWidth() + 1); setWidth(getWidth() - 1); } }); }
public SearchFormPanel() { ListStore<BeanModel> comboStore = new ListStore<BeanModel>(); combo = new ComboBox<BeanModel>(); combo.setStore(comboStore); combo.setFieldLabel("Asset type"); combo.setDisplayField("name"); combo.setTypeAhead(true); combo.setForceSelection(true); combo.setTriggerAction(ComboBox.TriggerAction.ALL); // combo.setWidth(150); combo.addSelectionChangedListener( new SelectionChangedListener<BeanModel>() { public void selectionChanged(SelectionChangedEvent<BeanModel> se) { prepareForm((MetaAsset) combo.getValue().getBean()); } }); Button btnSearch = new Button("Search"); btnSearch.addSelectionListener( new SelectionListener<ButtonEvent>() { public void componentSelected(ButtonEvent be) { submitSearch(); } }); form = new FormPanel(); form.setHeaderVisible(false); form.setBodyBorder(false); form.setScrollMode(Style.Scroll.AUTOY); // form.setWidth(300); HBoxLayout layout = new HBoxLayout(); layout.setHBoxLayoutAlign(HBoxLayout.HBoxLayoutAlign.MIDDLE); ContentPanel topPanel = new ContentPanel(layout); topPanel.setHeaderVisible(false); topPanel.setFrame(true); topPanel.setHeight(40); topPanel.add(new Text("Asset type: ")); HBoxLayoutData layoutData = new HBoxLayoutData(0, 2, 0, 2); topPanel.add(combo, layoutData); topPanel.add(btnSearch); setHeading("Advanced search"); setLayout(new FitLayout()); setFrame(true); setTopComponent(topPanel); add(form); /* addListener(Events.Expand, new Listener<BaseEvent>() { public void handleEvent(BaseEvent be) { initComponents(false); } });*/ initComponents(false); }