private void displayExec(Runnable r) { synchronized (Device.class) { if (!display.isDisposed()) { display.asyncExec(r); } } }
public void updateProgress( final InetAddress currentAddress, final int runningThreads, final int percentageComplete) { if (display.isDisposed()) return; display.asyncExec( new Runnable() { public void run() { if (statusBar.isDisposed()) return; // update status bar if (currentAddress != null) { statusBar.setStatusText( Labels.getLabel("state.scanning") + currentAddress.getHostAddress()); } statusBar.setRunningThreads(runningThreads); statusBar.setProgress(percentageComplete); // show percentage in main window title if (!stateMachine.inState(ScanningState.IDLE)) statusBar.getShell().setText(percentageComplete + "% - " + mainWindowTitle); else statusBar.getShell().setText(mainWindowTitle); // change button image according to the current state button.setImage(buttonImages[stateMachine.getState().ordinal()]); } }); }
/** * Adds this as element state listener in the UI thread as it can otherwise conflict with other * listener additions, since DocumentProvider is not thread-safe. * * @param editor the editor to get the display from * @param provider the document provider to register as element state listener */ private void addElementStateListener(ITextEditor editor, final IDocumentProvider provider) { // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=66686 and // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=56871 Runnable runnable = new Runnable() { public void run() { synchronized (fLock) { if (fDocumentProvider == provider) // addElementStateListener adds at most once - no problem to call repeatedly provider.addElementStateListener(LastSaveReferenceProvider.this); } } }; Display display = null; if (editor != null) { IWorkbenchPartSite site = editor.getSite(); if (site != null) { IWorkbenchWindow window = site.getWorkbenchWindow(); if (window != null) { Shell shell = window.getShell(); if (shell != null) display = shell.getDisplay(); } } } if (display != null && !display.isDisposed()) { display.asyncExec(runnable); } else { runnable.run(); } }
public void clickVoteOnIdea() { if (display.isDisposed()) return; if ((clientWhiteboard.getSelectionControl().getSelectedIdeas().size() + clientWhiteboard.getSelectionControl().getSelectedIdeas().size()) == 0) return; GuiCreateComment guicomment = new GuiCreateComment(getPlayerId(), display, clientCore.getGame(), clientCore); guicomment.init( clientWhiteboard.getSelectionControl().getSelectedIdeas(), clientWhiteboard.getSelectionControl().getSelectedComments()); guicomment.run(); if (guicomment.getResultName() == null) return; // user cancelled /* try { clientCore.getGame().addIdea( getPlayerId(), guiCreateIdea.getResultName(), guiCreateIdea.getResultItemIds(), guiCreateIdea.getResultParentIds() ); } catch (Exception e) { displayError("error while creating the idea", e); }*/ }
public void clickCreateIdea() { if (display.isDisposed()) return; GuiCreateIdea guiCreateIdea = new GuiCreateIdea(getPlayerId(), display, clientCore.getGame()); guiCreateIdea.init( clientWhiteboard.getSelectionControl().getSelectedIdeas(), clientWhiteboard.getSelectionControl().getSelectedItems()); guiCreateIdea.run(); if (guiCreateIdea.getResultName() == null) return; // user probably cancelled try { clientCore .getGame() .addIdea( getPlayerId(), guiCreateIdea.getResultName(), guiCreateIdea.getResultDesc(), guiCreateIdea.getResultItemIds(), guiCreateIdea.getResultParentIds()); } catch (Exception e) { displayError("error while creating the idea", e); } }
/** * Update the presentation. * * @param textPresentation the text presentation * @param addedPositions the added positions * @param removedPositions the removed positions */ private void updatePresentation( TextPresentation textPresentation, List<Position> addedPositions, List<Position> removedPositions) { Runnable runnable = fJobPresenter.createUpdateRunnable(textPresentation, addedPositions, removedPositions); if (runnable == null) { return; } DartEditor editor = fEditor; if (editor == null) { return; } IWorkbenchPartSite site = editor.getSite(); if (site == null) { return; } Shell shell = site.getShell(); if (shell == null || shell.isDisposed()) { return; } Display display = shell.getDisplay(); if (display == null || display.isDisposed()) { return; } display.asyncExec(runnable); }
/* (non-Javadoc) * @see com.windowtester.runtime.IUIContext#wait(com.windowtester.runtime.condition.ICondition, long, int) */ public void wait(ICondition condition, long timeout, int interval) throws WaitTimedOutException { expectDelay(timeout); // TODO [author=Dan] waitForShellShowing/Disposed had handleConditions // but other wait(...) methods did not, so this is a slight change handleConditions(); long now = System.currentTimeMillis(); while (!ConditionMonitor.test(this, condition)) { if (System.currentTimeMillis() - now > timeout) { // If the display is valid, then capture the screen and close open shells if (_display == null) LogHandler.log("failed to get current display in wait timeout handling"); else if (_display.isDisposed()) LogHandler.log("current display is disposed in wait timeout handling"); else { doScreenCapture("on timeout"); new ExceptionHandlingHelper(_display, true).closeOpenShells(); } // Build diagnostic information throw new WaitTimedOutException( Diagnostic.toString("Timed out waiting for condition", condition)); } // note conditions are handled in the pause pause(interval); } }
/** * Hook the given Listener to the Mac OS X application Quit menu and the IActions to the About and * Preferences menus. * * @param display The Display to use. * @param quitListener The listener to invoke when the Quit menu is invoked. * @param aboutAction The action to run when the About menu is invoked. * @param preferencesAction The action to run when the Preferences menu is invoked. */ public void hookApplicationMenu( Display display, Listener quitListener, IAction aboutAction, IAction preferencesAction) { // This is our callbackObject whose 'actionProc' method will be called when the About or // Preferences menuItem is invoked. MenuHookObject target = new MenuHookObject(aboutAction, preferencesAction); try { // Initialize the menuItems. initialize(target); } catch (Exception e) { throw new IllegalStateException(e); } // Connect the quit/exit menu. if (!display.isDisposed()) { display.addListener(SWT.Close, quitListener); } // Schedule disposal of callback object display.disposeExec( new Runnable() { public void run() { invoke(proc3Args, "dispose"); } }); }
private void clickCreateGame() { if (display.isDisposed()) return; GuiCreateGame guiCreateGame = new GuiCreateGame(display); guiCreateGame.init(); guiCreateGame.run(); String gameName = guiCreateGame.getGameName(); // .replaceAll("![a-zA-Z0-9_]", "_"); // TODO constrain the format String gameTheme = guiCreateGame.getGameTheme(); if (gameName == null) return; try { gameServer.createGame(gameName, gameTheme); } catch (Exception e) { displayError("Error while creating this game, sorry", e); } setServerMode(GuiServerMode.SERVER_WITH_GAME); // GuiCreateIdea guiCreateIdea = new GuiCreateIdea(compositeHost); }
public void dispose() { shell.dispose(); if (trayItem != null) { trayItem.dispose(); trayItem = null; } if (image != null) { image.dispose(); } if (image2 != null) { image2.dispose(); } try { if (!display.isDisposed()) { display.dispose(); } } catch (Exception e) { // already disposed } // dispose AWT frames if (settingsFrame != null) { settingsFrame.dispose(); } if (aboutFrame != null) { aboutFrame.dispose(); } if (logBrokerMonitor != null) { logBrokerMonitor.dispose(); } }
protected void handleEvents() { while (display != null && (!display.isDisposed()) && (!parent.isDisposed())) { if (!display.readAndDispatch()) { break; // display.sleep(); } } }
private void exec(Runnable runnable) { if (canvas == null) return; if (canvas.isDisposed()) return; Display display = canvas.getDisplay(); if (!display.isDisposed()) { display.asyncExec(runnable); } }
public static void main(String[] args) { Display display = Display.getDefault(); final Shell shell = new Shell(display, SWT.TITLE | SWT.CLOSE); shell.setText(TITLE); final String C10T_PATH = System.getenv("C10T_PATH"); final C10tGraphicalInterface gui = new C10tGraphicalInterface(display, shell); final DetachedProcess detachedProcess = new C10tDetachedProcess(gui); final CommandExecutioner executioner = new CommandExecutioner("c10t", detachedProcess, C10T_PATH); gui.addRenderButtonListener(new RenderSelection(shell, gui, executioner)); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 3; gridLayout.marginBottom = 8; gridLayout.marginTop = 8; gridLayout.marginLeft = 8; gridLayout.marginRight = 8; shell.setLayout(gridLayout); shell.pack(); shell.open(); shell.setSize(500, shell.getSize().y); try { executioner.findCommand(); } catch (CommandNotFoundException e) { MessageBox messageBox = new MessageBox(shell, SWT.ERROR); messageBox.setText("c10t - Command could not be found"); messageBox.setMessage( "The program `" + executioner.getName() + "' could not be located anywhere in your PATH or in the current working directory\n\n" + "You must be fixed this by doing one of the following:\n\n" + " 1) Install the command `" + executioner.getName() + "' to somewhere in your PATH or the working directory of this program `" + System.getProperty("user.dir") + "'\n" + " 2) Specify where the command is with the environment variable `C10T_PATH'\n\n" + "Your PATH is: " + System.getenv("PATH")); messageBox.open(); } while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } if (!display.isDisposed()) { display.dispose(); } }
private void clickEditVisuParams() { if (display.isDisposed()) return; GUIParameters guiParams = new GUIParameters(display, "Visu Parameters", GUIParametersMode.STANDALONE); guiParams.init(clientWhiteboard.getParameters()); guiParams.refreshDirect(); guiParams.openDirect(); }
private void pruneResourceManagers() { Set displays = resourceManagers.keySet(); for (Iterator iter = displays.iterator(); iter.hasNext(); ) { Display display = (Display) iter.next(); if (display.isDisposed()) { resourceManagers.remove(display); iter = displays.iterator(); } } }
/* * There are situations where this is called more than once until we know * why this is needed we should make this safe for multiple calls */ private void cleanUp() { if (keyListener != null) { Display display = Display.getDefault(); if (!display.isDisposed()) { display.removeFilter(SWT.KeyDown, keyListener); display.removeFilter(SWT.Traverse, keyListener); keyListener = null; } } }
/** Posts this runnable into the event queue. */ public void post(IContentOutlinePage page) { this.page = page; if (posted) return; Display d = Display.getDefault(); if (d != null && !d.isDisposed()) { posted = true; d.asyncExec(this); } }
/** Posts this runnable into the event queue. */ public void postMessage(String message) { this.message = message; if (posted) return; Display d = Display.getDefault(); if (d != null && !d.isDisposed()) { posted = false; d.asyncExec(this); } }
/** Processes events or waits until this modal context thread terminates. */ public void block() { if (display == Display.getCurrent()) { int exceptionCount = 0; while (continueEventDispatching) { // Run the event loop. Handle any uncaught exceptions caused // by UI events. try { if (!display.readAndDispatch()) { display.sleep(); } exceptionCount = 0; } // ThreadDeath is a normal error when the thread is dying. // We must // propagate it in order for it to properly terminate. catch (ThreadDeath e) { throw (e); } // For all other exceptions, log the problem. catch (Throwable t) { if (t instanceof VirtualMachineError) { throw (VirtualMachineError) t; } exceptionCount++; // We're counting exceptions in client code, such as asyncExecs, // so be generous about how many may fail consecutively before we // give up. if (exceptionCount > 50 || display.isDisposed()) { if (t instanceof RuntimeException) { throw (RuntimeException) t; } else if (t instanceof Error) { throw (Error) t; } else { throw new RuntimeException(t); } } Policy.getLog() .log( new Status( IStatus.ERROR, Policy.JFACE, "Unhandled event loop exception during blocked modal context.", //$NON-NLS-1$ t)); } } } else { try { join(); } catch (InterruptedException e) { throwable = e; } } }
protected String[] getAuthenticationDialog(final String realm, final String tracker) { final Display display = SWTThread.getInstance().getDisplay(); if (display.isDisposed()) { return (null); } final AESemaphore sem = new AESemaphore("SWTAuth"); final authDialog[] dialog = new authDialog[1]; TOTorrent torrent = TorrentUtils.getTLSTorrent(); final String torrent_name; if (torrent == null) { torrent_name = null; } else { torrent_name = TorrentUtils.getLocalisedName(torrent); } try { display.asyncExec( new AERunnable() { public void runSupport() { dialog[0] = new authDialog(sem, display, realm, tracker, torrent_name); } }); } catch (Throwable e) { Debug.printStackTrace(e); return (null); } sem.reserve(); String user = dialog[0].getUsername(); String pw = dialog[0].getPassword(); String persist = dialog[0].savePassword() ? "true" : "false"; if (user == null) { return (null); } return (new String[] {user, pw == null ? "" : pw, persist}); }
private static Display getDisplay() { Display display = Internal_PackageSupport.getDisplayInstance(); // following if loop (getting default display) should be removed // if agreed that MobileDevice shouldn't create the display. if (display == null) { display = Display.getDefault(); } if (display == null || display.isDisposed()) { SWT.error(SWT.ERROR_DEVICE_DISPOSED); } return display; }
private void processEvents() { // renderer.run(window, appContext); Display display = Display.getCurrent(); if (display.isDisposed()) { return; } try { while (display.readAndDispatch()) { appContext.processWaiting(); } } catch (Exception e) { e.printStackTrace(); } }
public void updateShotView(final ImageData id) { if (display == null || display.isDisposed()) return; display.asyncExec( new Runnable() { @Override public void run() { // System.out.println("shot view"); Image image = new Image(display, id); sstLabel.setImage(image); sstLabel.update(); } }); }
public synchronized void check(Display display) { if (display == null || display.isDisposed() || !isActive()) return; if (start == -1) { // not scheduled this.display = display; schedule(); } else if (start == -2) { // working rescheduling = true; } else { // scheduling start = System.currentTimeMillis(); } }
private void setClientMode(GuiClientMode novelMode) { this.modeClient = novelMode; if (display.isDisposed()) return; display.asyncExec( new Runnable() { @Override public void run() { updateShellTitle(); updateStates(); } }); }
private static void renderFocus(Display display) { if (!display.isDisposed()) { IDisplayAdapter displayAdapter = getDisplayAdapter(display); RemoteAdapter widgetAdapter = getAdapter(display); Object oldValue = widgetAdapter.getPreserved(PROP_FOCUS_CONTROL); if (!widgetAdapter.isInitialized() || oldValue != display.getFocusControl() || displayAdapter.isFocusInvalidated()) { // TODO [rst] Added null check as a NPE occurred in some rare cases Control focusControl = display.getFocusControl(); if (focusControl != null) { getRemoteObject(display).set(PROP_FOCUS_CONTROL, getId(display.getFocusControl())); } } } }
protected IStatus run(IProgressMonitor monitor) { monitor.beginTask(null, 3); doStartup(monitor); Display display = workbench.getDisplay(); if (display != null && !display.isDisposed()) { display.asyncExec( new Runnable() { public void run() { System.setProperty( "org.xmind.cathy.app.status", "workbenchReady"); // $NON-NLS-1$ //$NON-NLS-2$ } }); } monitor.done(); return Status.OK_STATUS; }
private void abortContinueDialog(final IDebugTarget target) { // do not report errors for snippet editor targets // that do not support HCR. HCR is simulated by using // a new class loader for each evaluation // final ILaunch launch = target.getLaunch(); // if (launch.getAttribute(ScrapbookLauncher.SCRAPBOOK_LAUNCH) != null) // { // if (!target.supportsHotCodeReplace()) { // return; // } // } final Display display = ErlideUIPlugin.getStandardDisplay(); if (display.isDisposed()) { return; } String name = null; try { name = target.getName(); } catch (final DebugException e) { name = ""; // never happens, ErlangDebugTarget doesn't throw this... } final String vmName = name; final ILaunchConfiguration config = target.getLaunch().getLaunchConfiguration(); final String launchName = config != null ? config.getName() : "<unknown>"; final IStatus status = new Status(IStatus.ERROR, ErlangCore.PLUGIN_ID, IStatus.ERROR, "Can't replace code", null); final String title = "Code Replace Failed"; final String message = MessageFormat.format( "Some code changes cannot be replaced when being debugged.", new Object[] {vmName, launchName}); display.asyncExec( new Runnable() { @Override public void run() { if (display.isDisposed()) { return; } final Shell shell = ErlideUIPlugin.getActiveWorkbenchShell(); final HotCodeReplaceErrorDialog dialog = new HotCodeReplaceErrorDialog(shell, title, message, status, target); dialog.setBlockOnOpen(false); dialog.open(); } }); }
protected AssociationChecker(final PlatformManager _platform) { platform = _platform; display = SWTThread.getInstance().getDisplay(); if (display.isDisposed()) { return; } Utils.execSWTThread( new AERunnable() { public void runSupport() { check(); } }); }
private void fireChanges(final IResource[] changes, final boolean markerChanged) { Display display = SWTUtil.getStandardDisplay(); if (display != null && !display.isDisposed()) { display.asyncExec( new Runnable() { @Override public void run() { Object[] listeners = fListeners.getListeners(); for (Object listener : listeners) { IProblemChangedListener curr = (IProblemChangedListener) listener; curr.problemsChanged(changes, markerChanged); } } }); } }