001package gwt.material.design.client.base; 002 003/* 004 * #%L 005 * GwtMaterial 006 * %% 007 * Copyright (C) 2015 GwtMaterialDesign 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023import com.google.gwt.dom.client.Element; 024import com.google.gwt.editor.client.EditorError; 025import com.google.gwt.editor.client.HasEditorErrors; 026import com.google.gwt.text.shared.Parser; 027import com.google.gwt.text.shared.Renderer; 028import com.google.gwt.user.client.ui.HasEnabled; 029import com.google.web.bindery.event.shared.HandlerRegistration; 030import gwt.material.design.client.base.error.ErrorHandler; 031import gwt.material.design.client.base.error.ErrorHandlerType; 032import gwt.material.design.client.base.error.HasErrorHandler; 033import gwt.material.design.client.base.mixin.*; 034import gwt.material.design.client.base.validator.HasBlankValidator; 035import gwt.material.design.client.base.validator.HasValidators; 036import gwt.material.design.client.base.validator.ValidationChangedEvent.ValidationChangedHandler; 037import gwt.material.design.client.base.validator.Validator; 038 039import java.util.List; 040 041public class ValueBoxBase<T> extends com.google.gwt.user.client.ui.ValueBoxBase<T> implements HasId, HasColors, 042 HasGrid, HasPlaceholder, HasEnabled, HasEditorErrors<T>, HasErrorHandler, HasValidators<T>, HasBlankValidator { 043 044 private final IdMixin<ValueBoxBase<T>> idMixin = new IdMixin<>(this); 045 private final ColorsMixin<ValueBoxBase<T>> colorsMixin = new ColorsMixin<>(this); 046 private final GridMixin<ValueBoxBase<T>> gridMixin = new GridMixin<>(this); 047 private final EnabledMixin<ValueBoxBase<T>> enabledMixin = new EnabledMixin<>(this); 048 private final ErrorHandlerMixin<T> errorHandlerMixin = new ErrorHandlerMixin<>(this); 049 private final BlankValidatorMixin<ValueBoxBase<T>, T> validatorMixin = new BlankValidatorMixin<>(this, 050 errorHandlerMixin.getErrorHandler()); 051 052 public ValueBoxBase(Element elem, Renderer<T> renderer, Parser<T> parser) { 053 super(elem, renderer, parser); 054 } 055 056 @Override 057 public void setId(String id) { 058 idMixin.setId(id); 059 } 060 061 @Override 062 public String getId() { 063 return idMixin.getId(); 064 } 065 066 @Override 067 public void setBackgroundColor(String bgColor) { 068 colorsMixin.setBackgroundColor(bgColor); 069 } 070 071 @Override 072 public String getBackgroundColor() { 073 return colorsMixin.getBackgroundColor(); 074 } 075 076 @Override 077 public void setTextColor(String textColor) { 078 colorsMixin.setTextColor(textColor); 079 } 080 081 @Override 082 public String getTextColor() { 083 return colorsMixin.getTextColor(); 084 } 085 086 @Override 087 public void setGrid(String grid) { 088 gridMixin.setGrid(grid); 089 } 090 091 @Override 092 public void setOffset(String offset) { 093 gridMixin.setOffset(offset); 094 } 095 096 @Override 097 public void setPlaceholder(final String placeHolder) { 098 getElement().setAttribute("placeholder", placeHolder != null ? placeHolder : ""); 099 } 100 101 @Override 102 public String getPlaceholder() { 103 return getElement().getAttribute("placeholder"); 104 } 105 106 @Override 107 public void setEnabled(boolean enabled) { 108 enabledMixin.setEnabled(enabled); 109 } 110 111 @Override 112 public boolean isAllowBlank() { 113 return validatorMixin.isAllowBlank(); 114 } 115 116 @Override 117 public void setAllowBlank(boolean allowBlank) { 118 validatorMixin.setAllowBlank(allowBlank); 119 } 120 121 @Override 122 public void showErrors(List<EditorError> errors) { 123 errorHandlerMixin.showErrors(errors); 124 } 125 126 @Override 127 public ErrorHandler getErrorHandler() { 128 return errorHandlerMixin.getErrorHandler(); 129 } 130 131 @Override 132 public void setErrorHandler(ErrorHandler errorHandler) { 133 errorHandlerMixin.setErrorHandler(errorHandler); 134 } 135 136 @Override 137 public ErrorHandlerType getErrorHandlerType() { 138 return errorHandlerMixin.getErrorHandlerType(); 139 } 140 141 @Override 142 public void setErrorHandlerType(ErrorHandlerType errorHandlerType) { 143 errorHandlerMixin.setErrorHandlerType(errorHandlerType); 144 } 145 146 @Override 147 public void addValidator(Validator<T> validator) { 148 validatorMixin.addValidator(validator); 149 } 150 151 @Override 152 public boolean isValidateOnBlur() { 153 return validatorMixin.isValidateOnBlur(); 154 } 155 156 @Override 157 public boolean removeValidator(Validator<T> validator) { 158 return validatorMixin.removeValidator(validator); 159 } 160 161 @Override 162 public void reset() { 163 validatorMixin.reset(); 164 } 165 166 @Override 167 public void setValidateOnBlur(boolean validateOnBlur) { 168 validatorMixin.setValidateOnBlur(validateOnBlur); 169 } 170 171 @Override 172 public void setValidators(@SuppressWarnings("unchecked") Validator<T>... validators) { 173 validatorMixin.setValidators(validators); 174 } 175 176 @Override 177 public boolean validate() { 178 return validatorMixin.validate(); 179 } 180 181 @Override 182 public boolean validate(boolean show) { 183 return validatorMixin.validate(show); 184 } 185 186 @Override 187 public HandlerRegistration addValidationChangedHandler(ValidationChangedHandler handler) { 188 return validatorMixin.addValidationChangedHandler(handler); 189 } 190}