public class DefaultView extends View implements WindowListener
This base view is an abstract class that provides mechanism that are necessary in any view :
This view also handle a current selection of nodes and sprites.
The main method to implement is render(Graphics2D)
. This method is
called each time the graph needs to be rendered anew in the canvas.
The render(Graphics2D)
is called only when a repainting is really
needed.
All the painting, by default, is deferred to a GraphRenderer
instance. This mechanism allows developers that do not want to mess with the
viewer/view mechanisms to render a graph in any Swing surface.
This abstract view is able to create a frame that is added around this panel (each view is a JPanel instance). The frame can be removed at any time.
This abstract view handles the closing protocol. This means that it will close the view if needed, or only hide it to allow reopening it later. Furthermore it adds the "ui.viewClosed" attribute to the graph when the view is closed or hidden, and removes it when the view is shown. The value of this graph attribute is the identifier of the view.
JPanel.AccessibleJPanel
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
protected JFrame |
frame
The (optional) frame.
|
protected GraphicGraph |
graph
The graph to render, shortcut to the viewers reference.
|
protected MouseManager |
mouseClicks
Manager for events with the mouse.
|
protected GraphRenderer |
renderer
The graph renderer.
|
private static long |
serialVersionUID |
protected ShortcutManager |
shortcuts
Manager for events with the keyboard.
|
protected Viewer |
viewer
Parent viewer.
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
DefaultView(Viewer viewer,
String identifier,
GraphRenderer renderer) |
Modifier and Type | Method and Description |
---|---|
ArrayList<GraphicElement> |
allNodesOrSpritesIn(double x1,
double y1,
double x2,
double y2)
Search for all the nodes and sprites contained inside the rectangle
(x1,y1)-(x2,y2).
|
void |
beginSelectionAt(double x1,
double y1)
Called by the mouse manager to specify where a node and sprite selection
started.
|
protected void |
checkTitle() |
void |
close(GraphicGraph graph)
Close definitively this view.
|
void |
display(GraphicGraph graph,
boolean graphChanged)
Redisplay or update the view contents.
|
void |
endSelectionAt(double x2,
double y2)
Called by the mouse manager to specify where a node and spite selection
stopped.
|
GraphicElement |
findNodeOrSpriteAt(double x,
double y)
Search for the first node or sprite (in that order) that contains the
point at coordinates (x, y).
|
void |
freezeElement(GraphicElement element,
boolean frozen)
Freeze an element so that the optional layout cannot move it.
|
Camera |
getCamera()
Get a camera object to provide control commands on the view.
|
void |
moveElementAtPx(GraphicElement element,
double x,
double y)
Force an element to move at the given location in pixels.
|
void |
openInAFrame(boolean on)
Open this view JPanel in a frame.
|
void |
paintComponent(Graphics g) |
void |
render(Graphics2D g) |
void |
resizeFrame(int width,
int height)
Set the size of the view frame, if any.
|
void |
selectionGrowsAt(double x,
double y)
The selection already started grows toward position (x, y).
|
void |
setBackLayerRenderer(LayerRenderer renderer)
Set a layer renderer that will be called each time the graph needs to be
redrawn before the graph is rendered.
|
void |
setForeLayoutRenderer(LayerRenderer renderer)
Set a layer renderer that will be called each time the graph needs to be
redrawn after the graph is rendered.
|
void |
setMouseManager(MouseManager manager)
Change the manager for mouse events on this view.
|
void |
setShortcutManager(ShortcutManager manager)
Change the manager for key and shortcuts events on this view.
|
void |
windowActivated(WindowEvent e) |
void |
windowClosed(WindowEvent e) |
void |
windowClosing(WindowEvent e) |
void |
windowDeactivated(WindowEvent e) |
void |
windowDeiconified(WindowEvent e) |
void |
windowIconified(WindowEvent e) |
void |
windowOpened(WindowEvent e) |
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private static final long serialVersionUID
protected GraphicGraph graph
protected ShortcutManager shortcuts
protected MouseManager mouseClicks
protected GraphRenderer renderer
public DefaultView(Viewer viewer, String identifier, GraphRenderer renderer)
public Camera getCamera()
View
public void display(GraphicGraph graph, boolean graphChanged)
View
public void paintComponent(Graphics g)
paintComponent
in class JComponent
protected void checkTitle()
public void close(GraphicGraph graph)
View
public void resizeFrame(int width, int height)
View
resizeFrame
in class View
width
- The new width.height
- The new height.public void openInAFrame(boolean on)
View
openInAFrame
in class View
on
- Add the panel in its own frame or remove it if it already was
in its own frame.public void render(Graphics2D g)
public void beginSelectionAt(double x1, double y1)
View
beginSelectionAt
in class View
x1
- The selection start abscissa.y1
- The selection start ordinate.public void selectionGrowsAt(double x, double y)
View
selectionGrowsAt
in class View
x
- The new end selection abscissa.y
- The new end selection ordinate.public void endSelectionAt(double x2, double y2)
View
endSelectionAt
in class View
x2
- The selection stop abscissa.y2
- The selection stop ordinate.public void windowActivated(WindowEvent e)
windowActivated
in interface WindowListener
public void windowClosed(WindowEvent e)
windowClosed
in interface WindowListener
public void windowClosing(WindowEvent e)
windowClosing
in interface WindowListener
public void windowDeactivated(WindowEvent e)
windowDeactivated
in interface WindowListener
public void windowDeiconified(WindowEvent e)
windowDeiconified
in interface WindowListener
public void windowIconified(WindowEvent e)
windowIconified
in interface WindowListener
public void windowOpened(WindowEvent e)
windowOpened
in interface WindowListener
public ArrayList<GraphicElement> allNodesOrSpritesIn(double x1, double y1, double x2, double y2)
View
allNodesOrSpritesIn
in class View
x1
- The rectangle lowest point abscissa.y1
- The rectangle lowest point ordinate.x2
- The rectangle highest point abscissa.y2
- The rectangle highest point ordinate.public GraphicElement findNodeOrSpriteAt(double x, double y)
View
findNodeOrSpriteAt
in class View
x
- The point abscissa.y
- The point ordinate.public void moveElementAtPx(GraphicElement element, double x, double y)
View
moveElementAtPx
in class View
element
- The element.x
- The requested position abscissa in pixels.y
- The requested position ordinate in pixels.public void freezeElement(GraphicElement element, boolean frozen)
View
freezeElement
in class View
element
- The element.frozen
- If true the element cannot be moved automatically.public void setBackLayerRenderer(LayerRenderer renderer)
View
setBackLayerRenderer
in class View
renderer
- The renderer (or null to remove it).public void setForeLayoutRenderer(LayerRenderer renderer)
View
setForeLayoutRenderer
in class View
renderer
- The renderer (or null to remove it).public void setMouseManager(MouseManager manager)
View
MouseManager.init(GraphicGraph, View)
method must not yet have been called.setMouseManager
in class View
manager
- The new manager, or null to set the default manager.MouseManager
public void setShortcutManager(ShortcutManager manager)
View
ShortcutManager.init(GraphicGraph, View)
method must not yet have been called.setShortcutManager
in class View
manager
- The new manager, or null to set the default managerShortcutManager
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses