Search in sources :

Example 1 with ScrollTable

use of org.vcell.util.gui.ScrollTable in project vcell by virtualcell.

the class PDEDataViewer method roiAction.

private void roiAction() {
    BeanUtils.setCursorThroughout(this, Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    try {
        final String[] ROI_COLUMN_NAMES = new String[] { "ROI source", "ROI source name", "ROI Description" };
        final Vector<Object> auxInfoV = new Vector<Object>();
        final DataIdentifier dataIdentifier = getPdeDataContext().getDataIdentifier();
        VariableType variableType = dataIdentifier.getVariableType();
        final boolean isVolume = variableType.equals(VariableType.VOLUME) || variableType.equals(VariableType.VOLUME_REGION);
        DefaultTableModel tableModel = new DefaultTableModel() {

            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };
        for (int i = 0; i < ROI_COLUMN_NAMES.length; i++) {
            tableModel.addColumn(ROI_COLUMN_NAMES[i]);
        }
        // Add Snapshot ROI
        if ((isVolume ? volumeSnapshotROI : membraneSnapshotROI) != null) {
            tableModel.addRow(new Object[] { (isVolume ? "Volume" : "Membrane") + " Variables and Functions", "Snapshot", (isVolume ? volumeSnapshotROIDescription : membraneSnapshotROIDescription) + ", (values = 1.0)" });
            auxInfoV.add((isVolume ? volumeSnapshotROI : membraneSnapshotROI));
        }
        // Add user ROIs
        SpatialSelection[] userROIArr = getPDEDataContextPanel1().fetchSpatialSelections(true, false);
        for (int i = 0; userROIArr != null && i < userROIArr.length; i += 1) {
            String descr = null;
            boolean bPoint = false;
            if (isVolume) {
                if (userROIArr[i] instanceof SpatialSelectionVolume) {
                    Curve curve = ((SpatialSelectionVolume) userROIArr[i]).getCurveSelectionInfo().getCurve();
                    descr = curve.getDescription();
                    if (curve instanceof SinglePoint) {
                        bPoint = true;
                    }
                }
            } else {
                if (userROIArr[i] instanceof SpatialSelectionMembrane) {
                    SampledCurve selectionSource = ((SpatialSelectionMembrane) userROIArr[i]).getSelectionSource();
                    descr = selectionSource.getDescription();
                    if (selectionSource instanceof SinglePoint) {
                        bPoint = true;
                    }
                }
            }
            // Add Area User ROI
            BitSet fillBitSet = null;
            if (userROIArr[i] instanceof SpatialSelectionVolume) {
                fillBitSet = getFillROI((SpatialSelectionVolume) userROIArr[i]);
                if (fillBitSet != null) {
                    tableModel.addRow(new Object[] { "User Defined", descr, "Area Enclosed Volume ROI" });
                    auxInfoV.add(fillBitSet);
                }
            }
            // Add Point and Line User ROI
            if (fillBitSet == null) {
                tableModel.addRow(new Object[] { "User Defined", descr, (bPoint ? "Point" : "Line") + (isVolume ? " Volume" : " Membrane") + " ROI " });
                auxInfoV.add(userROIArr[i]);
            }
        }
        // Add sorted Geometry ROI
        final CartesianMesh cartesianMesh = getPdeDataContext().getCartesianMesh();
        HashMap<Integer, ?> regionMapSubvolumesHashMap = (isVolume ? cartesianMesh.getVolumeRegionMapSubvolume() : cartesianMesh.getMembraneRegionMapSubvolumesInOut());
        Set<?> regionMapSubvolumesEntrySet = regionMapSubvolumesHashMap.entrySet();
        Iterator<?> regionMapSubvolumesEntryIter = regionMapSubvolumesEntrySet.iterator();
        TreeSet<Object[]> sortedGeomROITreeSet = new TreeSet<Object[]>(new Comparator<Object[]>() {

            public int compare(Object[] o1, Object[] o2) {
                int result = ((String) ((Object[]) o1[0])[1]).compareToIgnoreCase((String) ((Object[]) o2[0])[1]);
                if (result == 0) {
                    result = (((Entry<Integer, ?>) o1[1]).getKey()).compareTo(((Entry<Integer, ?>) o2[1]).getKey());
                }
                return result;
            }
        });
        while (regionMapSubvolumesEntryIter.hasNext()) {
            Entry<Integer, ?> regionMapSubvolumesEntry = (Entry<Integer, ?>) regionMapSubvolumesEntryIter.next();
            sortedGeomROITreeSet.add(new Object[] { new Object[] { "Geometry", (isVolume ? getSimulationModelInfo().getVolumeNamePhysiology(((Integer) regionMapSubvolumesEntry.getValue())) : getSimulationModelInfo().getMembraneName(((int[]) regionMapSubvolumesEntry.getValue())[0], ((int[]) regionMapSubvolumesEntry.getValue())[1], false)), (isVolume ? "(svID=" + regionMapSubvolumesEntry.getValue() + " " : "(") + "vrID=" + regionMapSubvolumesEntry.getKey() + ") Predefined " + (isVolume ? "volume" : "membrane") + " region" }, regionMapSubvolumesEntry });
        }
        Iterator<Object[]> sortedGeomROIIter = sortedGeomROITreeSet.iterator();
        while (sortedGeomROIIter.hasNext()) {
            Object[] sortedGeomROIObjArr = (Object[]) sortedGeomROIIter.next();
            tableModel.addRow((Object[]) sortedGeomROIObjArr[0]);
            auxInfoV.add(sortedGeomROIObjArr[1]);
        }
        final ScrollTable roiTable = new ScrollTable();
        roiTable.setModel(tableModel);
        roiTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        roiTable.setPreferredScrollableViewportSize(new Dimension(500, 200));
        final JPanel mainJPanel = new JPanel();
        BoxLayout mainBL = new BoxLayout(mainJPanel, BoxLayout.Y_AXIS);
        mainJPanel.setLayout(mainBL);
        MiniTimePanel timeJPanel = new MiniTimePanel();
        ActionListener okAction = new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                if (((Double) timeJPanel.jcb_time_begin.getSelectedItem()).compareTo((Double) timeJPanel.jcb_time_end.getSelectedItem()) > 0) {
                    PopupGenerator.showErrorDialog(PDEDataViewer.this, "Selected 'Begin Time' must be less than or equal to 'End Time'");
                    return;
                }
                int[] selectedRows = roiTable.getSelectedRows();
                if (selectedRows != null) {
                    try {
                        BitSet dataBitSet = new BitSet(getPdeDataContext().getDataValues().length);
                        for (int i = 0; i < selectedRows.length; i++) {
                            Object auxInfo = auxInfoV.elementAt(selectedRows[i]);
                            if (auxInfo instanceof BitSet) {
                                dataBitSet.or((BitSet) auxInfo);
                            } else if (auxInfo instanceof SpatialSelectionMembrane) {
                                int[] roiIndexes = ((SpatialSelectionMembrane) auxInfo).getIndexSamples().getSampledIndexes();
                                for (int j = 0; j < roiIndexes.length; j += 1) {
                                    dataBitSet.set(roiIndexes[j], true);
                                }
                            } else if (auxInfo instanceof SpatialSelectionVolume) {
                                int[] roiIndexes = ((SpatialSelectionVolume) auxInfo).getIndexSamples(0, 1).getSampledIndexes();
                                for (int j = 0; j < roiIndexes.length; j += 1) {
                                    dataBitSet.set(roiIndexes[j], true);
                                }
                            } else if (auxInfo instanceof Entry) {
                                Entry<Integer, Integer> entry = (Entry<Integer, Integer>) auxInfo;
                                if (isVolume) {
                                    int volumeRegionID = entry.getKey();
                                    dataBitSet.or(cartesianMesh.getVolumeROIFromVolumeRegionID(volumeRegionID));
                                } else {
                                    int membraneRegionID = entry.getKey();
                                    dataBitSet.or(cartesianMesh.getMembraneROIFromMembraneRegionID(membraneRegionID));
                                }
                            } else if (auxInfo instanceof BitSet) {
                                dataBitSet.or((BitSet) auxInfo);
                            } else {
                                throw new Exception("ROI table, Unknown data type: " + auxInfo.getClass().getName());
                            }
                        }
                        TimeSeriesJobSpec timeSeriesJobSpec = new TimeSeriesJobSpec(new String[] { dataIdentifier.getName() }, new BitSet[] { dataBitSet }, ((Double) timeJPanel.jcb_time_begin.getSelectedItem()).doubleValue(), 1, ((Double) timeJPanel.jcb_time_end.getSelectedItem()).doubleValue(), true, false, VCDataJobID.createVCDataJobID(getDataViewerManager().getUser(), true));
                        Hashtable<String, Object> hash = new Hashtable<String, Object>();
                        hash.put(StringKey_timeSeriesJobSpec, timeSeriesJobSpec);
                        AsynchClientTask task1 = new TimeSeriesDataRetrievalTask("Retrieve data for '" + dataIdentifier + "'", PDEDataViewer.this, getPdeDataContext());
                        AsynchClientTask task2 = new AsynchClientTask("Showing stat for '" + dataIdentifier + "'", AsynchClientTask.TASKTYPE_SWING_BLOCKING) {

                            @Override
                            public void run(Hashtable<String, Object> hashTable) throws Exception {
                                TSJobResultsSpaceStats tsJobResultsSpaceStats = (TSJobResultsSpaceStats) hashTable.get(StringKey_timeSeriesJobResults);
                                plotSpaceStats(tsJobResultsSpaceStats);
                            }
                        };
                        ClientTaskDispatcher.dispatch(PDEDataViewer.this, hash, new AsynchClientTask[] { task1, task2 }, true, true, null);
                    } catch (Exception e1) {
                        e1.printStackTrace();
                        PopupGenerator.showErrorDialog(PDEDataViewer.this, "ROI Error.\n" + e1.getMessage(), e1);
                    }
                }
                BeanUtils.disposeParentWindow(mainJPanel);
            }
        };
        ActionListener cancelAction = new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                BeanUtils.disposeParentWindow(mainJPanel);
            }
        };
        OkCancelSubPanel okCancelJPanel = new OkCancelSubPanel(okAction, cancelAction);
        roiTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

            public void valueChanged(ListSelectionEvent e) {
                if (roiTable.getSelectedRows() != null && roiTable.getSelectedRows().length > 0) {
                    okCancelJPanel.okButton.setEnabled(true);
                } else {
                    okCancelJPanel.okButton.setEnabled(false);
                }
            }
        });
        mainJPanel.add(timeJPanel);
        mainJPanel.add(roiTable.getEnclosingScrollPane());
        mainJPanel.add(okCancelJPanel);
        // showComponentInFrame(mainJPanel,
        // "Calculate "+(isVolume?"volume":"membrane")+" statistics for '"+getPdeDataContext().getVariableName()+"'."+
        // "  Choose times and 1 or more ROI(s).");
        Frame dialogOwner = JOptionPane.getFrameForComponent(this);
        JOptionPane inputDialog = new JOptionPane(mainJPanel, JOptionPane.PLAIN_MESSAGE, 0, null, new Object[0]);
        final JDialog d = inputDialog.createDialog(dialogOwner, "Calculate " + (isVolume ? "volume" : "membrane") + " statistics for '" + getPdeDataContext().getVariableName() + "'." + "  Choose times and 1 or more ROI(s).");
        d.setResizable(true);
        try {
            DialogUtils.showModalJDialogOnTop(d, PDEDataViewer.this);
        } finally {
            d.dispose();
        }
    } finally {
        BeanUtils.setCursorThroughout(this, Cursor.getDefaultCursor());
    }
}
Also used : JPanel(javax.swing.JPanel) VCSimulationDataIdentifier(cbit.vcell.solver.VCSimulationDataIdentifier) LocalVCSimulationDataIdentifier(cbit.vcell.client.ClientSimManager.LocalVCSimulationDataIdentifier) ExternalDataIdentifier(org.vcell.util.document.ExternalDataIdentifier) VCDataIdentifier(org.vcell.util.document.VCDataIdentifier) DataIdentifier(cbit.vcell.simdata.DataIdentifier) ScrollTable(org.vcell.util.gui.ScrollTable) TimeSeriesJobSpec(org.vcell.util.document.TimeSeriesJobSpec) ActionEvent(java.awt.event.ActionEvent) TreeSet(java.util.TreeSet) Vector(java.util.Vector) SampledCurve(cbit.vcell.geometry.SampledCurve) Curve(cbit.vcell.geometry.Curve) BitSet(java.util.BitSet) TSJobResultsSpaceStats(org.vcell.util.document.TSJobResultsSpaceStats) JOptionPane(javax.swing.JOptionPane) ListSelectionListener(javax.swing.event.ListSelectionListener) CartesianMesh(cbit.vcell.solvers.CartesianMesh) ActionListener(java.awt.event.ActionListener) SpatialSelectionVolume(cbit.vcell.simdata.SpatialSelectionVolume) JDialog(javax.swing.JDialog) AsynchClientTask(cbit.vcell.client.task.AsynchClientTask) Frame(java.awt.Frame) SpatialSelectionMembrane(cbit.vcell.simdata.SpatialSelectionMembrane) DefaultTableModel(javax.swing.table.DefaultTableModel) BoxLayout(javax.swing.BoxLayout) ListSelectionEvent(javax.swing.event.ListSelectionEvent) SymbolTableEntry(cbit.vcell.parser.SymbolTableEntry) Entry(java.util.Map.Entry) UserDataEntry(cbit.vcell.export.gloworm.atoms.UserDataEntry) SinglePoint(cbit.vcell.geometry.SinglePoint) SpatialSelection(cbit.vcell.simdata.SpatialSelection) SampledCurve(cbit.vcell.geometry.SampledCurve) VariableType(cbit.vcell.math.VariableType) Hashtable(java.util.Hashtable) Dimension(java.awt.Dimension) Point(java.awt.Point) SinglePoint(cbit.vcell.geometry.SinglePoint) DataAccessException(org.vcell.util.DataAccessException) PropertyVetoException(java.beans.PropertyVetoException) ImageException(cbit.image.ImageException) UserCancelException(org.vcell.util.UserCancelException)

Example 2 with ScrollTable

use of org.vcell.util.gui.ScrollTable in project vcell by virtualcell.

the class ParameterEstimationRunTaskPanel method getSolverPanel.

/**
 * Return the JPanel10 property value.
 * @return javax.swing.JPanel
 */
private JPanel getSolverPanel() {
    if (solverPanel == null) {
        try {
            solverPanel = new javax.swing.JPanel();
            solverPanel.setBorder(new TitledBorder(GuiConstants.TAB_PANEL_BORDER, "Supported COPASI Methods", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION, VCellLookAndFeel.defaultFont.deriveFont(Font.BOLD)));
            solverPanel.setLayout(new java.awt.GridBagLayout());
            optimizationMethodParameterTable = new ScrollTable();
            optimizationMethodParameterTableModel = new OptimizationMethodParameterTableModel(optimizationMethodParameterTable);
            optimizationMethodParameterTable.setModel(optimizationMethodParameterTableModel);
            computeProfileDistributionsCheckBox = new JCheckBox("Compute Profile Distributions");
            // TODO: need to implement it later
            computeProfileDistributionsCheckBox.setVisible(false);
            helpButton = new JButton("Copasi Methods Help");
            java.awt.GridBagConstraints gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.weightx = 1.0;
            gbc.gridwidth = 2;
            gbc.insets = new java.awt.Insets(4, 4, 4, 0);
            gbc.anchor = GridBagConstraints.LINE_START;
            solverPanel.add(computeProfileDistributionsCheckBox, gbc);
            gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 1;
            gbc.fill = java.awt.GridBagConstraints.HORIZONTAL;
            gbc.weightx = 1.0;
            gbc.insets = new java.awt.Insets(4, 4, 4, 4);
            gbc.gridwidth = 2;
            solverPanel.add(getOptimizationMethodComboBox(), gbc);
            gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 2;
            gbc.fill = java.awt.GridBagConstraints.BOTH;
            gbc.weightx = 1.0;
            gbc.weighty = 1.0;
            gbc.insets = new java.awt.Insets(4, 4, 4, 4);
            gbc.gridwidth = 2;
            solverPanel.add(new JScrollPane(optimizationMethodParameterTable), gbc);
            gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 3;
            gbc.fill = java.awt.GridBagConstraints.HORIZONTAL;
            gbc.weightx = 1.0;
            gbc.insets = new java.awt.Insets(4, 4, 4, 0);
            gbc.anchor = GridBagConstraints.LINE_END;
            solverPanel.add(numberOfRunLabel, gbc);
            gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 1;
            gbc.gridy = 3;
            gbc.fill = java.awt.GridBagConstraints.HORIZONTAL;
            gbc.weightx = 1.0;
            gbc.insets = new java.awt.Insets(4, 0, 4, 4);
            solverPanel.add(getNumberOfRunComboBox(), gbc);
            gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 4;
            gbc.insets = new java.awt.Insets(4, 0, 4, 0);
            gbc.weightx = 1.0;
            // gbc.anchor = GridBagConstraints.LINE_END;
            solverPanel.add(getSolveButton(), gbc);
            gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 1;
            gbc.gridy = 4;
            gbc.insets = new java.awt.Insets(4, 0, 4, 0);
            gbc.weightx = 1.0;
            gbc.anchor = GridBagConstraints.LINE_START;
            solverPanel.add(helpButton, gbc);
        } catch (java.lang.Throwable ivjExc) {
            handleException(ivjExc);
        }
    }
    return solverPanel;
}
Also used : JScrollPane(javax.swing.JScrollPane) GridBagConstraints(java.awt.GridBagConstraints) Insets(java.awt.Insets) ScrollTable(org.vcell.util.gui.ScrollTable) JButton(javax.swing.JButton) TitledBorder(javax.swing.border.TitledBorder) GridBagConstraints(java.awt.GridBagConstraints) JCheckBox(javax.swing.JCheckBox) GridBagLayout(java.awt.GridBagLayout) JPanel(javax.swing.JPanel)

Example 3 with ScrollTable

use of org.vcell.util.gui.ScrollTable in project vcell by virtualcell.

the class ParameterEstimationRunTaskPanel method getSolutionPanel.

/**
 * Return the JPanel7 property value.
 * @return javax.swing.JPanel
 */
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private JPanel getSolutionPanel() {
    if (solutionPanel == null) {
        try {
            solutionPanel = new javax.swing.JPanel();
            solutionPanel.setBorder(new TitledBorder(GuiConstants.TAB_PANEL_BORDER, "Solution", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION, VCellLookAndFeel.defaultFont.deriveFont(Font.BOLD)));
            solutionPanel.setLayout(new java.awt.GridBagLayout());
            optimizationSolutionParameterTable = new ScrollTable();
            optimizationSolutionParameterTableModel = new OptimizationSolutionParameterTableModel(optimizationSolutionParameterTable);
            optimizationSolutionParameterTable.setModel(optimizationSolutionParameterTableModel);
            JPanel solutionParametersPanel = new JPanel(new BorderLayout());
            solutionParametersPanel.add(optimizationSolutionParameterTable.getEnclosingScrollPane(), BorderLayout.CENTER);
            optimizationTaskSummaryTable = new ScrollTable();
            // optimizationTaskSummaryTable.setTableHeader(null);
            optimizationTaskSummaryTableModel = new OptimizationTaskSummaryTableModel(optimizationTaskSummaryTable);
            optimizationTaskSummaryTable.setModel(optimizationTaskSummaryTableModel);
            JPanel taskSummaryPanel = new JPanel(new BorderLayout());
            taskSummaryPanel.add(optimizationTaskSummaryTable.getEnclosingScrollPane(), BorderLayout.CENTER);
            JTabbedPane tabbedPane = new JTabbedPane();
            solutionParametersPanel.setBorder(GuiConstants.TAB_PANEL_BORDER);
            taskSummaryPanel.setBorder(GuiConstants.TAB_PANEL_BORDER);
            tabbedPane.addTab("Parameters", solutionParametersPanel);
            tabbedPane.addTab("Task Summary", taskSummaryPanel);
            int gridy = 0;
            GridBagConstraints gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = gridy;
            gbc.gridwidth = 4;
            gbc.fill = java.awt.GridBagConstraints.BOTH;
            gbc.weightx = 1.0;
            gbc.weighty = 1.0;
            gbc.insets = new java.awt.Insets(4, 4, 4, 4);
            solutionPanel.add(tabbedPane, gbc);
            JPanel panel = new javax.swing.JPanel();
            panel.setLayout(new java.awt.FlowLayout());
            panel.add(getPlotButton());
            panel.add(getSaveSolutionAsNewSimButton());
            // panel.add(getEvaluateConfidenceIntervalButton()); //TODO: put it back after implemented the confidence interval evaluations
            gridy++;
            gbc = new java.awt.GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = gridy;
            gbc.gridwidth = 4;
            gbc.fill = java.awt.GridBagConstraints.BOTH;
            gbc.weightx = 1.0;
            gbc.insets = new java.awt.Insets(4, 4, 4, 4);
            solutionPanel.add(panel, gbc);
        } catch (java.lang.Throwable ivjExc) {
            handleException(ivjExc);
        }
    }
    return solutionPanel;
}
Also used : JPanel(javax.swing.JPanel) GridBagConstraints(java.awt.GridBagConstraints) Insets(java.awt.Insets) ScrollTable(org.vcell.util.gui.ScrollTable) JTabbedPane(javax.swing.JTabbedPane) TitledBorder(javax.swing.border.TitledBorder) GridBagConstraints(java.awt.GridBagConstraints) BorderLayout(java.awt.BorderLayout) GridBagLayout(java.awt.GridBagLayout) JPanel(javax.swing.JPanel)

Example 4 with ScrollTable

use of org.vcell.util.gui.ScrollTable in project vcell by virtualcell.

the class ParameterMappingPanel method addParameter.

public void addParameter() {
    JPanel panel = new JPanel(new BorderLayout());
    ArrayList<ParameterMappingSpec> dataList = new ArrayList<ParameterMappingSpec>();
    if (getParameterEstimationTask() != null) {
        for (ParameterMappingSpec pms : getParameterEstimationTask().getModelOptimizationSpec().getParameterMappingSpecs()) {
            if (!pms.isSelected()) {
                dataList.add(pms);
            }
        }
    }
    ScrollTable table = new ScrollTable();
    SelectParameterTableModel model = new SelectParameterTableModel(table, getParameterEstimationTask());
    table.setModel(model);
    model.refreshData();
    panel.add(new JScrollPane(table), BorderLayout.CENTER);
    panel.setPreferredSize(new Dimension(400, 300));
    int returnCode = DialogUtils.showComponentOKCancelDialog(this, panel, "Select Parameters");
    if (returnCode == JOptionPane.OK_OPTION) {
        for (int row : table.getSelectedRows()) {
            ParameterMappingSpec pms = model.getValueAt(row);
            pms.setSelected(true);
        }
    }
}
Also used : JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) ScrollTable(org.vcell.util.gui.ScrollTable) BorderLayout(java.awt.BorderLayout) ParameterMappingSpec(cbit.vcell.modelopt.ParameterMappingSpec) ArrayList(java.util.ArrayList) Dimension(java.awt.Dimension)

Example 5 with ScrollTable

use of org.vcell.util.gui.ScrollTable in project vcell by virtualcell.

the class ReactionRuleKineticsPropertiesPanel method getScrollPaneTable.

private ScrollTable getScrollPaneTable() {
    if (table == null) {
        try {
            table = new ScrollTable();
            table.setModel(getReactionRulePropertiesTableModel());
            table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        } catch (java.lang.Throwable ivjExc) {
            handleException(ivjExc);
        }
    }
    return table;
}
Also used : ScrollTable(org.vcell.util.gui.ScrollTable)

Aggregations

ScrollTable (org.vcell.util.gui.ScrollTable)18 JPanel (javax.swing.JPanel)4 BorderLayout (java.awt.BorderLayout)3 Dimension (java.awt.Dimension)3 JScrollPane (javax.swing.JScrollPane)3 GridBagConstraints (java.awt.GridBagConstraints)2 GridBagLayout (java.awt.GridBagLayout)2 Insets (java.awt.Insets)2 Point (java.awt.Point)2 MouseEvent (java.awt.event.MouseEvent)2 TitledBorder (javax.swing.border.TitledBorder)2 ImageException (cbit.image.ImageException)1 LocalVCSimulationDataIdentifier (cbit.vcell.client.ClientSimManager.LocalVCSimulationDataIdentifier)1 ActiveView (cbit.vcell.client.desktop.biomodel.SelectionManager.ActiveView)1 AsynchClientTask (cbit.vcell.client.task.AsynchClientTask)1 UserDataEntry (cbit.vcell.export.gloworm.atoms.UserDataEntry)1 Curve (cbit.vcell.geometry.Curve)1 SampledCurve (cbit.vcell.geometry.SampledCurve)1 SinglePoint (cbit.vcell.geometry.SinglePoint)1 VariableType (cbit.vcell.math.VariableType)1