org.diamondspin
Class DSFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JInternalFrame
                  extended by org.diamondspin.DSFrame
All Implemented Interfaces:
MouseListener, MouseMotionListener, ImageObserver, MenuContainer, Serializable, Cloneable, EventListener, Accessible, RootPaneContainer, WindowConstants, DSElement
Direct Known Subclasses:
DS3dContentFrame, DSImage, DSPile, DSSlot, DSWebFrame

public class DSFrame
extends JInternalFrame
implements MouseListener, MouseMotionListener, DSElement, Serializable

A DSFrame is an element as close as possible as an existing java frame. It was not possible to overload a JFrame or JWindow because the repaint method doesn't repaint the border and doesn't allow transformations. We used then a JInternalFrame instead which is a little bit different but can contain as well any kind of swing content. The menubar is not implemented yet. If you are interested to make it, it should be similar to what we did for DSCombobox.
In addition to JInternalFrame the DSFrame tends to implement rotating, zooming and peeling

DSFrame with Resizing, Zoomimg and
rotating corner. Old shadow style
Folding corner, no shadow and
red ink annotation
Folded DSFrame
with cast shadow

Copyright 2002-2009 DiamondSpin project. All Rights Reserved.

Permission to use, copy, modify and distribute this software and its documentation for educational, research and non-profit purposes, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and the following three paragraphs appear in all copies.

To request Permission to incorporate this software into commercial products contact one of the authors of the project.
  • Frederic Vernier (frederic.vernier@limsi.fr)
  • Chia Shen (chia_shen@harvard.edu)
  • Guillaume Besacier (guillaume.besacier@limsi.fr)
  • Daniel Wigdor (dwigdor@microsoft.com)

IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

THE AUTHORS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE AUTHORS HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

Creation date : April the 2nd, 2002

Version:
2.1a
Author:
  • Meredith Ringel (merrie@stanford.edu) under Chia Shen supervision (chia_shen@harvard.edu)
  • Frederic vernier, (frederic.vernier@gmail.com).
  • Guillaume Besacier under Frederic vernier supervision
  • See Also:
    Serialized Form
    To do:
    rectlinar behavior

    Nested Class Summary
    protected  class DSFrame.DSInternalFrameTitlePane
              We overrided InternalFrameTitlePane in used in SWING to be able to add buttons in it
    protected  class DSFrame.DSMenuBarProxy
               
    static class DSFrame.FingerRotationMode
               
    static class DSFrame.FingerRotationSpeed
               
     
    Nested classes/interfaces inherited from class javax.swing.JInternalFrame
    JInternalFrame.AccessibleJInternalFrame, JInternalFrame.JDesktopIcon
     
    Nested classes/interfaces inherited from class javax.swing.JComponent
    JComponent.AccessibleJComponent
     
    Nested classes/interfaces inherited from class java.awt.Container
    Container.AccessibleAWTContainer
     
    Nested classes/interfaces inherited from class java.awt.Component
    Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
     
    Field Summary
    protected  double absoluteScale
              absolute scale relative to original element size useful for size sharing mode
    protected  float absoluteShiftAngle
               
    protected  boolean active
              if the component is active or not
    protected  double alpha
              Angle from the right horitontal direction.
    static int ALWAYS
               
    protected  boolean annotatable
               
    static int ANNOTATING
               
    static int ANNOTATING_SINGLE_TIME
               
    protected  int annotationOptions
               
    protected  Container backGlassPane
               
    protected  Container backPane
               
    protected  int behavior
              behavior is how element behave in the polar coordiate system when dragged.
    protected  double beta
              Angle around its center ! 0-2PI
    protected  int betaAbsFlag
               
    static int BETATED
               
    protected  DSFrame.DSInternalFrameTitlePane biftpBottom
               
    protected  DSFrame.DSInternalFrameTitlePane biftpTop
              a title bar we can customize
    static int BLACK
               
    static int BOTH
               
    static int BOTTOM
               
    static int CAST
               
    protected  Point center
              The center around which the frame rotate
    static int CENTER
               
    static int CENTERED
              different behaviors of dsframe
    protected  Component clickedComponent
              The clicked component because it is this one which should receive the mouserelease!
    protected  DSElement clickedSlave
               
    protected static int COLORBITS
               
    protected  boolean corner_fold
               
    protected  boolean corner_rotation
               
    static int CORNER_SIZE
              the size in pixels of the colored corners
    protected  boolean corners_resize_BR
               
    protected  boolean corners_resize_TL
              if the corners for rotation, resize or fold are displayed
    protected  double curvature
               
    protected  double d
              Distance to the center of the circular layout 0.0-1.0
    static int DARKER
               
    protected  double diffAngle
               
    static int DRAGGING
               
     DSTabletopPane dsTabletopPane
              everything is diplayed in a DSTabletopPane.
    protected  Point dTopLeftCorner
              Where the mouse cursor grabbed the window (0,0 only if the user clicks in the first pixel of the component !)
    static int ERASER
               
    protected static ImageIcon eraserIconPressed
               
    static int ERASING
               
    protected  boolean fingerRotatable
               
    protected  DSFrame.FingerRotationMode fingerRotationMode
               
    protected  DSFrame.FingerRotationSpeed fingerRotationSpeed
               
    protected  int fixedPointForRotation
               
    static int FOLDING
               
    protected  DSFoldingManager foldingManager
               
    static int FOLLOWING_TWO_FINGERS
               
    protected  int frontier
               
    static int GLASS
               
    protected  Point2D.Double globalPoint
               
    protected  Point2D.Double grabCornerPoint
               
    static int GRAY
               
    protected  int idOwner
              the user who owns this object
    static int IN_BETWEEN
               
    protected  int inertiaType
               
    protected  double initDiagonal
              the intial length of the element's diagonal, used for comparison to determine absolute scale
    protected static ImageIcon inkIcon
               
    protected static ImageIcon inkIconPressed
               
    static int INTELIGENT
               
    protected  Point2D.Double invertiaCenter
               
    protected  Point2D.Double[][] invertiaMesh
               
    protected  DSJComboBox jComboBox1
              because if a popup component is used we must keep track of it to redispatch events to the popup content.
    protected  JViewport jViewport1
              scrollable window should return their JViewport here.
    protected  Component lastComponent
              The last component concerned by a mouse event.
    protected  Component lastComponentUsed
               
     DSTouchEvent lastRotationEvent
               
    protected static ImageIcon logoIcon
               
    protected  double maximumScale
               
    protected  DSFrame.DSMenuBarProxy menubar
               
    static int MIDDLE
               
    protected  double minimumScale
               
    protected  int mode
               
    static int NONE
              As a DSElement this element can dispatch DSElement events to registered listeners
    protected  DSMenuBar oldmenubar
               
    static int OPPOSITE
               
    protected  Point previousMousePosition
               
    protected  Point previousPreviousMousePosition
               
    static int RESIZING_BR
               
    static int RESIZING_TL
               
    protected  boolean rotatable
               
    static int ROTATED
               
    static int ROTATING
               
    protected  double savedBeta
               
    protected  Point savedCenter
               
    protected  Point2D.Double savedRotationCornerPosition
               
    protected  double scale
              scale factor to resize the element at low level (pixel by pixel).
    protected  double scaleCorrection
              Even if a document has its own scale, it can be affected by a global scale effect (blackhole, etc.) Like alpha which is also dependant of the global angle to know where the element is on the screen Min - 1.0 During resizing scale factor is changed and must be saved
    static int serialVersionUID
               
    protected  int shadow
               
    protected  DSShadowManager shadowManager
               
    protected  boolean shadowNeedRefresh
               
    static int SHIFTED
               
    protected  ArrayList<DSElement> slaveElementList
               
    protected  int slavePosition
              TOP, BOTTOM or IN_BETWEEN
    static int SMALL
               
    protected  DSFrame thisDSFrame
               
    protected  int titlebar
              NONE, TOP, BOTTOM or BOTH
    static int TOP
               
    protected  int transparency
               
    static int USER_COLOR
               
    static int WAITING
               
    protected  boolean zoomable
               
    static int ZOOMING_BR
               
    static int ZOOMING_TL
               
     
    Fields inherited from class javax.swing.JInternalFrame
    closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
     
    Fields inherited from class javax.swing.JComponent
    accessibleContext, 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
    BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
     
    Fields inherited from interface org.diamondspin.DSElement
    HIGH_QUALITY, LOW_QUALITY
     
    Fields inherited from interface javax.swing.WindowConstants
    DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
     
    Fields inherited from interface java.awt.image.ImageObserver
    ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
     
    Constructor Summary
    DSFrame(DSTabletopPane pane)
              Constructor without title
    DSFrame(String title_Arg, DSTabletopPane dsTabletopPane_Arg)
              Constructor with title
     
    Method Summary
     boolean acceptSlave(DSElement dsElement)
              tells if the given element can be slave of me
     boolean acceptSlaveRelease(DSElement dsElement)
              tells if I accept the slave to release by themselves
     boolean acceptSlavery(DSElement dsElement)
              tells if I accept to become the slave of the given element
     boolean acceptSlaveryRelease()
              tells if I accept to be released
     void addDSElementListener(DSElementListener listener)
              register a elementlistener who want to know when an element is resized, rotated, moved , etc.
     void addDSElementPreListener(DSElementPreListener listener)
               
     void addFooterButton(AbstractButton b)
               
     void addHeaderButton(AbstractButton b)
               
     void addSlaveElement(DSElement dsElement)
              handle a list of slave elements.
     void addSlaveElement(int pos, DSElement dsElement)
               
     void askRefreshShadow()
              ask for a repaint of the cast shadow bitmap
     void computeShadowPosition()
               
     boolean contains(int x, int y)
               
     boolean containsBack(double x, double y)
               
     boolean containsFront(double x, double y)
               
     Image createImage(int Width_Arg, int Height_Arg)
              Overload this annoying function which is not relevant anymore
     void disableSnaping()
               
     boolean doesContain(double x, double y)
              Find whether a given cartesian point falls within this element
     boolean doesContainBack(double x, double y)
              Find whether a given cartesian point falls within the back of this element
     boolean doesContainFront(double x, double y)
              Find whether a given cartesian point falls within this element's front side
     void fireDSElementCenterChangedEvent(int x, int y, int cause)
              Fire the events to the suscribers
     void fireDSelementContentRepainted(int cause)
              Fire a repainted event to the suscribers
     void fireDSElementDemotedEvent()
              Fire a demote event
     void fireDSElementDroppedEvent(int type)
              Fire the events to the suscribers
     void fireDSElementFoldedEvent(double fangle, double fproportion, int cause)
              Fire the events to the suscribers
     boolean fireDSElementGrabbingEvent(int type)
              Fire the grab events to the suscribers before it is taken into account so they can cancel it
     void fireDSElementMovedEvent(double distance_Arg, double tangle, int cause)
              Fire the events to the suscribers
     boolean fireDSElementPreCenterChangedEvent(int x, int y, int cause)
              Fire the set center events to the suscribers before it is taken into account so they can cancel it
     boolean fireDSElementPreFoldedEvent(double fangle, double fproportion, int cause)
              Fire the events to the suscribers
     boolean fireDSElementPreMovedEvent(double distance_Arg, double tangle, int cause)
              Fire the move events to the suscribers before it is taken into account so they can cancel it
     boolean fireDSElementPreResizedEvent(int w, int h, int cause)
              Fire the resize events to the suscribers before it is taken into account so they can cancel it
     boolean fireDSElementPreRotatedEvent(double b, int cause)
              Fire the events to the suscribers
     boolean fireDSElementPreZoomedEvent(double scale, int cause)
              Fire the events to the suscribers
     void fireDSElementResizedEvent(int w, int h, int cause)
              Fire the events to the suscribers
     void fireDSElementRotatedEvent(double b, int cause)
              Fire the events to the suscribers
     void fireDSElementZoomedEvent(double s, int cause)
              Fire a zoom event to the suscribers
     void foldTo(Point2D.Double pt)
              fold to the given point
     double getAbsoluteScale()
              get the absolute scale of the document.
     double getAlpha()
              The degrees of freedom of the DSElements are their distance to the center, their angle comparing to the right direction (from center to the ful right), a scale (for zooming features) and
     Shape getBackClippingShape()
               
     Container getBackGlassPane()
               
     BufferedImage getBackImage()
               
     float getBackOpacity()
               
     Container getBackPane()
               
     int getBackPaneHeight()
               
     int getBackPaneWidth()
               
     AffineTransform getBackTransform()
               
     int getBehavior()
               
     double getBeta()
              The angle around its center
     Rectangle getBounds()
              Deprecated. The bounds are (0,0)=top-left based, and not local center based. They should not be used unless you really know what you do.
     Rectangle getBounds(Rectangle rv)
              Deprecated. 
     Point getCenter()
               
     double getD()
              The degrees of freedom of the DSElements are their distance to the center, their angle comparing to the right direction (from center to the ful right), a scale (for zooming features) and
     DSElementListener[] getDSElementListener()
               
     DSElementPreListener[] getDSElementPreListener()
               
     DSTabletopPane getDSTabletopPane()
               
     DSFrame.FingerRotationMode getFingerRotationMode()
               
     DSFrame.FingerRotationSpeed getFingerRotationSpeed()
               
     Point2D.Double getFoldPoint()
               
     Point2D.Double getFoldPoint1()
               
     Point2D.Double getFoldPoint2()
               
     double getFoldProportion()
               
     Shape getFoldShapeBack()
               
     Shape getFoldShapeFront()
               
     int getFoldType()
               
     Shape getFrontClippingShape()
               
     int getFrontier()
               
     BufferedImage getFrontImage()
               
     float getFrontOpacity()
               
     Shape getGlobalClippingShape()
               
     Graphics getGraphics()
              Overload this annoying function which is not relevant anymore
     int getIDOwner()
              get the id of the user who owns this element
     int getInertiaType()
               
     JMenuBar getJMenuBar()
               
     int getJMenuBarPosition()
               
     Point getLocationOnScreen()
              Overload this annoying function which is not relevant anymore
     double getMaximumScale()
               
     double getMinimumScale()
               
     Dimension getMinimumSize()
               
     int getMode()
               
     Container getParent()
              Overload this annoying function which is not relevant anymore
     double getScale()
              The degrees of freedom of the DSElements are their distance to the center, their angle comparing to the right direction (from center to the ful right), a scale (for zooming features) and
     int getShadow()
               
     double getShadowAdditionnalAngle()
               
     Shape getShadowClip()
               
     int getShadowDistance()
               
     BufferedImage getShadowImage()
               
     Point getShadowPosition()
               
     int getShadowSize()
               
     ArrayList<DSElement> getSlaveElementList()
               
     int getSlavePosition()
               
     AffineTransform getSlaveTransform()
               
     double getSnapAngle()
               
     DSTabletopPane getTabletopPane()
               
     int getTitleBarPosition()
               
     AffineTransform getTransform()
              The matrix decribing how this element is transformed before rendering
     int getTransparency()
               
     JViewport getViewPort()
              Gets the viewPort attribute of the DSFrame object
     boolean grabElement(int dX_Arg, int dY_Arg)
              Make the element to been dragged.
     Point2D.Double inertiaCenter()
               
     Point2D.Double[][] inertiaMesh()
               
     Point2D.Double inversePoint(Point2D.Double p)
              take a point in the general coordinate system and transform it in a local coordinate system
     Point2D.Float inversePoint(Point2D.Float p)
              take a point in the general coordinate system and transform it in a local coordinate system
    protected  Point2D.Double inversePointBack(Point2D.Double p)
              take a point in the general coordinate system and transform it in a local coordinate system ...
     Point inverseVector(Point v)
              take a vector in the global tabletop coordinate system and transform it in the local coordinate system
    protected  Point2D.Double inverseVectorBack(Point2D.Double Point_Arg)
              take a vector in the general coordinate system and transform it in a local coordinate system ...
     boolean isActive()
              in the centralized architecture we have some elements are in the views and one or few element are handled directly by the DSTabletopPane as drag&dropped elements.
     boolean isADragObject()
               
     boolean isAnnotatable()
              Gets the annotatable attribute of the DSFrame object
     boolean isBetaAbs()
              indicate how to use beta.
     boolean isClip()
               
     boolean isCornerFold()
               
     boolean isCornerRotation()
               
     boolean isCorners()
              Deprecated. The corners are now managed individually
     boolean isCornersResizeBR()
               
     boolean isCornersResizeTL()
               
     boolean isFingerRotatable()
               
     boolean isFoldable()
               
     boolean isFolded()
               
     boolean isFoldReverse()
               
     boolean isMouseTarget(MouseEvent event)
              tells if the mouse event occurred within this element without actually causing the event to take effect yet
     boolean isMyDragObject()
               
     boolean isRotatable()
               
     boolean isShadowHighQuality()
               
     boolean isShadowSource()
               
     boolean isShowing()
              to foul AWT and make it believe this component is showing on screen and must be properly initialized
     boolean isZoomable()
               
     void mouseClicked(MouseEvent event)
              click listener to detect dbl click on corners -> reset to normal
     void mouseDragged(MouseEvent event)
              Handle a mouse cursor drag event or more the frame if in DRAGGING MODE
     void mouseEntered(MouseEvent event)
              Description of the Method
     void mouseExited(MouseEvent event)
              Description of the Method
     void mouseMoved(MouseEvent event)
              Handle a mouse cursor move event.
     void mousePressed(MouseEvent event)
              Handle a mouse button press event
    protected  void mousePressedInside(MouseEvent event, Point2D.Double mousePosition_arg)
              handle an internal mouse press event
    protected  void mousePressedInsideBack(MouseEvent event, Point2D.Double localBackPoint)
               
    protected  void mousePressedTestBack(MouseEvent event)
               
    protected  void mousePressedTestFront(MouseEvent event)
               
     void mouseReleased(MouseEvent event)
              Handle a mouse button release event
     void moveCenter(Point c)
              Set the center attribute of the DSFrame object.
    protected  void moveCenter(Point c, int cause)
              move the center point somewhere on the table
     void moveElementCenterTo(Point2D.Double touchPoint)
              can be used to make the element change its position to be centered under the given point
     void paint(Graphics g)
              Call the other paint()at high quality.
     void paint(Graphics2D g, int qual)
              Paint the frame ...
     void paintBackInternal(Graphics2D g)
               
     void paintFoldCorner(Graphics2D Graphics_Arg)
              Paint the corners to resize a frame (when selected)
     void paintInternal(Graphics2D g)
               
    protected  void paintMenu2(Graphics2D g)
               
     void paintResizeCornerBR(Graphics2D Graphics_Arg)
              paint the bottom right corner for resize
     void paintResizeCornerTL(Graphics2D Graphics_Arg)
              Paint the corners to resize a frame (when selected)
     void paintRotateCorner(Graphics2D Graphics_Arg)
              Paint the corner to rotate a frame (when selected)
    protected  void paintShadow(Graphics2D g)
              delegate shadow painting to the ShadowManager
    protected  void paintShadowOld(Graphics2D g)
              paint shadow the old way
     void paintSlaves(Graphics2D g)
              Call the other paint() of all the slaves
     void paintSoftBorder(Graphics2D Graphics_Arg)
              paint an antialised border on top of the regular border to soften the edge when rotated // @TODO respect the clip or remove
    protected  MouseEvent redispatchEvent(MouseEvent event)
              Convert a MouseEvent and dispatch it synchronized because of the setContentPane
     void refreshShadow()
              refresh the cast shadow
     void removeAllSlaveElement()
               
     void removeDSElementListener(DSElementListener listener)
              Unregister a elementlistener who don't want anymore to know when an element is resized, rotated, moved , etc.
     void removeDSElementPreListener(DSElementPreListener listener)
               
     void removeSlaveElement(DSElement dsElement)
              remove a slave WIHOUT demoting to th
     void repaint()
               
    protected  void resetSlaveFrame(DSElement dsElement)
               
     void reshape(int x_Arg, int y_Arg, int width_Arg, int height_Arg)
              Deprecated. We had to overwrite this deprecated function because it is where the code is done in JComponent
     void setAbsoluteScale(double absolutescale)
              change the absolute scale factor.
     void setActive(boolean active_Arg)
              change if the component is active or not (with shadow = is selected)
     void setAllCorners(boolean corner_Arg)
              say if the component is resizable & rotable zoomable and foldable
     void setAlpha(double alpha)
              change the angle from the right horitontal direction.
     void setAlphaAndD(double alpha, double d, int cause)
               
     void setAnnotable(boolean isInkButton)
               
     void setAnnotatable(boolean annotatable_Arg)
              Sets the annotatable attribute of the DSFrame object
     void setAnnotationOptions(int annotationOptions)
               
     void setBackClippingShape(Shape backClippingShape)
              set the clipping Shape used to restrict the painting
     void setBackGlassPane(Container pane)
              change the backGlassPane
     void setBackOpacity(float backOpacity)
               
     void setBackPane(Container pane)
              change the backpane
     void setBehavior(int beh)
              Sets the behavior attribute of the DSWindow object : CENTERED, SHIFTED, ROTATED, BETATED
     void setBeta(double alpha)
              change the angle around its own center, not the center of the polar coordinate system
     void setBeta(double alpha, int cause)
               
     void setBetaAbs(boolean betaAbs)
              change how to use beta.
     void setCenter(Point c)
              Set the center attribute of the DSFrame object.
     void setCenterTo(double x_Arg, double y_Arg)
              set the variable center of gravity of this element
     void setCenterTo(Point2D.Double p)
               
     void setCornerFold(boolean corner_Arg)
              change if the component has a corner for folding
     void setCornerRotation(boolean corner_Arg)
               
     void setCornersResizeBR(boolean corner_Arg)
               
     void setCornersResizeTL(boolean corner_Arg)
               
     void setD(double d)
              change the distance to the center of the circular layout
     void setFingerRotatable(boolean fingerRotatable_Arg)
              change if the component can be rotated by rotating the finger (vision feature)
     void setFingerRotationMode(DSFrame.FingerRotationMode fingerRotationMode_Arg)
              change the finger rotation mode (vision feature)
     void setFingerRotationSpeed(DSFrame.FingerRotationSpeed fingerRotationSpeed)
              change the finger rotation speed
     void setFoldable(boolean foldable_Arg)
              Sets the foldable attribute of the DSFrame object
     void setFoldReverse(boolean fr)
               
     void setFrontClippingShape(Shape frontClippingShape)
              set the clipping Shape used to restrict the painting
     void setFrontier(int frontier)
               
     void setFrontOpacity(float frontOpacity)
               
     void setGlobalClippingShape(Shape globalClippingShape)
              set the clipping Shape used to restrict the painting
     void setIcon(boolean Icon_Arg)
              is not currently implemented
     void setIDOwner(int id)
              set the user id of the owner of this object (-1 is no owner)
     void setInertiaType(int type)
               
     void setJMenuBar(JMenuBar m)
               
     void setJMenuBarPosition(int p)
               
     void setMaximumScale(double maximumScale)
               
     void setMinimumScale(double minimumScale)
               
     void setMode(int mode_arg)
              Sets the interactive mode of the DSFrame object : WAITING, DRAGGING, ZOOMING_TL, ZOOMING_BR,...
     void setPreferredSize(Dimension dim_Arg)
               
     void setRotatable(boolean rotatable_Arg)
              change if the component can be rotated around its own center
     void setRotationCorner(int fixedPoint)
               
     void setScale(double scale)
              change the scale factor to resize the element at low level (pixel by pixel).
     void setShadow(int shadow)
               
     void setShadowAdditionnalAngle(double shadowAdditionnalAngle)
               
     void setShadowClip(Shape shadowClip)
               
     void setShadowDistance(int dist)
               
     void setShadowHighQuality(boolean shadowHighQuality)
               
     void setShadowSource(double ssAlpha, double ssD)
               
     void setSize(Dimension Dimension_Arg)
              change the size of the DSframe
     void setSize(int width, int height)
              Elements are displayed around their center (not around their top left corner) Width and Height are the amount of space used by the repaint.
     void setSlavePosition(int slavePosition)
              TOP (slaves will appear on top of their master), BOTTOM (opposite) or IN_BETWEEN (will appear between the recto and the verso)
     void setSlaveTransform(AffineTransform slaveTransform)
               
     void setSnapAngle(double snapAngle)
               
     void setTitleBarPosition(int p)
              tells whether a title bar must be visible
     void setTransparency(int transparency)
               
     void setViewPort(JViewport jViewport_arg)
              change what is known as the "scrollable part of the frame".
     void setZoomable(boolean Zoomable)
               
     void startAnnotating(MouseEvent evt_arg)
              start an annotation
     String toString()
              
    protected  Point2D.Double transformBackToLocal(Point2D.Double Point_Arg)
              take a point in the local coordinate system and transform it in a local coordinate system ...
     Point2D.Double transformPoint(Point2D.Double p)
              take a point in the local coordinate system and transform it in the global coordinate system
     Point2D.Float transformPoint(Point2D.Float p)
              take a point in the local coordinate system and transform it in the global coordinate system
     Point2D.Double transformVector(Point2D.Double v)
              take a vector in the local coordinate system and transform it in the global coordinate system
     void unfold()
              unfold totally ths frame
     void validate()
              Overload this annoying function which is not relevant anymore
     
    Methods inherited from class javax.swing.JInternalFrame
    addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIconifiable, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUI
     
    Methods inherited from class javax.swing.JComponent
    addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
     
    Methods inherited from class java.awt.Container
    add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusBackward, transferFocusDownCycle, 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, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, show, size, transferFocus, transferFocusUpCycle
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
     
    Methods inherited from interface org.diamondspin.DSElement
    getHeight, getWidth, isVisible, setVisible
     

    Field Detail

    serialVersionUID

    public static int serialVersionUID

    backPane

    protected Container backPane

    backGlassPane

    protected Container backGlassPane

    CORNER_SIZE

    public static final int CORNER_SIZE
    the size in pixels of the colored corners


    grabCornerPoint

    protected Point2D.Double grabCornerPoint

    WAITING

    public static final int WAITING
    See Also:
    Constant Field Values

    DRAGGING

    public static final int DRAGGING
    See Also:
    Constant Field Values

    ZOOMING_BR

    public static final int ZOOMING_BR
    See Also:
    Constant Field Values

    ZOOMING_TL

    public static final int ZOOMING_TL
    See Also:
    Constant Field Values

    RESIZING_TL

    public static final int RESIZING_TL
    See Also:
    Constant Field Values

    RESIZING_BR

    public static final int RESIZING_BR
    See Also:
    Constant Field Values

    ROTATING

    public static final int ROTATING
    See Also:
    Constant Field Values

    FOLDING

    public static final int FOLDING
    See Also:
    Constant Field Values

    ANNOTATING

    public static final int ANNOTATING
    See Also:
    Constant Field Values

    ANNOTATING_SINGLE_TIME

    public static final int ANNOTATING_SINGLE_TIME
    See Also:
    Constant Field Values

    ERASING

    public static final int ERASING
    See Also:
    Constant Field Values

    FOLLOWING_TWO_FINGERS

    public static final int FOLLOWING_TWO_FINGERS
    See Also:
    Constant Field Values

    mode

    protected int mode

    ERASER

    public static final int ERASER
    See Also:
    Constant Field Values

    GRAY

    public static final int GRAY
    See Also:
    Constant Field Values

    DARKER

    public static final int DARKER
    See Also:
    Constant Field Values

    SMALL

    public static final int SMALL
    See Also:
    Constant Field Values

    annotationOptions

    protected int annotationOptions

    biftpTop

    protected transient DSFrame.DSInternalFrameTitlePane biftpTop
    a title bar we can customize


    biftpBottom

    protected transient DSFrame.DSInternalFrameTitlePane biftpBottom

    CENTERED

    public static final int CENTERED
    different behaviors of dsframe

    See Also:
    Constant Field Values

    SHIFTED

    public static final int SHIFTED
    See Also:
    Constant Field Values

    ROTATED

    public static final int ROTATED
    See Also:
    Constant Field Values

    BETATED

    public static final int BETATED
    See Also:
    Constant Field Values

    behavior

    protected int behavior
    behavior is how element behave in the polar coordiate system when dragged. We are using the BETATED behavior by default


    dsTabletopPane

    public transient DSTabletopPane dsTabletopPane
    everything is diplayed in a DSTabletopPane. We work in a centralized architecture


    lastComponent

    protected transient Component lastComponent
    The last component concerned by a mouse event. usefull for mouseEnter and mouseExit


    clickedComponent

    protected transient Component clickedComponent
    The clicked component because it is this one which should receive the mouserelease!


    clickedSlave

    protected transient DSElement clickedSlave

    globalPoint

    protected transient Point2D.Double globalPoint

    d

    protected double d
    Distance to the center of the circular layout 0.0-1.0


    alpha

    protected double alpha
    Angle from the right horitontal direction. Like the trigonometric circle ! 0-2PI


    annotatable

    protected boolean annotatable

    idOwner

    protected int idOwner
    the user who owns this object


    beta

    protected double beta
    Angle around its center ! 0-2PI


    scale

    protected double scale
    scale factor to resize the element at low level (pixel by pixel). 1.0 most of the time.


    minimumScale

    protected double minimumScale

    maximumScale

    protected double maximumScale

    absoluteScale

    protected double absoluteScale
    absolute scale relative to original element size useful for size sharing mode


    initDiagonal

    protected double initDiagonal
    the intial length of the element's diagonal, used for comparison to determine absolute scale


    corners_resize_TL

    protected boolean corners_resize_TL
    if the corners for rotation, resize or fold are displayed


    corners_resize_BR

    protected boolean corners_resize_BR

    corner_rotation

    protected boolean corner_rotation

    corner_fold

    protected boolean corner_fold

    rotatable

    protected boolean rotatable

    zoomable

    protected boolean zoomable

    fingerRotatable

    protected boolean fingerRotatable

    lastRotationEvent

    public DSTouchEvent lastRotationEvent

    fingerRotationMode

    protected DSFrame.FingerRotationMode fingerRotationMode

    fingerRotationSpeed

    protected DSFrame.FingerRotationSpeed fingerRotationSpeed

    diffAngle

    protected double diffAngle

    absoluteShiftAngle

    protected float absoluteShiftAngle

    jViewport1

    protected JViewport jViewport1
    scrollable window should return their JViewport here. If the contentPane is a JViewport it will be done automatically. otherwise you can extend this function or call setViewPort().


    active

    protected boolean active
    if the component is active or not


    scaleCorrection

    protected double scaleCorrection
    Even if a document has its own scale, it can be affected by a global scale effect (blackhole, etc.) Like alpha which is also dependant of the global angle to know where the element is on the screen Min - 1.0 During resizing scale factor is changed and must be saved


    dTopLeftCorner

    protected Point dTopLeftCorner
    Where the mouse cursor grabbed the window (0,0 only if the user clicks in the first pixel of the component !)


    center

    protected Point center
    The center around which the frame rotate


    jComboBox1

    protected DSJComboBox jComboBox1
    because if a popup component is used we must keep track of it to redispatch events to the popup content. used only for dispatch events.


    NONE

    public static final int NONE
    As a DSElement this element can dispatch DSElement events to registered listeners

    See Also:
    Constant Field Values

    TOP

    public static final int TOP
    See Also:
    Constant Field Values

    BOTTOM

    public static final int BOTTOM
    See Also:
    Constant Field Values

    BOTH

    public static final int BOTH
    See Also:
    Constant Field Values

    IN_BETWEEN

    public static final int IN_BETWEEN
    See Also:
    Constant Field Values

    titlebar

    protected int titlebar
    NONE, TOP, BOTTOM or BOTH


    GLASS

    public static final int GLASS
    See Also:
    Constant Field Values

    USER_COLOR

    public static final int USER_COLOR
    See Also:
    Constant Field Values

    transparency

    protected int transparency

    BLACK

    public static final int BLACK
    See Also:
    Constant Field Values

    CAST

    public static final int CAST
    See Also:
    Constant Field Values

    ALWAYS

    public static final int ALWAYS
    See Also:
    Constant Field Values

    COLORBITS

    protected static final int COLORBITS
    See Also:
    Constant Field Values

    shadow

    protected int shadow

    frontier

    protected int frontier

    shadowManager

    protected DSShadowManager shadowManager

    shadowNeedRefresh

    protected boolean shadowNeedRefresh

    foldingManager

    protected DSFoldingManager foldingManager

    thisDSFrame

    protected DSFrame thisDSFrame

    slaveElementList

    protected ArrayList<DSElement> slaveElementList

    slavePosition

    protected int slavePosition
    TOP, BOTTOM or IN_BETWEEN


    betaAbsFlag

    protected int betaAbsFlag

    lastComponentUsed

    protected transient Component lastComponentUsed

    menubar

    protected DSFrame.DSMenuBarProxy menubar

    oldmenubar

    protected DSMenuBar oldmenubar

    CENTER

    public static final int CENTER
    See Also:
    Constant Field Values

    OPPOSITE

    public static final int OPPOSITE
    See Also:
    Constant Field Values

    MIDDLE

    public static final int MIDDLE
    See Also:
    Constant Field Values

    INTELIGENT

    public static final int INTELIGENT
    See Also:
    Constant Field Values

    fixedPointForRotation

    protected int fixedPointForRotation

    savedCenter

    protected Point savedCenter

    savedRotationCornerPosition

    protected Point2D.Double savedRotationCornerPosition

    previousMousePosition

    protected Point previousMousePosition

    previousPreviousMousePosition

    protected Point previousPreviousMousePosition

    curvature

    protected double curvature

    savedBeta

    protected double savedBeta

    inkIcon

    protected static ImageIcon inkIcon

    inkIconPressed

    protected static ImageIcon inkIconPressed

    eraserIconPressed

    protected static ImageIcon eraserIconPressed

    logoIcon

    protected static ImageIcon logoIcon

    inertiaType

    protected int inertiaType

    invertiaCenter

    protected Point2D.Double invertiaCenter

    invertiaMesh

    protected Point2D.Double[][] invertiaMesh
    Constructor Detail

    DSFrame

    public DSFrame(DSTabletopPane pane)
    Constructor without title

    Parameters:
    pane - the container in which the frame exists

    DSFrame

    public DSFrame(String title_Arg,
                   DSTabletopPane dsTabletopPane_Arg)
    Constructor with title

    Parameters:
    title_Arg - the title of the frame
    dsTabletopPane_Arg - the container in which the frame exists
    Method Detail

    getSlaveTransform

    public AffineTransform getSlaveTransform()
    Returns:
    the slaveTransform

    setSlaveTransform

    public void setSlaveTransform(AffineTransform slaveTransform)
    Parameters:
    slaveTransform - the slaveTransform to set

    setBehavior

    public void setBehavior(int beh)
    Sets the behavior attribute of the DSWindow object : CENTERED, SHIFTED, ROTATED, BETATED


    getBehavior

    public int getBehavior()
    Returns:
    the behavior attribute of the DSWindow object

    getMode

    public int getMode()
    Returns:
    the mode attribute of the DSFrame object

    setMode

    public void setMode(int mode_arg)
    Sets the interactive mode of the DSFrame object : WAITING, DRAGGING, ZOOMING_TL, ZOOMING_BR,...

    Parameters:
    mode_arg - The new mode

    getTabletopPane

    public DSTabletopPane getTabletopPane()
    Returns:
    the container of this element

    getD

    public double getD()
    Description copied from interface: DSElement
    The degrees of freedom of the DSElements are their distance to the center, their angle comparing to the right direction (from center to the ful right), a scale (for zooming features) and

    Specified by:
    getD in interface DSElement
    Returns:
    the distance to the center of the circular layout

    setD

    public void setD(double d)
    change the distance to the center of the circular layout

    Specified by:
    setD in interface DSElement
    Parameters:
    d - The new d value

    getAlpha

    public double getAlpha()
    Description copied from interface: DSElement
    The degrees of freedom of the DSElements are their distance to the center, their angle comparing to the right direction (from center to the ful right), a scale (for zooming features) and

    Specified by:
    getAlpha in interface DSElement
    Returns:
    the angle from the right horitontal direction. Like the trigonometric circle ! 0-2PI

    setAlpha

    public void setAlpha(double alpha)
    change the angle from the right horitontal direction. Like the trigonometric circle ! 0-2PI

    Specified by:
    setAlpha in interface DSElement
    Parameters:
    alpha - The new alpha value

    setAlphaAndD

    public void setAlphaAndD(double alpha,
                             double d,
                             int cause)

    setSize

    public void setSize(Dimension Dimension_Arg)
    change the size of the DSframe

    Overrides:
    setSize in class Component
    Parameters:
    Dimension_Arg - the dimension of the new size

    setSize

    public void setSize(int width,
                        int height)
    Description copied from interface: DSElement
    Elements are displayed around their center (not around their top left corner) Width and Height are the amount of space used by the repaint. some pixels can be transparent anyway

    Specified by:
    setSize in interface DSElement
    Overrides:
    setSize in class Component
    Parameters:
    width - The new size value
    height - The new size value

    isAnnotatable

    public boolean isAnnotatable()
    Gets the annotatable attribute of the DSFrame object


    setAnnotatable

    public void setAnnotatable(boolean annotatable_Arg)
    Sets the annotatable attribute of the DSFrame object


    isFolded

    public boolean isFolded()
    Returns:
    The foldable value

    isFoldable

    public boolean isFoldable()
    Returns:
    The foldable value

    setFoldable

    public void setFoldable(boolean foldable_Arg)
    Sets the foldable attribute of the DSFrame object


    getBackPane

    public Container getBackPane()
    Returns:
    the back pane which lie under the frame ! can be viewed by user only if she/he fold the frame

    setBackPane

    public void setBackPane(Container pane)
    change the backpane


    getBackGlassPane

    public Container getBackGlassPane()
    Returns:
    the glass pane of the back

    setBackGlassPane

    public void setBackGlassPane(Container pane)
    change the backGlassPane


    getBackPaneHeight

    public int getBackPaneHeight()
    Returns:
    the height of the backpane = the height of the contentPane ! Used internally, do not modify

    getBackPaneWidth

    public int getBackPaneWidth()
    Returns:
    the width of the backpane = the width of the contentPane ! Used internally, do not modify

    setIDOwner

    public void setIDOwner(int id)
    set the user id of the owner of this object (-1 is no owner)

    Specified by:
    setIDOwner in interface DSElement
    Parameters:
    id - The new iDOwner value

    getIDOwner

    public int getIDOwner()
    get the id of the user who owns this element

    Specified by:
    getIDOwner in interface DSElement
    Returns:
    The iDOwner value

    getBeta

    public double getBeta()
    Description copied from interface: DSElement
    The angle around its center

    Specified by:
    getBeta in interface DSElement
    Returns:
    the angle around its center

    setBeta

    public void setBeta(double alpha)
    change the angle around its own center, not the center of the polar coordinate system

    Specified by:
    setBeta in interface DSElement
    Parameters:
    alpha - The new beta value

    setBeta

    public void setBeta(double alpha,
                        int cause)
                 throws IllegalArgumentException
    Throws:
    IllegalArgumentException

    getScale

    public double getScale()
    Description copied from interface: DSElement
    The degrees of freedom of the DSElements are their distance to the center, their angle comparing to the right direction (from center to the ful right), a scale (for zooming features) and

    Specified by:
    getScale in interface DSElement
    Returns:
    the scale factor to resize the element at low level (pixel by pixel).

    setScale

    public void setScale(double scale)
    change the scale factor to resize the element at low level (pixel by pixel).

    Specified by:
    setScale in interface DSElement
    Parameters:
    scale - The new scale value

    setAbsoluteScale

    public void setAbsoluteScale(double absolutescale)
    change the absolute scale factor. You may think it is unnecessary but in fact this function is usefull to deserialize


    getAbsoluteScale

    public double getAbsoluteScale()
    get the absolute scale of the document. ie the REAL scale used taking care of scaling technique like fisheye

    Specified by:
    getAbsoluteScale in interface DSElement
    Returns:
    The absScale value

    setAllCorners

    public void setAllCorners(boolean corner_Arg)
    say if the component is resizable & rotable zoomable and foldable

    Parameters:
    corner_Arg - The new corners value

    isCorners

    @Deprecated
    public boolean isCorners()
    Deprecated. The corners are now managed individually

    Returns:
    if this element shows any of the corners

    setCornersResizeTL

    public void setCornersResizeTL(boolean corner_Arg)

    isCornersResizeTL

    public boolean isCornersResizeTL()

    setCornersResizeBR

    public void setCornersResizeBR(boolean corner_Arg)

    isCornersResizeBR

    public boolean isCornersResizeBR()

    setCornerRotation

    public void setCornerRotation(boolean corner_Arg)

    isCornerRotation

    public boolean isCornerRotation()

    setCornerFold

    public void setCornerFold(boolean corner_Arg)
    change if the component has a corner for folding


    isCornerFold

    public boolean isCornerFold()
    Returns:
    if the component has a corner for folding

    setRotatable

    public void setRotatable(boolean rotatable_Arg)
    change if the component can be rotated around its own center


    isRotatable

    public boolean isRotatable()
    Returns:
    if this element can be rotated around its own center

    setFingerRotatable

    public void setFingerRotatable(boolean fingerRotatable_Arg)
    change if the component can be rotated by rotating the finger (vision feature)


    setFingerRotationMode

    public void setFingerRotationMode(DSFrame.FingerRotationMode fingerRotationMode_Arg)
    change the finger rotation mode (vision feature)


    getFingerRotationMode

    public DSFrame.FingerRotationMode getFingerRotationMode()
    Returns:
    the finger rotation mode (vision feature)

    setFingerRotationSpeed

    public void setFingerRotationSpeed(DSFrame.FingerRotationSpeed fingerRotationSpeed)
    change the finger rotation speed


    getFingerRotationSpeed

    public DSFrame.FingerRotationSpeed getFingerRotationSpeed()
    Returns:
    the finger rotation speed

    isFingerRotatable

    public boolean isFingerRotatable()
    Returns:
    if this element can be rotated by the finger

    setRotationCorner

    public void setRotationCorner(int fixedPoint)

    getViewPort

    public JViewport getViewPort()
    Gets the viewPort attribute of the DSFrame object

    Returns:
    The viewPort value

    setViewPort

    public void setViewPort(JViewport jViewport_arg)
    change what is known as the "scrollable part of the frame".

    Parameters:
    jViewport_arg - The new viewPort value

    moveElementCenterTo

    public void moveElementCenterTo(Point2D.Double touchPoint)
    can be used to make the element change its position to be centered under the given point

    Specified by:
    moveElementCenterTo in interface DSElement
    Parameters:
    touchPoint - (the cartesian point under which to center the element)

    setCenterTo

    public void setCenterTo(double x_Arg,
                            double y_Arg)
    set the variable center of gravity of this element

    Parameters:
    x_Arg - The new coordinate of the center in this frame coordinate space
    y_Arg - The new coordinate of the center in this frame coordinate space

    setCenterTo

    public void setCenterTo(Point2D.Double p)

    isActive

    public boolean isActive()
    Description copied from interface: DSElement
    in the centralized architecture we have some elements are in the views and one or few element are handled directly by the DSTabletopPane as drag&dropped elements. the element have to know if they are selected (or active) to repaint differently. We didn't choose the word selected which can also be implemented independently in a view to select elements.

    Specified by:
    isActive in interface DSElement
    Returns:
    if the component is active or not (with shadow = is selected)

    setActive

    public void setActive(boolean active_Arg)
    change if the component is active or not (with shadow = is selected)

    Specified by:
    setActive in interface DSElement
    Parameters:
    active_Arg - The new active value

    getCenter

    public Point getCenter()
    Returns:
    the center attribute of the DSFrame object. Please do not modify the returned Point coordinate. And now, we return a clone of it, 'coz you're untrustworthy ;-)

    setCenter

    public void setCenter(Point c)
    Set the center attribute of the DSFrame object. The frame will look like it has been shifted as the new center is put in the place described by (alpha, d).


    moveCenter

    public void moveCenter(Point c)
    Set the center attribute of the DSFrame object. Moreover, to avoid the frame being shifted as the new center is put in the place described by (alpha, d), alpha, d and beta are modified. The frame will look exactly the same. Those changes of alpha, d, and beta are NOT annonced by en event. It is implicit that a change in center lead to a change of alpha, d, and beta. If you want to oppose to these changes, you have to oppose to the change of the center.


    moveCenter

    protected void moveCenter(Point c,
                              int cause)
    move the center point somewhere on the table


    setIcon

    public void setIcon(boolean Icon_Arg)
                 throws PropertyVetoException
    is not currently implemented

    Overrides:
    setIcon in class JInternalFrame
    Parameters:
    Icon_Arg - The new icon value
    Throws:
    PropertyVetoException - Description of the Exception

    isShowing

    public boolean isShowing()
    to foul AWT and make it believe this component is showing on screen and must be properly initialized

    Overrides:
    isShowing in class Component

    grabElement

    public boolean grabElement(int dX_Arg,
                               int dY_Arg)
    Make the element to been dragged. uses the coordinates given as grab point in the local coordinate system

    Specified by:
    grabElement in interface DSElement
    Parameters:
    dX_Arg - Description of the Parameter
    dY_Arg - Description of the Parameter
    Returns:
    Description of the Return Value

    addDSElementListener

    public void addDSElementListener(DSElementListener listener)
    register a elementlistener who want to know when an element is resized, rotated, moved , etc.

    Specified by:
    addDSElementListener in interface DSElement
    Parameters:
    listener - the new listener

    removeDSElementListener

    public void removeDSElementListener(DSElementListener listener)
    Unregister a elementlistener who don't want anymore to know when an element is resized, rotated, moved , etc.

    Specified by:
    removeDSElementListener in interface DSElement
    Parameters:
    listener - the listener

    getDSElementListener

    public DSElementListener[] getDSElementListener()

    addDSElementPreListener

    public void addDSElementPreListener(DSElementPreListener listener)

    removeDSElementPreListener

    public void removeDSElementPreListener(DSElementPreListener listener)

    getDSElementPreListener

    public DSElementPreListener[] getDSElementPreListener()

    fireDSElementMovedEvent

    public void fireDSElementMovedEvent(double distance_Arg,
                                        double tangle,
                                        int cause)
    Fire the events to the suscribers

    Parameters:
    distance_Arg - Description of the Parameter
    tangle - Description of the Parameter

    fireDSElementResizedEvent

    public void fireDSElementResizedEvent(int w,
                                          int h,
                                          int cause)
    Fire the events to the suscribers

    Parameters:
    w - width
    h - height
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    fireDSElementCenterChangedEvent

    public void fireDSElementCenterChangedEvent(int x,
                                                int y,
                                                int cause)
    Fire the events to the suscribers

    Parameters:
    x - , y the new center of the frame
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    fireDSElementZoomedEvent

    public void fireDSElementZoomedEvent(double s,
                                         int cause)
    Fire a zoom event to the suscribers

    Parameters:
    s - s new scale of the frame
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    fireDSelementContentRepainted

    public void fireDSelementContentRepainted(int cause)
    Fire a repainted event to the suscribers

    Parameters:
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    fireDSElementRotatedEvent

    public void fireDSElementRotatedEvent(double b,
                                          int cause)
    Fire the events to the suscribers

    Parameters:
    b - Description of the Parameter
    cause - constant describing the cause of the event (USER, NO_MORE_ALLOWED, SOFTWARE, etc.)

    fireDSElementFoldedEvent

    public void fireDSElementFoldedEvent(double fangle,
                                         double fproportion,
                                         int cause)
    Fire the events to the suscribers

    Parameters:
    fangle - direction of the folding
    fproportion - fold proportion 0=No fold, 1=totally folded
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    fireDSElementGrabbingEvent

    public boolean fireDSElementGrabbingEvent(int type)
    Fire the grab events to the suscribers before it is taken into account so they can cancel it

    Parameters:
    type - constant describing what king of grabbing (MOVE, ROTATE RESIZE, FOLD or ZOOM)
    Returns:
    grabbing can be cancelled by listener. return false if grabbing has been cancelled

    fireDSElementDroppedEvent

    public void fireDSElementDroppedEvent(int type)
    Fire the events to the suscribers

    Parameters:
    type - constant describing what king of grabbing (MOVE, ROTATE RESIZE, FOLD or ZOOM)

    fireDSElementDemotedEvent

    public void fireDSElementDemotedEvent()
    Fire a demote event


    fireDSElementPreMovedEvent

    public boolean fireDSElementPreMovedEvent(double distance_Arg,
                                              double tangle,
                                              int cause)
    Fire the move events to the suscribers before it is taken into account so they can cancel it

    Parameters:
    distance_Arg - distance to the center
    tangle - angle from horizontal
    cause - constant describing the cause of the event (USER, NO_MORE_ALLOWED, SOFTWARE, etc.)
    Returns:
    grabbing can be cancelled by listener. return false if grabbing has been cancelled

    fireDSElementPreResizedEvent

    public boolean fireDSElementPreResizedEvent(int w,
                                                int h,
                                                int cause)
    Fire the resize events to the suscribers before it is taken into account so they can cancel it

    Parameters:
    w - width
    h - height
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)
    Returns:
    resize can be cancelled by listener. return false if grabbing has been cancelled

    fireDSElementPreCenterChangedEvent

    public boolean fireDSElementPreCenterChangedEvent(int x,
                                                      int y,
                                                      int cause)
    Fire the set center events to the suscribers before it is taken into account so they can cancel it

    Parameters:
    x - , y the new center
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)
    Returns:
    resize can be cancelled by listener. return false if grabbing has been cancelled

    fireDSElementPreZoomedEvent

    public boolean fireDSElementPreZoomedEvent(double scale,
                                               int cause)
    Fire the events to the suscribers

    Parameters:
    scale - Description of the Parameter
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    fireDSElementPreRotatedEvent

    public boolean fireDSElementPreRotatedEvent(double b,
                                                int cause)
    Fire the events to the suscribers

    Parameters:
    b - Description of the Parameter
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    fireDSElementPreFoldedEvent

    public boolean fireDSElementPreFoldedEvent(double fangle,
                                               double fproportion,
                                               int cause)
    Fire the events to the suscribers

    Parameters:
    fangle - folding direction
    fproportion - folding proportion
    cause - constant describing the cause of the event (USER, SOFTWARE, etc.)

    getDSTabletopPane

    public DSTabletopPane getDSTabletopPane()
    Returns:
    the dsTabletopPane handling this dsframe

    setPreferredSize

    public void setPreferredSize(Dimension dim_Arg)
    Overrides:
    setPreferredSize in class JComponent

    refreshShadow

    public void refreshShadow()
    refresh the cast shadow


    askRefreshShadow

    public void askRefreshShadow()
    ask for a repaint of the cast shadow bitmap


    getMinimumSize

    public Dimension getMinimumSize()
    Overrides:
    getMinimumSize in class JComponent

    setTitleBarPosition

    public void setTitleBarPosition(int p)
    tells whether a title bar must be visible

    Parameters:
    p - the new position of the titlebar = {NONE, TOP, BOTTOM, BOTH}

    getTitleBarPosition

    public int getTitleBarPosition()
    Returns:
    the position of the title bar given by constants TOP, BOTTOM or NONE

    getParent

    public Container getParent()
    Overload this annoying function which is not relevant anymore

    Overrides:
    getParent in class Component
    Returns:
    The parent value

    getLocationOnScreen

    public Point getLocationOnScreen()
    Overload this annoying function which is not relevant anymore

    Overrides:
    getLocationOnScreen in class Component
    Returns:
    The locationOnScreen value

    getGraphics

    public Graphics getGraphics()
    Overload this annoying function which is not relevant anymore

    Overrides:
    getGraphics in class JComponent
    Returns:
    The graphics value

    getBounds

    @Deprecated
    public Rectangle getBounds()
    Deprecated. The bounds are (0,0)=top-left based, and not local center based. They should not be used unless you really know what you do.

    Overload this annoying function which is not relevant anymore

    Overrides:
    getBounds in class Component
    Returns:
    The bounds value

    getBounds

    @Deprecated
    public Rectangle getBounds(Rectangle rv)
    Deprecated. 

    Overrides:
    getBounds in class JComponent

    createImage

    public Image createImage(int Width_Arg,
                             int Height_Arg)
    Overload this annoying function which is not relevant anymore

    Overrides:
    createImage in class Component
    Parameters:
    Width_Arg - Description of the Parameter
    Height_Arg - Description of the Parameter
    Returns:
    Description of the Return Value

    validate

    public void validate()
    Overload this annoying function which is not relevant anymore

    Overrides:
    validate in class Container

    unfold

    public void unfold()
    unfold totally ths frame


    foldTo

    public void foldTo(Point2D.Double pt)
    fold to the given point


    reshape

    @Deprecated
    public void reshape(int x_Arg,
                                   int y_Arg,
                                   int width_Arg,
                                   int height_Arg)
    Deprecated. We had to overwrite this deprecated function because it is where the code is done in JComponent

    change the size of the DSframe

    Overrides:
    reshape in class JInternalFrame
    Parameters:
    x_Arg - The new size value
    y_Arg - The new size value
    width_Arg - The new size value
    height_Arg - The new size value

    paintInternal

    public void paintInternal(Graphics2D g)

    paintBackInternal

    public void paintBackInternal(Graphics2D g)

    paint

    public void paint(Graphics g)
    Call the other paint()at high quality. There are not yet 2 qualities of painting for this element

    Specified by:
    paint in interface DSElement
    Overrides:
    paint in class JComponent
    Parameters:
    g - Graphics to draw with

    paint

    public void paint(Graphics2D g,
                      int qual)
    Paint the frame ... and hopefully every swing component which has been added in it

    Specified by:
    paint in interface DSElement
    Parameters:
    g - a graphic context on the general component
    qual - Quality of the painting*

    paintSlaves

    public void paintSlaves(Graphics2D g)
    Call the other paint() of all the slaves

    Parameters:
    g - Graphics to draw with

    paintShadow

    protected void paintShadow(Graphics2D g)
    delegate shadow painting to the ShadowManager

    Parameters:
    g - Graphics to draw with

    paintShadowOld

    protected void paintShadowOld(Graphics2D g)
    paint shadow the old way

    Parameters:
    g - Graphics to draw with

    paintFoldCorner

    public void paintFoldCorner(Graphics2D Graphics_Arg)
    Paint the corners to resize a frame (when selected)

    Parameters:
    Graphics_Arg - the painting object

    paintResizeCornerTL

    public void paintResizeCornerTL(Graphics2D Graphics_Arg)
    Paint the corners to resize a frame (when selected)

    Parameters:
    Graphics_Arg - the painting object

    paintResizeCornerBR

    public void paintResizeCornerBR(Graphics2D Graphics_Arg)
    paint the bottom right corner for resize


    paintRotateCorner

    public void paintRotateCorner(Graphics2D Graphics_Arg)
    Paint the corner to rotate a frame (when selected)

    Parameters:
    Graphics_Arg - the painting object

    getSnapAngle

    public double getSnapAngle()
    Returns:
    the snapAngle

    setSnapAngle

    public void setSnapAngle(double snapAngle)
    Parameters:
    snapAngle - the snapAngle to set

    disableSnaping

    public void disableSnaping()

    getTransform

    public AffineTransform getTransform()
    Description copied from interface: DSElement
    The matrix decribing how this element is transformed before rendering

    Specified by:
    getTransform in interface DSElement
    Returns:
    the transform used for painting the content pane

    getBackTransform

    public AffineTransform getBackTransform()
    Returns:
    the transform used for painting the back pane

    transformPoint

    public Point2D.Double transformPoint(Point2D.Double p)
    take a point in the local coordinate system and transform it in the global coordinate system

    Parameters:
    p - the point to transform
    Returns:
    the point transformed. (0,0) = top left point of the screen

    transformPoint

    public Point2D.Float transformPoint(Point2D.Float p)
    take a point in the local coordinate system and transform it in the global coordinate system

    Parameters:
    p - the point to transform
    Returns:
    the point transformed. (0,0) = top left point of the screen

    transformVector

    public Point2D.Double transformVector(Point2D.Double v)
    take a vector in the local coordinate system and transform it in the global coordinate system

    Parameters:
    v - the vector to transform
    Returns:
    the vector transformed. (0,0) = top left point of the screen

    inversePoint

    public Point2D.Double inversePoint(Point2D.Double p)
    take a point in the general coordinate system and transform it in a local coordinate system

    Parameters:
    p - the point to transform
    Returns:
    the point transformed. (0,0) = the center of the frame

    inversePoint

    public Point2D.Float inversePoint(Point2D.Float p)
    take a point in the general coordinate system and transform it in a local coordinate system

    Parameters:
    p - the point to transform
    Returns:
    the point transformed. (0,0) = the center of the frame

    inverseVector

    public Point inverseVector(Point v)
    take a vector in the global tabletop coordinate system and transform it in the local coordinate system

    Parameters:
    v - the vector to transform
    Returns:
    the vector transformed. (0,0) = top left point of the screen

    inversePointBack

    protected Point2D.Double inversePointBack(Point2D.Double p)
    take a point in the general coordinate system and transform it in a local coordinate system ... for the back pane !

    Parameters:
    p - the point to transform
    Returns:
    the point transformed. (0,0) = the center of the frame

    inverseVectorBack

    protected Point2D.Double inverseVectorBack(Point2D.Double Point_Arg)
    take a vector in the general coordinate system and transform it in a local coordinate system ... for the back pane !


    transformBackToLocal

    protected Point2D.Double transformBackToLocal(Point2D.Double Point_Arg)
    take a point in the local coordinate system and transform it in a local coordinate system ... for the back pane !


    repaint

    public void repaint()
    Overrides:
    repaint in class Component

    redispatchEvent

    protected MouseEvent redispatchEvent(MouseEvent event)
    Convert a MouseEvent and dispatch it synchronized because of the setContentPane

    Parameters:
    event - an initial MouseEvent dispatch in sub-components
    Returns:
    Description of the Return Value

    isMouseTarget

    public boolean isMouseTarget(MouseEvent event)
    tells if the mouse event occurred within this element without actually causing the event to take effect yet

    Specified by:
    isMouseTarget in interface DSElement
    Parameters:
    event - Description of the Parameter
    Returns:
    The mouseTarget value

    contains

    public boolean contains(int x,
                            int y)
    Overrides:
    contains in class JComponent

    doesContain

    public boolean doesContain(double x,
                               double y)
    Find whether a given cartesian point falls within this element

    Specified by:
    doesContain in interface DSElement
    Parameters:
    x - cartesian x coordinate
    y - cartesian y coordinate
    Returns:
    whether the given x,y coords fall within this element

    doesContainFront

    public boolean doesContainFront(double x,
                                    double y)
    Find whether a given cartesian point falls within this element's front side

    Parameters:
    x - cartesian x coordinate
    y - cartesian y coordinate
    Returns:
    whether the given x,y coords fall within this element

    doesContainBack

    public boolean doesContainBack(double x,
                                   double y)
    Find whether a given cartesian point falls within the back of this element

    Parameters:
    x - cartesian x coordinate
    y - cartesian y coordinate
    Returns:
    whether the given x,y coords fall within this element

    containsFront

    public boolean containsFront(double x,
                                 double y)

    containsBack

    public boolean containsBack(double x,
                                double y)
    Returns:
    if a given point is contained in the folded back pane

    startAnnotating

    public void startAnnotating(MouseEvent evt_arg)
    start an annotation


    mousePressedInside

    protected void mousePressedInside(MouseEvent event,
                                      Point2D.Double mousePosition_arg)
    handle an internal mouse press event


    mousePressedInsideBack

    protected void mousePressedInsideBack(MouseEvent event,
                                          Point2D.Double localBackPoint)

    mousePressedTestBack

    protected void mousePressedTestBack(MouseEvent event)

    mousePressedTestFront

    protected void mousePressedTestFront(MouseEvent event)

    mousePressed

    public void mousePressed(MouseEvent event)
    Handle a mouse button press event

    Specified by:
    mousePressed in interface MouseListener
    Specified by:
    mousePressed in interface DSElement
    Parameters:
    event - The mouseEvent with more details on the event

    mouseReleased

    public void mouseReleased(MouseEvent event)
    Handle a mouse button release event

    Specified by:
    mouseReleased in interface MouseListener
    Specified by:
    mouseReleased in interface DSElement
    Parameters:
    event - Description of the Parameter

    mouseMoved

    public void mouseMoved(MouseEvent event)
    Handle a mouse cursor move event.

    Specified by:
    mouseMoved in interface MouseMotionListener
    Specified by:
    mouseMoved in interface DSElement
    Parameters:
    event - Description of the Parameter

    mouseDragged

    public void mouseDragged(MouseEvent event)
    Handle a mouse cursor drag event or more the frame if in DRAGGING MODE

    Specified by:
    mouseDragged in interface MouseMotionListener
    Specified by:
    mouseDragged in interface DSElement
    Parameters:
    event - Description of the Parameter

    mouseClicked

    public void mouseClicked(MouseEvent event)
    click listener to detect dbl click on corners -> reset to normal

    Specified by:
    mouseClicked in interface MouseListener
    Specified by:
    mouseClicked in interface DSElement
    Parameters:
    event - Description of the Parameter

    mouseEntered

    public void mouseEntered(MouseEvent event)
    Description of the Method

    Specified by:
    mouseEntered in interface MouseListener
    Parameters:
    event - Description of the Parameter

    mouseExited

    public void mouseExited(MouseEvent event)
    Description of the Method

    Specified by:
    mouseExited in interface MouseListener
    Parameters:
    event - Description of the Parameter

    paintMenu2

    protected void paintMenu2(Graphics2D g)

    setJMenuBar

    public void setJMenuBar(JMenuBar m)
    Overrides:
    setJMenuBar in class JInternalFrame

    getJMenuBar

    public JMenuBar getJMenuBar()
    Overrides:
    getJMenuBar in class JInternalFrame

    setJMenuBarPosition

    public void setJMenuBarPosition(int p)

    getJMenuBarPosition

    public int getJMenuBarPosition()
    Returns:
    the position of the title bar given by constants TOP, BOTTOM or NONE

    paintSoftBorder

    public void paintSoftBorder(Graphics2D Graphics_Arg)
    paint an antialised border on top of the regular border to soften the edge when rotated // @TODO respect the clip or remove

    Parameters:
    Graphics_Arg - Description of the Parameter

    toString

    public String toString()

    Overrides:
    toString in class Component

    addSlaveElement

    public void addSlaveElement(DSElement dsElement)
    handle a list of slave elements. Slaves painting is triggered by this element and mouse event dispatched only if necessary to get an element out of the slave list.


    addSlaveElement

    public void addSlaveElement(int pos,
                                DSElement dsElement)

    removeSlaveElement

    public void removeSlaveElement(DSElement dsElement)
    remove a slave WIHOUT demoting to th


    removeAllSlaveElement

    public void removeAllSlaveElement()

    acceptSlave

    public boolean acceptSlave(DSElement dsElement)
    tells if the given element can be slave of me

    Parameters:
    dsElement - the possible slave to accept or not
    Returns:
    if the frame can get its own slaves

    acceptSlaveryRelease

    public boolean acceptSlaveryRelease()
    tells if I accept to be released

    Specified by:
    acceptSlaveryRelease in interface DSElement
    Returns:
    if I accept to be released

    acceptSlaveRelease

    public boolean acceptSlaveRelease(DSElement dsElement)
    tells if I accept the slave to release by themselves

    Parameters:
    dsElement - the slave who want to get released
    Returns:
    true or false

    acceptSlavery

    public boolean acceptSlavery(DSElement dsElement)
    tells if I accept to become the slave of the given element

    Specified by:
    acceptSlavery in interface DSElement
    Parameters:
    dsElement - the potential master to be slave of
    Returns:
    if I would accept to be the slave

    resetSlaveFrame

    protected void resetSlaveFrame(DSElement dsElement)

    getTransparency

    public int getTransparency()

    setTransparency

    public void setTransparency(int transparency)

    isZoomable

    public boolean isZoomable()

    setZoomable

    public void setZoomable(boolean Zoomable)

    addHeaderButton

    public void addHeaderButton(AbstractButton b)

    addFooterButton

    public void addFooterButton(AbstractButton b)

    setAnnotable

    public void setAnnotable(boolean isInkButton)

    getShadow

    public int getShadow()

    setShadow

    public void setShadow(int shadow)

    getShadowDistance

    public int getShadowDistance()

    setShadowDistance

    public void setShadowDistance(int dist)

    getFrontier

    public int getFrontier()

    setFrontier

    public void setFrontier(int frontier)

    getShadowImage

    public BufferedImage getShadowImage()

    getShadowPosition

    public Point getShadowPosition()

    getShadowSize

    public int getShadowSize()

    computeShadowPosition

    public void computeShadowPosition()

    getShadowClip

    public Shape getShadowClip()

    setShadowClip

    public void setShadowClip(Shape shadowClip)

    getShadowAdditionnalAngle

    public double getShadowAdditionnalAngle()

    setShadowAdditionnalAngle

    public void setShadowAdditionnalAngle(double shadowAdditionnalAngle)

    isShadowSource

    public boolean isShadowSource()

    setShadowSource

    public void setShadowSource(double ssAlpha,
                                double ssD)

    isShadowHighQuality

    public boolean isShadowHighQuality()

    setShadowHighQuality

    public void setShadowHighQuality(boolean shadowHighQuality)

    isMyDragObject

    public boolean isMyDragObject()
    Returns:
    if the drag object of my owner is myself

    isADragObject

    public boolean isADragObject()
    Returns:
    if the element is actually a drag object for the container

    getBackOpacity

    public float getBackOpacity()

    setBackOpacity

    public void setBackOpacity(float backOpacity)

    getFrontOpacity

    public float getFrontOpacity()

    setFrontOpacity

    public void setFrontOpacity(float frontOpacity)

    isFoldReverse

    public boolean isFoldReverse()
    Returns:
    Is the backpane model a recto verso one (true) or a transparent slide (false) one ?

    setFoldReverse

    public void setFoldReverse(boolean fr)
    Parameters:
    fr - Is the backpane model a recto verso one (true) or a transparent slide (false) one ?

    setFrontClippingShape

    public void setFrontClippingShape(Shape frontClippingShape)
    set the clipping Shape used to restrict the painting


    getFrontClippingShape

    public Shape getFrontClippingShape()
    Returns:
    the clipping Shape used to restrict the painting

    setBackClippingShape

    public void setBackClippingShape(Shape backClippingShape)
    set the clipping Shape used to restrict the painting


    getBackClippingShape

    public Shape getBackClippingShape()
    Returns:
    the clipping Shape used to restrict the painting

    setGlobalClippingShape

    public void setGlobalClippingShape(Shape globalClippingShape)
    set the clipping Shape used to restrict the painting


    getGlobalClippingShape

    public Shape getGlobalClippingShape()
    Returns:
    the clipping Shape used to restrict the painting

    isClip

    public boolean isClip()
    Returns:
    if a clipping Shape is used

    getFoldShapeFront

    public Shape getFoldShapeFront()

    getFoldShapeBack

    public Shape getFoldShapeBack()

    getFoldProportion

    public double getFoldProportion()

    getFrontImage

    public BufferedImage getFrontImage()

    getBackImage

    public BufferedImage getBackImage()

    getFoldPoint

    public Point2D.Double getFoldPoint()

    getFoldType

    public int getFoldType()

    getFoldPoint1

    public Point2D.Double getFoldPoint1()

    getFoldPoint2

    public Point2D.Double getFoldPoint2()

    getSlaveElementList

    public ArrayList<DSElement> getSlaveElementList()

    getMinimumScale

    public double getMinimumScale()

    setMinimumScale

    public void setMinimumScale(double minimumScale)

    getMaximumScale

    public double getMaximumScale()

    setMaximumScale

    public void setMaximumScale(double maximumScale)

    setAnnotationOptions

    public void setAnnotationOptions(int annotationOptions)

    setBetaAbs

    public void setBetaAbs(boolean betaAbs)
    Description copied from interface: DSElement
    change how to use beta. if false beta is used as an extra angle around the element center. if true, beta is used to achieve such absolute angle for the top of the document

    Specified by:
    setBetaAbs in interface DSElement

    isBetaAbs

    public boolean isBetaAbs()
    Description copied from interface: DSElement
    indicate how to use beta. if false beta is used as an extra angle around the element center. if true, beta is used to achieve such absolute angle for the top of the document

    Specified by:
    isBetaAbs in interface DSElement

    getSlavePosition

    public int getSlavePosition()

    setSlavePosition

    public void setSlavePosition(int slavePosition)
    TOP (slaves will appear on top of their master), BOTTOM (opposite) or IN_BETWEEN (will appear between the recto and the verso)


    getInertiaType

    public int getInertiaType()

    setInertiaType

    public void setInertiaType(int type)

    inertiaCenter

    public Point2D.Double inertiaCenter()

    inertiaMesh

    public Point2D.Double[][] inertiaMesh()


    Copyright © 2006 Frederic Vernier(LIMSI) Chia Shen(MERL) Guillaume Besacier(LIMSI). All Rights Reserved.