O2Plib.gui
Class PopupTableEditDialog

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by O2Plib.gui.PopupTableEditDialog
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class PopupTableEditDialog
extends java.awt.Dialog
implements java.awt.event.ItemListener, java.awt.event.ActionListener, java.awt.event.WindowListener

Class PopupTableEditDialog implements a popup GUI to create and edit the sample annotation used in the accessioning program. NOTE: in the future this will be depricated in favor of using PEDRo or a similar XML database editor program.

This work was produced by Peter Lemkin of the National Cancer Institute, an agency of the United States Government. As a work of the United States Government there is no associated copyright. It is offered as open source software under the Mozilla Public License (version 1.1) subject to the limitations noted in the accompanying LEGAL file. This notice must be included with the code. The Open2Dprot Mozilla and Legal files are available on http://Open2Dprot.sourceforge.net/.

Version:
$Date: 2005/10/21 15:42:54 $ $Revision: 1.7 $
Author:
P. Lemkin, NCI-Frederick, Frederick, MD, 21702
See Also:
Open2Dprot Home, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.awt.Adjustable aH
          Scroll pane to hold the Name-Value scrollable panel
private  java.awt.Adjustable aV
           
 boolean changedTableFieldsDataFlag
          Flag indicating that the data fields were edited
 java.lang.String[] changedValueData
          Changed user data [0:nData-1] if not null, then make a TextField with this data on the right else empty Label.
 boolean changeGuiFlag
          flag to indicating that the GUI may have changed and that it should be rebuilt.
 java.awt.Panel controlPanel
          Control panel for the main frame
private  java.awt.Label[] dataLabel
          Left [0:nData-1] labels if not using checkbox
private  java.awt.TextField[] dataTextField
          Right [0:nData-1] TextFields if used
 boolean doneFlag
          Flag indicating that the editing is finished.
private  java.awt.ScrollPane editPane
          Scrollable edit pane that holds the gridPanel
 java.lang.String editType
          Type of editing being performed
 java.lang.String[] fieldNameData
          FieldName data [0:nData-1] has a Label with the data.
 java.lang.String fontFamily
           
private  java.awt.Panel gridPanel
          Where put the grid of (Label,TextField) name value pairs
 java.lang.String[] helpData
          Optional help data [0:nData-1] if not null, then this is info on the corresponding fieldNameData.
 boolean isVisibleFlag
          Set true if window is visible
 java.awt.Font largeFont
           
private  int MAX_TEXT_FIELD_WIDTH
           
 java.awt.Font mediumFont
           
(package private) static int MSG_COLS
           
(package private) static int MSG_ROWS
          size of the text area in characters
private  java.awt.TextArea msgTextArea
          Text area GUI for message rporting
 int nData
          # of name-value pair data items
 boolean readOnlyFlag
          Flag indicating that table is read only
 int rowToEdit
          Row to edit in the table
(package private) static long serialVersionUID
          frame id
 java.awt.Font smallFont
           
 Table tbl
          Table being edited.
 java.lang.String tblName
          Table name for use in the title
private  int textAreaFontSize
          font size
 java.awt.Font textFieldFont
           
private  java.lang.String textFontFamily
          font family for message window
 java.lang.String title
          Title of Table being edited.
 java.awt.Checkbox useTemplateCB
          the "Use template" checkbox
 boolean useTemplateFlag
          set from "Use template" checkbox
 java.lang.String[] valueData
          Value user data [0:nData-1] for a TextField with this data on the right
 java.lang.String[] valueDataOrig
          Original Value user data [0:nData-1] for a TextField with this data on the right.
 int VIEW_HEIGHT
          Height of the frame
 int VIEW_WIDTH
          Width of the frame
 int viewHeight
           
 int viewWidth
           
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PopupTableEditDialog(java.awt.Frame f, java.lang.String title, Table tbl, java.lang.String tblName, java.lang.String editType, int rowToEdit, boolean modalFlag, boolean readOnlyFlag)
          PopupTableEditDialog() - Constructor
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          actionPerformed() - Handle button clicks
 void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
          adjustmentValueChanged() - handle ImageScroller scroll events.
 boolean buildAccWizardGUI()
          buildAccWizardGUI() - Build the ImageViewer GUI
 boolean checkIfChangedAndSave()
          checkIfChangedAndSave() - copy current valueData[] to valueDataOrig[]
 void close()
          close() - close this popup and reset flags
 java.lang.String[] getNewValueDataResults()
          getNewValueDataResults() - get changedValueData[] from the text fields.
 java.awt.Dimension getPreferredSize()
          getPreferredSize() - getPreferredSize, needed for sizing frame and ScrollPane correctly.
 void itemStateChanged(java.awt.event.ItemEvent e)
          itemStateChanged() - handle item state changed events NOTE: need to implement radio groups here since AWT only implements radio groups for Checkboxes, and CheckboxMenuItems.
 void paint(java.awt.Graphics g)
          paint() - repaint scrollable canvas in region defined by scroll bars
 void positionImageWindow()
          positionImageWindow() - position image window on the screen
 void resetTextFields()
          resetTextFields() - reset the text fields from the valueData[]
 void restoreDataOrigCopy()
          restoreDataOrigCopy() - restore valueData[] from valueDataOrig[]
 void setDataOrigCopy()
          setDataOrigCopy() - copy current valueData[] to valueDataOrig[]
 void setEditable(boolean readOnlyFlag)
          setEditable() - set editable status
 boolean setNameValueEditGUI(java.lang.String dName)
          setNameValueEditGUI() - setup and build the name-value wizard.
 boolean setNewValueData(java.lang.String[] newValueData)
          setNewValueData() - set new valueData[] into the local database and dataTextField.
 void showMsg(java.lang.String msg)
          showMsg() - display the msg in text area window
 void update(java.awt.Graphics g)
          update() - update without background the scrollable canvas
 void windowActivated(java.awt.event.WindowEvent e)
           
 void windowClosed(java.awt.event.WindowEvent e)
           
 void windowClosing(java.awt.event.WindowEvent e)
          windowClosing() - closing down the window, get rid of the frame.
 void windowDeactivated(java.awt.event.WindowEvent e)
           
 void windowDeiconified(java.awt.event.WindowEvent e)
           
 void windowIconified(java.awt.event.WindowEvent e)
           
 void windowOpened(java.awt.event.WindowEvent e)
           
 
Methods inherited from class java.awt.Dialog
addNotify, getAccessibleContext, getTitle, hide, isModal, isResizable, isUndecorated, paramString, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
frame id

See Also:
Constant Field Values

title

public java.lang.String title
Title of Table being edited.


tbl

public Table tbl
Table being edited.


tblName

public java.lang.String tblName
Table name for use in the title


editType

public java.lang.String editType
Type of editing being performed


rowToEdit

public int rowToEdit
Row to edit in the table


changeGuiFlag

public boolean changeGuiFlag
flag to indicating that the GUI may have changed and that it should be rebuilt.


VIEW_WIDTH

public final int VIEW_WIDTH
Width of the frame

See Also:
Constant Field Values

VIEW_HEIGHT

public final int VIEW_HEIGHT
Height of the frame

See Also:
Constant Field Values

MAX_TEXT_FIELD_WIDTH

private final int MAX_TEXT_FIELD_WIDTH
See Also:
Constant Field Values

MSG_ROWS

static final int MSG_ROWS
size of the text area in characters

See Also:
Constant Field Values

MSG_COLS

static final int MSG_COLS
See Also:
Constant Field Values

editPane

private java.awt.ScrollPane editPane
Scrollable edit pane that holds the gridPanel


gridPanel

private java.awt.Panel gridPanel
Where put the grid of (Label,TextField) name value pairs


controlPanel

public java.awt.Panel controlPanel
Control panel for the main frame


aH

private java.awt.Adjustable aH
Scroll pane to hold the Name-Value scrollable panel


aV

private java.awt.Adjustable aV

msgTextArea

private java.awt.TextArea msgTextArea
Text area GUI for message rporting


textAreaFontSize

private int textAreaFontSize
font size


textFontFamily

private java.lang.String textFontFamily
font family for message window


fontFamily

public java.lang.String fontFamily

smallFont

public java.awt.Font smallFont

mediumFont

public java.awt.Font mediumFont

largeFont

public java.awt.Font largeFont

textFieldFont

public java.awt.Font textFieldFont

nData

public int nData
# of name-value pair data items


fieldNameData

public java.lang.String[] fieldNameData
FieldName data [0:nData-1] has a Label with the data.


helpData

public java.lang.String[] helpData
Optional help data [0:nData-1] if not null, then this is info on the corresponding fieldNameData.


valueData

public java.lang.String[] valueData
Value user data [0:nData-1] for a TextField with this data on the right


valueDataOrig

public java.lang.String[] valueDataOrig
Original Value user data [0:nData-1] for a TextField with this data on the right. This is used for "Restore data". Once the data has been shifted to the next row, this data is no longer valid.


changedValueData

public java.lang.String[] changedValueData
Changed user data [0:nData-1] if not null, then make a TextField with this data on the right else empty Label.


dataLabel

private java.awt.Label[] dataLabel
Left [0:nData-1] labels if not using checkbox


dataTextField

private java.awt.TextField[] dataTextField
Right [0:nData-1] TextFields if used


isVisibleFlag

public boolean isVisibleFlag
Set true if window is visible


changedTableFieldsDataFlag

public boolean changedTableFieldsDataFlag
Flag indicating that the data fields were edited


doneFlag

public boolean doneFlag
Flag indicating that the editing is finished.


readOnlyFlag

public boolean readOnlyFlag
Flag indicating that table is read only


useTemplateCB

public java.awt.Checkbox useTemplateCB
the "Use template" checkbox


useTemplateFlag

public boolean useTemplateFlag
set from "Use template" checkbox


viewWidth

public int viewWidth

viewHeight

public int viewHeight
Constructor Detail

PopupTableEditDialog

public PopupTableEditDialog(java.awt.Frame f,
                            java.lang.String title,
                            Table tbl,
                            java.lang.String tblName,
                            java.lang.String editType,
                            int rowToEdit,
                            boolean modalFlag,
                            boolean readOnlyFlag)
PopupTableEditDialog() - Constructor

Parameters:
f - is the parent frame
title - is the title for the Table to edit
tbl - is the Table to edit
tblName - is the name of the table to edit
editType - is the type of table to edit
rowToEdit - is the row # to edit
modalFlag - true to make this a modal dialog
Method Detail

getPreferredSize

public java.awt.Dimension getPreferredSize()
getPreferredSize() - getPreferredSize, needed for sizing frame and ScrollPane correctly.

Overrides:
getPreferredSize in class java.awt.Container
Returns:
frame size

setEditable

public void setEditable(boolean readOnlyFlag)
setEditable() - set editable status

Parameters:
readOnlyFlag - to prevent fields from being edited

setNameValueEditGUI

public boolean setNameValueEditGUI(java.lang.String dName)
setNameValueEditGUI() - setup and build the name-value wizard.

Returns:
true if succeed

buildAccWizardGUI

public boolean buildAccWizardGUI()
buildAccWizardGUI() - Build the ImageViewer GUI


resetTextFields

public void resetTextFields()
resetTextFields() - reset the text fields from the valueData[]


showMsg

public void showMsg(java.lang.String msg)
showMsg() - display the msg in text area window

Parameters:
msg - to display

positionImageWindow

public void positionImageWindow()
positionImageWindow() - position image window on the screen


close

public void close()
close() - close this popup and reset flags


windowClosing

public void windowClosing(java.awt.event.WindowEvent e)
windowClosing() - closing down the window, get rid of the frame.

Specified by:
windowClosing in interface java.awt.event.WindowListener
Parameters:
e - is window closing event
See Also:
close()

windowOpened

public void windowOpened(java.awt.event.WindowEvent e)
Specified by:
windowOpened in interface java.awt.event.WindowListener

windowActivated

public void windowActivated(java.awt.event.WindowEvent e)
Specified by:
windowActivated in interface java.awt.event.WindowListener

windowClosed

public void windowClosed(java.awt.event.WindowEvent e)
Specified by:
windowClosed in interface java.awt.event.WindowListener

windowDeactivated

public void windowDeactivated(java.awt.event.WindowEvent e)
Specified by:
windowDeactivated in interface java.awt.event.WindowListener

windowDeiconified

public void windowDeiconified(java.awt.event.WindowEvent e)
Specified by:
windowDeiconified in interface java.awt.event.WindowListener

windowIconified

public void windowIconified(java.awt.event.WindowEvent e)
Specified by:
windowIconified in interface java.awt.event.WindowListener

update

public void update(java.awt.Graphics g)
update() - update without background the scrollable canvas

Overrides:
update in class java.awt.Container
Parameters:
g - is graphics context

paint

public void paint(java.awt.Graphics g)
paint() - repaint scrollable canvas in region defined by scroll bars

Overrides:
paint in class java.awt.Container
Parameters:
g - is graphics context

getNewValueDataResults

public java.lang.String[] getNewValueDataResults()
getNewValueDataResults() - get changedValueData[] from the text fields. Then compare it against valueData[]. If it is different then return changedValueData[] else return null.

Returns:
changed data, null if no change

setNewValueData

public boolean setNewValueData(java.lang.String[] newValueData)
setNewValueData() - set new valueData[] into the local database and dataTextField.

Returns:
true if succeed

checkIfChangedAndSave

public boolean checkIfChangedAndSave()
checkIfChangedAndSave() - copy current valueData[] to valueDataOrig[]


setDataOrigCopy

public void setDataOrigCopy()
setDataOrigCopy() - copy current valueData[] to valueDataOrig[]


restoreDataOrigCopy

public void restoreDataOrigCopy()
restoreDataOrigCopy() - restore valueData[] from valueDataOrig[]


adjustmentValueChanged

public void adjustmentValueChanged(java.awt.event.AdjustmentEvent e)
adjustmentValueChanged() - handle ImageScroller scroll events.

Parameters:
e - is adjustment event for scroll bars

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
itemStateChanged() - handle item state changed events NOTE: need to implement radio groups here since AWT only implements radio groups for Checkboxes, and CheckboxMenuItems.

Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Parameters:
e - is ItemEvent

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed() - Handle button clicks

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - is action evet