[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