[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