package org.vaadin.addon.oauthpopup.demo; import org.scribe.builder.ServiceBuilder; import org.scribe.model.OAuthRequest; import org.scribe.model.Response; import org.scribe.model.Token; import org.scribe.model.Verb; import org.scribe.oauth.OAuthService; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.Panel; import com.vaadin.ui.TextArea; import com.vaadin.ui.TextField; import com.vaadin.ui.VerticalLayout; @SuppressWarnings("serial") class GetTestComponent extends Panel { private final VerticalLayout layout = new VerticalLayout(); private final Token accessToken; private final ApiInfo service; private TextArea responseArea; GetTestComponent(ApiInfo service, String accessToken, String accessTokenSecret) { setSizeFull(); setContent(layout); layout.setSizeFull(); this.service = service; this.accessToken = new Token(accessToken, accessTokenSecret); layout.setMargin(true); final TextField field = new TextField("Request:", service.exampleGetRequest); field.setWidth("100%"); layout.addComponent(field); Button bu = new Button("GET"); layout.addComponent(bu); bu.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { sendGet(field.getValue()); } }); responseArea = new TextArea("Response:"); responseArea.setSizeFull(); layout.addComponent(responseArea); layout.setExpandRatio(responseArea, 1); } private void sendGet(String get) { OAuthRequest request = new OAuthRequest(Verb.GET, get); createOAuthService().signRequest(accessToken, request); Response resp = request.send(); responseArea.setValue(resp.getBody()); } private OAuthService createOAuthService() { ServiceBuilder sb = new ServiceBuilder(); sb.provider(service.scribeApi); sb.apiKey(service.apiKey); sb.apiSecret(service.apiSecret); sb.callback("http://www.google.fi"); return sb.build(); } }