Class JDialogHyperGraph
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
gov.nih.mipav.view.graphVisualization.JDialogHyperGraph
- All Implemented Interfaces:
com.jogamp.newt.event.MouseListener,com.jogamp.newt.event.NEWTEventListener,ActionListener,ComponentListener,ImageObserver,MenuContainer,Serializable,EventListener,Accessible,RootPaneContainer,WindowConstants
public class JDialogHyperGraph
extends JFrame
implements ActionListener, ComponentListener, com.jogamp.newt.event.MouseListener
Frame and user interface for displaying a HyperGraph in MIPAV.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrameNested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrameNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate JButtonprivate JButtonprivate static Color[]set of colors for tree nodes, based on the mipav striped lutprivate MipavGraphPanelDisplays the graph.private JPanelprivate JButtonprivate floatpage marginprivate floatpage widthprivate intcurrent font sizeprivate Stringcurrent directoryprivate org.apache.pdfbox.pdmodel.font.PDFontcurrent fontprivate Stringcurrent file nameprivate JPanelprivate JButtonprivate JButtonprivate static final longgenerated serial idprivate ViewToolBarBuilderprivate JPanelFields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSORFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionDefault Constructor.JDialogHyperGraph(ViewJFrameImage kParent) Creates a HyperGraph using the ViewJFrameImage active image and menu bars as the root and tree of the graph.JDialogHyperGraph(String dir, String file) Creates a HyperGraph visualization from the graph located in the given directory and file. -
Method Summary
Modifier and TypeMethodDescriptionvoidprivate voidaddSubTree(hypergraph.graphApi.Graph tree, hypergraph.graphApi.Node root, hypergraph.graphApi.Node menu, Component[] menuComponents, int level) Function recursively creates a tree structure based on an array of menu components.private voidBuilds the File menu for the HyperGraph interface.voidvoidvoidvoidhypergraph.visualnet.GraphPanelAccess to the graph panel.Returns an xml description of the graph as a String.static ColorgetNodeColor(int level) private voidinit()Initialize the HyperGraph visualization.private voidinitImage(ViewJFrameImage kParent) Initialize the HyperGraph interface based on the ViewJFrameImage parent.private voidLoads the graph preferences file from the Preferences.grtPreferencesDir directory.voidmouseClicked(com.jogamp.newt.event.MouseEvent arg0) voidmouseDragged(com.jogamp.newt.event.MouseEvent arg0) voidmouseEntered(com.jogamp.newt.event.MouseEvent arg0) voidmouseExited(com.jogamp.newt.event.MouseEvent arg0) voidmouseMoved(com.jogamp.newt.event.MouseEvent arg0) voidmousePressed(com.jogamp.newt.event.MouseEvent arg0) voidmouseReleased(com.jogamp.newt.event.MouseEvent arg0) voidmouseWheelMoved(com.jogamp.newt.event.MouseEvent arg0) voidSaves the global graph properties (background color, text sizes) to the default mipav graph preferences file in the Preferences.getPreferencesDir directory.private voidwriteGraph(HashSet<hypergraph.graphApi.Node> visitedSet, FileWriter kWriter, hypergraph.graphApi.Node kNode, int iLevel) Recursively writes a graph to the text file.private voidwriteGraph(HashSet<hypergraph.graphApi.Node> visitedSet, org.apache.pdfbox.pdmodel.PDDocument doc, org.apache.pdfbox.pdmodel.edit.PDPageContentStream[] contentStream, float[] height, hypergraph.graphApi.Node kNode, int iLevel) Recursively writes a graph to the pdf file.voidwriteGraphJPG(String dir, String file) Writes the current HyperGraph as a JPG image.voidwriteGraphPDF(String dir, String file) Writes the current HyperGraph as a PDF.voidwriteGraphTIF(String dir, String file) Writes the current HyperGraph as a TIF image.voidwriteGraphTXT(String dir, String file) Writes the current HyperGraph as a text file.voidwriteGraphXML(String dir, String file) Writes the current HyperGraph as a xml file.private StringwriteImage(String node, String dir, String file, String format, float width) Writes the HyperGraph graph panel display as an image file.Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateMethods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecoratedMethods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFrontMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, 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, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDgenerated serial id- See Also:
-
m_kCurrentDir
current directory -
m_kFileName
current file name -
fixedColor
set of colors for tree nodes, based on the mipav striped lut -
m_kCurrentFont
private org.apache.pdfbox.pdmodel.font.PDFont m_kCurrentFontcurrent font -
m_iCurrentFontSize
private int m_iCurrentFontSizecurrent font size -
m_fPageWidth
private float m_fPageWidthpage width -
m_fPageMargin
private float m_fPageMarginpage margin -
graphPanel
Displays the graph. -
toolbarPanel
-
mainPanel
-
graphPanel2
-
centerRootNodeButton
-
saveGraphButton
-
increaseFontButton
-
decreaseFontButton
-
sep
-
toolbarBuilder
-
-
Constructor Details
-
JDialogHyperGraph
public JDialogHyperGraph()Default Constructor. -
JDialogHyperGraph
Creates a HyperGraph visualization from the graph located in the given directory and file. If either or both are null, the constructor opens a file chooser so the user can select the graph file to open. Graphs are in .xml format, described in the MIPAVGraphXML.xsd file.- Parameters:
dir- directory.file- file name.
-
JDialogHyperGraph
Creates a HyperGraph using the ViewJFrameImage active image and menu bars as the root and tree of the graph. The graph leaves are the menu items. Double-click calls the corresponding action command for the active image.- Parameters:
kParent- ViewJFrameImage.
-
-
Method Details
-
actionPerformed
- Specified by:
actionPerformedin interfaceActionListener
-
getGraphPanel
public hypergraph.visualnet.GraphPanel getGraphPanel()Access to the graph panel.- Returns:
- the graph panel.
-
getGraphXML
Returns an xml description of the graph as a String.- Returns:
- an xml description of the graph as a String.
-
getNodeColor
-
savePreferences
public void savePreferences()Saves the global graph properties (background color, text sizes) to the default mipav graph preferences file in the Preferences.getPreferencesDir directory. -
writeGraphJPG
Writes the current HyperGraph as a JPG image.- Parameters:
dir- directory.file- file name.
-
writeGraphPDF
Writes the current HyperGraph as a PDF.- Parameters:
dir- directory.file- file name.
-
writeGraphTIF
Writes the current HyperGraph as a TIF image.- Parameters:
dir- directory.file- file name.
-
writeGraphTXT
Writes the current HyperGraph as a text file.- Parameters:
dir- directory.file- file name.
-
writeGraphXML
Writes the current HyperGraph as a xml file.- Parameters:
dir- directory.file- file name.
-
addSubTree
private void addSubTree(hypergraph.graphApi.Graph tree, hypergraph.graphApi.Node root, hypergraph.graphApi.Node menu, Component[] menuComponents, int level) Function recursively creates a tree structure based on an array of menu components. Used to build a demo of the HyperGraph out of the MIPAV menus.- Parameters:
tree- current graph.root- the root of the treemenu- the current node, or root of the current sub-treemenuComponents- array of menu items to add to the current sub-treelevel- current level of the graph (root = 0).
-
buildMenu
private void buildMenu()Builds the File menu for the HyperGraph interface. -
init
private void init()Initialize the HyperGraph visualization. The input file and directory are specified in the constructor. -
initImage
Initialize the HyperGraph interface based on the ViewJFrameImage parent. The graph is build recursively from the mipav menus. The leaf nodes are active, when the user double-clicks the action commands are sent to the ViewJFrameImage parent and are performed on the current active image.- Parameters:
kParent-
-
loadPreferences
private void loadPreferences()Loads the graph preferences file from the Preferences.grtPreferencesDir directory. If the graph preferences file doesn't exist, a new one is created with the default values. -
writeGraph
private void writeGraph(HashSet<hypergraph.graphApi.Node> visitedSet, FileWriter kWriter, hypergraph.graphApi.Node kNode, int iLevel) Recursively writes a graph to the text file.- Parameters:
visitedSet- lists the nodes that have already been written. Prevents infinite recursion in graphs with loops.kWriter- output FileWriter.kNode- current node to write.iLevel- current level of the node in the graph.
-
writeGraph
private void writeGraph(HashSet<hypergraph.graphApi.Node> visitedSet, org.apache.pdfbox.pdmodel.PDDocument doc, org.apache.pdfbox.pdmodel.edit.PDPageContentStream[] contentStream, float[] height, hypergraph.graphApi.Node kNode, int iLevel) Recursively writes a graph to the pdf file.- Parameters:
visitedSet- lists the nodes that have already been written. Prevents infinite recursion in graphs with loops.doc- PDDocumentcontentStream- current page stream in the document.height- current height on the page, where the text is written.kNode- current node to write.iLevel- level in the tree of the current node.
-
writeImage
Writes the HyperGraph graph panel display as an image file.- Parameters:
node- name of the root node.dir- output directory.file- output file name.format- format, may be .jpg, .tif, or null.width- desired width of the output image (maintains aspect ratio).- Returns:
- the name of the output file.
-
componentHidden
- Specified by:
componentHiddenin interfaceComponentListener
-
componentMoved
- Specified by:
componentMovedin interfaceComponentListener
-
componentResized
- Specified by:
componentResizedin interfaceComponentListener
-
componentShown
- Specified by:
componentShownin interfaceComponentListener
-
mouseClicked
public void mouseClicked(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mouseClickedin interfacecom.jogamp.newt.event.MouseListener
-
mouseDragged
public void mouseDragged(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mouseDraggedin interfacecom.jogamp.newt.event.MouseListener
-
mouseEntered
public void mouseEntered(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mouseEnteredin interfacecom.jogamp.newt.event.MouseListener
-
mouseExited
public void mouseExited(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mouseExitedin interfacecom.jogamp.newt.event.MouseListener
-
mouseMoved
public void mouseMoved(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mouseMovedin interfacecom.jogamp.newt.event.MouseListener
-
mousePressed
public void mousePressed(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mousePressedin interfacecom.jogamp.newt.event.MouseListener
-
mouseReleased
public void mouseReleased(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mouseReleasedin interfacecom.jogamp.newt.event.MouseListener
-
mouseWheelMoved
public void mouseWheelMoved(com.jogamp.newt.event.MouseEvent arg0) - Specified by:
mouseWheelMovedin interfacecom.jogamp.newt.event.MouseListener
-