Class JStructureView

  • All Implemented Interfaces:
    StructureListener, java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
    Direct Known Subclasses:
    JEditableStructureView

    public class JStructureView
    extends javax.swing.JPanel
    implements java.awt.event.ActionListener, java.awt.event.MouseListener, StructureListener
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean borderFlag  
      protected int mAllowedDragAction  
      protected int mAllowedDropAction  
      protected MoleculeDropAdapter mDropAdapter  
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      JStructureView()  
      JStructureView​(int dragAction, int dropAction)  
      JStructureView​(StereoMolecule mol)
      This creates a standard structure view where the displayed molecule is used for D&D and clipboard transfer after removing atom colors and bond highlights.
      JStructureView​(StereoMolecule mol, int dragAction, int dropAction)
      This creates a standard structure view where the displayed molecule is used for D&D and clipboard transfer after removing atom colors and bond highlights.
      JStructureView​(StereoMolecule mol, StereoMolecule displayMol)
      This creates a structure view that distinguishes between displayed molecule and the one being used for D&D and clipboard transfer.
      JStructureView​(StereoMolecule mol, StereoMolecule displayMol, int dragAction, int dropAction)
      This creates a structure view that distinguishes between displayed molecule and the one being used for D&D and clipboard transfer.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)  
      void addStructureListener​(StructureListener l)  
      boolean canDrop()  
      IClipboardHandler getClipboardHandler()  
      AbstractDepictor getDepictor()  
      StereoMolecule getDisplayMolecule()  
      StereoMolecule getMolecule()  
      protected java.awt.datatransfer.Transferable getMoleculeTransferable​(java.awt.Point pt)  
      java.awt.datatransfer.FlavorMap getSystemFlavorMap()  
      void mouseClicked​(java.awt.event.MouseEvent e)  
      void mouseEntered​(java.awt.event.MouseEvent e)  
      void mouseExited​(java.awt.event.MouseEvent e)  
      void mousePressed​(java.awt.event.MouseEvent e)  
      void mouseReleased​(java.awt.event.MouseEvent e)  
      protected void onDragEnter()  
      protected void onDragExit()  
      protected void onDragOver()  
      protected void onDrop()  
      void paintComponent​(java.awt.Graphics g)  
      void removeStructureListener​(StructureListener l)  
      void setAllowFragmentStatusChangeOnPasteOrDrop​(boolean allow)
      When fragment status change on drop is allowed then dropping a fragment (molecule) on a molecule (fragment) inverts the status of the view's chemical object.
      void setAtomText​(java.lang.String[] atomText)
      Defines additional atom text to be displayed in top right position of some/all atom labels.
      void setChiralDrawPosition​(int p)  
      void setClipboardHandler​(IClipboardHandler h)
      Call this in order to get clipboard support: setClipboardHandler(new ClipboardHandler());
      void setDisplayMode​(int mode)
      Sets the display mode for the Depictor.
      void setEnabled​(boolean enable)  
      void setIDCode​(java.lang.String idcode)  
      void setIDCode​(java.lang.String idcode, java.lang.String coordinates)  
      void structureChanged()
      Should only be called if JStructureView's internal Molecule is changed from outside as: theStructureView.getMolecule().setFragment(false); The caller is responsible to update displayMol also, if it is different from the molecule.
      void structureChanged​(StereoMolecule mol)
      Updates the molecule used for display, drag & drop and clipboard transfer.
      void structureChanged​(StereoMolecule mol, StereoMolecule displayMol)
      Updates both molecules used for display and for drag & drop/clipboard transfer.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • mAllowedDragAction

        protected int mAllowedDragAction
      • mAllowedDropAction

        protected int mAllowedDropAction
      • borderFlag

        protected boolean borderFlag
    • Constructor Detail

      • JStructureView

        public JStructureView()
      • JStructureView

        public JStructureView​(StereoMolecule mol)
        This creates a standard structure view where the displayed molecule is used for D&D and clipboard transfer after removing atom colors and bond highlights.
        Parameters:
        mol - used for display, clipboard copy and d&d
      • JStructureView

        public JStructureView​(StereoMolecule mol,
                              StereoMolecule displayMol)
        This creates a structure view that distinguishes between displayed molecule and the one being used for D&D and clipboard transfer. Use this if the displayed molecule is structurally different, e.g. uses custom atom labels or additional illustrative atoms or bonds, which shall not be copied. Custom atom colors or highlighted bonds don't require a displayMol.
        Parameters:
        mol - used for clipboard copy and d&d; used for display if displayMol is null
        displayMol - null if mol shall be displayed
      • JStructureView

        public JStructureView​(int dragAction,
                              int dropAction)
      • JStructureView

        public JStructureView​(StereoMolecule mol,
                              int dragAction,
                              int dropAction)
        This creates a standard structure view where the displayed molecule is used for D&D and clipboard transfer after removing atom colors and bond highlights.
        Parameters:
        mol - used for display, clipboard copy and d&d
        dragAction -
        dropAction -
      • JStructureView

        public JStructureView​(StereoMolecule mol,
                              StereoMolecule displayMol,
                              int dragAction,
                              int dropAction)
        This creates a structure view that distinguishes between displayed molecule and the one being used for D&D and clipboard transfer. Use this if the displayed molecule is structurally different, e.g. uses custom atom labels or additional illustrative atoms or bonds, which shall not be copied. Custom atom colors or highlighted bonds don't require a displayMol.
        Parameters:
        mol - used for clipboard copy and d&d; used for display if displayMol is null
        displayMol - null if mol shall be displayed
        dragAction -
        dropAction -
    • Method Detail

      • setClipboardHandler

        public void setClipboardHandler​(IClipboardHandler h)
        Call this in order to get clipboard support: setClipboardHandler(new ClipboardHandler());
      • setDisplayMode

        public void setDisplayMode​(int mode)
        Sets the display mode for the Depictor. The default is AbstractDepictor.cDModeHiliteAllQueryFeatures.
        Parameters:
        mode -
      • setAtomText

        public void setAtomText​(java.lang.String[] atomText)
        Defines additional atom text to be displayed in top right position of some/all atom labels. If the atom is charged, then the atom text is drawn right of the atom charge. If using atom text make sure to update it accordingly, if atom indexes change due to molecule changes. Atom text is not supported for MODE_REACTION, MODE_MULTIPLE_FRAGMENTS or MODE_MARKUSH_STRUCTURE.
        Parameters:
        atomText - null or String array matching atom indexes (may contain null entries)
      • setEnabled

        public void setEnabled​(boolean enable)
        Overrides:
        setEnabled in class javax.swing.JComponent
      • setAllowFragmentStatusChangeOnPasteOrDrop

        public void setAllowFragmentStatusChangeOnPasteOrDrop​(boolean allow)
        When fragment status change on drop is allowed then dropping a fragment (molecule) on a molecule (fragment) inverts the status of the view's chemical object. As default status changes are prohibited.
        Parameters:
        allow -
      • canDrop

        public boolean canDrop()
      • paintComponent

        public void paintComponent​(java.awt.Graphics g)
        Overrides:
        paintComponent in class javax.swing.JComponent
      • setIDCode

        public void setIDCode​(java.lang.String idcode)
      • setIDCode

        public void setIDCode​(java.lang.String idcode,
                              java.lang.String coordinates)
      • structureChanged

        public void structureChanged​(StereoMolecule mol)
        Updates the molecule used for display, drag & drop and clipboard transfer. Also triggers a repaint().
        Specified by:
        structureChanged in interface StructureListener
        Parameters:
        mol - new molecule used for display, clipboard copy and d&d; may be null
      • structureChanged

        public void structureChanged​(StereoMolecule mol,
                                     StereoMolecule displayMol)
        Updates both molecules used for display and for drag & drop/clipboard transfer. Also triggers a repaint().
        Parameters:
        mol - new molecule used for display; may be null
        displayMol - new molecule used for clipboard copy and d&d, may be null
      • structureChanged

        public void structureChanged()
        Should only be called if JStructureView's internal Molecule is changed from outside as: theStructureView.getMolecule().setFragment(false); The caller is responsible to update displayMol also, if it is different from the molecule.
      • removeStructureListener

        public void removeStructureListener​(StructureListener l)
      • setChiralDrawPosition

        public void setChiralDrawPosition​(int p)
      • mouseClicked

        public void mouseClicked​(java.awt.event.MouseEvent e)
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent e)
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent e)
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent e)
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent e)
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
      • getMoleculeTransferable

        protected java.awt.datatransfer.Transferable getMoleculeTransferable​(java.awt.Point pt)
      • onDragEnter

        protected void onDragEnter()
      • onDragExit

        protected void onDragExit()
      • onDragOver

        protected void onDragOver()
      • onDrop

        protected void onDrop()
      • getSystemFlavorMap

        public java.awt.datatransfer.FlavorMap getSystemFlavorMap()