package de.onyxbits.dummydroid;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import javax.swing.JEditorPane;
import javax.swing.JProgressBar;
import com.akdeniz.googleplaycrawler.GooglePlay.AndroidCheckinRequest;
public class CheckinForm extends AbstractForm {
/**
*
*/
private static final long serialVersionUID = 1L;
private JEditorPane result;
private JProgressBar progress;
private String cached;
public CheckinForm(NavigateAction forward, NavigateAction backward) {
super(forward, backward);
result = new HypertextPane("");
result.setPreferredSize(new Dimension(300, 200));
result.setOpaque(false);
progress = new JProgressBar();
progress.setIndeterminate(true);
progress.setVisible(false);
setLayout(new BorderLayout());
add(result, BorderLayout.CENTER);
add(progress, BorderLayout.NORTH);
}
@Override
public void edit(FormData formData) {
super.edit(formData);
backwardAction.setEnabled(true);
forwardAction.setEnabled(false);
AndroidCheckinRequest acr = formData.assemble();
// Don't needlessly request new GSF IDs if nothing has changed.
String tmp = acr.toString();
if (!tmp.equals(cached)) {
progress.setVisible(true);
result.setText("");
new CheckinWorker(this, formData).execute();
cached = tmp;
}
}
@Override
public void commitForm() {
}
public void finished(Exception e) {
result.setText(e.getMessage());
progress.setVisible(false);
cached=null;
}
public void finished(String gsf) {
result.setText("<h1 align=\"center\">"+gsf+"</h1>");
progress.setVisible(false);
Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
clpbrd.setContents(new StringSelection(gsf), null);
}
}