Java tutorial
/* * JBoss, Home of Professional Open Source * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors * as indicated by the @author tags. All rights reserved. * See the copyright.txt in the distribution for a * full listing of individual contributors. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU Lesser General Public License, v. 2.1. * This program is distributed in the hope that it will be useful, but WITHOUT A * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License, * v.2.1 along with this distribution; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package org.jboss.as.console.client.shared.homepage; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.safehtml.client.SafeHtmlTemplates; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.user.client.ui.*; import org.jboss.as.console.client.shared.util.IdHelper; /** * @author Harald Pehl */ public class InfoBox extends Composite { interface Templates extends SafeHtmlTemplates { @Template("<h3 id=\"{0}\" class=\"homepage-info-box-header\"></h3>" + "<div class=\"homepage-info-box-body\">{1}</div>") SafeHtml infoBox(String id, String description); } private final static Templates TEMPLATES = GWT.create(Templates.class); public InfoBox(final String token, final String title, final String description) { this(token, title, description, null); } public InfoBox(final String token, final String title, final String description, final ClickHandler clickHandler) { String linkId = IdHelper.asId(getClass(), "_" + token); HTMLPanel panel = new HTMLPanel(TEMPLATES.infoBox(linkId, description)); panel.getElement().setId(IdHelper.asId(getClass(), "_info-box")); panel.addStyleName("homepage-info-box"); Widget link; if (clickHandler != null) { Anchor anchor = new Anchor(title); anchor.addClickHandler(clickHandler); link = anchor; } else { link = new InlineHyperlink(title, token); } link.addStyleName("homepage-link"); panel.add(link, linkId); initWidget(panel); } }