[jbosstools-commits] JBoss Tools SVN: r40991 - in trunk: common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui and 3 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon May 14 12:53:56 EDT 2012


Author: xcoulon
Date: 2012-05-14 12:53:56 -0400 (Mon, 14 May 2012)
New Revision: 40991

Added:
   trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/dialog/
   trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/dialog/CheckboxMessageDialog.java
Modified:
   trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/DeleteDomainAction.java
Log:
Fixed - JBIDE-11852
Improve responsiveness of User contextual menu in OpenShift Explorer
https://issues.jboss.org/browse/JBIDE-11852

Modified: trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF	2012-05-14 16:11:21 UTC (rev 40990)
+++ trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF	2012-05-14 16:53:56 UTC (rev 40991)
@@ -34,6 +34,7 @@
  org.eclipse.jdt.junit;bundle-version="3.7.0"
 Export-Package: org.jboss.tools.common.ui,
  org.jboss.tools.common.ui.databinding,
+ org.jboss.tools.common.ui.dialog,
  org.jboss.tools.common.ui.marker,
  org.jboss.tools.common.ui.preferences,
  org.jboss.tools.common.ui.preferencevalue,

Added: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/dialog/CheckboxMessageDialog.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/dialog/CheckboxMessageDialog.java	                        (rev 0)
+++ trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/dialog/CheckboxMessageDialog.java	2012-05-14 16:53:56 UTC (rev 40991)
@@ -0,0 +1,103 @@
+/******************************************************************************* 
+ * Copyright (c) 2012 Red Hat, Inc. 
+ * Distributed under license by Red Hat, Inc. All rights reserved. 
+ * This program is made available under the terms of the 
+ * Eclipse Public License v1.0 which accompanies this distribution, 
+ * and is available at http://www.eclipse.org/legal/epl-v10.html 
+ * 
+ * Contributors: 
+ * Red Hat, Inc. - initial API and implementation 
+ ******************************************************************************/
+package org.jboss.tools.common.ui.dialog;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * A MessageDialog that displays a check box under the message. By default, the check box is unselected.
+ * 
+ * @author Xavier Coulon
+ *
+ */
+public class CheckboxMessageDialog extends MessageDialog {
+
+	public static final int INCLUDE_APPS = 2;
+	private final String checkboxMessage;
+
+	private boolean toggleState;
+	
+	public CheckboxMessageDialog(Shell parentShell, String dialogTitle, String dialogMessage,
+			String checkboxMessage) {
+		super(parentShell, dialogTitle, null, dialogMessage, CONFIRM, new String[] { IDialogConstants.OK_LABEL,
+				IDialogConstants.CANCEL_LABEL }, 1 );
+		setShellStyle(getShellStyle() | (SWT.NONE & SWT.SHEET));
+		this.checkboxMessage = checkboxMessage;
+	}
+
+	@Override
+	public Image getImage() {
+		return getQuestionImage();
+	}
+
+
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite dialogAreaComposite = (Composite) super
+                .createDialogArea(parent);
+        setToggleButton(createToggleButton(dialogAreaComposite));
+        return dialogAreaComposite;
+	}
+	
+	private void setToggleButton(final Button button) {
+		button.setText(checkboxMessage);
+        button.setSelection(false);
+		
+	}
+
+	/**
+     * Creates a toggle button without any text or state.  The text and state
+     * will be created by <code>createDialogArea</code>. 
+     * 
+     * @param parent
+     *            The composite in which the toggle button should be placed;
+     *            must not be <code>null</code>.
+     * @return The added toggle button; never <code>null</code>.
+     */
+    protected Button createToggleButton(Composite parent) {
+        final Button button = new Button(parent, SWT.CHECK | SWT.LEFT);
+
+        GridData data = new GridData(SWT.NONE);
+        data.horizontalSpan = 2;
+        button.setLayoutData(data);
+        button.setFont(parent.getFont());
+
+        button.addSelectionListener(new SelectionAdapter() {
+
+			public void widgetSelected(SelectionEvent e) {
+                toggleState = button.getSelection();
+            }
+
+        });
+
+        return button;
+    }
+
+	@Override
+	public int open() {
+		int result = super.open();
+		if(toggleState) {
+			result += INCLUDE_APPS;
+		}
+		return result;
+	}
+	
+}


Property changes on: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/dialog/CheckboxMessageDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF	2012-05-14 16:11:21 UTC (rev 40990)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/META-INF/MANIFEST.MF	2012-05-14 16:53:56 UTC (rev 40991)
@@ -44,7 +44,8 @@
  org.eclipse.equinox.security;bundle-version="1.1.1",
  org.jboss.ide.eclipse.as.dmr;bundle-version="2.3.0",
  org.eclipse.jsch.ui;bundle-version="1.1.300",
- org.eclipse.jdt.debug.ui;bundle-version="3.6.1"
+ org.eclipse.jdt.debug.ui;bundle-version="3.6.1",
+ org.jboss.tools.common.ui;bundle-version="3.3.0"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Import-Package: org.jboss.tools.common.databinding,

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/DeleteDomainAction.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/DeleteDomainAction.java	2012-05-14 16:11:21 UTC (rev 40990)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/action/DeleteDomainAction.java	2012-05-14 16:53:56 UTC (rev 40991)
@@ -16,14 +16,16 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeSelection;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.PlatformUI;
+import org.jboss.tools.common.ui.dialog.CheckboxMessageDialog;
 import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
+import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
 import org.jboss.tools.openshift.express.internal.ui.messages.OpenShiftExpressUIMessages;
 import org.jboss.tools.openshift.express.internal.ui.utils.Logger;
 
@@ -38,7 +40,7 @@
 				.getImageDescriptor(ISharedImages.IMG_ETOOL_DELETE));
 	}
 
-	@Override
+	/*@Override
 	public void validate() {
 		boolean enable = false;
 		if (selection instanceof ITreeSelection
@@ -63,7 +65,7 @@
 			}
 		}
 		setEnabled(enable);
-	}
+	}*/
 
 	@Override
 	public void run() {
@@ -75,28 +77,39 @@
 				final IDomain domain = user.getDefaultDomain();
 				if (domain != null) {
 					boolean confirm = false;
-					confirm = MessageDialog.openConfirm(Display.getCurrent()
+					MessageDialog dialog = new CheckboxMessageDialog(Display.getCurrent()
 							.getActiveShell(), "Domain deletion", NLS.bind(
+									"You are about to delete the \"{0}\" domain.\n"
+											+ "Do you want to continue?",
+											domain.getId()), "Force applications deletion (data will be lost and operation cannot be undone)");
+					/*confirm = MessageDialog.openConfirm(Display.getCurrent()
+							.getActiveShell(), "Domain deletion", NLS.bind(
 							"You are about to delete the \"{0}\" domain.\n"
 									+ "Do you want to continue?",
-							domain.getId()));
+							domain.getId()));*/
+					int result = dialog.open();
+					if((result == CheckboxMessageDialog.INCLUDE_APPS) || (result == MessageDialog.OK)) {
+						confirm = true;
+					}
+					final boolean includeApps = ((result & CheckboxMessageDialog.INCLUDE_APPS) > 0);
 					if (confirm) {
 						Job job = new Job("Deleting OpenShift Domain...") {
 							@Override
 							protected IStatus run(IProgressMonitor monitor) {
 								try {
 									try {
-										domain.destroy();
+										domain.destroy(includeApps);
+										return Status.OK_STATUS;
 									} catch (OpenShiftException e) {
-										Logger.error(NLS.bind("Failed to delete domain \"{0}\"", domain.getId()), e);
+										return new Status(Status.ERROR, OpenShiftUIActivator.PLUGIN_ID, NLS.bind("Failed to delete domain \"{0}\"", domain.getId()), e);
+										
 									} catch (SocketTimeoutException e) {
-										Logger.error(NLS.bind("Failed to delete domain \"{0}\"", domain.getId()), e);
+										return new Status(Status.ERROR, OpenShiftUIActivator.PLUGIN_ID, NLS.bind("Failed to delete domain \"{0}\"", domain.getId()), e);
 									}
 								} finally {
 									monitor.done();
 								}
 
-								return Status.OK_STATUS;
 							}
 						};
 						job.setPriority(Job.SHORT);



More information about the jbosstools-commits mailing list