/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.sparky; import javax.swing.*; import java.beans.PropertyChangeListener; public abstract class SimpleSwingWorker { private final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() { @Override protected Void doInBackground() throws Exception { SimpleSwingWorker.this.doInBackground(); return null; } @Override protected void done() { // call get to make sure any exceptions // thrown during doInBackground() are // thrown again try { get(); } catch (final Exception ex) { throw new RuntimeException(ex); } } }; public SimpleSwingWorker() { } protected abstract Void doInBackground() throws Exception; public void execute() { worker.execute(); } protected void firePropertyChange(String eventName, Object oldValue, Object newValue) { try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } worker.firePropertyChange(eventName, oldValue, newValue); } public void addPropertyChangeListener(PropertyChangeListener propertyChangeListener) { worker.addPropertyChangeListener(propertyChangeListener); } }