// ***************** MouseListener ***************** public void mouseReleased(MouseEvent e) { currentX = getGraphCoordinateX(e.getX()); currentY = getGraphCoordinateY(e.getY()); MoleculeComponent clickedOn = elist.getClickedComponent(e.getX(), e.getY()); if (drawArrowLine || drawBondLine) // if connection is being made { if (clickedOn != null && elist.getSelected() != null) // if released on valid component { if (clickedOn.getClass() == Element.class && (rightPressed && !leftPressed)) { // if it's a bond elist.add(new Bond(elist.getSelected(), clickedOn)); } else if (clickedOn.getClass() == Element.class && (leftPressed && !rightPressed)) { elist.add(new Arrow(elist.getSelected(), clickedOn)); } } drawArrowLine = false; drawBondLine = false; repaint(); } else // connection is not being made { if (clickedOn != null) // if released on valid component { } else // Didn't click on valid component { if (leftPressed && !rightPressed) // If mouse button clicked was left { elist.add(new Element(currentX, currentY)); } } } }