All Downloads are FREE. Search and download functionalities are using the official Maven repository.

annis.gui.components.HelpButton Maven / Gradle / Ivy

There is a newer version: 4.0.0-beta.4
Show newest version
/*
 * Copyright 2013 SFB 632.
 *
 * 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 annis.gui.components;

import com.vaadin.data.Property;
import com.vaadin.data.Validator;
import com.vaadin.data.Validator.InvalidValueException;
import com.vaadin.server.FontAwesome;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.Field;
import com.vaadin.ui.Notification;
import com.vaadin.ui.UI;
import com.vaadin.ui.themes.ChameleonTheme;
import java.util.Collection;
import org.apache.commons.lang3.Validate;

/**
 *
 * @author Thomas Krause 
 */
public class HelpButton extends CustomComponent implements Field,
  Button.ClickListener
{
  private Field field;
  public HelpButton(Field field)
  {
    Validate.notNull(field);
    this.field = field;
    
    CssLayout layout = new CssLayout();
    setCompositionRoot(layout);
    
    Button btHelp = new Button("");
    btHelp.setIcon(FontAwesome.QUESTION);
    btHelp.addStyleName(ChameleonTheme.BUTTON_BORDERLESS);
    btHelp.addStyleName("helpbutton");
    btHelp.addClickListener((Button.ClickListener) this);
    
    setCaption(field.getCaption());
    field.setCaption(null);
    
    layout.addComponent(field);
    layout.addComponent(btHelp);
    
  }

  @Override
  public void buttonClick(ClickEvent event)
  {
    String caption = "Help";
    if(getCaption() != null 
      && !getCaption().isEmpty())
    {
      caption = "Help for \"" + getCaption();
    }
    caption = caption + "

(Click here to close)"; Notification notify = new Notification(caption, Notification.Type.HUMANIZED_MESSAGE); notify.setHtmlContentAllowed(true); notify.setDescription(field.getDescription()); notify.setDelayMsec(-1); notify.show(UI.getCurrent().getPage()); } @Override public boolean isRequired() { return field.isRequired(); } @Override public void setRequired(boolean required) { field.setRequired(required); } @Override public void setRequiredError(String requiredMessage) { field.setRequiredError(requiredMessage); } @Override public String getRequiredError() { return field.getRequiredError(); } @Override public boolean isInvalidCommitted() { return field.isInvalidCommitted(); } @Override public void setInvalidCommitted(boolean isCommitted) { field.setInvalidCommitted(isCommitted); } @Override public void commit() throws SourceException, InvalidValueException { field.commit(); } @Override public void discard() throws SourceException { field.discard(); } @Override public void setBuffered(boolean buffered) { field.setBuffered(buffered); } @Override public boolean isBuffered() { return field.isBuffered(); } @Override public boolean isModified() { return field.isModified(); } @Override public void addValidator(Validator validator) { field.addValidator(validator); } @Override public void removeValidator(Validator validator) { field.removeValidator(validator); } @Override public void removeAllValidators() { field.removeAllValidators(); } @Override public Collection getValidators() { return field.getValidators(); } @Override public boolean isValid() { return field.isValid(); } @Override public void validate() throws InvalidValueException { field.validate(); } @Override public boolean isInvalidAllowed() { return field.isInvalidAllowed(); } @Override public void setInvalidAllowed(boolean invalidValueAllowed) throws UnsupportedOperationException { field.setInvalidAllowed(invalidValueAllowed); } @Override public T getValue() { return field.getValue(); } @Override public void setValue(T newValue) throws ReadOnlyException { field.setValue(newValue); } @Override public Class getType() { return field.getType(); } @Override public void addValueChangeListener(ValueChangeListener listener) { field.addValueChangeListener(listener); } @Override @Deprecated public void addListener(ValueChangeListener listener) { field.addListener(listener); } @Override public void removeValueChangeListener(ValueChangeListener listener) { field.removeValueChangeListener(listener); } @Override @Deprecated public void removeListener(ValueChangeListener listener) { field.removeListener(listener); } @Override public void valueChange(Property.ValueChangeEvent event) { field.valueChange(event); } @Override public void setPropertyDataSource(Property newDataSource) { field.setPropertyDataSource(newDataSource); } @Override public Property getPropertyDataSource() { return field.getPropertyDataSource(); } @Override public int getTabIndex() { return field.getTabIndex(); } @Override public void setTabIndex(int tabIndex) { field.setTabIndex(tabIndex); } @Override public void focus() { field.focus(); } @Override public void clear() { field.clear(); } @Override public boolean isEmpty() { return field.isEmpty(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy