You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
accounting-dashboard/src/main/java/org/gcube/portlets/user/accountingdashboard/client/application/customwidget/TagWidget.java

74 lines
2.1 KiB
Java

package org.gcube.portlets.user.accountingdashboard.client.application.customwidget;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.gcube.portlets.user.accountingdashboard.client.application.customwidget.TagWidgetHideEvent.HasTagWidgetHideEventHandlers;
import org.gcube.portlets.user.accountingdashboard.client.application.customwidget.TagWidgetHideEvent.TagWidgetHideEventHandler;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.shared.HandlerRegistration;
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.Event;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.Widget;
/**
*
* @author Giancarlo Panichi
*
*/
public class TagWidget extends Composite implements HasText, HasTagWidgetHideEventHandlers {
private static Logger logger = java.util.logging.Logger.getLogger("");
private static TagWidgetUiBinder uiBinder = GWT.create(TagWidgetUiBinder.class);
interface TagWidgetUiBinder extends UiBinder<Widget, TagWidget> {
}
public TagWidget() {
initWidget(uiBinder.createAndBindUi(this));
int typeInt = Event.getTypeInt(ClickEvent.getType().getName());
sinkEvents(typeInt);
}
@UiField
Button button;
@UiField
SpanElement tagLabel;
public TagWidget(String label) {
initWidget(uiBinder.createAndBindUi(this));
tagLabel.setInnerText(label);
button.setText("x");
}
@UiHandler("button")
void onClick(ClickEvent e) {
logger.log(Level.FINE,"Button Click");
TagWidgetHideEvent event = new TagWidgetHideEvent(this);
fireEvent(event);
}
public void setText(String text) {
tagLabel.setInnerText(text);
}
public String getText() {
return tagLabel.getInnerText();
}
@Override
public HandlerRegistration addTagWidgetHideEventHandler(TagWidgetHideEventHandler handler) {
return addHandler(handler, TagWidgetHideEvent.TYPE);
}
}