List of usage examples for javax.swing SwingWorker SwingWorker
public SwingWorker()
From source file:org.yccheok.jstock.gui.OptionsNetworkJPanel.java
private SwingWorker getTestConnectionSwingWorker() { SwingWorker<Boolean, Void> worker = new SwingWorker<Boolean, Void>() { @Override/*from www . jav a2 s. c om*/ public Boolean doInBackground() { // Store old proxy server and old proxy auth information. final String httpproxyHost = System.getProperties().getProperty("http.proxyHost"); final String httpproxyPort = System.getProperties().getProperty("http.proxyPort"); final String oldProxyAuthUsername = JStock.instance().getJStockOptions().getProxyAuthUserName(); final String oldProxyAuthPassword = JStock.instance().getJStockOptions().getProxyAuthPassword(); final boolean oldIsProxyAuthEnabled = JStock.instance().getJStockOptions().isProxyAuthEnabled(); // Set new proxy auth information. final String newProxyAuthUsername = jTextField2.getText() != null ? jTextField2.getText() : ""; final String newProxyAuthPassword = Utils.encrypt(new String(jPasswordField1.getPassword())); JStock.instance().getJStockOptions().setProxyAuthUserName(newProxyAuthUsername); JStock.instance().getJStockOptions().setProxyAuthPassword(newProxyAuthPassword); JStock.instance().getJStockOptions().setIsProxyAuthEnabled(jCheckBox1.isSelected()); // Set new proxy server information. if ((jTextField1.getText().length() > 0) && org.yccheok.jstock.engine.Utils.isValidPortNumber(jFormattedTextField1.getText())) { System.getProperties().put("http.proxyHost", jTextField1.getText()); System.getProperties().put("http.proxyPort", jFormattedTextField1.getText()); } else { System.getProperties().remove("http.proxyHost"); System.getProperties().remove("http.proxyPort"); } try { final String request = "http://www.google.com"; // We are not interested at the returned content at all. We just want // to know whether there will be any exception being thrown, during // the process of getting respond. final boolean success = (null != org.yccheok.jstock.gui.Utils .getResponseBodyAsStringBasedOnProxyAuthOption(request)); return success; } catch (Exception exp) { log.error(null, exp); } finally { // Restore. JStock.instance().getJStockOptions().setProxyAuthUserName(oldProxyAuthUsername); JStock.instance().getJStockOptions().setProxyAuthPassword(oldProxyAuthPassword); JStock.instance().getJStockOptions().setIsProxyAuthEnabled(oldIsProxyAuthEnabled); if (httpproxyHost != null) { System.getProperties().put("http.proxyHost", httpproxyHost); } else { System.getProperties().remove("http.proxyHost"); } if (httpproxyPort != null) { System.getProperties().put("http.proxyPort", httpproxyPort); } else { System.getProperties().remove("http.proxyPort"); } } return false; } @Override public void done() { // The done Method: When you are informed that the SwingWorker // is done via a property change or via the SwingWorker object's // done method, you need to be aware that the get methods can // throw a CancellationException. A CancellationException is a // RuntimeException, which means you do not need to declare it // thrown and you do not need to catch it. Instead, you should // test the SwingWorker using the isCancelled method before you // use the get method. if (this.isCancelled()) { return; } Boolean status = null; try { status = get(); } catch (InterruptedException ex) { log.error(null, ex); } catch (ExecutionException ex) { log.error(null, ex); } catch (CancellationException ex) { // Some developers suggest to catch this exception, instead of // checking on isCancelled. As I am not confident by merely // isCancelled check can prevent CancellationException (What // if cancellation is happen just after isCancelled check?), // I will apply both techniques. log.error(null, ex); } OptionsNetworkJPanel.this.updateGUIState(); if (status == null || status == false) { JOptionPane.showMessageDialog(OptionsNetworkJPanel.this, MessagesBundle.getString("warning_message_wrong_proxy_or_port"), MessagesBundle.getString("warning_title_wrong_proxy_or_port"), JOptionPane.WARNING_MESSAGE); } else { JOptionPane.showMessageDialog(OptionsNetworkJPanel.this, MessagesBundle.getString("info_message_correct_proxy_and_port"), MessagesBundle.getString("info_title_correct_proxy_and_port"), JOptionPane.INFORMATION_MESSAGE); } } }; return worker; }
From source file:org.yccheok.jstock.gui.OptionsUpdateJPanel.java
private SwingWorker getLatestNewsTaskSwingWorker() { SwingWorker<String, Void> worker = new SwingWorker<String, Void>() { @Override/*from w ww.j a v a 2 s.c om*/ protected void done() { // The done Method: When you are informed that the SwingWorker // is done via a property change or via the SwingWorker object's // done method, you need to be aware that the get methods can // throw a CancellationException. A CancellationException is a // RuntimeException, which means you do not need to declare it // thrown and you do not need to catch it. Instead, you should // test the SwingWorker using the isCancelled method before you // use the get method. if (this.isCancelled()) { // Cancelled by user explicitly. Do not perform any GUI update. // No pop-up message. return; } String status = null; try { status = get(); } catch (InterruptedException ex) { log.error(null, ex); } catch (ExecutionException ex) { log.error(null, ex); } catch (CancellationException ex) { // Some developers suggest to catch this exception, instead of // checking on isCancelled. As I am not confident by merely // isCancelled check can prevent CancellationException (What // if cancellation is happen just after isCancelled check?), // I will apply both techniques. log.error(null, ex); } OptionsUpdateJPanel.this.updateGUIState(); if (status == null) { JOptionPane.showMessageDialog(OptionsUpdateJPanel.this, MessagesBundle.getString("error_message_error_in_getting_latest_news"), MessagesBundle.getString("error_title_error_in_getting_latest_news"), JOptionPane.ERROR_MESSAGE); } else { AutoUpdateNewsJDialog dialog = new AutoUpdateNewsJDialog(JStock.instance(), true); dialog.setNews(status); dialog.setVisible(true); } } @Override protected String doInBackground() { if (!isCancelled()) { final java.util.Map<String, String> map = Utils .getUUIDValue(org.yccheok.jstock.network.Utils.getURL(Type.NEWS_INFORMATION_TXT)); final String location = map.get("news_url"); if (location == null) { return null; } final String respond = org.yccheok.jstock.gui.Utils .getResponseBodyAsStringBasedOnProxyAuthOption(location); if (respond == null) { return null; } if (respond.indexOf(Utils.getJStockUUID()) < 0) { return null; } return respond; } return null; } }; return worker; }
From source file:org.yccheok.jstock.gui.SaveToCloudJDialog.java
private SwingWorker<Boolean, Status> getSaveToCloudTask(final String username) { SwingWorker<Boolean, Status> worker = new SwingWorker<Boolean, Status>() { @Override/* w w w. j a v a 2 s . c om*/ protected void done() { boolean result = false; // Some developers suggest to catch this exception, instead of // checking on isCancelled. As I am not confident by merely // isCancelled check can prevent CancellationException (What // if cancellation is happen just after isCancelled check?), // I will apply both techniques. if (this.isCancelled() == false) { try { result = this.get(); } catch (InterruptedException ex) { log.error(null, ex); } catch (ExecutionException ex) { log.error(null, ex); } catch (CancellationException ex) { log.error(null, ex); } } jButton1.setEnabled(true); if (result == true) { JOptionPane.showMessageDialog(SaveToCloudJDialog.this, GUIBundle.getString("SaveToCloudJDialog_Success")); // Close the dialog once cloud operation success. setVisible(false); dispose(); } } @Override protected void process(java.util.List<Status> statuses) { for (Status status : statuses) { writeToMemoryLog(status.message); jLabel3.setText(status.message); jLabel4.setIcon(status.icon); jLabel3.setVisible(true); jLabel4.setVisible(true); if (status.icon == Icons.ERROR || status.icon == Icons.WARNING) { jLabel3.setForeground(Color.RED); jLabel5.setVisible(true); } else { jLabel3.setForeground(Color.BLUE); jLabel5.setVisible(false); } } } @Override protected Boolean doInBackground() { if (isCancelled()) { return false; } memoryLog.clear(); publish(Status.newInstance(GUIBundle.getString("SaveToCloudJDialog_PreparingData..."), Icons.BUSY)); JStock.instance().commitBeforeSaveToCloud(); // Passing null. The file will be deleted automatically when the // app quit. final File zipFile = getJStockZipFile(null); // Place isCancelled check after time consuming operation. // Not the best way, but perhaps the easiest way to cancel // the operation. if (isCancelled()) { return false; } if (zipFile == null) { publish(Status.newInstance(GUIBundle.getString("SaveToCloudJDialog_PreparingDataFail"), Icons.ERROR)); return false; } publish(Status.newInstance(GUIBundle.getString("SaveToCloudJDialog_VerifyGoogleAccount..."), Icons.BUSY)); if (false == Utils.saveToGoogleDrive(credentialEx.first, zipFile)) { publish(Status.newInstance(GUIBundle.getString("SaveToCloudJDialog_VerifyGoogleAccountFail"), Icons.ERROR)); return false; } // To serve legacy Android app. if (false == Utils.saveToLegacyGoogleDrive(credentialEx.first, zipFile)) { publish(Status.newInstance(GUIBundle.getString("SaveToCloudJDialog_VerifyGoogleAccountFail"), Icons.ERROR)); return false; } publish(Status.newInstance(GUIBundle.getString("SaveToCloudJDialog_Success"), Icons.OK)); return true; } }; return worker; }
From source file:org.yccheok.jstock.gui.StockServerFactoryJRadioButton.java
private void initSwingWorker() { SwingWorker worker = new SwingWorker<Health, Void>() { @Override//w ww .j a v a2s . co m public Health doInBackground() { return getServerHealth(); } @Override public void done() { // The done Method: When you are informed that the SwingWorker // is done via a property change or via the SwingWorker object's // done method, you need to be aware that the get methods can // throw a CancellationException. A CancellationException is a // RuntimeException, which means you do not need to declare it // thrown and you do not need to catch it. Instead, you should // test the SwingWorker using the isCancelled method before you // use the get method. if (this.isCancelled()) { return; } Health health = null; try { health = get(); } catch (InterruptedException ex) { log.error(null, ex); } catch (ExecutionException ex) { log.error(null, ex); } catch (CancellationException ex) { // Some developers suggest to catch this exception, instead of // checking on isCancelled. As I am not confident by merely // isCancelled check can prevent CancellationException (What // if cancellation is happen just after isCancelled check?), // I will apply both techniques. log.error(null, ex); } if (health == null || health.isGood() == false) { StockServerFactoryJRadioButton.this.setStatus(Status.Failed); } else { StockServerFactoryJRadioButton.this.setStatus(Status.Success); } StockServerFactoryJRadioButton.this.setToolTipText(toHTML(health)); } }; worker.execute(); }
From source file:org.zaproxy.zap.extension.autoupdate.ExtensionAutoUpdate.java
boolean uninstallAddOnsWithView(final Window caller, final Set<AddOn> addOns, final boolean updates, final Set<AddOn> failedUninstallations) { if (addOns == null || addOns.isEmpty()) { return true; }//from w ww. j av a2 s. co m if (!EventQueue.isDispatchThread()) { try { EventQueue.invokeAndWait(new Runnable() { @Override public void run() { uninstallAddOnsWithView(caller, addOns, updates, failedUninstallations); } }); } catch (InvocationTargetException | InterruptedException e) { logger.error("Failed to uninstall add-ons:", e); return false; } return failedUninstallations.isEmpty(); } final Window parent = getWindowParent(caller); final UninstallationProgressDialogue waitDialogue = new UninstallationProgressDialogue(parent, addOns); waitDialogue.addAddOnUninstallListener(new AddOnUninstallListener() { @Override public void uninstallingAddOn(AddOn addOn, boolean updating) { if (updating) { String message = MessageFormat.format( Constant.messages.getString("cfu.output.replacing") + "\n", addOn.getName(), Integer.valueOf(addOn.getFileVersion())); getView().getOutputPanel().append(message); } } @Override public void addOnUninstalled(AddOn addOn, boolean update, boolean uninstalled) { if (uninstalled) { if (!update && addonsDialog != null) { addonsDialog.notifyAddOnUninstalled(addOn); } String message = MessageFormat.format( Constant.messages.getString("cfu.output.uninstalled") + "\n", addOn.getName(), Integer.valueOf(addOn.getFileVersion())); getView().getOutputPanel().append(message); } else { if (addonsDialog != null) { addonsDialog.notifyAddOnFailedUninstallation(addOn); } String message; if (update) { message = MessageFormat.format( Constant.messages.getString("cfu.output.replace.failed") + "\n", addOn.getName(), Integer.valueOf(addOn.getFileVersion())); } else { message = MessageFormat.format( Constant.messages.getString("cfu.output.uninstall.failed") + "\n", addOn.getName(), Integer.valueOf(addOn.getFileVersion())); } getView().getOutputPanel().append(message); } } }); SwingWorker<Void, UninstallationProgressEvent> a = new SwingWorker<Void, UninstallationProgressEvent>() { @Override protected void process(List<UninstallationProgressEvent> events) { waitDialogue.update(events); } @Override protected Void doInBackground() { UninstallationProgressHandler progressHandler = new UninstallationProgressHandler() { @Override protected void publishEvent(UninstallationProgressEvent event) { publish(event); } }; for (AddOn addOn : addOns) { if (!uninstall(addOn, updates, progressHandler)) { failedUninstallations.add(addOn); } } if (!failedUninstallations.isEmpty()) { logger.warn("Not all add-ons were successfully uninstalled: " + failedUninstallations); } return null; } }; waitDialogue.bind(a); a.execute(); waitDialogue.setSynchronous(updates); waitDialogue.setVisible(true); return failedUninstallations.isEmpty(); }
From source file:org.zaproxy.zap.extension.plugnhack.MonitoredPagesManager.java
protected void setMonitorFlags() { // Do in a background thread in case the tree is huge ;) SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() { @Override//from w ww . ja v a 2s .com protected Void doInBackground() throws Exception { logger.debug("Refreshing tree with monitor client flags"); setMonitorFlags((SiteNode) Model.getSingleton().getSession().getSiteTree().getRoot(), false); return null; } }; worker.execute(); }
From source file:pcgui.SetupParametersPanel.java
private void runModel() { //retrieve master configuration ArrayList<ArrayList<Object>> mod = model.getData(); //create a new list and check for dependencies ArrayList<Symbol> list = new ArrayList<Symbol>(); //independent variable list ArrayList<Symbol> ivList = new ArrayList<Symbol>(); //step variable list ArrayList<Symbol> stepList = new ArrayList<Symbol>(); //dependent list ArrayList<Symbol> depList = new ArrayList<Symbol>(); //output tracking ArrayList<Symbol> trackedSymbols = new ArrayList<Symbol>(); Symbol tempSym = null;// w w w .j av a 2s .c o m //step variable counter to be used for making combinations int stepVarCount = 0; long stepCombinations = 1; TextParser textParser = new TextParser(); compileSuccess = true; for (ArrayList<Object> rowData : mod) { tempSym = paramList.get(mod.indexOf(rowData)); if ("Manual".equals((String) rowData.get(2))) { System.out.println("Found Customized Symbol : " + rowData.get(0)); System.out.println("Value : " + rowData.get(3) + ": type=" + rowData.get(3).getClass()); tempSym.mode = "Manual"; String data = (String) rowData.get(3); //checking dependent variables if (data != null && !data.isEmpty()) { //dependent if (hashTable.containsKey(data)) { tempSym.setDependent(true); depList.add(tempSym); } else { //independents tempSym.setDependent(false); tempSym.set(data); ivList.add(tempSym); } } } else if ("External".equals((String) rowData.get(2))) { System.out.println("Found External Symbol : " + rowData.get(0)); System.out.println("External : " + rowData.get(3) + ": type=" + rowData.get(3).getClass()); if (!(((String) rowData.get(4)).isEmpty())) { tempSym.externalFile = (String) rowData.get(4); tempSym.set(tempSym.externalFile); tempSym.mode = "External"; if (tempSym.externalFile.endsWith(".xls") || tempSym.externalFile.endsWith(".xlsx")) { if (tempSym.excelFileRange.isEmpty()) { // TODO show an error dialog System.err.println("Error user missed excel range arguments"); JOptionPane.showMessageDialog(new JFrame(), "Error user missed excel range arguments"); return; } else { tempSym.excelFileRange = (String) rowData.get(5); //'[Daten_10$B'+(i)+':B'+(5+n)+']' //user has to add quote before the 1st + and after the last + //the data file used should be inside Models/Data folder tempSym.set("Models//Data//" + tempSym.externalFile + "::" + tempSym.excelFileRange); } } else { //for non excel files tempSym.set("Models//Data//" + tempSym.externalFile); } } else { System.err.println("Error user missed excel file"); JOptionPane.showMessageDialog(new JFrame(), "Please enter external file for variable : " + tempSym.name); return; } ivList.add(tempSym); list.add(tempSym); } else if ("Randomized".equals((String) rowData.get(2))) { System.out.println("Found Randomized Symbol : " + rowData.get(0)); System.out.println("Value : " + rowData.get(6)); boolean isValid = textParser.validate((String) rowData.get(6)); if (isValid) { //saving the array declaration parameters if (((String) rowData.get(1)).trim().startsWith("array")) { System.out.println("Found randomized array : " + tempSym.name); //found an array tempSym.isArray = true; List<String> arrayParams = parseArrayParam((String) rowData.get(1)); tempSym.arrayParams = arrayParams; System.out.println("Param list : "); for (Object obj : tempSym.arrayParams) { //check if any of the param is symbol if (hashTable.containsKey((String) obj)) { tempSym.isDependentDimension = true; depList.add(tempSym); break; } System.out.println((String) obj); } //add to independent variable list if none of the dimension is based on variable if (!tempSym.isDependentDimension) { ivList.add(tempSym); } } Distribution dist = textParser.getDistribution((String) rowData.get(6)); if ("Step".equalsIgnoreCase(dist.getDistribution())) { System.err.println("Error: User entered step distribution in Randomized variable"); JOptionPane.showMessageDialog(new JFrame(), "Please enter random distribution only" + " for variable : " + tempSym.name); return; } tempSym.setDistribution(dist); tempSym.mode = "Randomized"; //check dependent variables List<String> distParamList = dist.getParamList(); for (String param : distParamList) { //TODO: if .contains work on Symbol if (hashTable.containsKey(param) && !depList.contains(tempSym)) { tempSym.setDependent(true); depList.add(tempSym); break; } } //generate apache distribution object for independent vars if (!tempSym.isDependent()) { Object apacheDist = generateDistribution(tempSym); tempSym.setApacheDist(apacheDist); if ("StepDistribution".equals(apacheDist.getClass().getSimpleName())) { stepVarCount++; StepDistribution stepDist = (StepDistribution) apacheDist; stepCombinations *= stepDist.getStepCount(); tempSym.isStepDist = true; tempSym.setStepDist(stepDist); stepList.add(tempSym); } else if (!ivList.contains(tempSym) && !tempSym.isDependentDimension) { ivList.add(tempSym); } } list.add(tempSym); } else { System.err.println("Error: User entered unknown distribution for randomized variable"); JOptionPane.showMessageDialog(new JFrame(), "Please enter random distribution only" + " for variable : " + tempSym.name); return; } } else if ("Step".equals((String) rowData.get(2))) { System.out.println("Found Step Symbol : " + rowData.get(0)); System.out.println("Value : " + rowData.get(6)); Distribution dist = textParser.getStepDistribution((String) rowData.get(6)); if (dist == null || !"Step".equalsIgnoreCase(dist.getDistribution())) { System.err.println("Error: User entered unknown distribution for step variable"); JOptionPane.showMessageDialog(new JFrame(), "Please enter random distribution only" + " for variable : " + tempSym.name); return; } boolean isValid = textParser.validateStepDist((String) rowData.get(6)); if (isValid) { //saving the array declaration parameters if (((String) rowData.get(1)).trim().startsWith("array")) { //TODO: if this can work for step arrays System.out.println("Found step array : " + tempSym.name); //found an array tempSym.isArray = true; List<String> arrayParams = parseArrayParam((String) rowData.get(1)); tempSym.arrayParams = arrayParams; System.out.println("Param list : "); for (Object obj : tempSym.arrayParams) { //check if any of the param is symbol if (hashTable.containsKey((String) obj)) { tempSym.isDependentDimension = true; depList.add(tempSym); break; } System.out.println((String) obj); } //add to independent variable list if none of the dimension is based on variable if (!tempSym.isDependentDimension) { ivList.add(tempSym); } } tempSym.setDistribution(dist); tempSym.mode = "Randomized"; //check dependent variables List<String> distParamList = dist.getParamList(); for (String param : distParamList) { if (hashTable.containsKey(param) && !depList.contains(tempSym)) { tempSym.setDependent(true); depList.add(tempSym); break; } } //generate apache distribution object for independent vars if (!tempSym.isDependent()) { Object apacheDist = generateDistribution(tempSym); tempSym.setApacheDist(apacheDist); //dual safe check if ("StepDistribution".equals(apacheDist.getClass().getSimpleName())) { stepVarCount++; StepDistribution stepDist = (StepDistribution) apacheDist; stepCombinations *= stepDist.getStepCount(); tempSym.isStepDist = true; tempSym.setStepDist(stepDist); stepList.add(tempSym); } else if (!ivList.contains(tempSym) && !tempSym.isDependentDimension) { ivList.add(tempSym); } } list.add(tempSym); } else { System.err.println("Error: User entered unknown distribution for randomized variable"); JOptionPane.showMessageDialog(new JFrame(), "Please enter random distribution only" + " for variable : " + tempSym.name); return; } } //add symbol to trackedSymbol list for output tracking if (tempSym != null && rowData.get(7) != null && (boolean) rowData.get(7)) { trackedSymbols.add(tempSym); } } System.out.println("Total step distribution variables =" + stepVarCount); System.out.println("Total step combinations =" + stepCombinations); System.out.println("====STEP VARIABLES===="); for (Symbol sym : stepList) { System.out.println(sym.name); } //resolve dependencies and generate random distributions object //list for an instance of execution HashMap<String, Integer> map = new HashMap<String, Integer>(); for (int i = 0; i < stepList.size(); i++) { map.put(stepList.get(i).name, getSteppingCount(stepList, i)); System.out.println(stepList.get(i).name + " has stepping count =" + map.get(stepList.get(i).name)); } int repeatitions = 0; try { repeatitions = Integer.parseInt(repeatCount.getText()); } catch (NumberFormatException e) { System.err.println("Invalid repeat count"); JOptionPane.showMessageDialog(new JFrame(), "Please enter integer value for repeat count"); return; } //generate instances showProgressBar(); final long totalIterations = repeatitions * stepCombinations; final long repeatitionsFinal = repeatitions; final long combinations = stepCombinations; SwingWorker<Void, Void> executionTask = new SwingWorker<Void, Void>() { @Override protected Void doInBackground() throws Exception { long itNum = 1; int itCount = 1; System.out.println("Total iterations: " + totalIterations); // TODO Auto-generated method stub for (int c = 1; c <= repeatitionsFinal; c++) { for (int i = 1; i <= combinations; i++) { setProgress((int) (itNum * 100 / totalIterations)); //step variables first for (Symbol sym : stepList) { if (map.get(sym.name) == 1 || i % map.get(sym.name) - 1 == 0 || i == 1) { sym.set(sym.getStepDist().sample()); hashTable.put(sym.name, sym); } //System.out.println(sym.name+" = "+sym.get()); } //independent randomized variables for (Symbol sym : ivList) { if (sym.mode.equals("Randomized")) { Object distObj = sym.getApacheDist(); switch (sym.getApacheDist().getClass().getSimpleName()) { case "UniformIntegerDistribution": //case "GeometricDistribution" : // case "BinomialDistribution"://not implemented yet IntegerDistribution intDist = (IntegerDistribution) distObj; if (sym.isArray) { //generate Stringified array String val = generateIndependentArray(sym, intDist); sym.set(val); hashTable.put(sym.name, sym); } break; case "LogisticDistribution": case "UniformRealDistribution": case "ExponentialDistribution": case "GammaDistribution": case "NormalDistribution": RealDistribution realDist = (RealDistribution) distObj; if (sym.isArray) { //generate Stringified array String val = generateIndependentArray(sym, realDist); sym.set(val); hashTable.put(sym.name, sym); } break; default: System.err.println("Unknown distribution"); JOptionPane.showMessageDialog(new JFrame(), "Error occurred : Unknown distribution"); return null; } } //System.out.println(sym.name+" = "+sym.get()); //other types of independent variable already have values } for (Symbol sym : depList) { if (sym.mode != null && "Manual".equals(sym.mode)) { //value depends on some other value String ref = (String) sym.get(); Object val = (Object) hashTable.get(ref); sym.set(val); hashTable.put(sym.name, sym); } else if (sym.mode != null && "Randomized".equals(sym.mode)) { Object distObj = null; //when a random distribution depends on another variable Distribution dist = sym.getDistribution(); StringBuilder sb = new StringBuilder(); sb.append(dist.getDistribution()); sb.append("("); for (String s : dist.getParamList()) { //replacing a dependency by actual value of that variable if (hashTable.containsKey(s)) { Symbol val = (Symbol) hashTable.get(s); sb.append((String) val.get()); } else { //this param is a number itself sb.append(s); } sb.append(","); } //check if param list length = 0 if (dist.getParamList() != null && dist.getParamList().size() >= 1) { sb.deleteCharAt(sb.length() - 1); } sb.append(")"); if (sym.typeString != null && sym.typeString.contains("integer")) { try { distObj = textParser.parseText(sb.toString(), TextParser.INTEGER); sym.setApacheDist(distObj); } catch (Exception e) { System.err.println( "Exception occured when trying to get Random distribution for variable" + sym.name + "\n" + e.getMessage()); e.printStackTrace(); JOptionPane.showMessageDialog(new JFrame(), "Error occurred : " + e.getMessage()); return null; } } else { try { distObj = textParser.parseText(sb.toString(), TextParser.REAL); sym.setApacheDist(distObj); } catch (Exception e) { System.err.println( "Exception occured when trying to get Random distribution for variable" + sym.name + "\n" + e.getMessage()); e.printStackTrace(); JOptionPane.showMessageDialog(new JFrame(), "Error occurred : " + e.getMessage()); return null; } } //generation of actual apache distribution objects switch (distObj.getClass().getSimpleName()) { case "UniformIntegerDistribution": //case "GeometricDistribution" : //case "BinomialDistribution": IntegerDistribution intDist = (IntegerDistribution) distObj; if (sym.isArray) { //generate Stringified array String val = generateDependentArray(sym, intDist); sym.set(val); hashTable.put(sym.name, sym); } break; case "LogisticDistribution": case "UniformRealDistribution": case "ExponentialDistribution": case "GammaDistribution": case "NormalDistribution": RealDistribution realDist = (RealDistribution) distObj; if (sym.isArray) { //generate Stringified array String val = generateDependentArray(sym, realDist); sym.set(val); hashTable.put(sym.name, sym); } break; default: System.err.println("Unknown distribution"); JOptionPane.showMessageDialog(new JFrame(), "Error occurred : Unknown distribution"); } } //System.out.println(sym.name+" = "+sym.get()); } ArrayList<Symbol> instanceList = new ArrayList<Symbol>(); instanceList.addAll(stepList); instanceList.addAll(ivList); instanceList.addAll(depList); System.out.println("=======ITERATION " + itCount++ + "======="); System.out.println("=======instanceList.size =" + instanceList.size() + " ======="); for (Symbol sym : instanceList) { System.out.println(sym.name + " = " + sym.get()); } //runModel here try { //TODO anshul: pass output variables to be written to excel System.out.println("Tracked output symbols"); for (Symbol sym : trackedSymbols) { System.out.println(sym.name); } HashMap<String, OutputParams> l = parser.changeModel(instanceList, trackedSymbols, itNum); if (l == null) { compileSuccess = false; break; } } catch (/*XPRMCompileException | */XPRMLicenseError | IOException e) { e.printStackTrace(); JOptionPane.showMessageDialog(new JFrame(), "Error occurred : " + e.getMessage()); compileSuccess = false; break; } itNum++; } } this.notifyAll(); done(); return null; } @Override protected void done() { super.done(); //check if compilation was successful if (compileSuccess) { ModelSaver.saveModelResult(); visPanel.setTrackedVariables(trackedSymbols); mapVisPanel.setTrackedVariables(trackedSymbols); JOptionPane.showMessageDialog(new JFrame("Success"), "Model execution completed.\nOutput written to excel file : " + outputFile); } else { //Error popup should have been shown by ModelParser System.err.println("There was an error while running the model."); return; } if (progressFrame != null) { progressFrame.dispose(); } } }; executionTask.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if ("progress" == evt.getPropertyName()) { int progress = (Integer) evt.getNewValue(); if (pbar != null) pbar.setValue(progress); if (taskOutput != null) taskOutput.append(String.format("Completed %d%% of task.\n", executionTask.getProgress())); } } }); executionTask.execute(); }
From source file:pl.exsio.ck.logging.presenter.LogPresenterImpl.java
@Override public void log(final String msg) { SwingWorker worker = new SwingWorker() { @Override/*w ww . ja va 2s . c o m*/ protected Object doInBackground() throws Exception { view.getLogArea().append(sdf.format(new Date()) + ": " + msg + "\n"); return null; } }; worker.execute(); }
From source file:pl.exsio.ck.logging.presenter.LogPresenterImpl.java
@Override public void clean() { SwingWorker worker = new SwingWorker() { @Override/* w w w. j av a2 s . c o m*/ protected Object doInBackground() throws Exception { view.getLogArea().setText(""); return null; } }; worker.execute(); }
From source file:pl.otros.vfs.browser.preview.PreviewListener.java
private void makePreview(final FileObject fileObjectToPreview) { if (worker != null) { worker.cancel(false);//from www . j a va2s . c o m } worker = new SwingWorker<PreviewStatus, PreviewStatus>() { private int previewLimit = 20 * 1024; private String name = fileObjectToPreview.getName().getBaseName(); @Override protected PreviewStatus doInBackground() throws Exception { publish(new PreviewStatus(State.NOT_STARTED, 0, 1, KB, name, EMPTY_BYTE_ARRAY)); for (int i = 0; i < 5; i++) { Thread.sleep(100); if (isCancelled()) { return new PreviewStatus(State.CANCELLED, 0, previewLimit / 1024, KB, name, EMPTY_BYTE_ARRAY); } } ByteArrayOutputStream outputStreamRef = null; try { try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream(previewLimit); InputStream inputStream = fileObjectToPreview.getContent().getInputStream()) { outputStreamRef = outputStream; byte[] buff = new byte[512]; int read; int max = inputStream.available(); max = max == 0 ? previewLimit : Math.min(max, previewLimit); while ((read = inputStream.read(buff)) > 0 && outputStream.size() < previewLimit) { if (isCancelled()) { return new PreviewStatus(State.CANCELLED, 0, max / 1024, KB, name, EMPTY_BYTE_ARRAY); } outputStream.write(buff, 0, read); publish(new PreviewStatus(State.LOADING, outputStream.size() / 1024, max / 1024, KB, name, outputStream.toByteArray())); } } } catch (Exception e) { LOGGER.error("Exception when downloading preview", e); return new PreviewStatus(State.ERROR, outputStreamRef.size() / 1024, outputStreamRef.size() / 1024, KB, name, outputStreamRef.toByteArray()); } return new PreviewStatus(State.FINISHED, outputStreamRef.size() / 1024, outputStreamRef.size() / 1024, KB, name, outputStreamRef.toByteArray()); } @Override protected void done() { try { if (!isCancelled()) { PreviewStatus previewStatus = get(); previewComponent.setPreviewStatus(previewStatus); } } catch (Exception e) { LOGGER.error("Exception when getting result of preview downloading", e); } } @Override protected void process(List<PreviewStatus> chunks) { PreviewStatus previewStatus = chunks.get(chunks.size() - 1); previewComponent.setPreviewStatus(previewStatus); } }; executor.execute(worker); }