/* * Copyright (C) 2015 Red Hat, Inc. and/or its affiliates. * * Licensed 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 org.jboss.errai.forge.facet.ui.command.res; import org.jboss.forge.addon.convert.Converter; import org.jboss.forge.addon.facets.FacetNotFoundException; import org.jboss.forge.addon.ui.context.UIValidationContext; import org.jboss.forge.addon.ui.facets.HintsFacet; import org.jboss.forge.addon.ui.input.UICompleter; import org.jboss.forge.addon.ui.input.UIInput; import org.jboss.forge.addon.ui.input.ValueChangeListener; import org.jboss.forge.addon.ui.validate.UIValidator; import org.jboss.forge.furnace.spi.ListenerRegistration; import javax.enterprise.inject.Alternative; import java.util.Collections; import java.util.Set; import java.util.concurrent.Callable; @Alternative public class UIInputMock<T> implements UIInput<T> { private String name = "", label = "", description = "", requiredMessage = ""; private boolean enabled, required; private T value; private Converter<String, T> converter; private T defaultValue; private UICompleter<T> completer; @Override public String getLabel() { return label; } @Override public String getName() { return name; } @Override public String getDescription() { return description; } @Override public Class<T> getValueType() { return (Class<T>) value.getClass(); } @Override public boolean hasDefaultValue() { return defaultValue != null; } @Override public boolean hasValue() { return value != null; } @Override public boolean isEnabled() { return enabled; } @Override public boolean isRequired() { return required; } @Override public String getRequiredMessage() { return requiredMessage; } @Override public char getShortName() { return 0; } @Override public Set<UIValidator> getValidators() { return Collections.emptySet(); } @Override public UIInput<T> setEnabled(boolean b) { enabled = b; return this; } @Override public UIInput<T> setEnabled(Callable<Boolean> callable) { return this; } @Override public UIInput<T> setLabel(String label) { this.label = label; return this; } @Override public UIInput<T> setDescription(String description) { this.description = description; return this; } @Override public UIInput<T> setDescription(Callable<String> description){ try { this.description = description.call(); } catch (Exception e) {} return this; } @Override public UIInput<T> setRequired(boolean required) { this.required = required; return this; } @Override public UIInput<T> setRequired(Callable<Boolean> required) { return this; } @Override public UIInput<T> setRequiredMessage(String message) { this.requiredMessage = message; return this; } @Override public Converter<String, T> getValueConverter() { return converter; } @Override public UIInput<T> setValueConverter(Converter<String, T> converter) { this.converter = converter; return this; } @Override public UIInput<T> addValidator(UIValidator validator) { return this; } @Override public T getValue() { return (hasValue() ? value : defaultValue); } @Override public ListenerRegistration<ValueChangeListener> addValueChangeListener(ValueChangeListener listener) { return null; } @Override public void validate(UIValidationContext context) { } @Override public boolean install(HintsFacet facet) { return false; } @Override public boolean register(HintsFacet facet) { return false; } @Override public boolean unregister(HintsFacet facet) { return false; } @Override public boolean uninstall(HintsFacet facet) { return false; } @Override public boolean hasFacet(Class<? extends HintsFacet> type) { return false; } @Override public boolean hasAllFacets(Class<? extends HintsFacet>... facetDependencies) { return false; } @Override public boolean hasAllFacets(Iterable<Class<? extends HintsFacet>> facetDependencies) { return false; } @Override public <F extends HintsFacet> F getFacet(Class<F> type) throws FacetNotFoundException { return null; } @Override public Iterable<HintsFacet> getFacets() { return Collections.emptyList(); } @Override public <F extends HintsFacet> Iterable<F> getFacets(Class<F> type) { return Collections.emptyList(); } @Override public <F extends HintsFacet> boolean supports(F facet) { return false; } @Override public UIInput<T> setDefaultValue(T defaultValue) { this.defaultValue = defaultValue; return this; } @Override public UIInput<T> setDefaultValue(Callable<T> callback) { return this; } @Override public UIInput<T> setValue(T value) { this.value = value; return this; } @Override public UICompleter<T> getCompleter() { return null; } @Override public UIInput<T> setCompleter(UICompleter<T> completer) { this.completer = completer; return this; } }