package net.thesocialos.client.view;
import gwtupload.client.SingleUploader;
import java.util.Iterator;
import java.util.Map;
import net.thesocialos.client.CacheLayer;
import net.thesocialos.client.presenter.ResourceUploadPresenter.Display;
import net.thesocialos.shared.model.Account;
import net.thesocialos.shared.model.Facebook;
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.Composite;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
import com.google.gwt.user.client.ui.Hidden;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.SubmitButton;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.googlecode.objectify.Key;
public class ResourceUploadView extends Composite implements Display {
private static ResourceUploadUiBinder uiBinder = GWT.create(ResourceUploadUiBinder.class);
// @UiField Label lblFacebook;
// @UiField Label lblPicassa;
@UiField SimplePanel simplePanel;
// @UiField SimplePanel UploadPanel;
SingleUploader uploader = new SingleUploader();
@UiField FormPanel imgForm;
@UiField Hidden token;
@UiField SubmitButton uploadButton;
@UiField FileUpload fileUpload;
@UiField TextBox description;
interface ResourceUploadUiBinder extends UiBinder<Widget, ResourceUploadView> {
}
public ResourceUploadView() {
initWidget(uiBinder.createAndBindUi(this));
// uploader.setAutoSubmit(false);
// uploader.setServletPath("/upload");
// UploadPanel.add(uploader);
final Facebook facebookAccount = getFacebookAccount();
if (null != facebookAccount) token.setValue(facebookAccount.getAuthToken());
imgForm.addSubmitCompleteHandler(new SubmitCompleteHandler() {
@Override
public void onSubmitComplete(SubmitCompleteEvent event) {
imgForm.reset();
if (null != facebookAccount) token.setValue(facebookAccount.getAuthToken());
}
});
}
/*
* @Override public Label getFacebook() { // TODO Auto-generated method stub return lblFacebook; }
* @Override public Label getPicasa() { // TODO Auto-generated method stub return lblPicassa; }
*/
@Override
public SimplePanel getHtmlPanel() {
// TODO Auto-generated method stub
return simplePanel;
}
@Override
public SingleUploader getUploader() {
// TODO Auto-generated method stub
return uploader;
}
private Facebook getFacebookAccount() {
// Map<Key<Account>, Account> accounts =
Map<Key<Account>, Account> accounts = CacheLayer.UserCalls.getAccounts();
Iterator<Account> it = accounts.values().iterator();
while (it.hasNext()) {
Account account = it.next();
if (account instanceof Facebook) return (Facebook) account;
}
return null;
}
}