[jbosstools-commits] JBoss Tools SVN: r24062 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui: src/org/jboss/tools/deltacloud/ui and 2 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Wed Aug 11 13:18:14 EDT 2010


Author: jjohnstn
Date: 2010-08-11 13:18:13 -0400 (Wed, 11 Aug 2010)
New Revision: 24062

Added:
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/CustomProgressMonitorDialog.java
Modified:
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CloudViewElement.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstancePropertySource.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties
Log:
2010-08-11  Jeff Johnston  <jjohnstn at redhat.com>

	* src/org/jboss/tools/deltacloud/ui/CustomProgressMonitorDialog.java: New file.
	* src/org/jboss/tools/deltacloud/ui/views/CloudViewElement.java (getAdapter): Fix warning.
	* src/org/jboss/tools/deltacloud/ui/views/InstancePropertySource.java (InstancePropertySource): Ditto. 
	* src/org/jboss/tools/deltacloud/ui/views/InstanceView.java (selectedElement): Ditto.
	* src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java (performFinish): Fix to
	run a Job to monitor the progress. 
	(WatchCreateJob): New private Job class to watch the instance creation.
	* src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties: Add new
	messages. 



Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog	2010-08-11 16:09:28 UTC (rev 24061)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog	2010-08-11 17:18:13 UTC (rev 24062)
@@ -1,5 +1,17 @@
 2010-08-11  Jeff Johnston  <jjohnstn at redhat.com>
 
+	* src/org/jboss/tools/deltacloud/ui/CustomProgressMonitorDialog.java: New file.
+	* src/org/jboss/tools/deltacloud/ui/views/CloudViewElement.java (getAdapter): Fix warning.
+	* src/org/jboss/tools/deltacloud/ui/views/InstancePropertySource.java (InstancePropertySource): Ditto. 
+	* src/org/jboss/tools/deltacloud/ui/views/InstanceView.java (selectedElement): Ditto.
+	* src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java (performFinish): Fix to
+	run a Job to monitor the progress. 
+	(WatchCreateJob): New private Job class to watch the instance creation.
+	* src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties: Add new
+	messages. 
+
+2010-08-11  Jeff Johnston  <jjohnstn at redhat.com>
+
 	* build.properties: Add plugin.properties to bin list.
 	* src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties: New messages. 
 	* src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java (fillContextMenu): Remove

Added: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/CustomProgressMonitorDialog.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/CustomProgressMonitorDialog.java	                        (rev 0)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/CustomProgressMonitorDialog.java	2010-08-11 17:18:13 UTC (rev 24062)
@@ -0,0 +1,63 @@
+package org.jboss.tools.deltacloud.ui;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+public class CustomProgressMonitorDialog extends ProgressMonitorDialog {
+
+	private Button checkbox;
+	private boolean checkboxValue;
+	
+	private String okLabel;
+	private String checkboxLabel;
+	
+	private SelectionListener listener = new SelectionAdapter() {
+		@Override
+		public void widgetSelected(SelectionEvent e) {
+			Button b = (Button)e.widget;
+			checkboxValue = b.getSelection();
+		}
+	};
+	
+	public boolean getCheckboxValue() {
+		return checkboxValue;
+	}
+	
+	public CustomProgressMonitorDialog(Shell parent, String okLabel,
+			String checkboxLabel, boolean checkboxValue) {
+		super(parent);
+		this.okLabel = okLabel;
+		this.checkboxLabel = checkboxLabel;
+		this.checkboxValue = checkboxValue;
+	}
+	
+	protected void okPressed() {
+		// We need to cheat...we need to cancel the monitoring task
+		// so we can successfully close the dialog
+		cancelPressed();
+		setReturnCode(OK);
+	}
+	
+	protected void createButtonsForButtonBar(Composite parent) {
+		createCancelButton(parent);
+		createButton(parent, IDialogConstants.OK_ID, okLabel, false);
+	}
+
+	protected Control createDialogArea(Composite parent) {
+		super.createDialogArea(parent);
+		checkbox = new Button(parent, SWT.CHECK);
+		checkbox.setText(checkboxLabel);
+		checkbox.setSelection(checkboxValue);
+		checkbox.addSelectionListener(listener);
+		return parent;
+	}
+
+}

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CloudViewElement.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CloudViewElement.java	2010-08-11 16:09:28 UTC (rev 24061)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CloudViewElement.java	2010-08-11 17:18:13 UTC (rev 24062)
@@ -49,6 +49,7 @@
 		return element;
 	}
 
+	@SuppressWarnings("unchecked")
 	@Override
 	public Object getAdapter(Class adapter) {
 		if (adapter == IPropertySource.class) {

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstancePropertySource.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstancePropertySource.java	2010-08-11 16:09:28 UTC (rev 24061)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstancePropertySource.java	2010-08-11 17:18:13 UTC (rev 24062)
@@ -26,11 +26,8 @@
 	
 	private IPropertyDescriptor[] propertyDescriptors;
 	private DeltaCloudInstance instance;
-	private CVInstanceElement element;
-	
 	public InstancePropertySource(CVInstanceElement element, Object o) {
 		instance = (DeltaCloudInstance)o;
-		this.element = element;
 	}
 	
 	@Override

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java	2010-08-11 16:09:28 UTC (rev 24061)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java	2010-08-11 17:18:13 UTC (rev 24062)
@@ -48,6 +48,7 @@
 	private TableViewer viewer;
 	private Composite container;
 	private Combo cloudSelector;
+	@SuppressWarnings("unused")
 	private DeltaCloudInstance selectedElement;
 	
 	private DeltaCloud[] clouds;

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java	2010-08-11 16:09:28 UTC (rev 24061)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstance.java	2010-08-11 17:18:13 UTC (rev 24062)
@@ -6,15 +6,12 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
 import org.jboss.tools.deltacloud.core.DeltaCloud;
 import org.jboss.tools.deltacloud.core.DeltaCloudException;
 import org.jboss.tools.deltacloud.core.DeltaCloudImage;
@@ -32,6 +29,7 @@
 	private final static String CONFIRM_CREATE_MSG = "ConfirmCreate.msg"; //$NON-NLS-1$
 	private final static String DONT_SHOW_THIS_AGAIN_MSG = "DontShowThisAgain.msg"; //$NON-NLS-1$
 	private final static String STARTING_INSTANCE_MSG = "StartingInstance.msg"; //$NON-NLS-1$
+	private final static String STARTING_INSTANCE_TITLE = "StartingInstance.title"; //$NON-NLS-1$
 	
 	private NewInstancePage mainPage;
 	
@@ -56,6 +54,48 @@
 		return mainPage.isPageComplete();
 	}
 	
+	
+	private class WatchCreateJob extends Job {
+		
+		private DeltaCloud cloud;
+		private String instanceId;
+		private String instanceName;
+		
+		public WatchCreateJob(String title, DeltaCloud cloud, 
+				String instanceId, String instanceName) {
+			super(title);
+			this.cloud = cloud;
+			this.instanceId = instanceId;
+			this.instanceName = instanceName;
+		}
+		
+		public IStatus run(IProgressMonitor pm) {
+			if (!pm.isCanceled()){
+				try {
+					pm.beginTask(WizardMessages.getFormattedString(STARTING_INSTANCE_MSG, new String[] {instanceName}), IProgressMonitor.UNKNOWN);
+					pm.worked(1);
+					boolean finished = false;
+					while (!finished && !pm.isCanceled()) {
+						DeltaCloudInstance instance = cloud.refreshInstance(instanceId);
+						if (!instance.getState().equals(DeltaCloudInstance.PENDING))
+							break;
+						Thread.sleep(400);
+					}
+
+				} catch (Exception e) {
+					// do nothing
+				} finally {
+					pm.done();
+				}
+				return Status.OK_STATUS;
+			}
+			else {
+				pm.done();
+				return Status.CANCEL_STATUS;
+			}
+		};
+	};
+	
 	@Override
 	public boolean performFinish() {
 		String imageId = image.getId();
@@ -94,28 +134,11 @@
 				result = true;
 			final String instanceId = instance.getId();
 			final String instanceName = name;
-			if (instance != null) {
-				IWorkbench wb = PlatformUI.getWorkbench();
-				IProgressService ps = wb.getProgressService();
-				try {
-					ps.busyCursorWhile(new IRunnableWithProgress() {
-						public void run(IProgressMonitor pm) {
-							pm.beginTask(WizardMessages.getFormattedString(STARTING_INSTANCE_MSG, new String[] {instanceName}), IProgressMonitor.UNKNOWN);
-							pm.worked(1);
-							try {
-								for (int i = 0; i < 2; ++i) {
-									instance = cloud.refreshInstance(instanceId);
-									if (!instance.getState().equals(DeltaCloudInstance.PENDING))
-										break;
-								}
-							} finally {
-								pm.done();
-							}
-						}
-					});
-				} catch(Exception ex) {
-					errorMessage = ex.getLocalizedMessage();
-				}
+			if (instance != null && !instance.getState().equals(DeltaCloudInstance.PENDING)) {
+				Job job = new WatchCreateJob(WizardMessages.getString(STARTING_INSTANCE_TITLE),
+						cloud, instanceId, instanceName);
+				job.setUser(true);
+				job.schedule();
 			}
 		} catch (DeltaCloudException e) {
 			errorMessage = e.getLocalizedMessage();

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties	2010-08-11 16:09:28 UTC (rev 24061)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties	2010-08-11 17:18:13 UTC (rev 24062)
@@ -20,6 +20,10 @@
 Realm.label=Realm:
 Storage.label=Storage:
 
+BackGround.label=Run In Background
+AlwaysRunInBackground.msg=Always run in the background
+Progress.msg=Progress
+
 None.response=None
 Defaulted=Defaulted
 
@@ -42,4 +46,5 @@
 NewInstance.title=Launch Instance
 NewInstance.name=Launch Instance
 
+StartingInstance.title=Starting Instance
 StartingInstance.msg=Starting Instance: {0}
\ No newline at end of file



More information about the jbosstools-commits mailing list