Search in sources :

Example 1 with LargeShape

use of cbit.vcell.graph.LargeShape in project vcell by virtualcell.

the class MolecularTypePropertiesPanel method showPopupMenu.

private void showPopupMenu(MouseEvent e, PointLocationInShapeContext locationContext) {
    if (popupFromShapeMenu == null) {
        popupFromShapeMenu = new JPopupMenu();
    }
    if (popupFromShapeMenu.isShowing()) {
        return;
    }
    final Object deepestShape = locationContext.getDeepestShape();
    final Object selectedObject;
    if (deepestShape == null) {
        selectedObject = null;
        // when cursor is outside there's nothing to do  ???
        System.out.println("outside");
        return;
    } else if (deepestShape instanceof ComponentStateLargeShape) {
        System.out.println("inside state");
        if (((ComponentStateLargeShape) deepestShape).isHighlighted()) {
            selectedObject = ((ComponentStateLargeShape) deepestShape).getComponentStateDefinition();
        } else {
            // right click only works on highlighted entity, if it's not highlighted we simply return
            return;
        }
    } else if (deepestShape instanceof MolecularComponentLargeShape) {
        System.out.println("inside component");
        if (((MolecularComponentLargeShape) deepestShape).isHighlighted()) {
            selectedObject = ((MolecularComponentLargeShape) deepestShape).getMolecularComponent();
        } else {
            return;
        }
    } else if (deepestShape instanceof MolecularTypeLargeShape) {
        System.out.println("inside molecule");
        if (((MolecularTypeLargeShape) deepestShape).isHighlighted()) {
            selectedObject = ((MolecularTypeLargeShape) deepestShape).getMolecularType();
        } else {
            return;
        }
    } else if (deepestShape instanceof SpeciesPatternLargeShape) {
        // this cannot happen, here just for symmetry
        System.out.println("inside species pattern");
        if (((SpeciesPatternLargeShape) deepestShape).isHighlighted()) {
            selectedObject = ((SpeciesPatternLargeShape) deepestShape).getSpeciesPattern();
        } else {
            return;
        }
    } else {
        selectedObject = null;
        System.out.println("inside something else?");
        return;
    }
    System.out.println(selectedObject);
    boolean bDelete = false;
    boolean bAdd = false;
    popupFromShapeMenu.removeAll();
    Point mousePoint = e.getPoint();
    if (selectedObject instanceof MolecularType) {
        // rename, add
        if (selectedObject != molecularType) {
            throw new RuntimeException("The selected object from shape different from the current object");
        }
        JMenuItem renamMenuItem = new JMenuItem("Rename");
        popupFromShapeMenu.add(renamMenuItem);
        JMenuItem addMenuItem = new JMenuItem("Add " + MolecularComponent.typeName);
        // Icon icon = new MolecularTypeSmallShape(1, 4, mt, gc, mt);
        // menuItem.setIcon(icon);
        popupFromShapeMenu.add(new JSeparator());
        popupFromShapeMenu.add(addMenuItem);
        addMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                MolecularComponent molecularComponent = molecularType.createMolecularComponent();
                molecularType.addMolecularComponent(molecularComponent);
                bioModel.getModel().getRbmModelContainer().adjustSpeciesContextPatterns(molecularType, molecularComponent);
                bioModel.getModel().getRbmModelContainer().adjustObservablesPatterns(molecularType, molecularComponent);
                bioModel.getModel().getRbmModelContainer().adjustRulesPatterns(molecularType, molecularComponent);
            // editInPlace((LargeShape)deepestShape);
            }
        });
        renamMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                editInPlace((LargeShape) deepestShape);
            }
        });
    } else if (selectedObject instanceof MolecularComponent) {
        // move left / right / separator / rename, delete, separator, add
        String moveRightMenuText = "Move <b>" + "right" + "</b>";
        moveRightMenuText = "<html>" + moveRightMenuText + "</html>";
        JMenuItem moveRightMenuItem = new JMenuItem(moveRightMenuText);
        Icon icon = VCellIcons.moveRightIcon;
        moveRightMenuItem.setIcon(icon);
        moveRightMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                MolecularComponent from = (MolecularComponent) selectedObject;
                List<MolecularComponent> mcList = molecularType.getComponentList();
                int fromIndex = mcList.indexOf(from);
                if (mcList.size() == fromIndex + 1) {
                    // already the last element
                    return;
                }
                int toIndex = fromIndex + 1;
                MolecularComponent to = mcList.remove(toIndex);
                mcList.add(fromIndex, to);
                molecularTypeTreeModel.populateTree();
                molecularType.firePropertyChange("entityChange", null, "bbb");
            }
        });
        popupFromShapeMenu.add(moveRightMenuItem);
        String moveLeftMenuText = "Move <b>" + "left" + "</b>";
        moveLeftMenuText = "<html>" + moveLeftMenuText + "</html>";
        JMenuItem moveLeftMenuItem = new JMenuItem(moveLeftMenuText);
        icon = VCellIcons.moveLeftIcon;
        moveLeftMenuItem.setIcon(icon);
        moveLeftMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                MolecularComponent from = (MolecularComponent) selectedObject;
                List<MolecularComponent> mcList = molecularType.getComponentList();
                int fromIndex = mcList.indexOf(from);
                if (fromIndex == 0) {
                    // already the first element
                    return;
                }
                int toIndex = fromIndex - 1;
                MolecularComponent to = mcList.remove(toIndex);
                mcList.add(fromIndex, to);
                molecularTypeTreeModel.populateTree();
                molecularType.firePropertyChange("entityChange", null, "bbb");
            }
        });
        popupFromShapeMenu.add(moveLeftMenuItem);
        popupFromShapeMenu.add(new JSeparator());
        JMenuItem renamMenuItem = new JMenuItem("Rename");
        popupFromShapeMenu.add(renamMenuItem);
        JMenuItem addMenuItem = new JMenuItem("Add " + ComponentStateDefinition.typeName);
        JMenuItem deleteMenuItem = new JMenuItem("Delete ");
        popupFromShapeMenu.add(deleteMenuItem);
        popupFromShapeMenu.add(new JSeparator());
        popupFromShapeMenu.add(addMenuItem);
        deleteMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                MolecularComponent mc = (MolecularComponent) selectedObject;
                // detailed verifications will be done there, to see if they are being used in reactions, species, observables
                if (!mc.getComponentStateDefinitions().isEmpty()) {
                    String[] options = { "OK" };
                    String errMsg = mc.getDisplayType() + " '<b>" + mc.getDisplayName() + "</b>' cannot be deleted because it contains explicit States.";
                    errMsg += "<br>Please delete each individual State first.";
                    errMsg += "<br><br>Detailed usage information will be provided at that time to help you decide.";
                    errMsg = "<html>" + errMsg + "</html>";
                    JOptionPane.showOptionDialog(shapePanel, errMsg, "Delete " + mc.getDisplayType(), JOptionPane.NO_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
                    return;
                }
                // we find and display component usage information to help the user decide
                Map<String, Pair<Displayable, SpeciesPattern>> usedHere = new LinkedHashMap<String, Pair<Displayable, SpeciesPattern>>();
                bioModel.getModel().getRbmModelContainer().findComponentUsage(molecularType, mc, usedHere);
                if (!usedHere.isEmpty()) {
                    String errMsg = mc.dependenciesToHtml(usedHere);
                    errMsg += "<br><br>Delete anyway?";
                    errMsg = "<html>" + errMsg + "</html>";
                    int dialogButton = JOptionPane.YES_NO_OPTION;
                    int returnCode = JOptionPane.showConfirmDialog(shapePanel, errMsg, "Delete " + mc.getDisplayType(), dialogButton);
                    if (returnCode == JOptionPane.YES_OPTION) {
                        // keep this code in sync with MolecularTypeTableModel.setValueAt
                        if (bioModel.getModel().getRbmModelContainer().delete(molecularType, mc) == true) {
                            molecularType.removeMolecularComponent(mc);
                        }
                    }
                } else {
                    if (bioModel.getModel().getRbmModelContainer().delete(molecularType, mc) == true) {
                        molecularType.removeMolecularComponent(mc);
                    }
                }
            }
        });
        addMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                MolecularComponent mc = (MolecularComponent) selectedObject;
                ComponentStateDefinition componentStateDefinition = mc.createComponentStateDefinition();
                mc.addComponentStateDefinition(componentStateDefinition);
                bioModel.getModel().getRbmModelContainer().adjustObservablesPatterns(molecularType, mc, componentStateDefinition);
                bioModel.getModel().getRbmModelContainer().adjustRulesPatterns(molecularType, mc, componentStateDefinition);
                bioModel.getModel().getRbmModelContainer().adjustSpeciesPatterns(molecularType, mc, componentStateDefinition);
            // editInPlace((LargeShape)deepestShape);
            }
        });
        renamMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                editInPlace((LargeShape) deepestShape);
            }
        });
    } else if (selectedObject instanceof ComponentStateDefinition) {
        // rename, delete
        JMenuItem renamMenuItem = new JMenuItem("Rename");
        popupFromShapeMenu.add(renamMenuItem);
        JMenuItem deleteMenuItem = new JMenuItem("Delete");
        popupFromShapeMenu.add(deleteMenuItem);
        deleteMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                ComponentStateDefinition csd = (ComponentStateDefinition) selectedObject;
                // must exist, we're deleting one of its states
                MolecularComponent mc = locationContext.mcs.getMolecularComponent();
                Map<String, Pair<Displayable, SpeciesPattern>> usedHere = new LinkedHashMap<String, Pair<Displayable, SpeciesPattern>>();
                bioModel.getModel().getRbmModelContainer().findStateUsage(molecularType, mc, csd, usedHere);
                if (!usedHere.isEmpty()) {
                    String errMsg = csd.dependenciesToHtml(usedHere);
                    errMsg += "<br><br>Delete anyway?";
                    errMsg = "<html>" + errMsg + "</html>";
                    int dialogButton = JOptionPane.YES_NO_OPTION;
                    int returnCode = JOptionPane.showConfirmDialog(shapePanel, errMsg, "Delete " + ComponentStateDefinition.typeName, dialogButton);
                    if (returnCode == JOptionPane.YES_OPTION) {
                        // keep this code in sync with MolecularTypeTableModel.setValueAt
                        if (bioModel.getModel().getRbmModelContainer().delete(molecularType, mc, csd) == true) {
                            mc.deleteComponentStateDefinition(csd);
                        }
                    }
                } else {
                    if (bioModel.getModel().getRbmModelContainer().delete(molecularType, mc, csd) == true) {
                        mc.deleteComponentStateDefinition(csd);
                    }
                }
            }
        });
        renamMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                editInPlace((LargeShape) deepestShape);
            }
        });
    }
    popupFromShapeMenu.show(e.getComponent(), mousePoint.x, mousePoint.y);
}
Also used : ActionEvent(java.awt.event.ActionEvent) SpeciesPatternLargeShape(cbit.vcell.graph.SpeciesPatternLargeShape) JSeparator(javax.swing.JSeparator) SpeciesPattern(org.vcell.model.rbm.SpeciesPattern) LinkedHashMap(java.util.LinkedHashMap) ComponentStateDefinition(org.vcell.model.rbm.ComponentStateDefinition) MolecularTypeLargeShape(cbit.vcell.graph.MolecularTypeLargeShape) MolecularComponent(org.vcell.model.rbm.MolecularComponent) JMenuItem(javax.swing.JMenuItem) MolecularComponentLargeShape(cbit.vcell.graph.MolecularComponentLargeShape) Pair(org.vcell.util.Pair) Displayable(org.vcell.util.Displayable) Point(java.awt.Point) JPopupMenu(javax.swing.JPopupMenu) Point(java.awt.Point) MolecularType(org.vcell.model.rbm.MolecularType) ActionListener(java.awt.event.ActionListener) ComponentStateLargeShape(cbit.vcell.graph.MolecularComponentLargeShape.ComponentStateLargeShape) MolecularTypeLargeShape(cbit.vcell.graph.MolecularTypeLargeShape) SpeciesPatternLargeShape(cbit.vcell.graph.SpeciesPatternLargeShape) ComponentStateLargeShape(cbit.vcell.graph.MolecularComponentLargeShape.ComponentStateLargeShape) LargeShape(cbit.vcell.graph.LargeShape) MolecularComponentLargeShape(cbit.vcell.graph.MolecularComponentLargeShape) RelationshipObject(org.vcell.relationship.RelationshipObject) BioPaxObject(org.vcell.pathway.BioPaxObject) Icon(javax.swing.Icon) Map(java.util.Map) LinkedHashMap(java.util.LinkedHashMap) ActionMap(javax.swing.ActionMap) InputMap(javax.swing.InputMap)

Example 2 with LargeShape

use of cbit.vcell.graph.LargeShape in project vcell by virtualcell.

the class MolecularTypePropertiesPanel method initialize.

private void initialize() {
    JPanel leftPanel = new JPanel();
    leftPanel.setLayout(new GridBagLayout());
    // leftPanel.setBackground(Color.white);
    anchorPanel = new JAnchorPanel();
    anchorScrollPanel = new JScrollPane(anchorPanel);
    molecularTypeTree = new BioModelNodeEditableTree();
    molecularTypeTreeModel = new MolecularTypeTreeModel(molecularTypeTree);
    molecularTypeTree.setModel(molecularTypeTreeModel);
    molecularTypeTree.setEditable(true);
    molecularTypeTree.setCellRenderer(new RbmMolecularTypeTreeCellRenderer(molecularTypeTree, issueManager));
    molecularTypeTree.setCellEditor(new RbmMolecularTypeTreeCellEditor(molecularTypeTree));
    int rowHeight = molecularTypeTree.getRowHeight();
    if (rowHeight < 10) {
        rowHeight = 20;
    }
    molecularTypeTree.setRowHeight(rowHeight + 2);
    molecularTypeTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    ToolTipManager.sharedInstance().registerComponent(molecularTypeTree);
    molecularTypeTree.addTreeSelectionListener(eventHandler);
    molecularTypeTree.addTreeWillExpandListener(eventHandler);
    molecularTypeTree.addMouseListener(eventHandler);
    molecularTypeTree.setLargeModel(true);
    molecularTypeTree.setRootVisible(true);
    setLayout(new GridBagLayout());
    int gridy = 0;
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = gridy;
    gbc.weightx = 1.0;
    gbc.insets = new Insets(4, 4, 4, 4);
    titleLabel = new JLabel("Construct Solid Geometry");
    titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD));
    leftPanel.add(titleLabel, gbc);
    ButtonGroup bg = new ButtonGroup();
    bg.add(getAnchorAllButton());
    bg.add(getAnchorOnlyButton());
    gridy++;
    gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = gridy;
    gbc.insets = new Insets(4, 4, 4, 4);
    gbc.fill = GridBagConstraints.HORIZONTAL;
    leftPanel.add(getAnchorAllButton(), gbc);
    gridy++;
    gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = gridy;
    gbc.insets = new Insets(4, 4, 4, 4);
    gbc.fill = GridBagConstraints.HORIZONTAL;
    leftPanel.add(getAnchorOnlyButton(), gbc);
    gridy++;
    gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = gridy;
    gbc.weightx = 1.0;
    gbc.weighty = 1.0;
    gbc.insets = new Insets(4, 4, 4, 4);
    gbc.fill = GridBagConstraints.BOTH;
    leftPanel.add(anchorScrollPanel, gbc);
    // ------------------------------------------------------------------------------
    splitPaneHorizontal.setOneTouchExpandable(true);
    splitPaneHorizontal.setDividerLocation(120);
    splitPaneHorizontal.setResizeWeight(0.1);
    Border border = BorderFactory.createLineBorder(Color.gray);
    Border loweredEtchedBorder = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
    Border loweredBevelBorder = BorderFactory.createLoweredBevelBorder();
    TitledBorder annotationBorder = BorderFactory.createTitledBorder(loweredEtchedBorder, " Annotation and Pathway Links ");
    annotationBorder.setTitleJustification(TitledBorder.LEFT);
    annotationBorder.setTitlePosition(TitledBorder.TOP);
    annotationBorder.setTitleFont(getFont().deriveFont(Font.BOLD));
    shapePanel = new LargeShapePanel() {

        @Override
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            for (LargeShape stls : molecularTypeShapeList) {
                stls.paintSelf(g);
            }
        }

        @Override
        public DisplayMode getDisplayMode() {
            return DisplayMode.other;
        }

        @Override
        public RuleAnalysisChanged hasStateChanged(String reactionRuleName, MolecularComponentPattern molecularComponentPattern) {
            return RuleAnalysisChanged.UNCHANGED;
        }

        @Override
        public RuleAnalysisChanged hasStateChanged(MolecularComponentPattern molecularComponentPattern) {
            return RuleAnalysisChanged.UNCHANGED;
        }

        @Override
        public RuleAnalysisChanged hasBondChanged(String reactionRuleName, MolecularComponentPattern molecularComponentPattern) {
            return RuleAnalysisChanged.UNCHANGED;
        }

        @Override
        public RuleAnalysisChanged hasBondChanged(MolecularComponentPattern molecularComponentPattern) {
            return RuleAnalysisChanged.UNCHANGED;
        }

        @Override
        public RuleAnalysisChanged hasNoMatch(String reactionRuleName, MolecularTypePattern mtp) {
            return RuleAnalysisChanged.UNCHANGED;
        }

        @Override
        public RuleAnalysisChanged hasNoMatch(MolecularTypePattern molecularTypePattern) {
            return RuleAnalysisChanged.UNCHANGED;
        }

        @Override
        public boolean isViewSingleRow() {
            return true;
        }

        @Override
        public RuleParticipantSignature getSignature() {
            return null;
        }

        @Override
        public GroupingCriteria getCriteria() {
            return null;
        }
    };
    shapePanel.setBorder(border);
    shapePanel.setLayout(null);
    shapePanel.setBackground(Color.white);
    shapePanel.setEditable(true);
    shapePanel.setShowMoleculeColor(true);
    shapePanel.setShowNonTrivialOnly(true);
    shapePanel.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) {
            super.mouseClicked(e);
            stopEditing();
            if (e.getButton() == 1) {
                // left click selects the object (we highlight it)
                Point whereClicked = e.getPoint();
                PointLocationInShapeContext locationContext = new PointLocationInShapeContext(whereClicked);
                manageMouseActivity(locationContext);
            } else if (e.getButton() == 3) {
                // right click invokes popup menu (only if the object is highlighted)
                Point whereClicked = e.getPoint();
                PointLocationInShapeContext locationContext = new PointLocationInShapeContext(whereClicked);
                manageMouseActivity(locationContext);
                if (locationContext.getDeepestShape() != null && !locationContext.getDeepestShape().isHighlighted()) {
                // TODO: (maybe) add code here to highlight the shape if it's not highlighted already but don't show the menu
                // return;
                }
                showPopupMenu(e, locationContext);
            }
        }

        private void manageMouseActivity(PointLocationInShapeContext locationContext) {
            Graphics g = shapePanel.getGraphics();
            for (MolecularTypeLargeShape mtls : molecularTypeShapeList) {
                mtls.turnHighlightOffRecursive(g);
            }
            for (MolecularTypeLargeShape mtls : molecularTypeShapeList) {
                if (mtls.contains(locationContext)) {
                    // check if mouse is inside shape
                    break;
                }
            }
            locationContext.highlightDeepestShape();
            locationContext.paintDeepestShape(g);
        }
    });
    shapePanel.addMouseMotionListener(new MouseMotionAdapter() {

        public void mouseMoved(MouseEvent e) {
            Point overWhat = e.getPoint();
            PointLocationInShapeContext locationContext = new PointLocationInShapeContext(overWhat);
            for (MolecularTypeLargeShape mtls : molecularTypeShapeList) {
                if (mtls.contains(locationContext)) {
                    break;
                }
            }
            HighlightableShapeInterface hsi = locationContext.getDeepestShape();
            if (hsi == null) {
                shapePanel.setToolTipText(null);
            } else {
                shapePanel.setToolTipText("Right click for " + hsi.getDisplayType() + " menus");
            }
            for (MolecularTypeLargeShape mtls : molecularTypeShapeList) {
                Rectangle r = mtls.getAnchorHotspot();
                if (r != null && r.contains(overWhat)) {
                    mtls.getMolecularType();
                    shapePanel.setToolTipText(mtls.getAnchorsHTML());
                    break;
                }
            }
        }
    });
    // -------------------------------------------------------------------------------------------
    // right bottom panel, contains just the annotation
    JPanel generalPanel = new JPanel();
    generalPanel.setBorder(annotationBorder);
    generalPanel.setLayout(new GridBagLayout());
    gridy = 0;
    gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.anchor = GridBagConstraints.LINE_START;
    JLabel pathwayLink = new JLabel("Linked Pathway Object(s): ");
    generalPanel.add(pathwayLink, gbc);
    linkedPOScrollPane = new JScrollPane();
    gbc = new java.awt.GridBagConstraints();
    gbc.gridx = 1;
    gbc.gridy = gridy;
    gbc.weightx = 1.0;
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbc.fill = java.awt.GridBagConstraints.HORIZONTAL;
    gbc.insets = new Insets(4, 4, 4, 4);
    generalPanel.add(linkedPOScrollPane, gbc);
    gridy++;
    // annotationTextArea = new javax.swing.JTextArea("", 1, 30);
    // annotationTextArea.setLineWrap(true);
    // annotationTextArea.setWrapStyleWord(true);
    // annotationTextArea.setFont(new Font("monospaced", Font.PLAIN, 11));
    annotationTextArea = new JTextPane();
    annotationTextArea.setContentType("text/html");
    annotationTextArea.setEditable(false);
    javax.swing.JScrollPane jsp = new javax.swing.JScrollPane(annotationTextArea);
    gbc = new java.awt.GridBagConstraints();
    gbc.weightx = 1.0;
    gbc.weighty = 1.0;
    gbc.gridx = 0;
    gbc.gridy = gridy;
    gbc.gridwidth = 2;
    gbc.weightx = 1.0;
    gbc.weighty = 1.0;
    gbc.anchor = GridBagConstraints.LINE_START;
    gbc.fill = java.awt.GridBagConstraints.BOTH;
    gbc.insets = new Insets(4, 4, 4, 4);
    generalPanel.add(jsp, gbc);
    scrollPane = new JScrollPane(shapePanel);
    scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    splitPaneHorizontal.setTopComponent(scrollPane);
    splitPaneHorizontal.setBottomComponent(generalPanel);
    // -----------------------------------------------------------------------------
    splitPane.setOneTouchExpandable(true);
    splitPane.setLeftComponent(leftPanel);
    splitPane.setRightComponent(splitPaneHorizontal);
    splitPane.setResizeWeight(0.0);
    splitPane.getLeftComponent().setMaximumSize(new Dimension(120, 200));
    splitPane.getLeftComponent().setPreferredSize(new Dimension(120, 200));
    // splitPane.setDividerLocation(0.0d);		// completely hides the left component
    // attempt to use the preferred size
    splitPane.setDividerLocation(-1);
    setName("MolecularTypePropertiesPanel");
    setLayout(new BorderLayout());
    add(splitPane, BorderLayout.CENTER);
    setBackground(Color.white);
    annotationTextArea.addFocusListener(eventHandler);
    annotationTextArea.addMouseListener(eventHandler);
}
Also used : JPanel(javax.swing.JPanel) GridBagConstraints(java.awt.GridBagConstraints) RuleParticipantSignature(cbit.vcell.model.RuleParticipantSignature) Insets(java.awt.Insets) GridBagLayout(java.awt.GridBagLayout) Rectangle(java.awt.Rectangle) TitledBorder(javax.swing.border.TitledBorder) LargeShapePanel(cbit.vcell.graph.gui.LargeShapePanel) JTextPane(javax.swing.JTextPane) MolecularTypeLargeShape(cbit.vcell.graph.MolecularTypeLargeShape) BorderLayout(java.awt.BorderLayout) RuleAnalysisChanged(cbit.vcell.graph.ReactionCartoon.RuleAnalysisChanged) JScrollPane(javax.swing.JScrollPane) MouseEvent(java.awt.event.MouseEvent) MolecularComponentPattern(org.vcell.model.rbm.MolecularComponentPattern) GroupingCriteria(cbit.vcell.model.GroupingCriteria) MouseAdapter(java.awt.event.MouseAdapter) JLabel(javax.swing.JLabel) HighlightableShapeInterface(cbit.vcell.graph.HighlightableShapeInterface) Point(java.awt.Point) Dimension(java.awt.Dimension) PointLocationInShapeContext(cbit.vcell.graph.PointLocationInShapeContext) GridBagConstraints(java.awt.GridBagConstraints) Point(java.awt.Point) Graphics(java.awt.Graphics) JScrollPane(javax.swing.JScrollPane) MouseMotionAdapter(java.awt.event.MouseMotionAdapter) ButtonGroup(javax.swing.ButtonGroup) MolecularTypeLargeShape(cbit.vcell.graph.MolecularTypeLargeShape) SpeciesPatternLargeShape(cbit.vcell.graph.SpeciesPatternLargeShape) ComponentStateLargeShape(cbit.vcell.graph.MolecularComponentLargeShape.ComponentStateLargeShape) LargeShape(cbit.vcell.graph.LargeShape) MolecularComponentLargeShape(cbit.vcell.graph.MolecularComponentLargeShape) MolecularTypePattern(org.vcell.model.rbm.MolecularTypePattern) Border(javax.swing.border.Border) TitledBorder(javax.swing.border.TitledBorder) EtchedBorder(javax.swing.border.EtchedBorder)

Aggregations

LargeShape (cbit.vcell.graph.LargeShape)2 MolecularComponentLargeShape (cbit.vcell.graph.MolecularComponentLargeShape)2 ComponentStateLargeShape (cbit.vcell.graph.MolecularComponentLargeShape.ComponentStateLargeShape)2 MolecularTypeLargeShape (cbit.vcell.graph.MolecularTypeLargeShape)2 SpeciesPatternLargeShape (cbit.vcell.graph.SpeciesPatternLargeShape)2 Point (java.awt.Point)2 HighlightableShapeInterface (cbit.vcell.graph.HighlightableShapeInterface)1 PointLocationInShapeContext (cbit.vcell.graph.PointLocationInShapeContext)1 RuleAnalysisChanged (cbit.vcell.graph.ReactionCartoon.RuleAnalysisChanged)1 LargeShapePanel (cbit.vcell.graph.gui.LargeShapePanel)1 GroupingCriteria (cbit.vcell.model.GroupingCriteria)1 RuleParticipantSignature (cbit.vcell.model.RuleParticipantSignature)1 BorderLayout (java.awt.BorderLayout)1 Dimension (java.awt.Dimension)1 Graphics (java.awt.Graphics)1 GridBagConstraints (java.awt.GridBagConstraints)1 GridBagLayout (java.awt.GridBagLayout)1 Insets (java.awt.Insets)1 Rectangle (java.awt.Rectangle)1 ActionEvent (java.awt.event.ActionEvent)1