Search in sources :

Example 71 with MathModelInfo

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

the class MathModelDbTreeModel method createBaseTree.

/**
 * Insert the method's description here.
 * Creation date: (11/28/00 1:06:51 PM)
 * @return cbit.vcell.desktop.BioModelNode
 * @param docManager cbit.vcell.clientdb.DocumentManager
 */
protected void createBaseTree() throws DataAccessException {
    rootNode.removeAllChildren();
    rootNode.add(myModelsNode);
    rootNode.add(sharedModelsNode);
    // rootNode.add(tutorialModelsNode);
    // rootNode.add(educationModelsNode);
    rootNode.add(allPublicModelsNode);
    allPublicModelsNode.add(publishedModelsNode);
    allPublicModelsNode.add(curatedModelsNode);
    allPublicModelsNode.add(otherModelsNode);
    rootNode.setUserObject("Math Models");
    sharedModelsNode.setUserObject(SHARED_MATH_MODELS);
    MathModelInfo[] mathModelInfos = getDocumentManager().getMathModelInfos();
    User loginUser = getDocumentManager().getUser();
    TreeMap<String, BioModelNode> treeMap = null;
    try {
        treeMap = VCDocumentDbTreeModel.initOwners(mathModelInfos, loginUser, this, this.getClass().getMethod("createOwnerSubTree", new Class[] { User.class, MathModelInfo[].class }));
    } catch (Exception e) {
        e.printStackTrace();
        treeMap = new TreeMap<String, BioModelNode>();
        treeMap.put(loginUser.getName(), new BioModelNode("Error:" + e.getMessage()));
    }
    initFinalTree(this, treeMap, loginUser);
}
Also used : User(org.vcell.util.document.User) MathModelInfo(org.vcell.util.document.MathModelInfo) TreeMap(java.util.TreeMap) DataAccessException(org.vcell.util.DataAccessException)

Example 72 with MathModelInfo

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

the class MathModelDbTreeModel method createBaseTree2.

protected void createBaseTree2() throws DataAccessException {
    VCDocumentDbTreeModel.initBaseTree(rootNode, new BioModelNode[] { myModelsNode, sharedModelsNode, otherModelsNode, /*educationModelsNode,*/
    publishedModelsNode }, "Math Models", sharedModelsNode, SHARED_MATH_MODELS);
    MathModelInfo[] mathModelInfos = getDocumentManager().getMathModelInfos();
    User loginUser = getDocumentManager().getUser();
    TreeMap<String, BioModelNode> treeMap = null;
    try {
        treeMap = VCDocumentDbTreeModel.initOwners(mathModelInfos, loginUser, this, this.getClass().getMethod("createOwnerSubTree", new Class[] { User.class, MathModelInfo[].class }));
    } catch (Exception e) {
        e.printStackTrace();
        treeMap = new TreeMap<String, BioModelNode>();
        treeMap.put(loginUser.getName(), new BioModelNode("Error:" + e.getMessage()));
    }
    initFinalTree(this, treeMap, loginUser);
}
Also used : User(org.vcell.util.document.User) MathModelInfo(org.vcell.util.document.MathModelInfo) TreeMap(java.util.TreeMap) DataAccessException(org.vcell.util.DataAccessException)

Example 73 with MathModelInfo

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

the class PublicationInfoNodeTreeModel method createVersionSubTree.

private BioModelNode createVersionSubTree(BioModelNode publicationsInfoNode) throws DataAccessException {
    BioModelNode versionNode = new BioModelNode("Root", true);
    Object uo = publicationsInfoNode.getUserObject();
    if (!(uo instanceof PublicationInfo)) {
        String title = "PublicationInfo missing";
        publicationNode = new BioModelNode(title, false);
        versionNode.add(publicationNode);
        return versionNode;
    }
    publicationNode = null;
    modelsNode = null;
    PublicationInfo pi = (PublicationInfo) uo;
    publicationNode = new BioModelNode("Publication", true);
    publicationNode.setRenderHint("type", "PublicationsInfo");
    BioModelNode piTitleNode = new BioModelNode(pi, true);
    piTitleNode.setRenderHint("type", "PublicationInfoTitle");
    publicationNode.add(piTitleNode);
    BioModelNode piAuthorsNode = new BioModelNode(pi, false);
    piAuthorsNode.setRenderHint("type", "PublicationInfoAuthors");
    piTitleNode.add(piAuthorsNode);
    BioModelNode piCitationNode = new BioModelNode(pi, false);
    piCitationNode.setRenderHint("type", "PublicationInfoCitation");
    piTitleNode.add(piCitationNode);
    BioModelNode piDoiNode = new BioModelNode(pi, false);
    piDoiNode.setRenderHint("type", "PublicationInfoDoi");
    piTitleNode.add(piDoiNode);
    if (pi.getUrl() != null && !pi.getUrl().isEmpty()) {
        if (pi.getUrl().contains("pubmed") || pi.getUrl().contains("PubMed")) {
            BioModelNode piUrlNode = new BioModelNode(pi, false);
            piUrlNode.setRenderHint("type", "PublicationInfoUrl");
            piTitleNode.add(piUrlNode);
        }
    }
    versionNode.add(publicationNode);
    String name = publicationsInfoNode.getChildCount() > 1 ? "Models" : "Model";
    modelsNode = new BioModelNode(name, true);
    modelsNode.setRenderHint("type", "ModelsList");
    for (int i = 0; i < publicationsInfoNode.getChildCount(); i++) {
        TreeNode child = publicationsInfoNode.getChildAt(i);
        if (!(child instanceof BioModelNode)) {
            versionNode.add(modelsNode);
            return versionNode;
        }
        BioModelNode modelNode = (BioModelNode) child;
        uo = modelNode.getUserObject();
        if (!(uo instanceof VCDocumentInfoNode)) {
            versionNode.add(modelsNode);
            return versionNode;
        }
        VCDocumentInfoNode din = (VCDocumentInfoNode) uo;
        Version version = din.getVCDocumentInfo().getVersion();
        BioModelNode mNameNode = new BioModelNode(version.getName(), true);
        mNameNode.setRenderHint("type", "ModelName");
        VCDocumentInfo di = din.getVCDocumentInfo();
        if (di instanceof BioModelInfo) {
            mNameNode.setRenderHint("category", "BioModel");
        } else if (di instanceof MathModelInfo) {
            mNameNode.setRenderHint("category", "MathModel");
        } else if (di instanceof GeometryInfo) {
            mNameNode.setRenderHint("category", "Geometry");
        }
        modelsNode.add(mNameNode);
        BioModelNode mOwnerNode = new BioModelNode(version.getOwner(), true);
        mOwnerNode.setRenderHint("type", "ModelOwner");
        mNameNode.add(mOwnerNode);
        BioModelNode mDateNode = new BioModelNode(version.getDate(), true);
        mDateNode.setRenderHint("type", "ModelDate");
        mNameNode.add(mDateNode);
    }
    versionNode.add(modelsNode);
    return versionNode;
}
Also used : Version(org.vcell.util.document.Version) VCDocumentInfo(org.vcell.util.document.VCDocumentInfo) PublicationInfo(org.vcell.util.document.PublicationInfo) TreeNode(javax.swing.tree.TreeNode) BioModelInfo(org.vcell.util.document.BioModelInfo) GeometryInfo(cbit.vcell.geometry.GeometryInfo) VCDocumentInfoNode(cbit.vcell.desktop.VCellBasicCellRenderer.VCDocumentInfoNode) MathModelInfo(org.vcell.util.document.MathModelInfo)

Example 74 with MathModelInfo

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

the class VCellBasicCellRenderer method getTreeCellRendererComponent.

/**
 * Insert the method's description here.
 * Creation date: (7/27/2000 6:41:57 PM)
 * @return java.awt.Component
 */
public java.awt.Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
    JLabel component = (JLabel) super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
    // 
    if (!leaf && expanded) {
        setIcon(fieldFolderOpenIcon);
    } else if (!leaf && !expanded) {
        setIcon(fieldFolderClosedIcon);
    }
    try {
        if (value instanceof BioModelNode) {
            BioModelNode node = (BioModelNode) value;
            boolean bLoaded = false;
            // 
            // Check if node is a SolverResultSetInfo
            // 
            Object userObject = node.getUserObject();
            if (userObject instanceof SimulationInfo) {
                // 
                // Check if node is a SimulationInfo
                // 
                setComponentProperties(component, (SimulationInfo) userObject);
                int maxErrorLevel = getMaxErrorLevel(node);
                if (maxErrorLevel == BioModelNode.ERROR_POSSIBLE) {
                    setIcon(fieldSimulationWarningIcon);
                    component.setToolTipText("Simulation contains possibly invalid results");
                } else if (maxErrorLevel == BioModelNode.ERROR_CONFIRMED) {
                    setIcon(fieldSimulationErrorIcon);
                    component.setToolTipText("Simulation contains invalid results");
                }
            } else if (userObject instanceof String && node.getChildCount() == 0) {
                component.setToolTipText(null);
                component.setText((String) userObject);
            } else if (userObject instanceof BioModelInfo) {
                // 
                // Check if node is a BioModelInfo
                // 
                setComponentProperties(component, (BioModelInfo) userObject);
                bLoaded = isLoaded((BioModelInfo) userObject);
                int maxErrorLevel = getMaxErrorLevel(node);
                if (maxErrorLevel == BioModelNode.ERROR_POSSIBLE) {
                    setIcon(fieldBioModelWarningIcon);
                    component.setToolTipText("BioModel version: Has possibly invalid simulation results");
                } else if (maxErrorLevel == BioModelNode.ERROR_CONFIRMED) {
                    setIcon(fieldBioModelErrorIcon);
                    component.setToolTipText("BioModel version: Has invalid simulation results");
                }
            } else if (userObject instanceof String && node.getChildCount() > 0 && ((BioModelNode) node.getChildAt(0)).getUserObject() instanceof BioModelInfo) {
                // 
                // Check if node is a BioModelName (String), with children (at least one version of biomodel), and if the child is a
                // BioModelInfo node
                // 
                String label = (String) userObject;
                component.setToolTipText("BioModel");
                component.setText(label);
                // 
                // check if child is loaded
                // 
                int maxErrorLevel = BioModelNode.ERROR_NONE;
                for (int i = 0; i < node.getChildCount(); i++) {
                    maxErrorLevel = Math.max(maxErrorLevel, getMaxErrorLevel((BioModelNode) node.getChildAt(i)));
                }
                if (maxErrorLevel == BioModelNode.ERROR_POSSIBLE) {
                    if (!leaf && expanded) {
                        setIcon(fieldFolderOpenWarningIcon);
                    } else if (!leaf && !expanded) {
                        setIcon(fieldFolderClosedWarningIcon);
                    }
                    component.setToolTipText("BioModel: one or more versions may have invalid simulation results");
                } else if (maxErrorLevel == BioModelNode.ERROR_CONFIRMED) {
                    if (!leaf && expanded) {
                        setIcon(fieldFolderOpenErrorIcon);
                    } else if (!leaf && !expanded) {
                        setIcon(fieldFolderClosedErrorIcon);
                    }
                    component.setToolTipText("BioModel: one or more versions have invalid simulation results");
                }
                // 
                for (int i = 0; i < node.getChildCount(); i++) {
                    BioModelInfo bioModelInfo = (BioModelInfo) ((BioModelNode) node.getChildAt(i)).getUserObject();
                    if (isLoaded(bioModelInfo)) {
                        bLoaded = true;
                    }
                }
            } else if (userObject instanceof User && node.getChildCount() > 0 && (((BioModelNode) node.getChildAt(0)).getUserObject() instanceof String) && ((BioModelNode) (node.getChildAt(0).getChildAt(0))).getUserObject() instanceof BioModelInfo) {
                // 
                // Check if node is a User, with at least one child which is a string (BioModel name)
                // and if the child's child is a BioModelInfo node
                // 
                String label = ((User) userObject).getName();
                component.setToolTipText("User Name");
                component.setText(label);
                if (isLoaded((User) userObject)) {
                    bLoaded = true;
                }
            } else if (userObject instanceof MathModelInfo) {
                // 
                // Check if node is a MathModelInfo node
                // 
                setComponentProperties(component, (MathModelInfo) userObject);
                bLoaded = isLoaded((MathModelInfo) userObject);
            } else if (userObject instanceof String && node.getChildCount() > 0 && ((BioModelNode) node.getChildAt(0)).getUserObject() instanceof MathModelInfo) {
                // 
                // Check if node is a MathModel name (String), with children (at least one version of mathmodel), and
                // if the child is a MathModelInfo node
                // 
                String label = (String) userObject;
                component.setToolTipText("Mathematical Model");
                component.setText(label);
                // 
                for (int i = 0; i < node.getChildCount(); i++) {
                    MathModelInfo mathModelInfo = (MathModelInfo) ((BioModelNode) node.getChildAt(i)).getUserObject();
                    if (isLoaded(mathModelInfo)) {
                        bLoaded = true;
                    }
                }
            } else if (userObject instanceof User && node.getChildCount() > 0 && (((BioModelNode) node.getChildAt(0)).getUserObject() instanceof String) && ((BioModelNode) (node.getChildAt(0).getChildAt(0))).getUserObject() instanceof MathModelInfo) {
                // 
                // Check if node is a User, with at least one child which is a string (Mathmodel name)
                // and if the child's child is a MathModelInfo node
                // 
                String label = ((User) userObject).getName();
                component.setToolTipText("User Name");
                component.setText(label);
                if (isLoaded((User) userObject)) {
                    bLoaded = true;
                }
            } else if (userObject instanceof cbit.vcell.geometry.GeometryInfo) {
                // 
                // Check if node is a GeometryInfo
                // 
                setComponentProperties(component, (GeometryInfo) userObject);
                bLoaded = isLoaded((GeometryInfo) userObject);
            } else if (userObject instanceof String && node.getChildCount() > 0 && ((BioModelNode) node.getChildAt(0)).getUserObject() instanceof GeometryInfo) {
                // 
                // Check if node is a Geometry name (String), with children (at least one version of Geometry), and
                // if the child is a GeometryInfo node
                // 
                String label = (String) userObject;
                component.setToolTipText("Geometry");
                component.setText(label);
                // 
                for (int i = 0; i < node.getChildCount(); i++) {
                    GeometryInfo geometryInfo = (GeometryInfo) ((BioModelNode) node.getChildAt(i)).getUserObject();
                    if (isLoaded(geometryInfo)) {
                        bLoaded = true;
                    }
                }
            } else if (userObject instanceof User && node.getChildCount() > 0 && (((BioModelNode) node.getChildAt(0)).getUserObject() instanceof String) && ((BioModelNode) (node.getChildAt(0).getChildAt(0))).getUserObject() instanceof GeometryInfo) {
                // 
                // Check if node is a User, with at least one child which is a string (Geometry name)
                // and if the child's child is a GeometryInfo node
                // 
                String label = ((User) userObject).getName();
                component.setToolTipText("User Name");
                component.setText(label);
                if (isLoaded((User) userObject)) {
                    bLoaded = true;
                }
            } else if (userObject instanceof String && node.getChildCount() > 0) {
                component.setToolTipText(null);
                component.setText((String) userObject);
            // }else if (node.getUserObject() instanceof MathInfo) {
            // setComponentProperties(component,(MathInfo)node.getUserObject());
            } else if (userObject instanceof VCImageInfo) {
                setComponentProperties(component, (VCImageInfo) userObject);
            } else if (userObject instanceof Extent) {
                setComponentProperties(component, (Extent) userObject);
            } else if (userObject instanceof Annotation) {
                setComponentProperties(component, (Annotation) userObject);
            } else if (userObject instanceof MathModel) {
                setComponentProperties(component, (MathModel) userObject);
            } else if (userObject instanceof BioModel) {
                setComponentProperties(component, (BioModel) userObject);
            } else if (userObject instanceof SimulationContext) {
                setComponentProperties(component, (SimulationContext) userObject);
                bLoaded = isLoaded((SimulationContext) userObject);
            } else if (userObject instanceof Simulation) {
                setComponentProperties(component, (Simulation) userObject);
            } else if (userObject instanceof MathDescription) {
                setComponentProperties(component, (MathDescription) userObject);
            } else if (userObject instanceof Geometry) {
                setComponentProperties(component, (Geometry) userObject);
            } else if (userObject instanceof User) {
                setComponentProperties(component, (User) userObject);
            } else {
                setComponentProperties(component, userObject);
            }
            if (selectedFont == null && component.getFont() != null) {
                selectedFont = component.getFont().deriveFont(Font.BOLD);
            }
            if (unselectedFont == null && component.getFont() != null) {
                unselectedFont = component.getFont().deriveFont(Font.PLAIN);
            }
            if (bLoaded) {
                component.setFont(selectedFont);
            } else {
                component.setFont(unselectedFont);
            }
        }
    } catch (Throwable e) {
        e.printStackTrace(System.out);
    }
    // 
    return component;
}
Also used : MathModel(cbit.vcell.mathmodel.MathModel) User(org.vcell.util.document.User) Extent(org.vcell.util.Extent) MathDescription(cbit.vcell.math.MathDescription) BioModelInfo(org.vcell.util.document.BioModelInfo) JLabel(javax.swing.JLabel) MathModelInfo(org.vcell.util.document.MathModelInfo) SimulationContext(cbit.vcell.mapping.SimulationContext) Geometry(cbit.vcell.geometry.Geometry) Simulation(cbit.vcell.solver.Simulation) BioModel(cbit.vcell.biomodel.BioModel) GeometryInfo(cbit.vcell.geometry.GeometryInfo) VCImageInfo(cbit.image.VCImageInfo) SimulationInfo(cbit.vcell.solver.SimulationInfo)

Aggregations

MathModelInfo (org.vcell.util.document.MathModelInfo)74 BioModelInfo (org.vcell.util.document.BioModelInfo)42 DataAccessException (org.vcell.util.DataAccessException)36 GeometryInfo (cbit.vcell.geometry.GeometryInfo)27 VCDocumentInfo (org.vcell.util.document.VCDocumentInfo)15 MathModel (cbit.vcell.mathmodel.MathModel)13 Vector (java.util.Vector)12 BioModel (cbit.vcell.biomodel.BioModel)10 Hashtable (java.util.Hashtable)10 ObjectNotFoundException (org.vcell.util.ObjectNotFoundException)10 KeyValue (org.vcell.util.document.KeyValue)10 User (org.vcell.util.document.User)10 Simulation (cbit.vcell.solver.Simulation)9 RemoteProxyException (cbit.vcell.message.server.bootstrap.client.RemoteProxyVCellConnectionFactory.RemoteProxyException)8 SQLException (java.sql.SQLException)8 AsynchClientTask (cbit.vcell.client.task.AsynchClientTask)7 VersionInfo (org.vcell.util.document.VersionInfo)7 SimulationContext (cbit.vcell.mapping.SimulationContext)6 SimulationInfo (cbit.vcell.solver.SimulationInfo)6 Version (org.vcell.util.document.Version)6