Author: adietish
Date: 2011-09-14 09:38:36 -0400 (Wed, 14 Sep 2011)
New Revision: 34725
Modified:
branches/jbosstools-3.3.0.M3/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/reporting/UsageReportEnablementDialog.java
Log:
[JBDS-1795] added a shell adapter that would bring usage back to front if it gets hidden
by another dialog. Not a great solution but the best we can do for M3
Modified:
branches/jbosstools-3.3.0.M3/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/reporting/UsageReportEnablementDialog.java
===================================================================
---
branches/jbosstools-3.3.0.M3/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/reporting/UsageReportEnablementDialog.java 2011-09-14
13:37:33 UTC (rev 34724)
+++
branches/jbosstools-3.3.0.M3/usage/plugins/org.jboss.tools.usage/src/org/jboss/tools/usage/internal/reporting/UsageReportEnablementDialog.java 2011-09-14
13:38:36 UTC (rev 34725)
@@ -17,6 +17,8 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.ShellAdapter;
+import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Link;
@@ -32,7 +34,8 @@
private boolean reportEnabled;
private IUsageBranding branding;
-
+ private ForceActiveShellAdapter forceActiveShellAdapter = new
ForceActiveShellAdapter();
+
public UsageReportEnablementDialog(IShellProvider parentShell, IUsageBranding branding)
{
super(parentShell);
this.branding = branding;
@@ -61,8 +64,16 @@
protected void configureShell(Shell shell) {
super.configureShell(shell);
shell.setText(branding.getStartupAllowReportingTitle());
+ forceActiveShellAdapter.attachTo(shell);
}
+ @Override
+ public boolean close() {
+ forceActiveShellAdapter.removeFrom(getShell());
+ return super.close();
+
+ }
+
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.YES_LABEL, false);
createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, false);
@@ -101,4 +112,28 @@
public boolean isReportEnabled() {
return reportEnabled;
}
+
+ private class ForceActiveShellAdapter extends ShellAdapter {
+
+ public void shellDeactivated(ShellEvent e) {
+ Shell shell = getShell();
+ if (shell != null
+ && !shell.isDisposed())
+ shell.forceActive();
+ }
+
+ private void attachTo(Shell shell) {
+ if (shell != null
+ && !shell.isDisposed()) {
+ shell.addShellListener(this);
+ }
+ }
+
+ private void removeFrom(Shell shell) {
+ if (shell != null
+ && !shell.isDisposed()) {
+ shell.removeShellListener(this);
+ }
+ }
+ }
}
Show replies by date