package org.gwtoolbox.sample.widget.client.misc;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.*;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.MouseOverEvent;
import com.google.gwt.event.dom.client.MouseOutEvent;
import org.gwtoolbox.commons.ui.client.event.MouseHoverHandler;
import org.gwtoolbox.commons.util.client.useragent.UserAgent;
import org.gwtoolbox.ioc.core.client.annotation.Component;
import org.gwtoolbox.sample.widget.client.SamplePanel;
import org.gwtoolbox.widget.client.button.SimpleButton;
import org.gwtoolbox.widget.client.label.BasicLabel;
import org.gwtoolbox.widget.client.notification.DefaultNotifier;
/**
* @author Uri Boness
*/
@Component
@MiscSample
public class UserAgentSamplePane extends Composite implements SamplePanel {
public UserAgentSamplePane() {
SimpleButton button = new SimpleButton("Check User Agent", new ClickHandler() {
public void onClick(ClickEvent event) {
if (UserAgent.getInstance().isWebkit()) {
DefaultNotifier.getInstance().showInfo("User Agent", "Webkit", null);
} else if (UserAgent.getInstance().isMozilla()) {
DefaultNotifier.getInstance().showInfo("User Agent", "Mozilla", null);
} else if (UserAgent.getInstance().isIE()) {
DefaultNotifier.getInstance().showInfo("User Agent", "IE", null);
} else if (UserAgent.getInstance().isOpera()) {
DefaultNotifier.getInstance().showInfo("User Agent", "Opera", null);
} else {
DefaultNotifier.getInstance().showInfo("User Agent", "<Unknown>", null);
}
}
});
FlowPanel main = new FlowPanel();
main.add(button);
initWidget(main);
}
public String getName() {
return "UserAgent";
}
public Widget getContentWidget() {
return this;
}
public void reset() {
}
//============================================== Helper Methods ====================================================
private BasicLabel createLabel(String text, Image image) {
final BasicLabel label = new BasicLabel(text);
if (image != null) {
label.setImage(image);
}
label.addMouseHoverHandler(new MouseHoverHandler() {
@Override
public void onMouseOver(MouseOverEvent event) {
DOM.setStyleAttribute(label.getElement(), "border", "1px solid blue");
}
@Override
public void onMouseOut(MouseOutEvent event) {
DOM.setStyleAttribute(label.getElement(), "border", "none");
}
});
return label;
}
}