Search in sources :

Example 66 with KeyValue

use of org.vcell.util.document.KeyValue in project vcell by virtualcell.

the class RestDatabaseService method query.

public SimulationRepresentation query(BiomodelSimulationServerResource resource, User vcellUser) throws SQLException, DataAccessException, ExpressionException, XmlParseException, MappingException, MathException, MatrixException, ModelException {
    if (vcellUser == null) {
        vcellUser = VCellApiApplication.DUMMY_USER;
    }
    ArrayList<String> conditions = new ArrayList<String>();
    String bioModelID = (String) resource.getRequestAttributes().get(VCellApiApplication.BIOMODELID);
    if (bioModelID != null) {
        conditions.add("(" + BioModelTable.table.id.getQualifiedColName() + " = " + bioModelID + ")");
    } else {
        throw new RuntimeException(VCellApiApplication.BIOMODELID + " not specified");
    }
    StringBuffer conditionsBuffer = new StringBuffer();
    for (String condition : conditions) {
        if (conditionsBuffer.length() > 0) {
            conditionsBuffer.append(" AND ");
        }
        conditionsBuffer.append(condition);
    }
    int startRow = 1;
    int maxRows = 1;
    BioModelRep[] bioModelReps = databaseServerImpl.getBioModelReps(vcellUser, conditionsBuffer.toString(), null, startRow, maxRows);
    for (BioModelRep bioModelRep : bioModelReps) {
        KeyValue[] simContextKeys = bioModelRep.getSimContextKeyList();
        for (KeyValue scKey : simContextKeys) {
            SimContextRep scRep = getSimContextRep(scKey);
            if (scRep != null) {
                bioModelRep.addSimContextRep(scRep);
            }
        }
        KeyValue[] simulationKeys = bioModelRep.getSimKeyList();
        for (KeyValue simKey : simulationKeys) {
            SimulationRep simulationRep = getSimulationRep(simKey);
            if (simulationRep != null) {
                bioModelRep.addSimulationRep(simulationRep);
            }
        }
    }
    if (bioModelReps == null || bioModelReps.length != 1) {
        // 
        // try to determine if the current credentials are insufficient, try to fetch BioModel again with administrator privilege.
        // 
        User adminUser = new User(PropertyLoader.ADMINISTRATOR_ACCOUNT, new KeyValue(PropertyLoader.ADMINISTRATOR_ID));
        BioModelRep[] allBioModelReps = databaseServerImpl.getBioModelReps(adminUser, conditionsBuffer.toString(), null, startRow, 1);
        if (allBioModelReps != null && allBioModelReps.length >= 0) {
            throw new PermissionException("insufficient privilege to retrive BioModel " + bioModelID);
        } else {
            throw new RuntimeException("failed to get biomodel");
        }
    }
    String simulationId = (String) resource.getRequestAttributes().get(VCellApiApplication.SIMULATIONID);
    if (simulationId == null) {
        throw new RuntimeException(VCellApiApplication.SIMULATIONID + " not specified");
    }
    SimulationRep simRep = getSimulationRep(new KeyValue(simulationId));
    BigString bioModelXML = databaseServerImpl.getBioModelXML(vcellUser, bioModelReps[0].getBmKey());
    BioModel bioModel = XmlHelper.XMLToBioModel(new XMLSource(bioModelXML.toString()));
    return new SimulationRepresentation(simRep, bioModel);
}
Also used : PermissionException(org.vcell.util.PermissionException) KeyValue(org.vcell.util.document.KeyValue) User(org.vcell.util.document.User) ArrayList(java.util.ArrayList) BioModelRep(cbit.vcell.modeldb.BioModelRep) BigString(org.vcell.util.BigString) BigString(org.vcell.util.BigString) SimulationRepresentation(org.vcell.rest.common.SimulationRepresentation) BioModel(cbit.vcell.biomodel.BioModel) XMLSource(cbit.vcell.xml.XMLSource) SimContextRep(cbit.vcell.modeldb.SimContextRep) SimulationRep(cbit.vcell.modeldb.SimulationRep)

Example 67 with KeyValue

use of org.vcell.util.document.KeyValue in project vcell by virtualcell.

the class RestDatabaseService method query.

public SimulationStatusRepresentation[] query(SimulationStatusServerResource resource, User vcellUser) throws SQLException, DataAccessException {
    if (vcellUser == null) {
        vcellUser = VCellApiApplication.DUMMY_USER;
    }
    String userID = vcellUser.getName();
    SimpleJobStatusQuerySpec simQuerySpec = new SimpleJobStatusQuerySpec();
    simQuerySpec.userid = userID;
    simQuerySpec.simId = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_SIM_ID);
    String hasData = resource.getQueryValue(SimulationStatusServerResource.PARAM_HAS_DATA);
    if (hasData != null && hasData.equals("yes")) {
        simQuerySpec.hasData = true;
    } else if (hasData != null && hasData.equals("no")) {
        simQuerySpec.hasData = false;
    } else {
        simQuerySpec.hasData = null;
    }
    simQuerySpec.waiting = resource.getBooleanQueryValue(SimulationStatusServerResource.PARAM_STATUS_ACTIVE, false);
    simQuerySpec.queued = resource.getBooleanQueryValue(SimulationStatusServerResource.PARAM_STATUS_ACTIVE, false);
    simQuerySpec.dispatched = resource.getBooleanQueryValue(SimulationStatusServerResource.PARAM_STATUS_ACTIVE, false);
    simQuerySpec.running = resource.getBooleanQueryValue(SimulationStatusServerResource.PARAM_STATUS_ACTIVE, false);
    simQuerySpec.completed = resource.getBooleanQueryValue(SimulationStatusServerResource.PARAM_STATUS_COMPLETED, false);
    simQuerySpec.failed = resource.getBooleanQueryValue(SimulationStatusServerResource.PARAM_STATUS_FAILED, false);
    simQuerySpec.stopped = resource.getBooleanQueryValue(SimulationStatusServerResource.PARAM_STATUS_STOPPED, false);
    simQuerySpec.submitLowMS = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_SUBMIT_LOW);
    simQuerySpec.submitHighMS = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_SUBMIT_HIGH);
    simQuerySpec.startLowMS = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_START_LOW);
    simQuerySpec.startHighMS = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_START_HIGH);
    simQuerySpec.endLowMS = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_END_LOW);
    simQuerySpec.endHighMS = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_END_HIGH);
    Long startRowParam = resource.getLongQueryValue(SimulationStatusServerResource.PARAM_START_ROW);
    // default
    simQuerySpec.startRow = 1;
    if (startRowParam != null) {
        simQuerySpec.startRow = startRowParam.intValue();
    }
    Long maxRowsParam = resource.getLongQueryValue(SimulationTasksServerResource.PARAM_MAX_ROWS);
    // default
    simQuerySpec.maxRows = 10;
    if (maxRowsParam != null) {
        simQuerySpec.maxRows = maxRowsParam.intValue();
    }
    SimulationStatus[] simStatuses = null;
    HashMap<KeyValue, SimulationDocumentLink> simDocLinks = new HashMap<KeyValue, SimulationDocumentLink>();
    // 
    // ask server for simJobStatuses with above query spec.
    // find set of simulation IDs from the result set of simJobStatus
    // ask server for simulationStatuses from list of sim IDs.
    // 
    VCMessageSession rpcSession = vcMessagingService.createProducerSession();
    try {
        UserLoginInfo userLoginInfo = new UserLoginInfo(vcellUser.getName(), null);
        try {
            userLoginInfo.setUser(vcellUser);
        } catch (Exception e) {
            e.printStackTrace();
            throw new DataAccessException(e.getMessage());
        }
        RpcSimServerProxy rpcSimServerProxy = new RpcSimServerProxy(userLoginInfo, rpcSession);
        SimpleJobStatus[] simpleJobStatusArray = rpcSimServerProxy.getSimpleJobStatus(vcellUser, simQuerySpec);
        // gather unique simIDs and go back and ask server for SimulationStatuses
        for (SimpleJobStatus simpleJobStatus : simpleJobStatusArray) {
            KeyValue simulationKey = simpleJobStatus.jobStatus.getVCSimulationIdentifier().getSimulationKey();
            SimulationDocumentLink simulationDocumentLink = simpleJobStatus.simulationDocumentLink;
            simDocLinks.put(simulationKey, simulationDocumentLink);
        }
        KeyValue[] simKeys = simDocLinks.keySet().toArray(new KeyValue[0]);
        if (simKeys.length > 0) {
            simStatuses = rpcSimServerProxy.getSimulationStatus(vcellUser, simKeys);
        }
    } finally {
        rpcSession.close();
    }
    ArrayList<SimulationStatusRepresentation> simStatusReps = new ArrayList<SimulationStatusRepresentation>();
    for (int i = 0; simStatuses != null && i < simStatuses.length; i++) {
        KeyValue simulationKey = simStatuses[i].getVCSimulationIdentifier().getSimulationKey();
        SimulationRep simRep = getSimulationRep(simulationKey);
        try {
            SimulationRepresentation simRepresentation = new SimulationRepresentation(simRep, simDocLinks.get(simulationKey));
            simStatusReps.add(new SimulationStatusRepresentation(simRepresentation, simStatuses[i]));
        } catch (ExpressionException e) {
            e.printStackTrace(System.out);
        }
    }
    return simStatusReps.toArray(new SimulationStatusRepresentation[0]);
}
Also used : SimpleJobStatusQuerySpec(cbit.vcell.server.SimpleJobStatusQuerySpec) KeyValue(org.vcell.util.document.KeyValue) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) RpcSimServerProxy(org.vcell.rest.rpc.RpcSimServerProxy) VCMessageSession(cbit.vcell.message.VCMessageSession) ArrayList(java.util.ArrayList) BigString(org.vcell.util.BigString) PropertyVetoException(java.beans.PropertyVetoException) MatrixException(cbit.vcell.matrix.MatrixException) ModelException(cbit.vcell.model.ModelException) PermissionException(org.vcell.util.PermissionException) ObjectNotFoundException(org.vcell.util.ObjectNotFoundException) SQLException(java.sql.SQLException) XmlParseException(cbit.vcell.xml.XmlParseException) DataAccessException(org.vcell.util.DataAccessException) ExpressionException(cbit.vcell.parser.ExpressionException) UseridIDExistsException(org.vcell.util.UseridIDExistsException) MappingException(cbit.vcell.mapping.MappingException) MathException(cbit.vcell.math.MathException) ExpressionException(cbit.vcell.parser.ExpressionException) SimpleJobStatus(cbit.vcell.server.SimpleJobStatus) SimulationRepresentation(org.vcell.rest.common.SimulationRepresentation) SimulationDocumentLink(cbit.vcell.server.SimulationDocumentLink) SimulationStatus(cbit.vcell.server.SimulationStatus) UserLoginInfo(org.vcell.util.document.UserLoginInfo) DataAccessException(org.vcell.util.DataAccessException) SimulationRep(cbit.vcell.modeldb.SimulationRep) SimulationStatusRepresentation(org.vcell.rest.common.SimulationStatusRepresentation)

Example 68 with KeyValue

use of org.vcell.util.document.KeyValue in project vcell by virtualcell.

the class MicroscopyXmlReader method getExternalDataIdentifier.

/**
 * Method getExternalDataIdentifier.
 * @param externalDataIDElement Element
 * @return ExternalDataIdentifier
 */
private static ExternalDataIdentifier getExternalDataIdentifier(Element externalDataIDElement) {
    String name = externalDataIDElement.getAttributeValue(XMLTags.NameAttrTag);
    String keyValueStr = externalDataIDElement.getAttributeValue(XMLTags.KeyValueAttrTag);
    String ownerName = externalDataIDElement.getAttributeValue(MicroscopyXMLTags.OwnerNameAttrTag);
    String ownerKey = externalDataIDElement.getAttributeValue(XMLTags.OwnerKeyAttrTag);
    return new ExternalDataIdentifier(new KeyValue(keyValueStr), new User(ownerName, new KeyValue(ownerKey)), name);
}
Also used : KeyValue(org.vcell.util.document.KeyValue) User(org.vcell.util.document.User) ExternalDataIdentifier(org.vcell.util.document.ExternalDataIdentifier)

Example 69 with KeyValue

use of org.vcell.util.document.KeyValue in project vcell by virtualcell.

the class VFrapXmlHelper method LoadVFrapSpecialImages.

// // load and compute prebleach average and first postbleach images
// public void LoadVFrapSpecialImages(AnnotatedImageDataset annotatedImages, int startingIndexRecovery)
// {
// // unnormalized prebleach average
// prebleachAvg = new double[annotatedImages.getImageDataset().getImage(0, 0, startingIndexRecovery).getNumXYZ()];
// for(int j = 0; j < prebleachAvg.length; j++)
// {
// double pixelTotal = 0;
// for(int i = 0 ; i < startingIndexRecovery; i++)
// {
// pixelTotal = pixelTotal + (annotatedImages.getImageDataset().getImage(0, 0, i).getPixels()[j] & 0x0000FFFF);
// }
// prebleachAvg[j] = pixelTotal/startingIndexRecovery;
// }
// 
// // unnormalized first post bleach
// firstPostBleach = new double[annotatedImages.getImageDataset().getImage(0, 0, startingIndexRecovery).getNumXYZ()];
// short[] pixels = annotatedImages.getImageDataset().getImage(0, 0, startingIndexRecovery).getPixels();
// for(int i = 0; i< pixels.length; i++)
// {
// firstPostBleach[i] = pixels[i] & 0x0000FFFF;
// }
// }
// 
// Locate the special images within the vFrap files and load them in memory
// 
public static boolean LoadVFrapSpecialImages(Hashtable<String, Object> hashTable, Element vFrapRoot) throws IOException, DataAccessException, MathException, ImageException {
    // ------ parse the vfrap file and the log/zip files referred within -----
    // many channels of 1 timepoint each
    int NumTimePoints = 1;
    // the channels: prebleach, postbleach, roi1, roi2 ... roiN
    int NumChannels = tokenNames.length;
    String[] channelNames = new String[NumChannels];
    VariableType[] channelTypes = new VariableType[NumChannels];
    DataSymbolType[] channelVFrapImageType = new DataSymbolType[NumChannels];
    double[][][] pixData = new double[NumTimePoints][NumChannels][];
    // get the path of the file tagged with "ROIExternalDataInfoTag" and open it
    Element roiExternalDataInfoElement = vFrapRoot.getChild(MicroscopyXMLTags.ROIExternalDataInfoTag);
    if (roiExternalDataInfoElement == null) {
        // can't load FieldData for some reason, fall back to importing the biomodel only
        return false;
    }
    // <ROIExternalDataInfo Filename="c:\vFrap\VirtualMicroscopy\SimulationData\SimID_1282941232246_0_.log">
    // <ExternalDataIdentifier Name="timeData" KeyValue="1282941232246" OwnerName="SimulationData" OwnerKey="0" />
    // </ImageDatasetExternalDataInfo>
    // c:\VirtualMicroscopy\SimulationData\SimID_1284149203811_0_.log
    String filename = (roiExternalDataInfoElement).getAttributeValue("Filename");
    Element childElement = (roiExternalDataInfoElement).getChild("ExternalDataIdentifier");
    if (childElement == null) {
        // can't load FieldData for some reason, fall back to importing the biomodel only
        return false;
    }
    StringTokenizer tokens = new StringTokenizer(filename, "/\\.");
    final ArrayList<String> tokenArray = new ArrayList<String>();
    while (tokens.hasMoreElements()) {
        tokenArray.add(tokens.nextToken());
    }
    final String dataID = tokenArray.get(tokenArray.size() - 2);
    final String userName = tokenArray.get(tokenArray.size() - 3);
    VCDataIdentifier vcDataIdentifier = new VCDataIdentifier() {

        public String getID() {
            return dataID;
        }

        public KeyValue getDataKey() {
            return null;
        }

        public User getOwner() {
            return new User(userName, new KeyValue("123345432334"));
        }
    };
    // ------- recover simulation data for this user name, load the images in memory ------------
    // ex  c:\\VirtualMicroscopy\\SimulationData
    String userDirName = filename.substring(0, filename.indexOf(dataID) - 1);
    File userDir = new File(userDirName);
    SimulationData.SimDataAmplistorInfo simDataAmplistorInfo = AmplistorUtils.getSimDataAmplistorInfoFromPropertyLoader();
    SimulationData simData = new SimulationData(vcDataIdentifier, userDir, null, simDataAmplistorInfo);
    // build a valid mesh in 2 steps, what we have in simData is incomplete
    CartesianMesh incompleteMesh = simData.getMesh();
    Extent extent = incompleteMesh.getExtent();
    ISize isize = new ISize(incompleteMesh.getSizeX(), incompleteMesh.getSizeY(), incompleteMesh.getSizeZ());
    Origin origin = new Origin(0, 0, 0);
    CartesianMesh mesh = CartesianMesh.createSimpleCartesianMesh(origin, extent, isize, new RegionImage(new VCImageUncompressed(null, new byte[isize.getXYZ()], extent, isize.getX(), isize.getY(), isize.getZ()), 0, null, null, RegionImage.NO_SMOOTHING));
    DataIdentifier[] dataIdentifiers = simData.getVarAndFunctionDataIdentifiers(null);
    double[] times = simData.getDataTimes();
    for (int i = 0; i < dataIdentifiers.length; i++) {
        // ex: prebleach_avg, postbleach_first, postbleach_last, bleached_mask, cell_mask, ring1_mask,... ring8_mask
        System.out.println(dataIdentifiers[i].getName());
        for (double time : times) {
            // this loops only once, we have just 1 timepoint for each "special" image
            SimDataBlock simDataBlock = simData.getSimDataBlock(null, dataIdentifiers[i].getName(), time);
            channelNames[i] = dataIdentifiers[i].getName();
            channelTypes[i] = VariableType.VOLUME;
            channelVFrapImageType[i] = SymbolEquivalence.typeFromToken(dataIdentifiers[i].getName());
            pixData[0][i] = simDataBlock.getData();
            // var = prebleach_avg, time = 0.0, data = { 1.0832530361887216 1.0832530361887216 1.0832530361887216 1.0 .... }
            System.out.print("var = " + dataIdentifiers[i].getName() + ", time = " + time + ", data = { ");
            // show a few
            for (int j = 0; j < 5; j++) {
                System.out.print(pixData[0][i][j] + " ");
            }
            // show a few
            ;
            // show a few
            System.out.println(" ... ");
        }
    }
    hashTable.put("mesh", mesh);
    hashTable.put("pixData", pixData);
    hashTable.put("channelNames", channelNames);
    hashTable.put("channelTypes", channelTypes);
    hashTable.put("channelVFrapImageType", channelVFrapImageType);
    return true;
}
Also used : Origin(org.vcell.util.Origin) User(org.vcell.util.document.User) KeyValue(org.vcell.util.document.KeyValue) VCDataIdentifier(org.vcell.util.document.VCDataIdentifier) DataIdentifier(cbit.vcell.simdata.DataIdentifier) ExternalDataIdentifier(org.vcell.util.document.ExternalDataIdentifier) Extent(org.vcell.util.Extent) ISize(org.vcell.util.ISize) Element(org.jdom.Element) ArrayList(java.util.ArrayList) SimDataBlock(cbit.vcell.simdata.SimDataBlock) VariableType(cbit.vcell.math.VariableType) VCImageUncompressed(cbit.image.VCImageUncompressed) StringTokenizer(java.util.StringTokenizer) CartesianMesh(cbit.vcell.solvers.CartesianMesh) SimulationData(cbit.vcell.simdata.SimulationData) DataSymbolType(cbit.vcell.data.DataSymbol.DataSymbolType) RegionImage(cbit.vcell.geometry.RegionImage) VCDataIdentifier(org.vcell.util.document.VCDataIdentifier) File(java.io.File)

Example 70 with KeyValue

use of org.vcell.util.document.KeyValue in project vcell by virtualcell.

the class TestingFrameworkWindowPanel method testingFrameworkPanel_actionPerformed.

/**
 * Comment
 */
private void testingFrameworkPanel_actionPerformed(final ActionEvent e) {
    if (tfRefreshTreeTask == null) {
        tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager());
    }
    Hashtable<String, Object> hash = new Hashtable<String, Object>();
    Vector<AsynchClientTask> tasksV = new Vector<AsynchClientTask>();
    try {
        final TreePath[] selectedTreePaths = gettestingFrameworkPanel().getSelectedTreePaths();
        if (selectedTreePaths != null && selectedTreePaths.length > 1) {
            Object refObj = ((BioModelNode) selectedTreePaths[0].getLastPathComponent()).getUserObject();
            for (int i = 1; i < selectedTreePaths.length; i++) {
                Object currentObj = ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject();
                if ((refObj == null && currentObj == null) || ((refObj != null && currentObj != null) && (refObj.getClass().equals(currentObj.getClass()))) || (refObj instanceof TestCaseNew && currentObj instanceof TestCaseNew)) {
                    continue;
                } else {
                    throw new IllegalArgumentException("Multiple selections must all be of same type");
                }
            }
        }
        final Object selectedObj = gettestingFrameworkPanel().getTreeSelection();
        if (e.getActionCommand().equals(TestingFrameworkPanel.DELETE_XML_LOAD_TEST)) {
            int result = DialogUtils.showComponentOKCancelDialog(this, new JLabel("Delete " + selectedTreePaths.length + " Load Tests?"), "Confirm Load Test Delete");
            if (result != JOptionPane.OK_OPTION) {
                return;
            }
            AsynchClientTask deleteLoadTestTask = new AsynchClientTask("Deleting Load Test...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    LoadTestInfoOP deleteLoadTestInfoOP = new LoadTestInfoOP(LoadTestOpFlag.delete, null, null);
                    LoadTestSoftwareVersionTimeStamp[] deleteTheseversTimestamps = new LoadTestSoftwareVersionTimeStamp[selectedTreePaths.length];
                    for (int i = 0; i < selectedTreePaths.length; i++) {
                        deleteTheseversTimestamps[i] = ((LoadTestTreeInfo) ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject()).loadTestSoftwareVersionTimeStamp;
                    }
                    deleteLoadTestInfoOP.setDeleteInfo(deleteTheseversTimestamps);
                    getTestingFrameworkWindowManager().getRequestManager().getDocumentManager().doTestSuiteOP(deleteLoadTestInfoOP);
                    final ActionEvent refreshAction = new ActionEvent(this, 0, TestingFrameworkPanel.REFRESH_XML_LOAD_TEST);
                    new Thread(new Runnable() {

                        public void run() {
                            testingFrameworkPanel_actionPerformed(refreshAction);
                        }
                    }).start();
                }
            };
            tasksV.add(deleteLoadTestTask);
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.RUN_XML_LOAD_TEST_All) || e.getActionCommand().equals(TestingFrameworkPanel.RUN_XML_LOAD_TEST_MODELS) || e.getActionCommand().equals(TestingFrameworkPanel.RUN_XML_LOAD_TEST_USERS)) {
            final Date[] beginDate = new Date[1];
            final Date[] endDate = new Date[1];
            final TreeSet<String> uniqueUserIDTreeSet = new TreeSet<String>();
            final Vector<KeyValue> bioAndMathModelKeyValueV = new Vector<KeyValue>();
            String typeMsg = "All";
            if (!e.getActionCommand().equals(TestingFrameworkPanel.RUN_XML_LOAD_TEST_All)) {
                if (selectedTreePaths != null && selectedTreePaths.length > 0) {
                    Object refObj = ((BioModelNode) selectedTreePaths[0].getLastPathComponent()).getUserObject();
                    if (refObj instanceof TestingFrmwkTreeModel.LoadTestTreeInfo) {
                        for (int i = 0; i < selectedTreePaths.length; i++) {
                            refObj = ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject();
                            uniqueUserIDTreeSet.add(((TestingFrmwkTreeModel.LoadTestTreeInfo) refObj).userid);
                            if (!e.getActionCommand().equals(TestingFrameworkPanel.RUN_XML_LOAD_TEST_USERS)) {
                                bioAndMathModelKeyValueV.add(((TestingFrmwkTreeModel.LoadTestTreeInfo) refObj).bioOrMathModelKey);
                            }
                        }
                    }
                }
            } else {
                // TreeSet<VCDocumentInfo> dateRangeDocInfoTreeSet =
                // new TreeSet<VCDocumentInfo>(new Comparator<VCDocumentInfo>() {
                // public int compare(VCDocumentInfo o1, VCDocumentInfo o2) {
                // return o1.getVersion().getDate().compareTo(o2.getVersion().getDate());
                // }
                // });
                // BioModelInfo[] allBioModelInfos = getDocumentManager().getBioModelInfos();
                // dateRangeDocInfoTreeSet.addAll(Arrays.asList(allBioModelInfos));
                // MathModelInfo[] allMathModelInfos = getDocumentManager().getMathModelInfos();
                // dateRangeDocInfoTreeSet.addAll(Arrays.asList(allMathModelInfos));
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                // Date firstDate = simpleDateFormat.parse(simpleDateFormat.format(dateRangeDocInfoTreeSet.first().getVersion().getDate()));
                // Date lastDate = simpleDateFormat.parse(simpleDateFormat.format(dateRangeDocInfoTreeSet.last().getVersion().getDate()));
                Date firstDate = simpleDateFormat.parse("2000-01-01");
                Date lastDate = simpleDateFormat.parse(simpleDateFormat.format(Calendar.getInstance().getTime()));
                String allDateRangeString = simpleDateFormat.format(firstDate) + "," + simpleDateFormat.format(lastDate);
                while (beginDate[0] == null || endDate[0] == null) {
                    try {
                        String dateRangeString = DialogUtils.showInputDialog0(this, "Enter Date Range (begin,end) to include (e.g. '" + allDateRangeString + "')", allDateRangeString);
                        beginDate[0] = simpleDateFormat.parse(dateRangeString.substring(0, dateRangeString.indexOf(",")));
                        endDate[0] = simpleDateFormat.parse(dateRangeString.substring(dateRangeString.indexOf(",") + 1));
                    // if(beginDate.compareTo(firstDate) != 0 ||
                    // endDate.compareTo(lastDate) != 0){
                    // Iterator<VCDocumentInfo> vcDocIter = dateRangeDocInfoTreeSet.iterator();
                    // while(vcDocIter.hasNext()){
                    // VCDocumentInfo vcDocInfo = vcDocIter.next();
                    // Date docDate = simpleDateFormat.parse(simpleDateFormat.format(vcDocInfo.getVersion().getDate()));
                    // if(docDate.compareTo(beginDate) < 0 ||
                    // docDate.compareTo(endDate) > 0){
                    // continue;
                    // }
                    // uniqueUserIDTreeSet.add(vcDocInfo.getVersion().getOwner().getName());
                    // bioAndMathModelKeyValueV.add(vcDocInfo.getVersion().getVersionKey());
                    // }
                    // }
                    } catch (UtilCancelException uce) {
                        return;
                    } catch (Exception e2) {
                        DialogUtils.showErrorDialog(this, e2.getMessage());
                    }
                }
                if (beginDate[0].compareTo(firstDate) == 0 && endDate[0].compareTo(lastDate) == 0) {
                    beginDate[0] = null;
                    endDate[0] = null;
                } else {
                    typeMsg = "between " + simpleDateFormat.format(beginDate[0]) + "," + simpleDateFormat.format(endDate[0]);
                }
            }
            if (e.getActionCommand().equals(TestingFrameworkPanel.RUN_XML_LOAD_TEST_MODELS)) {
                typeMsg = "Models (" + bioAndMathModelKeyValueV.size() + ")";
            } else if (e.getActionCommand().equals(TestingFrameworkPanel.RUN_XML_LOAD_TEST_USERS)) {
                typeMsg = "Users (" + uniqueUserIDTreeSet.size() + ")";
            }
            int result = DialogUtils.showComponentOKCancelDialog(TestingFrameworkWindowPanel.this, new JLabel("Run " + typeMsg + " Load Tests?"), "Confirm Load Test Run");
            if (result != JOptionPane.OK_OPTION) {
                return;
            }
            result = DialogUtils.showComponentOKCancelDialog(this, enterDBAndSoftwareVersPanel, "Enter Software Version running load test");
            if (result != JOptionPane.OK_OPTION) {
                return;
            }
            AsynchClientTask runXMLLoadTestTask = new AsynchClientTask("Running XML Load Test...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    String[] uniqueUserIDArr = null;
                    KeyValue[] bioAndMathModelKeyValueArr = null;
                    if (beginDate[0] != null && endDate[0] != null) {
                        LoadTestInfoOpResults loadTestInfoOpResults = getTestingFrameworkWindowManager().getLoadTestInfoBetweenDates(beginDate[0], endDate[0]);
                        uniqueUserIDArr = loadTestInfoOpResults.getUniqueUserIDsBetweenDates();
                        bioAndMathModelKeyValueArr = loadTestInfoOpResults.getKeyValuesBetweenDates();
                    } else {
                        uniqueUserIDArr = (uniqueUserIDTreeSet.size() == 0 ? null : uniqueUserIDTreeSet.toArray(new String[0]));
                        bioAndMathModelKeyValueArr = (bioAndMathModelKeyValueV.size() == 0 ? null : bioAndMathModelKeyValueV.toArray(new KeyValue[0]));
                    }
                    throw new RuntimeException(TestingFrameworkWindowPanel.class.getSimpleName() + ".runXMLLoadTestTask(): Run Load Test disabled, directly dependend on MathVerifier.runLoadTest(), should move to standalone admin tool.");
                // MathVerifier mathVerifier = MathVerifier.createMathVerifier(
                // enterDBAndSoftwareVersPanel.getDBHost(),
                // enterDBAndSoftwareVersPanel.getDBName(),
                // enterDBAndSoftwareVersPanel.getDBSchema(),
                // enterDBAndSoftwareVersPanel.getDBPassword());
                // mathVerifier.runLoadTest(
                // uniqueUserIDArr,
                // bioAndMathModelKeyValueArr,
                // enterDBAndSoftwareVersPanel.getSoftwareVersion(),
                // (enterDBAndSoftwareVersPanel.getSoftwareVersion().length()==0?false:true),
                // (enterDBAndSoftwareVersPanel.getSoftwareVersion().length()==0?Compare.DEFAULT_COMPARE_LOGGER:null));
                }
            };
            tasksV.add(runXMLLoadTestTask);
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.REFRESH_XML_LOAD_TEST)) /*||
				e.getActionCommand().equals(TestingFrameworkPanel.REFRESH_INCLUDE_SLOW_XML_LOAD_TEST)*/
        {
            final String LOADTESTDETAILS_KEY = "LOADTESTDETAILS_KEY";
            AsynchClientTask getFailedLoadTest = new AsynchClientTask("Getting FailedLoadTests...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    /*						Integer slowLoadThreshold = null;
						if(e.getActionCommand().equals(TestingFrameworkPanel.REFRESH_INCLUDE_SLOW_XML_LOAD_TEST)){
							String result = DialogUtils.showInputDialog0(TestingFrameworkWindowPanel.this, "Enter load time threshold (millseconds)","10000");
							slowLoadThreshold = new Integer(result);
						}
*/
                    if (gettestingFrameworkPanel().getSlowLoadThreshold() != null && gettestingFrameworkPanel().getLoadTestSQLCondition() != null) {
                        throw new IllegalArgumentException("SlowLoadThreshold and 'SQL Condition' cannot both be non-null at the same time.");
                    }
                    hashTable.put(LOADTESTDETAILS_KEY, getTestingFrameworkWindowManager().getLoadTestDetails(gettestingFrameworkPanel().getSlowLoadThreshold(), gettestingFrameworkPanel().getLoadTestSQLCondition()));
                }
            };
            AsynchClientTask refreshFailedLoadTest = new AsynchClientTask("Refreshing FailedLoadTests...", AsynchClientTask.TASKTYPE_SWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    getTestingFrameworkWindowManager().refreshLoadTest((LoadTestInfoOpResults) hashTable.get(LOADTESTDETAILS_KEY));
                }
            };
            tasksV.add(getFailedLoadTest);
            tasksV.add(refreshFailedLoadTest);
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.QUERY_TCRITVAR_CROSSREF)) {
            if (selectedObj instanceof TestingFrmwkTreeModel.TestCriteriaVarUserObj && selectedTreePaths.length == 1) {
                final TestingFrmwkTreeModel.TestCriteriaVarUserObj tcritVaruserObj = (TestingFrmwkTreeModel.TestCriteriaVarUserObj) selectedObj;
                final TestSuiteInfoNew tsInfoNew = gettestingFrameworkPanel().getTestSuiteInfoOfTreePath(selectedTreePaths[0]);
                AsynchClientTask queryTCritCrossRef = new AsynchClientTask("Query TCrit Var Cross Ref", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                        getTestingFrameworkWindowManager().queryTCritCrossRef(tsInfoNew, tcritVaruserObj.getTestCriteria(), tcritVaruserObj.getVariableComparisonSummary().getName());
                    }
                };
                tasksV.add(queryTCritCrossRef);
            } else {
                throw new Exception("Selected Object is not a TestCriteria Variable! Failed to Query Var Cross Ref.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.QUERY_TCRIT_CROSSREF)) {
            if (selectedObj instanceof TestCriteriaNew) {
                final TestCriteriaNew tcritNew = (TestCriteriaNew) selectedObj;
                final TestSuiteInfoNew tsInfoNew = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCriteria();
                AsynchClientTask queryTCritCrossRef = new AsynchClientTask("Query TCrit Cross Ref", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                        getTestingFrameworkWindowManager().queryTCritCrossRef(tsInfoNew, tcritNew, null);
                    }
                };
                tasksV.add(queryTCritCrossRef);
            } else {
                throw new Exception("Selected Object is not a TestCriteria! Failed to Query Cross Ref.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.LOCK_TESTSUITE)) {
            if (selectedObj instanceof TestSuiteInfoNew) {
                final TestSuiteInfoNew tsInfoNew = (TestSuiteInfoNew) selectedObj;
                AsynchClientTask lockTestSuiteTask = new AsynchClientTask("Lock TestSuite", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                        getTestingFrameworkWindowManager().lockTestSuite(tsInfoNew);
                    }
                };
                tasksV.add(lockTestSuiteTask);
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfoNew);
                tasksV.add(tfRefreshTreeTask);
            } else {
                throw new Exception("Selected Object is not a TestSuite! Failed to Lock TestSuite.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.EDIT_ANNOT_TESTSUITE)) {
            if (selectedObj instanceof TestSuiteInfoNew) {
                final TestSuiteInfoNew tsInfoNew = (TestSuiteInfoNew) selectedObj;
                String newAnnotation;
                // initialize fields
                String oldAnnotation = tsInfoNew.getTSAnnotation();
                // show the editor
                newAnnotation = org.vcell.util.gui.DialogUtils.showAnnotationDialog(this, oldAnnotation);
                final String finalAnnotation = newAnnotation;
                AsynchClientTask editTestSuiteAnnotation = new AsynchClientTask("Edit TestSuite Annotation", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                        getTestingFrameworkWindowManager().updateTestSuiteAnnotation(tsInfoNew, finalAnnotation);
                    }
                };
                tasksV.add(editTestSuiteAnnotation);
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfoNew);
                tasksV.add(tfRefreshTreeTask);
            } else {
                throw new Exception("Selected Object is not a TestSuite! Failed to Edit TestSuite Annotation.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.EDIT_ANNOT_TESTCASE)) {
            if (selectedObj instanceof TestCaseNew) {
                final TestCaseNew tcNew = (TestCaseNew) selectedObj;
                String newAnnotation;
                // initialize fields
                String oldAnnotation = tcNew.getAnnotation();
                // show the editor
                newAnnotation = org.vcell.util.gui.DialogUtils.showAnnotationDialog(this, oldAnnotation);
                final String finalAnnotation = newAnnotation;
                AsynchClientTask editTestCaseAnnotation = new AsynchClientTask("Edit TestCase Annotation", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                        getTestingFrameworkWindowManager().updateTestCaseAnnotation(tcNew, finalAnnotation);
                    }
                };
                tasksV.add(editTestCaseAnnotation);
                TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCase();
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                tasksV.add(tfRefreshTreeTask);
            } else {
                throw new Exception("Selected Object is not a TestCase! Failed to Edit TestCase Annotation.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.TOGGLE_STEADYSTATE)) {
            if (selectedObj instanceof TestCaseNew) {
                final TestCaseNew testCase = (TestCaseNew) selectedObj;
                String okString = "Ok";
                String confirm = PopupGenerator.showWarningDialog(this, "Toggle TestCase '" + testCase.getVersion().getName() + "'\nfrom " + testCase.getType() + " to " + (testCase.getType().equals(TestCaseNew.EXACT) ? TestCaseNew.EXACT_STEADY : TestCaseNew.EXACT), new String[] { okString, "Cancel" }, okString);
                if (confirm.equals(okString)) {
                    AsynchClientTask toggleSteadyState = new AsynchClientTask("Toggle Steady State", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                        public void run(Hashtable<String, Object> hashTable) throws Exception {
                            getTestingFrameworkWindowManager().toggleTestCaseSteadyState(new TestCaseNew[] { testCase });
                        }
                    };
                    tasksV.add(toggleSteadyState);
                    TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCase();
                    tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                    tasksV.add(tfRefreshTreeTask);
                } else {
                    throw UserCancelException.CANCEL_GENERIC;
                }
            } else {
                throw new Exception("Selected Object is not a TestCase! Cannot Toggle SteadyState");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.ADD_TESTSUITE)) {
            TestingFrameworkWindowManager.NewTestSuiteUserInformation newTestSuiteUserInfo = getTestingFrameworkWindowManager().getNewTestSuiteInfoFromUser(null, null);
            tasksV.add(new TFAddTestSuite(getTestingFrameworkWindowManager(), newTestSuiteUserInfo.testSuiteInfoNew));
            tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), newTestSuiteUserInfo.testSuiteInfoNew);
            tasksV.add(tfRefreshTreeTask);
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.REFRESH_TESTSUITE)) {
            TestSuiteInfoNew tsin = null;
            if (selectedObj instanceof TestSuiteInfoNew) {
                tsin = (TestSuiteInfoNew) selectedObj;
            } else if (selectedObj instanceof TestCaseNew) {
                tsin = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCase();
            } else if (selectedObj instanceof TestCriteriaNew) {
                tsin = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCriteria();
            }
            if (tsin == null) {
                throw new IllegalArgumentException("Refresh error: Unexpected tree selection type=" + selectedObj.getClass().getName());
            }
            tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsin);
            tasksV.add(new TFUpdateRunningStatus(getTestingFrameworkWindowManager(), tsin));
            tasksV.add(tfRefreshTreeTask);
        // getTestingFrameworkWindowManager().updateSimRunningStatus();
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.ADD_TESTCASE)) {
            if (selectedObj instanceof TestSuiteInfoNew) {
                TestSuiteInfoNew tsInfo = (TestSuiteInfoNew) selectedObj;
                TestCaseNew[] tcnArr = getTestingFrameworkWindowManager().getNewTestCaseArr();
                tasksV.add(new cbit.vcell.client.task.TFAddTestCases(getTestingFrameworkWindowManager(), tsInfo, tcnArr));
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                tasksV.add(tfRefreshTreeTask);
            } else {
                throw new Exception("Selected Object is not a test suite! Cannot add a test case");
            }
        } else if (e.getActionCommand().equals("Run All")) {
            if (selectedTreePaths == null || selectedTreePaths.length != 1) {
                throw new IllegalArgumentException("Command '" + e.getActionCommand() + "' Single Selection Only!");
            }
            if (selectedObj instanceof TestSuiteInfoNew) {
                TestSuiteInfoNew tsInfo = (TestSuiteInfoNew) selectedObj;
                String okString = "Ok";
                String confirm = PopupGenerator.showWarningDialog(this, "Run All Sims for TestSuite '" + tsInfo.getTSID() + "'?", new String[] { okString, "Cancel" }, okString);
                if (confirm.equals(okString)) {
                    tasksV.add(new TFRunSims(getTestingFrameworkWindowManager(), tsInfo));
                    tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                    tasksV.add(tfRefreshTreeTask);
                }
            } else {
                throw new Exception("Selected Object is not a test suite!");
            }
        } else if (e.getActionCommand().equals("Run Simulations")) {
            if (selectedTreePaths == null || selectedTreePaths.length != 1) {
                throw new IllegalArgumentException("Command '" + e.getActionCommand() + "' Single Selection Only!");
            }
            if (selectedObj instanceof TestCaseNew) {
                TestCaseNew testCase = (TestCaseNew) selectedObj;
                String okString = "Ok";
                String confirm = PopupGenerator.showWarningDialog(this, "Run All Sims for TestCase '" + testCase.getVersion().getName() + "'?", new String[] { okString, "Cancel" }, okString);
                if (confirm.equals(okString)) {
                    tasksV.add(new TFRunSims(getTestingFrameworkWindowManager(), testCase));
                    TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCase();
                    tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                    tasksV.add(tfRefreshTreeTask);
                }
            } else {
                throw new Exception("Selected Object is not a TestCase! Cannot run simulations");
            }
        } else if (e.getActionCommand().equals("Run")) {
            if (selectedTreePaths != null && selectedTreePaths.length > 0 && selectedTreePaths[0].getLastPathComponent() instanceof BioModelNode && ((BioModelNode) selectedTreePaths[0].getLastPathComponent()).getUserObject() instanceof TestCriteriaNew) {
                for (int i = 0; i < selectedTreePaths.length; i += 1) {
                    TestCriteriaNew tCriteria = (TestCriteriaNew) ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject();
                    tasksV.add(new TFRunSims(getTestingFrameworkWindowManager(), tCriteria));
                }
                TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCriteria();
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                tasksV.add(tfRefreshTreeTask);
            } else {
                throw new Exception("Selected Object is not a TestCriteria!");
            }
        } else if (e.getActionCommand().equals("View Results")) {
            if (selectedObj instanceof cbit.vcell.numericstest.TestCriteriaNew) {
                TestCriteriaNew tCriteria = (TestCriteriaNew) selectedObj;
                getTestingFrameworkWindowManager().viewResults(tCriteria);
            } else {
                PopupGenerator.showErrorDialog(TestingFrameworkWindowPanel.this, "Selected Object is not a TestCriteria!");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.COMPARERREGR_INTERNALREF_TESTCRITERIA) || e.getActionCommand().equals(TestingFrameworkPanel.COMPARERREGR_USERDEFREF_TESTCRITERIA)) {
            if (selectedObj instanceof cbit.vcell.numericstest.TestCriteriaNew) {
                TestCriteriaNew tCriteria = (TestCriteriaNew) selectedObj;
                SimulationStatus simStatus = getTestingFrameworkWindowManager().getRequestManager().getServerSimulationStatus(tCriteria.getSimInfo());
                if (simStatus.isRunning()) {
                    PopupGenerator.showErrorDialog(TestingFrameworkWindowPanel.this, "Selected simulation is still running!");
                    return;
                }
                SimulationInfo simulationInfo = tCriteria.getRegressionSimInfo();
                if (e.getActionCommand().equals(TestingFrameworkPanel.COMPARERREGR_USERDEFREF_TESTCRITERIA)) {
                    try {
                        simulationInfo = getUserSelectedSimulationInfo().getSimInfo();
                    } catch (UserCancelException e2) {
                        return;
                    }
                }
                if (simulationInfo == null) {
                    PopupGenerator.showErrorDialog(TestingFrameworkWindowPanel.this, "Either the selected simulation does not belong to a REGRESSION test or the regression simInfo is not set!");
                    return;
                }
                getTestingFrameworkWindowManager().compare(tCriteria, simulationInfo);
            } else {
                PopupGenerator.showErrorDialog(TestingFrameworkWindowPanel.this, "Selected Object is not a TestCriteria!");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.DUPLICATE_TESTSUITE)) {
            if (selectedObj instanceof TestSuiteInfoNew) {
                TestSuiteInfoNew tsInfoOriginal = (TestSuiteInfoNew) selectedObj;
                TestingFrameworkWindowManager.NewTestSuiteUserInformation newTestSuiteUserInfo = getTestingFrameworkWindowManager().getNewTestSuiteInfoFromUser(tsInfoOriginal.getTSAnnotation(), tsInfoOriginal.getTSID());
                tasksV.add(new TFDuplicateTestSuite(getTestingFrameworkWindowManager(), tsInfoOriginal, newTestSuiteUserInfo.testSuiteInfoNew, newTestSuiteUserInfo.regrRefFlag));
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), newTestSuiteUserInfo.testSuiteInfoNew);
                tasksV.add(tfRefreshTreeTask);
            // getTestingFrameworkWindowManager().duplicateTestSuite(tsInfo);
            } else {
                throw new Exception("Selected Object is not a test suite! Cannot duplicate");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.REMOVE_TESTCASE)) {
            if (selectedObj instanceof TestCaseNew) {
                String[][] rowData = new String[selectedTreePaths.length][3];
                TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCase();
                for (int i = 0; i < selectedTreePaths.length; i += 1) {
                    TestCaseNew tCase = (TestCaseNew) ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject();
                    rowData[i][0] = tsInfo.getTSID();
                    tasksV.add(new TFRemove(getTestingFrameworkWindowManager(), tCase));
                    if (tCase instanceof TestCaseNewBioModel) {
                        rowData[i][1] = "BM " + tCase.getVersion().getName();
                        rowData[i][2] = ((TestCaseNewBioModel) tCase).getSimContextName();
                    } else {
                        rowData[i][1] = "MM " + tCase.getVersion().getName();
                        rowData[i][2] = "N/A";
                    }
                }
                DialogUtils.showComponentOKCancelTableList(this, "Confirm Remove TestCase(s)", new String[] { "Test Suite", "Test Case", "App" }, rowData, null);
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                tasksV.add(tfRefreshTreeTask);
            } else {
                throw new Exception("Selected Object is not a TestCase, cannot remove selection!");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.REMOVE_TESTSUITE)) {
            if (selectedObj instanceof TestSuiteInfoNew) {
                TestSuiteInfoNew tsInfo = (TestSuiteInfoNew) selectedObj;
                String confirm = PopupGenerator.showWarningDialog(this, UserMessage.warn_deleteDocument.getMessage(tsInfo.getTSID()), UserMessage.warn_deleteDocument.getOptions(), UserMessage.warn_deleteDocument.getDefaultSelection());
                if (confirm.equals(UserMessage.OPTION_DELETE)) {
                    tasksV.add(new TFRemove(getTestingFrameworkWindowManager(), tsInfo));
                    tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                    tasksV.add(tfRefreshTreeTask);
                } else {
                    throw UserCancelException.CANCEL_GENERIC;
                }
            // getTestingFrameworkWindowManager().removeTestSuite(tsInfo);
            } else {
                throw new Exception("Selected Object is not a test suite! Cannot add a test case");
            }
        } else if (e.getActionCommand().equals("Generate TestSuite Report")) {
            final TreePath[] selectedTreePathsLocal = selectedTreePaths;
            new Thread(new Runnable() {

                public void run() {
                    try {
                        for (int i = 0; selectedTreePathsLocal != null && i < selectedTreePathsLocal.length; i += 1) {
                            Object selTreeNode = ((BioModelNode) selectedTreePathsLocal[i].getLastPathComponent()).getUserObject();
                            if (selTreeNode instanceof TestSuiteInfoNew) {
                                Vector<AsynchClientTask> tasksVLocal = new java.util.Vector<AsynchClientTask>();
                                TestSuiteInfoNew tsInfo = (TestSuiteInfoNew) selTreeNode;
                                tasksVLocal.add(new cbit.vcell.client.task.TFUpdateRunningStatus(getTestingFrameworkWindowManager(), tsInfo));
                                tasksVLocal.add(new TFGenerateReport(getTestingFrameworkWindowManager(), tsInfo));
                                final String END_NOTIFIER = "END NOTIFIER";
                                tasksVLocal.add(new AsynchClientTask(END_NOTIFIER, AsynchClientTask.TASKTYPE_NONSWING_BLOCKING, false, false) {

                                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                                        hashTable.put(END_NOTIFIER, END_NOTIFIER);
                                    }
                                });
                                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                                tasksVLocal.add(tfRefreshTreeTask);
                                AsynchClientTask[] tasksArr = new AsynchClientTask[tasksVLocal.size()];
                                tasksVLocal.copyInto(tasksArr);
                                Hashtable<String, Object> hashLocal = new Hashtable<String, Object>();
                                ClientTaskDispatcher.dispatch(TestingFrameworkWindowPanel.this, hashLocal, tasksArr, true);
                                // Wait for each report to complete before going on to next because report methods are not thread safe?
                                while (!hashLocal.contains(END_NOTIFIER)) {
                                    Thread.sleep(100);
                                }
                            } else {
                                throw new Exception("Error GenerateTestSuiteReport\nSelected Object is not a TestSuite");
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        PopupGenerator.showErrorDialog(TestingFrameworkWindowPanel.this, "Error GenerateTestSuiteReport\n" + e.getMessage(), e);
                        return;
                    }
                }
            }).start();
            return;
        } else if (e.getActionCommand().equals("Generate TestCase Report")) {
            Vector<TestSuiteInfoNew> tsinV = new Vector<TestSuiteInfoNew>();
            for (int i = 0; selectedTreePaths != null && i < selectedTreePaths.length; i += 1) {
                Object selTreeNode = ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject();
                if (selTreeNode instanceof TestCaseNew) {
                    TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfTreePath(selectedTreePaths[i]);
                    if (!tsinV.contains(tsInfo)) {
                        tsinV.add(tsInfo);
                        tasksV.add(new cbit.vcell.client.task.TFUpdateRunningStatus(getTestingFrameworkWindowManager(), tsInfo));
                    }
                    tasksV.add(new TFGenerateReport(getTestingFrameworkWindowManager(), (TestCaseNew) selTreeNode));
                } else {
                    throw new Exception("Selected Object is not a TestCase");
                }
            }
            tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), (tsinV.size() == 1 ? tsinV.elementAt(0) : null));
            tasksV.add(tfRefreshTreeTask);
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.GENTCRITREPORT_INTERNALREF_TESTCRITERIA) || e.getActionCommand().equals(TestingFrameworkPanel.GENTCRITREPORT_USERDEFREF_TESTCRITERIA)) {
            TFGenerateReport.VCDocumentAndSimInfo userDefinedRegrRef = null;
            if (e.getActionCommand().equals(TestingFrameworkPanel.GENTCRITREPORT_USERDEFREF_TESTCRITERIA)) {
                try {
                    userDefinedRegrRef = getUserSelectedSimulationInfo();
                } catch (UserCancelException e2) {
                    return;
                }
            }
            Vector<TestSuiteInfoNew> tsinV = new Vector<TestSuiteInfoNew>();
            for (int i = 0; selectedTreePaths != null && i < selectedTreePaths.length; i += 1) {
                Object selTreeNode = ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject();
                if (selTreeNode instanceof TestCriteriaNew) {
                    TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfTreePath(selectedTreePaths[i]);
                    if (!tsinV.contains(tsInfo)) {
                        tsinV.add(tsInfo);
                        tasksV.add(new cbit.vcell.client.task.TFUpdateRunningStatus(getTestingFrameworkWindowManager(), tsInfo));
                    }
                    tasksV.add(new TFGenerateReport(getTestingFrameworkWindowManager(), (TestCaseNew) ((BioModelNode) selectedTreePaths[i].getParentPath().getLastPathComponent()).getUserObject(), (TestCriteriaNew) selTreeNode, userDefinedRegrRef));
                } else {
                    throw new Exception("Selected Object is not a TestCriteria");
                }
            }
            tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), (tsinV.size() == 1 ? tsinV.elementAt(0) : null));
            tasksV.add(tfRefreshTreeTask);
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.REMOVE_DIFF_TESTCRITERIA)) {
            final int OLDER = 0;
            final int NEWER = 1;
            final TestSuiteInfoNew[] testSuiteInfoHolder = new TestSuiteInfoNew[2];
            if (selectedTreePaths.length == 2 && ((BioModelNode) selectedTreePaths[0].getLastPathComponent()).getUserObject() instanceof TestSuiteInfoNew && ((BioModelNode) selectedTreePaths[1].getLastPathComponent()).getUserObject() instanceof TestSuiteInfoNew) {
                // do outside task because its quick
                TestSuiteInfoNew testSuiteInfoOlder = (TestSuiteInfoNew) ((BioModelNode) selectedTreePaths[0].getLastPathComponent()).getUserObject();
                TestSuiteInfoNew testSuiteInfoNewer = (TestSuiteInfoNew) ((BioModelNode) selectedTreePaths[1].getLastPathComponent()).getUserObject();
                if (testSuiteInfoOlder.getTSDate().compareTo(testSuiteInfoNewer.getTSDate()) > 0) {
                    TestSuiteInfoNew temp = testSuiteInfoOlder;
                    testSuiteInfoOlder = testSuiteInfoNewer;
                    testSuiteInfoNewer = temp;
                }
                testSuiteInfoHolder[OLDER] = testSuiteInfoOlder;
                testSuiteInfoHolder[NEWER] = testSuiteInfoNewer;
                AsynchClientTask showDiffTask = new AsynchClientTask("Show Differential TestCriteria...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                        ArrayList<TestSuiteNew> bothTestSuites = new ArrayList<TestSuiteNew>();
                        if (getClientTaskStatusSupport() != null) {
                            getClientTaskStatusSupport().setProgress(25);
                            getClientTaskStatusSupport().setMessage("Getting TestSuiteInfo '" + testSuiteInfoHolder[OLDER].getTSID() + "'");
                        }
                        bothTestSuites.add(getDocumentManager().getTestSuite(testSuiteInfoHolder[OLDER].getTSKey()));
                        if (getClientTaskStatusSupport() != null) {
                            getClientTaskStatusSupport().setProgress(50);
                            getClientTaskStatusSupport().setMessage("Getting TestSuiteInfo '" + testSuiteInfoHolder[NEWER].getTSID() + "'");
                        }
                        bothTestSuites.add(getDocumentManager().getTestSuite(testSuiteInfoHolder[NEWER].getTSKey()));
                        HashMap<String, TestCriteriaNew> olderTestCritHashMap = new HashMap<String, TestCriteriaNew>();
                        ArrayList<String> olderTestCaseBaseNames = new ArrayList<String>();
                        TreeMap<String, TestCriteriaNew> newDiffTestCriteria = new TreeMap<String, TestCriteriaNew>();
                        int excludedCount = 0;
                        for (TestSuiteNew currentTestSuite : bothTestSuites) {
                            BigDecimal currentTestSuiteKey = currentTestSuite.getTSInfoNew().getTSKey();
                            for (TestCaseNew tcn : currentTestSuite.getTestCases()) {
                                String prefixInfo = "TS='" + currentTestSuite.getTSInfoNew().getTSID() + "' Type='" + tcn.getType() + "' ";
                                String baseName = (tcn instanceof TestCaseNewBioModel ? "BioModel='" + ((TestCaseNewBioModel) tcn).getBioModelInfo().getVersion().getName() + "' App='" + ((TestCaseNewBioModel) tcn).getSimContextName() + "'" : "MathModel='" + ((TestCaseNewMathModel) tcn).getMathModelInfo().getVersion().getName()) + "'";
                                if (currentTestSuite.getTSInfoNew().getTSKey().equals(testSuiteInfoHolder[OLDER].getTSKey())) {
                                    if (!olderTestCaseBaseNames.contains(baseName)) {
                                        olderTestCaseBaseNames.add(baseName);
                                    } else {
                                        throw new Exception("Old testcase names duplicated.");
                                    }
                                }
                                for (TestCriteriaNew tcrit : tcn.getTestCriterias()) {
                                    String name = baseName + " Sim='" + tcrit.getSimInfo().getName() + "'";
                                    if (olderTestCritHashMap.containsKey(name)) {
                                        if (currentTestSuiteKey.equals(testSuiteInfoHolder[OLDER].getTSKey())) {
                                            throw new Exception("---Problem--- Older names not unique");
                                        }
                                        continue;
                                    } else if (currentTestSuiteKey.equals(testSuiteInfoHolder[NEWER].getTSKey())) {
                                        if (!olderTestCaseBaseNames.contains(baseName)) {
                                            // this happens when new TestSuite has added TestCase after duplication
                                            excludedCount += 1;
                                        } else if (newDiffTestCriteria.put(prefixInfo + name, tcrit) != null) {
                                            throw new Exception("---Problem--- Newer added names not unique");
                                        }
                                        continue;
                                    }
                                    olderTestCritHashMap.put(name, tcrit);
                                }
                            }
                        }
                        if (newDiffTestCriteria.size() > 0) {
                            if (getClientTaskStatusSupport() != null) {
                                getClientTaskStatusSupport().setMessage("Showing Differential list...");
                            }
                            String[][] rowData = new String[newDiffTestCriteria.size()][1];
                            String[] addedNamesArr = newDiffTestCriteria.keySet().toArray(new String[0]);
                            for (int i = 0; i < addedNamesArr.length; i++) {
                                rowData[i][0] = addedNamesArr[i];
                            }
                            final String DELETE = "Delete";
                            TableListResult result = DialogUtils.showComponentOptionsTableList(gettestingFrameworkPanel(), "Remove TestCriteria in TS='" + testSuiteInfoHolder[NEWER].getTSID() + "' that were not in TS='" + testSuiteInfoHolder[OLDER].getTSID() + "' (count=" + rowData.length + " of " + olderTestCritHashMap.size() + ", excluded=" + excludedCount + ")", new String[] { "Diff TestCriteria" }, rowData, ListSelectionModel.MULTIPLE_INTERVAL_SELECTION, null, new String[] { DELETE, "Cancel" }, DELETE, null);
                            if (result != null && result.selectedOption != null && result.selectedOption.equals(DELETE) && result.selectedTableRows != null && result.selectedTableRows.length > 0) {
                                TestCriteriaNew[] allNewDiffTeestCritArr = newDiffTestCriteria.values().toArray(new TestCriteriaNew[0]);
                                TestCriteriaNew[] selTestCritsArr = new TestCriteriaNew[result.selectedTableRows.length];
                                for (int i = 0; i < result.selectedTableRows.length; i++) {
                                    selTestCritsArr[i] = allNewDiffTeestCritArr[result.selectedTableRows[i]];
                                // System.out.println("Selected= "+rowData[result.selectedTableRows[i]][0]+"  --  SimName="+selTestCritsArrHolder[0][i].getSimInfo().getVersion().getName());
                                }
                                hashTable.put(TFRemoveTestCriteria.REMOVE_THESE_TESTCRITERIAS, selTestCritsArr);
                            } else {
                                throw UserCancelException.CANCEL_GENERIC;
                            }
                        } else {
                            throw new Exception("No differential TestCriteria found");
                        }
                    }
                };
                AsynchClientTask shouldRefreshTask = new // Prevent annoying refresh if cancel
                AsynchClientTask(// Prevent annoying refresh if cancel
                "", // Prevent annoying refresh if cancel
                AsynchClientTask.TASKTYPE_SWING_NONBLOCKING) {

                    public void run(Hashtable<String, Object> hashTable) throws Exception {
                        new TFRefresh(getTestingFrameworkWindowManager(), testSuiteInfoHolder[NEWER]).run(hashTable);
                    }
                };
                tasksV.add(showDiffTask);
                tasksV.add(new TFRemoveTestCriteria(getTestingFrameworkWindowManager()));
                tasksV.add(shouldRefreshTask);
            // tasksV.add(new TFRefresh(getTestingFrameworkWindowManager(),testSuiteInfoHolder[NEWER]));
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.REMOVE_TESTCRITERIA)) {
            if (selectedObj instanceof TestCriteriaNew) {
                ArrayList<TestCriteriaNew> selTestCritsArr = new ArrayList<TestCriteriaNew>();
                for (int i = 0; selectedTreePaths != null && i < selectedTreePaths.length; i += 1) {
                    Object selTreeNode = ((BioModelNode) selectedTreePaths[i].getLastPathComponent()).getUserObject();
                    if (selTreeNode instanceof TestCriteriaNew) {
                        selTestCritsArr.add(((TestCriteriaNew) selTreeNode));
                    }
                }
                final String DELETE = "Delete";
                String response = DialogUtils.showWarningDialog(gettestingFrameworkPanel(), "Delete " + selTestCritsArr.size() + " TestCriterias?", new String[] { DELETE, "Cancel" }, DELETE);
                if (response != null && response.equals(DELETE)) {
                    tasksV.add(new TFRemoveTestCriteria(getTestingFrameworkWindowManager(), selTestCritsArr.toArray(new TestCriteriaNew[0])));
                    TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCriteria();
                    tasksV.add(new TFRefresh(getTestingFrameworkWindowManager(), tsInfo));
                } else {
                    throw UserCancelException.CANCEL_GENERIC;
                }
            } else {
                throw new Exception("Selected Object is not a TestCriteria! Cannot remove test criteria.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.EDIT_TESTCRITERIA)) {
            if (selectedObj instanceof TestCriteriaNew) {
                TestCriteriaNew tCriteria = (TestCriteriaNew) selectedObj;
                TestCaseNew testCase = gettestingFrameworkPanel().getTestCaseOfSelectedCriteria();
                TestCriteriaNew tcritNew = getTestingFrameworkWindowManager().getNewTestCriteriaFromUser(testCase.getType(), tCriteria);
                tasksV.add(new TFUpdateTestCriteria(getTestingFrameworkWindowManager(), tCriteria, tcritNew));
                TestSuiteInfoNew tsInfo = gettestingFrameworkPanel().getTestSuiteInfoOfSelectedTestCriteria();
                tfRefreshTreeTask = new TFRefresh(getTestingFrameworkWindowManager(), tsInfo);
                tasksV.add(tfRefreshTreeTask);
            } else {
                throw new Exception("Selected Object is not a TestCriteria! Cannot edit test criteria.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.COPY_TCRIT_SIMID)) {
            if (selectedObj instanceof TestCriteriaNew) {
                TestCriteriaNew tCriteria = (TestCriteriaNew) selectedObj;
                KeyValue testCritSimID = tCriteria.getSimInfo().getVersion().getVersionKey();
                VCellTransferable.sendToClipboard(testCritSimID.toString());
                return;
            } else {
                throw new Exception("Selected Object is not a TestCriteria! Copy simid failed.");
            }
        } else if (e.getActionCommand().equals(TestingFrameworkPanel.LOAD_MODEL)) {
            final String LOAD_THIS_MODEL = "LOAD_THIS_MODEL";
            AsynchClientTask modelInfoTask = new AsynchClientTask("Finding Model Info...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    VCDocumentInfo vcDocumentInfo = null;
                    if (selectedObj instanceof TestCaseNew) {
                        TestCaseNew testCase = (TestCaseNew) selectedObj;
                        if (testCase instanceof TestCaseNewMathModel) {
                            vcDocumentInfo = ((TestCaseNewMathModel) testCase).getMathModelInfo();
                        } else if (testCase instanceof TestCaseNewBioModel) {
                            vcDocumentInfo = ((TestCaseNewBioModel) testCase).getBioModelInfo();
                        } else {
                            throw new IllegalArgumentException("Unexpected TestCase type=" + testCase.getClass().getName());
                        }
                        hashTable.put(LOAD_THIS_MODEL, vcDocumentInfo);
                    } else if (selectedObj instanceof LoadTestTreeInfo) {
                        throw new Exception("Not yet implemented for LoadTest.");
                    // LoadTestTreeInfo loadTestTreeInfo = (LoadTestTreeInfo)selectedObj;
                    // if(loadTestTreeInfo.modelType.equals(LoadTestInfoOpResults.MODELTYPE_BIO)){
                    // vcDocumentInfo = getDocumentManager().getBioModelInfo(loadTestTreeInfo.bioOrMathModelKey);
                    // }else if(loadTestTreeInfo.modelType.equals(LoadTestInfoOpResults.MODELTYPE_MATH)){
                    // vcDocumentInfo = getDocumentManager().getMathModelInfo(loadTestTreeInfo.bioOrMathModelKey);
                    // }else{
                    // throw new IllegalArgumentException("Unexpected LoadTestTreeInfo type="+loadTestTreeInfo.modelType);
                    // }
                    // hashTable.put(LOAD_THIS_MODEL, vcDocumentInfo);
                    }
                }
            };
            AsynchClientTask openModelTask = new AsynchClientTask("Opening model...", AsynchClientTask.TASKTYPE_SWING_BLOCKING) {

                @Override
                public void run(Hashtable<String, Object> hashTable) throws Exception {
                    if (selectedObj instanceof TestCaseNew) {
                        getTestingFrameworkWindowManager().loadModel((VCDocumentInfo) hashTable.get(LOAD_THIS_MODEL));
                    } else if (selectedObj instanceof LoadTestTreeInfo) {
                        throw new Exception("Not yet implemented for LoadTest.");
                    } else {
                        throw new Exception("Load Model expecting TestCaseNew or LoadTestTreeInfo but got " + selectedObj.getClass().getName());
                    }
                }
            };
            tasksV.add(modelInfoTask);
            tasksV.add(openModelTask);
        }
        // tasksV.add(tfRefreshTreeTask);
        AsynchClientTask[] tasksArr = new AsynchClientTask[tasksV.size()];
        tasksV.copyInto(tasksArr);
        ClientTaskDispatcher.dispatch(this, hash, tasksArr, true);
    } catch (Throwable exc) {
        if (!(exc instanceof UserCancelException) && !(exc instanceof UtilCancelException)) {
            exc.printStackTrace(System.out);
            PopupGenerator.showErrorDialog(TestingFrameworkWindowPanel.this, exc.getMessage(), exc);
        }
    }
}
Also used : HashMap(java.util.HashMap) ActionEvent(java.awt.event.ActionEvent) LoadTestInfoOpResults(cbit.vcell.numericstest.LoadTestInfoOpResults) UserCancelException(org.vcell.util.UserCancelException) ArrayList(java.util.ArrayList) TFUpdateRunningStatus(cbit.vcell.client.task.TFUpdateRunningStatus) LoadTestSoftwareVersionTimeStamp(cbit.vcell.numericstest.LoadTestInfoOpResults.LoadTestSoftwareVersionTimeStamp) TFRemove(cbit.vcell.client.task.TFRemove) TFRemoveTestCriteria(cbit.vcell.client.task.TFRemoveTestCriteria) TreeSet(java.util.TreeSet) Vector(java.util.Vector) UtilCancelException(org.vcell.util.UtilCancelException) TestSuiteNew(cbit.vcell.numericstest.TestSuiteNew) TestCriteriaNew(cbit.vcell.numericstest.TestCriteriaNew) TestCaseNew(cbit.vcell.numericstest.TestCaseNew) SimulationStatus(cbit.vcell.server.SimulationStatus) TFDuplicateTestSuite(cbit.vcell.client.task.TFDuplicateTestSuite) SimulationInfo(cbit.vcell.solver.SimulationInfo) TableListResult(org.vcell.util.gui.DialogUtils.TableListResult) AsynchClientTask(cbit.vcell.client.task.AsynchClientTask) KeyValue(org.vcell.util.document.KeyValue) LoadTestInfoOP(cbit.vcell.numericstest.LoadTestInfoOP) BioModelNode(cbit.vcell.desktop.BioModelNode) TestingFrmwkTreeModel(cbit.vcell.client.desktop.testingframework.TestingFrmwkTreeModel) TFGenerateReport(cbit.vcell.client.task.TFGenerateReport) TestCaseNewBioModel(cbit.vcell.numericstest.TestCaseNewBioModel) TFAddTestSuite(cbit.vcell.client.task.TFAddTestSuite) Hashtable(java.util.Hashtable) LoadTestTreeInfo(cbit.vcell.client.desktop.testingframework.TestingFrmwkTreeModel.LoadTestTreeInfo) JLabel(javax.swing.JLabel) TreeMap(java.util.TreeMap) Date(java.util.Date) UtilCancelException(org.vcell.util.UtilCancelException) UserCancelException(org.vcell.util.UserCancelException) BigDecimal(java.math.BigDecimal) TFUpdateRunningStatus(cbit.vcell.client.task.TFUpdateRunningStatus) LoadTestTreeInfo(cbit.vcell.client.desktop.testingframework.TestingFrmwkTreeModel.LoadTestTreeInfo) TreePath(javax.swing.tree.TreePath) VCDocumentInfo(org.vcell.util.document.VCDocumentInfo) TFUpdateTestCriteria(cbit.vcell.client.task.TFUpdateTestCriteria) TFRunSims(cbit.vcell.client.task.TFRunSims) TFRefresh(cbit.vcell.client.task.TFRefresh) TestCriteriaNew(cbit.vcell.numericstest.TestCriteriaNew) TestCaseNewMathModel(cbit.vcell.numericstest.TestCaseNewMathModel) SimpleDateFormat(java.text.SimpleDateFormat) TestSuiteInfoNew(cbit.vcell.numericstest.TestSuiteInfoNew)

Aggregations

KeyValue (org.vcell.util.document.KeyValue)325 DataAccessException (org.vcell.util.DataAccessException)92 User (org.vcell.util.document.User)68 ResultSet (java.sql.ResultSet)57 Statement (java.sql.Statement)52 ObjectNotFoundException (org.vcell.util.ObjectNotFoundException)44 SQLException (java.sql.SQLException)43 BigString (org.vcell.util.BigString)40 BigDecimal (java.math.BigDecimal)38 VCSimulationIdentifier (cbit.vcell.solver.VCSimulationIdentifier)37 BioModel (cbit.vcell.biomodel.BioModel)36 Simulation (cbit.vcell.solver.Simulation)33 XmlParseException (cbit.vcell.xml.XmlParseException)33 PropertyVetoException (java.beans.PropertyVetoException)33 Vector (java.util.Vector)33 Connection (java.sql.Connection)32 ArrayList (java.util.ArrayList)31 File (java.io.File)29 SimulationContext (cbit.vcell.mapping.SimulationContext)28 VCSimulationDataIdentifier (cbit.vcell.solver.VCSimulationDataIdentifier)24