Elexis: Das führende OpenSource-Arztpraxisprogamm
im deutschsprachigen Raum
Java doc for Elexis version 2.1.7.dev vom 17.03.2013

ag.ion.bion.officelayer
Class NativeView

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Canvas
          extended by ag.ion.bion.officelayer.NativeView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class NativeView
extends java.awt.Canvas

Class to pass the system window handle to the OpenOffice.org toolkit. It use special JNI methods to get the system handle of used java window. Attention! Use JNI functions on already visible canvas objects only! Otherwise they can make some trouble. Integrated into NOA by Markus Krüger as it is needed for integration in Swing applications.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
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
 java.lang.Integer maHandle
           
 int maSystem
           
 
Fields inherited from class java.awt.Component
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
NativeView()
          ctor Does nothing realy.
NativeView(java.lang.String nativeLibPath)
          ctor Does nothing realy.
 
Method Summary
 java.lang.Integer getHWND()
          Returns the window handle.
 java.awt.Dimension getMaximumSize()
           
 java.awt.Dimension getMinimumSize()
           
 int getNativeWindowSystemType()
          JNI interface of this class These two methods are implemented by using JNI mechanismen.
 java.awt.Dimension getPreferredSize()
          to guarantee right resize handling inside a swing container (e.g.
 void paint(java.awt.Graphics aGraphic)
          overload paint routine to show provide against repaint errors if no office view is realy plugged into this canvas.
 void setPreferredSize(java.awt.Dimension preferredSize)
           
 void setVisible(boolean bState)
          Overload this method to make neccessary initializations here.
 
Methods inherited from class java.awt.Canvas
addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy, update
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

maHandle

public java.lang.Integer maHandle

maSystem

public int maSystem
Constructor Detail

NativeView

public NativeView()
ctor Does nothing realy. We can use our JNI mechanism for an already visible canvas only. So we overload the method for showing ("setVisible()") and make our intialization there. BUt we try to show an empty clean window till there.


NativeView

public NativeView(java.lang.String nativeLibPath)
ctor Does nothing realy. We can use our JNI mechanism for an already visible canvas only. So we overload the method for showing ("setVisible()") and make our intialization there. BUt we try to show an empty clean window till there.

Parameters:
nativeLibPath - path to the ICE registry library
Method Detail

getNativeWindowSystemType

public int getNativeWindowSystemType()
JNI interface of this class These two methods are implemented by using JNI mechanismen. The will be used to get the platform dependent window handle of a java awt canvas. This handle can be used to create an office window as direct child of it. So it's possible to plug Office windows in a java UI container. Note: Native code for windows register special function pointer to handle window messages ... But if it doesn't check for an already registered instance of this handler it will do it twice and produce a stack overflow because such method call herself in a never ending loop ... So we try to use the JNI code one times only and safe already getted informations inside this class.


setVisible

public void setVisible(boolean bState)
Overload this method to make neccessary initializations here. (e.g. get the window handle and neccessary system informations) Why here? Because the handle seams to be available for already visible windows only. So it's the best place to get it. Special helper method can be called more then ones - but call native code one times only and safe the handle and the system type on our members maHandle/maSystem!

Overrides:
setVisible in class java.awt.Component

getPreferredSize

public java.awt.Dimension getPreferredSize()
to guarantee right resize handling inside a swing container (e.g. JSplitPane) we must provide some informations about our prefered/minimum and maximum size.

Overrides:
getPreferredSize in class java.awt.Component

setPreferredSize

public void setPreferredSize(java.awt.Dimension preferredSize)
Overrides:
setPreferredSize in class java.awt.Component

getMaximumSize

public java.awt.Dimension getMaximumSize()
Overrides:
getMaximumSize in class java.awt.Component

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class java.awt.Component

paint

public void paint(java.awt.Graphics aGraphic)
overload paint routine to show provide against repaint errors if no office view is realy plugged into this canvas. If handle is present - we shouldn't paint anything further. May the remote window is already plugged. In such case we shouldn't paint it over.

Overrides:
paint in class java.awt.Canvas

getHWND

public java.lang.Integer getHWND()
Returns the window handle.

Returns:
the window handle

Elexis: Das führende OpenSource-Arztpraxisprogamm
im deutschsprachigen Raum
Java doc for Elexis version 2.1.7.dev vom 17.03.2013