Package com.actelion.research.gui
Class JStructureView
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- com.actelion.research.gui.JStructureView
-
- All Implemented Interfaces:
StructureListener,java.awt.event.ActionListener,java.awt.event.MouseListener,java.awt.event.MouseMotionListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener
- Direct Known Subclasses:
JEditableStructureView
public class JStructureView extends javax.swing.JComponent implements java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, StructureListener
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected intmAllowedDragActionprotected intmAllowedDropActionprotected MoleculeDropAdaptermDropAdapter-
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
-
-
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 voidactionPerformed(java.awt.event.ActionEvent e)voidaddStructureListener(StructureListener l)booleancanDrop()IClipboardHandlergetClipboardHandler()AbstractDepictorgetDepictor()StereoMoleculegetDisplayMolecule()StereoMoleculegetMolecule()protected java.awt.datatransfer.TransferablegetMoleculeTransferable(java.awt.Point pt)booleanisEditable()voidmouseClicked(java.awt.event.MouseEvent e)voidmouseDragged(java.awt.event.MouseEvent e)voidmouseEntered(java.awt.event.MouseEvent e)voidmouseExited(java.awt.event.MouseEvent e)voidmouseMoved(java.awt.event.MouseEvent e)voidmousePressed(java.awt.event.MouseEvent e)voidmouseReleased(java.awt.event.MouseEvent e)protected voidonDragEnter()protected voidonDragExit()protected voidonDragOver()protected voidonDrop()voidpaintComponent(java.awt.Graphics g)voidremoveStructureListener(StructureListener l)voidsetAllowFragmentStatusChangeOnPasteOrDrop(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.voidsetAtomText(java.lang.String[] atomText)Defines additional atom text to be displayed in top right position of some/all atom labels.voidsetChiralDrawPosition(int p)voidsetClipboardHandler(IClipboardHandler h)Call this in order to get clipboard support: setClipboardHandler(new ClipboardHandler());voidsetDisableBorder(boolean b)voidsetDisplayMode(int mode)Sets the display mode for the Depictor.voidsetEditable(boolean b)voidsetEnabled(boolean enable)voidsetIDCode(java.lang.String idcode)voidsetIDCode(java.lang.String idcode, java.lang.String coordinates)voidstructureChanged()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.voidstructureChanged(StereoMolecule mol)Updates the molecule used for display, drag & drop and clipboard transfer.voidstructureChanged(StereoMolecule mol, StereoMolecule displayMol)Updates both molecules used for display and for drag & drop/clipboard transfer.-
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, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, 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, updateUI
-
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, getAccessibleContext, 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
-
-
-
-
Field Detail
-
mDropAdapter
protected MoleculeDropAdapter mDropAdapter
-
mAllowedDragAction
protected int mAllowedDragAction
-
mAllowedDropAction
protected int mAllowedDropAction
-
-
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. The default will support copy/paste and drag&drop from this view only, but dropping anything onto this view doesn't have an effect. Call setEditable(true) to allow changes through drag&drop and pasting.- 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. The default will support copy/paste and drag&drop from this view only, but dropping anything onto this view doesn't have an effect. Call setEditable(true) to allow changes through drag&drop and pasting.- Parameters:
mol- used for clipboard copy and d&d; used for display if displayMol is nulldisplayMol- 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. The default will support copy/paste and drag&drop from this view only, but dropping anything onto this view doesn't have an effect. Call setEditable(true) to allow changes through drag&drop and pasting.- Parameters:
mol- used for display, clipboard copy and d&ddragAction-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. The default will support copy/paste and drag&drop from this view only, but dropping anything onto this view doesn't have an effect. Call setEditable(true) to allow changes through drag&drop and pasting.- Parameters:
mol- used for clipboard copy and d&d; used for display if displayMol is nulldisplayMol- null if mol shall be displayeddragAction-dropAction-
-
-
Method Detail
-
setClipboardHandler
public void setClipboardHandler(IClipboardHandler h)
Call this in order to get clipboard support: setClipboardHandler(new ClipboardHandler());
-
getClipboardHandler
public IClipboardHandler getClipboardHandler()
-
setDisplayMode
public void setDisplayMode(int mode)
Sets the display mode for the Depictor. The default is AbstractDepictor.cDModeHiliteAllQueryFeatures.- Parameters:
mode-
-
setDisableBorder
public void setDisableBorder(boolean b)
-
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:
setEnabledin classjavax.swing.JComponent
-
isEditable
public boolean isEditable()
-
setEditable
public void setEditable(boolean b)
-
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:
paintComponentin classjavax.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:
structureChangedin interfaceStructureListener- 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 nulldisplayMol- 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.
-
getMolecule
public StereoMolecule getMolecule()
-
getDisplayMolecule
public StereoMolecule getDisplayMolecule()
-
getDepictor
public AbstractDepictor getDepictor()
-
addStructureListener
public void addStructureListener(StructureListener l)
-
removeStructureListener
public void removeStructureListener(StructureListener l)
-
setChiralDrawPosition
public void setChiralDrawPosition(int p)
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClickedin interfacejava.awt.event.MouseListener
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
- Specified by:
mouseEnteredin interfacejava.awt.event.MouseListener
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
- Specified by:
mouseExitedin interfacejava.awt.event.MouseListener
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent e)
- Specified by:
mousePressedin interfacejava.awt.event.MouseListener
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent e)
- Specified by:
mouseReleasedin interfacejava.awt.event.MouseListener
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent e)
- Specified by:
mouseMovedin interfacejava.awt.event.MouseMotionListener
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent e)
- Specified by:
mouseDraggedin interfacejava.awt.event.MouseMotionListener
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
- Specified by:
actionPerformedin interfacejava.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()
-
-