package de.onyxbits.raccoon.gui; import java.awt.Cursor; import java.util.List; import java.util.Locale; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import com.akdeniz.googleplaycrawler.GooglePlay.DocV2; import com.akdeniz.googleplaycrawler.GooglePlayAPI; import de.onyxbits.raccoon.App; import de.onyxbits.raccoon.io.Archive; /** * Perform a details query for a {@link ResultView} * * @author patrick * */ class DetailsWorker extends SwingWorker<DocV2, Object> { private Archive archive; private ResultView callback; private String appId; public DetailsWorker(Archive archive, ResultView callback, String appId) { this.archive = archive; this.callback = callback; this.appId = appId; } @Override public void process(List<Object> obj) { SwingUtilities.windowForComponent(callback).setCursor( Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } @Override protected DocV2 doInBackground() throws Exception { publish(""); GooglePlayAPI service = App.createConnection(archive); service.setLocalization(Locale.getDefault().getCountry()); return service.details(appId).getDocV2(); } @Override protected void done() { try { callback.updateEntry(get()); SwingUtilities.windowForComponent(callback).setCursor(Cursor.getDefaultCursor()); } catch (Exception e) { // There is no reason why we should end here e.printStackTrace(); return; } } }