/* * Copyright 2000-2013 Vaadin Ltd. * * 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 com.vaadin.ui; import java.util.Date; import com.vaadin.data.Property; import com.vaadin.server.PaintException; import com.vaadin.server.PaintTarget; import com.vaadin.shared.ui.datefield.PopupDateFieldState; /** *

* A date entry component, which displays the actual date selector as a popup. * *

* * @see DateField * @see InlineDateField * @author Vaadin Ltd. * @since 5.0 */ public class PopupDateField extends DateField { private String inputPrompt = null; public PopupDateField() { super(); } public PopupDateField(Property dataSource) throws IllegalArgumentException { super(dataSource); } public PopupDateField(String caption, Date value) { super(caption, value); } public PopupDateField(String caption, Property dataSource) { super(caption, dataSource); } public PopupDateField(String caption) { super(caption); } @Override public void paintContent(PaintTarget target) throws PaintException { super.paintContent(target); if (inputPrompt != null) { target.addAttribute("prompt", inputPrompt); } } /** * Gets the current input prompt. * * @see #setInputPrompt(String) * @return the current input prompt, or null if not enabled */ public String getInputPrompt() { return inputPrompt; } /** * Sets the input prompt - a textual prompt that is displayed when the field * would otherwise be empty, to prompt the user for input. * * @param inputPrompt */ public void setInputPrompt(String inputPrompt) { this.inputPrompt = inputPrompt; markAsDirty(); } @Override protected PopupDateFieldState getState() { return (PopupDateFieldState) super.getState(); } /** * Checks whether the text field is enabled (default) or not. * * @see PopupDateField#setTextFieldEnabled(boolean); * * @return true if the text field is enabled, false otherwise. */ public boolean isTextFieldEnabled() { return getState().textFieldEnabled; } /** * Enables or disables the text field. By default the text field is enabled. * Disabling it causes only the button for date selection to be active, thus * preventing the user from entering invalid dates. * * See {@link http://dev.vaadin.com/ticket/6790}. * * @param state * true to enable text field, false to disable it. */ public void setTextFieldEnabled(boolean state) { getState().textFieldEnabled = state; } }