/** * */ package org.javabuilders.swt.handler.event.background; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.IOException; import java.util.logging.Logger; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.ProgressBar; import org.eclipse.swt.widgets.Shell; import org.javabuilders.BuildException; import org.javabuilders.Builder; import org.javabuilders.event.BackgroundEvent; import org.javabuilders.event.CancelStatus; import org.javabuilders.swt.SwtJavaBuilder; import org.javabuilders.util.BuilderUtils; /** * Background dialog * @author Jacek Furmankiewicz */ public class BackgroundDialog { private Shell shell; @SuppressWarnings("unused") private Label progressLabel; @SuppressWarnings("unused") private ProgressBar progressBar; private BackgroundEvent event = null; /** * Constructor * @throws BuildException * @throws IOException */ public BackgroundDialog(BackgroundEvent event) throws IOException, BuildException { BuilderUtils.validateNotNullAndNotEmpty("event", event); this.event = event; this.event.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals("progressMessage")) { progressLabel.setText((String) evt.getNewValue()); } } }); SwtJavaBuilder.build(this, Builder.getResourceBundle()); } /** * @return The current background event */ public BackgroundEvent getEvent() { return event; } /** * Requests task to be cancelled. */ @SuppressWarnings("unused") private void requestCancel() { boolean answer = MessageDialog.openQuestion(null, Builder.getResourceBundle().getString("message.cancelConfirm"), Builder.getResourceBundle().getString("title.cancelTask")); if (answer) { getEvent().setCancelStatus(CancelStatus.REQUESTED); } } /** * @return Created dialog */ public Shell getShell() { return shell; } }