Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2012-07-06 10:01:10 +0000
committercletavernie2012-07-06 10:01:10 +0000
commit9e032ff601bbd7f18a77455a4997813ae8c0681c (patch)
tree852b367919f2f5fc3fdc542ad1c0fb72ceb4d2fb /plugins/customization
parentcda2a2b9f8a522cefcc6661cfdce868c92dd5965 (diff)
downloadorg.eclipse.papyrus-9e032ff601bbd7f18a77455a4997813ae8c0681c.tar.gz
org.eclipse.papyrus-9e032ff601bbd7f18a77455a4997813ae8c0681c.tar.xz
org.eclipse.papyrus-9e032ff601bbd7f18a77455a4997813ae8c0681c.zip
337529: [Extensibility] Papyrus shall provide a tool for customizing the Property View
https://bugs.eclipse.org/bugs/show_bug.cgi?id=337529 Add progress dialog for long-running user operations (Edit property view, delete property view)
Diffstat (limited to 'plugins/customization')
-rw-r--r--plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/EditContextAction.java4
-rw-r--r--plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/OpenCustomization.java36
2 files changed, 34 insertions, 6 deletions
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/EditContextAction.java b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/EditContextAction.java
index 6324af0db46..7aa8129313c 100644
--- a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/EditContextAction.java
+++ b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/EditContextAction.java
@@ -49,13 +49,13 @@ public class EditContextAction {
dialog.run(false, false, new IRunnableWithProgress() {
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ monitor.beginTask("Opening the property view configuration: " + context.getName(), IProgressMonitor.UNKNOWN);
try {
- monitor.beginTask("Opening the property view configuration: " + context.getName(), IProgressMonitor.UNKNOWN);
runOpenEditor(context);
- monitor.done();
} catch (CoreException ex) {
Activator.log.error(ex);
}
+ monitor.done();
}
});
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/OpenCustomization.java b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/OpenCustomization.java
index 13f43774171..c6dc5cce847 100644
--- a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/OpenCustomization.java
+++ b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/ui/OpenCustomization.java
@@ -11,11 +11,17 @@
*****************************************************************************/
package org.eclipse.papyrus.customization.properties.ui;
+import java.lang.reflect.InvocationTargetException;
+
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.papyrus.customization.properties.Activator;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
/**
@@ -27,10 +33,32 @@ import org.eclipse.ui.handlers.HandlerUtil;
public class OpenCustomization extends AbstractHandler {
public Object execute(ExecutionEvent event) throws ExecutionException {
- IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
- Dialog dialog = new CustomizationDialog(window.getShell());
- dialog.open();
+ final Shell shell = HandlerUtil.getActiveShellChecked(event);
+
+ //The first opening might take some time, as the Property view ConfigurationManager may not be initialized yet
+
+ ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
+ try {
+ dialog.run(false, false, new IRunnableWithProgress() {
+
+ public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+ monitor.beginTask("Opening the property view customization page", IProgressMonitor.UNKNOWN);
+ runOpenCustomizationDialog(shell);
+ monitor.done();
+ }
+
+ });
+ } catch (Exception ex) {
+ Activator.log.error(ex);
+ }
+
return null;
}
+ protected void runOpenCustomizationDialog(Shell shell) {
+ Dialog dialog = new CustomizationDialog(shell);
+ dialog.setBlockOnOpen(false);
+ dialog.open();
+ }
+
}

Back to the top