public void run() { try { uglyjoglhack(); if (state == null) throw (new RuntimeException("State applier is still null after redraw")); synchronized (drawfun) { drawfun.notifyAll(); } while (true) { long then = System.currentTimeMillis(); int waited = 0; synchronized (drawfun) { while ((curdraw = bufdraw) == null) drawfun.wait(); bufdraw = null; drawfun.notifyAll(); waited += System.currentTimeMillis() - then; } CPUProfile.Frame curf = null; if (Config.profile) curdraw.pf = curf = rprof.new Frame(); uglyjoglhack(); if (curf != null) { curf.tick("aux"); curf.fin(); } long now = System.currentTimeMillis(); waited += now - curdraw.doneat; ridle = (ridle * 0.95) + (((double) waited / ((double) (now - then))) * 0.05); curdraw = null; } } catch (InterruptedException e) { return; } }
/** simply dump status info to the textarea */ private void sout(final String s) { Runnable soutRunner = new Runnable() { public void run() { if (ttaStatus.getText().equals("")) { ttaStatus.setText(s); } else { ttaStatus.setText(ttaStatus.getText() + "\n" + s); } } }; if (ThreadUtils.isInEDT()) { soutRunner.run(); } else { SwingUtilities.invokeLater(soutRunner); } }
// Utility method to make sure a task is executed on the Swing display // thread. private void invokeAndWait(Runnable aRunnable) { if (!SwingUtilities.isEventDispatchThread()) { try { SwingUtilities.invokeAndWait(aRunnable); } catch (Exception e) { e.printStackTrace(); } } else { aRunnable.run(); } }
private void onOK() { if (nameTextField.getText().length() < 3 || nameTextField.getText().length() > 24 || !nameTextField.getText().matches("[a-z0-9]+")) { JOptionPane.showMessageDialog( this, "Invalid storage account name. The name should be between 3 and 24 characters long and \n" + "can contain only lowercase letters and numbers.", "Error creating the storage account", JOptionPane.ERROR_MESSAGE); return; } setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); createProgressBar.setVisible(true); try { String name = nameTextField.getText(); String region = (regionOrAffinityGroupComboBox.getSelectedItem() instanceof Location) ? regionOrAffinityGroupComboBox.getSelectedItem().toString() : ""; String affinityGroup = (regionOrAffinityGroupComboBox.getSelectedItem() instanceof AffinityGroup) ? regionOrAffinityGroupComboBox.getSelectedItem().toString() : ""; String replication = replicationComboBox.getSelectedItem().toString(); storageAccount = new StorageAccount( name, replication, region, affinityGroup, "", subscription.getId().toString()); AzureSDKManagerImpl.getManager().createStorageAccount(storageAccount); AzureSDKManagerImpl.getManager().refreshStorageAccountInformation(storageAccount); onCreate.run(); } catch (AzureCmdException e) { storageAccount = null; UIHelper.showException( "An error occurred while trying to create the specified storage account.", e, "Error Creating Storage Account", false, true); } setCursor(Cursor.getDefaultCursor()); this.setVisible(false); dispose(); }
public void showAddSharesDialog() { // Define this as a runnable as we might need to login first Runnable flarp = new CatchingRunnable() { @Override public void doRun() throws Exception { JFileChooser fc = new JFileChooser(); fc.setFileFilter( new javax.swing.filechooser.FileFilter() { public boolean accept(File f) { if (f.isDirectory()) return true; return "mp3".equalsIgnoreCase(FileUtil.getFileExtension(f)); } public String getDescription() { return "MP3 files"; } }); fc.setMultiSelectionEnabled(true); fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int retVal = fc.showOpenDialog(RobonoboFrame.this); if (retVal == JFileChooser.APPROVE_OPTION) { final File[] selFiles = fc.getSelectedFiles(); control .getExecutor() .execute( new CatchingRunnable() { public void doRun() throws Exception { importFilesOrDirectories(Arrays.asList(selFiles)); } }); } } }; if (control.getMyUser() != null) flarp.run(); else showLogin(flarp); }
private void showSaveConfirmationIfNecessaryAndRun( String message, String title, Runnable runnable) { if (!mHasEdits) { runnable.run(); } else { int result = JOptionPane.showConfirmDialog( SpreadsheetFrame.this, message, title, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); switch (result) { case JOptionPane.YES_OPTION: if (saveToDisk(false)) { runnable.run(); } break; case JOptionPane.NO_OPTION: runnable.run(); break; } } }
@Override @SuppressWarnings("SSBasedInspection") protected void dispose() { LOG.assertTrue( EventQueue.isDispatchThread(), "Access is allowed from event dispatch thread only"); for (Runnable runnable : myDisposeActions) { runnable.run(); } myDisposeActions.clear(); final JRootPane root = myDialog.getRootPane(); Runnable disposer = new Runnable() { @Override public void run() { myDialog.dispose(); myProject = null; SwingUtilities.invokeLater( new Runnable() { @Override public void run() { if (myDialog != null && root != null) { myDialog.remove(root); } } }); } }; if (EventQueue.isDispatchThread()) { disposer.run(); } else { SwingUtilities.invokeLater(disposer); } }
public void run() { try { Thread drawthread = new HackThread(drawfun, "Render thread"); drawthread.start(); synchronized (drawfun) { while (state == null) drawfun.wait(); } try { long now, then; long frames[] = new long[128]; int framep = 0, waited[] = new int[128]; while (true) { int fwaited = 0; Debug.cycle(); UI ui = this.ui; then = System.currentTimeMillis(); CPUProfile.Frame curf = null; if (Config.profile) curf = uprof.new Frame(); synchronized (ui) { if (ui.sess != null) ui.sess.glob.ctick(); dispatch(); ui.tick(); if ((ui.root.sz.x != w) || (ui.root.sz.y != h)) ui.root.resize(new Coord(w, h)); } if (curf != null) curf.tick("dsp"); BGL buf = new BGL(); GLState.Applier state = this.state; rootdraw(state, ui, buf); if (curf != null) curf.tick("draw"); synchronized (drawfun) { now = System.currentTimeMillis(); while (bufdraw != null) drawfun.wait(); bufdraw = new Frame(buf, state.cgl); drawfun.notifyAll(); fwaited += System.currentTimeMillis() - now; } ui.audio.cycle(); if (curf != null) curf.tick("aux"); now = System.currentTimeMillis(); long fd = bgmode ? this.bgfd : this.fd; if (now - then < fd) { synchronized (events) { events.wait(fd - (now - then)); } fwaited += System.currentTimeMillis() - now; } frames[framep] = now; waited[framep] = fwaited; for (int i = 0, ckf = framep, twait = 0; i < frames.length; i++) { ckf = (ckf - 1 + frames.length) % frames.length; twait += waited[ckf]; if (now - frames[ckf] > 1000) { fps = i; uidle = ((double) twait) / ((double) (now - frames[ckf])); break; } } framep = (framep + 1) % frames.length; if (curf != null) curf.tick("wait"); if (curf != null) curf.fin(); if (Thread.interrupted()) throw (new InterruptedException()); } } finally { drawthread.interrupt(); drawthread.join(); } } catch (InterruptedException e) { } finally { ui.destroy(); } }