private Object aboutToStart(boolean cancelable) { Map savedState = null; Shell shell = getShell(); if (shell != null) { // Save focus control Control focusControl = getShell().getDisplay().getFocusControl(); if (focusControl != null && focusControl.getShell() != getShell()) focusControl = null; Button cancelButton = getButton(IDialogConstants.CANCEL_ID); // Set the busy cursor to all shells. Display d = getShell().getDisplay(); setDisplayCursor(d, d.getSystemCursor(SWT.CURSOR_WAIT)); // Set the arrow cursor to the cancel component. cancelButton.setCursor(d.getSystemCursor(SWT.CURSOR_ARROW)); boolean hasProgressMonitor = fProgressMonitorPart != null; // Deactivate shell savedState = saveUIState(false); if (focusControl != null) savedState.put("focus", focusControl); // $NON-NLS-1$ if (hasProgressMonitor) { if (cancelable) fProgressMonitorPart.attachToCancelComponent(cancelButton); fStatusContainer.showPage(fProgressMonitorPart); } // Update the status container since we are blocking the event loop right now. fStatusContainer.update(); } return savedState; }
private void setCursor(int i_cursorId) { // save current cursor Control ctrl = getCurrentViewer().getControl(); while (ctrl != null) { if (ctrl.getCursor() != null) { m_pushedCursor = ctrl.getCursor(); break; } ctrl = ctrl.getParent(); } m_pushedCursor = getCurrentViewer().getControl().getDisplay().getSystemCursor(SWT.CURSOR_ARROW); // hide cursor and save position ctrl = getCurrentViewer().getControl(); Display display = ctrl.getDisplay(); Cursor cursor = display.getSystemCursor(i_cursorId); ctrl.setCursor(cursor); }
@Override public void run() { Display display = Display.getCurrent(); Shell shell = display.getActiveShell(); Cursor cursor = shell == null ? null : shell.getCursor(); try { if (shell != null) { shell.setCursor(display.getSystemCursor(SWT.CURSOR_WAIT)); } setEnabled(false); if (installButton != null) { installButton.setEnabled(false); } DiscoveryUi.install(discoveryViewer.getInstallableConnectors(), SoftwarePage.this); } finally { if (shell != null) { shell.setCursor(cursor); } setEnabled(true); if (installButton != null) { installButton.setEnabled(true); } } }