package com.google.gwt.gwtpages.demo.client.components; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.VerticalPanel; public class SourceLinkPanel extends Composite { interface _UiBinder extends UiBinder<VerticalPanel, SourceLinkPanel> { } private static _UiBinder uiBinder = GWT.create(_UiBinder.class); @UiField Anchor javaSource; @UiField Anchor uiXmlSource; public SourceLinkPanel (Class<?> sourceClass) { this(sourceClass, true); } public SourceLinkPanel (Class<?> sourceClass, boolean addUi) { initWidget(uiBinder.createAndBindUi(this)); javaSource.setTarget("_blank"); uiXmlSource.setTarget("_blank"); String name = sourceClass.getName().substring(sourceClass.getName().lastIndexOf('.')+1, sourceClass.getName().length()); String prefix = null; if (sourceClass.getName().indexOf("demo") > 0) prefix = "http://code.google.com/p/gwtpages/source/browse/trunk/demo/src/"; else prefix = "http://code.google.com/p/gwtpages/source/browse/trunk/core/src/main/java/"; javaSource.setHTML(name + ".java"); javaSource.setHref(prefix + sourceClass.getName().replace('.', '/') + ".java"); uiXmlSource.setHTML(name + ".ui.xml"); uiXmlSource.setHref(prefix + sourceClass.getName().replace('.', '/') + ".ui.xml"); if (!addUi) uiXmlSource.setVisible(false); } }