de.knightsoftnet.mtwidgets.client.ui.widget.AdminNavigationSearchCriteria Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gwt-mt-widgets-spring-gwtp Show documentation
Show all versions of gwt-mt-widgets-spring-gwtp Show documentation
A set of widgets and handlers using server calls for gwt applications using gwt-bean-validators-spring-gwtp.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional information regarding
* copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package de.knightsoftnet.mtwidgets.client.ui.widget;
import de.knightsoftnet.gwtp.spring.shared.search.SearchCriteriaSearch;
import de.knightsoftnet.gwtp.spring.shared.search.SearchFieldDefinition;
import de.knightsoftnet.mtwidgets.client.ui.widget.helper.AbstractListItemView;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.LabelElement;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Widget;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
public class AdminNavigationSearchCriteria extends AbstractListItemView {
interface Binder extends UiBinder {
}
/**
* A ClientBundle that provides images and style sheets for the decorator.
*/
public interface Resources extends ClientBundle {
}
private static Binder uiBinder = GWT.create(Binder.class);
@UiField(provided = true)
SearchFieldListBox key;
@UiField(provided = true)
SearchOperationListBox operation;
@UiField(provided = true)
DynamicInputWidget value;
@Ignore
@UiField
Element valueLabel;
@UiField
Button removeEntry;
/**
* constructor.
*
* @param pos position number of the line
* @param searchFieldDefinitions collection of field definitions
*/
public AdminNavigationSearchCriteria(final int pos,
final Collection searchFieldDefinitions) {
super();
key = new SearchFieldListBox();
key.ensureDebugId("key_" + pos);
key.fillSearchFieldDefinition(searchFieldDefinitions);
operation = new SearchOperationListBox();
operation.ensureDebugId("operation_" + pos);
value = new DynamicInputWidget();
value.ensureDebugId("value_" + pos);
initWidget(AdminNavigationSearchCriteria.uiBinder.createAndBindUi(this));
((LabelElement) valueLabel).setHtmlFor("value_" + pos);
if (pos == 0) {
removeEntry.getElement().getStyle().setDisplay(Display.NONE);
}
if (!CollectionUtils.isEmpty(searchFieldDefinitions)) {
final SearchFieldDefinition fieldDefinition = searchFieldDefinitions.iterator().next();
key.setValue(fieldDefinition);
searchFieldChanged(fieldDefinition);
}
}
/**
* search field changed.
*
* @param event value change handler
*/
@UiHandler("key")
public void searchFieldChanged(final ValueChangeEvent event) {
searchFieldChanged(event.getValue());
}
private void searchFieldChanged(final SearchFieldDefinition searchFieldDefinition) {
operation.fillEntries(searchFieldDefinition.getAllowedSearchOperations());
value.setFieldType(searchFieldDefinition.getFieldType(), true);
}
@UiHandler("removeEntry")
public void removeEntryClicked(final ClickEvent event) {
removeThisEntry();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy