ucot.ui.gui
Class EntityPropertiesDialog

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 javax.swing.JDialog
                      extended by ucot.ui.gui.EntityPropertiesDialog
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class EntityPropertiesDialog
extends javax.swing.JDialog

Dialog for modifying a single entity's properties in the analyze model. User can modify entity's name, its methods, attributes and parents with this dialog and when modifications are done, the modified analyze model is returned. Usage: - first initialize an EntityPropertiesDialog objecs as any other object. - then call method: modifyEntityProperties(Entity to edit, AnalyzeModel) which returns the modified analyze model.

Author:
ilanliuk, tujupien.
See Also:
Serialized Form

Nested Class Summary
protected static class EntityPropertiesDialog.CardinalityVerifier
          This inline class provides a syntax verifier for the cardinalities.
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
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  AnalyzeModel analyzeModel
           
protected static java.lang.String ATTRIBUTES_TAB_HEADER
           
protected static java.lang.String[] ATTRIBUTES_TABLE_COLUMNS
           
private  javax.swing.JPanel attributesContainerPanel
           
private  javax.swing.JScrollPane attributesScrollPane
           
private  javax.swing.JTable attributesTable
           
private  javax.swing.table.DefaultTableModel attributesTableModel
           
private  java.awt.event.ActionListener buttonListener
          ActionListener for all button events within the dialog.
protected static java.lang.String CARDINALITY_TOOLTIP
           
protected static java.lang.String DEFAULT_CARDINALITY
           
protected static java.lang.String DELETE_ATTRIBUTE_BUTTON
           
protected static java.lang.String DELETE_ATTRIBUTE_BUTTON_ACTION
           
protected static java.lang.String DELETE_ENTITY_BUTTON
           
protected static java.lang.String DELETE_ENTITY_BUTTON_ACTION
           
protected static java.lang.String DELETE_METHOD_BUTTON
           
protected static java.lang.String DELETE_METHOD_BUTTON_ACTION
           
protected static java.lang.String DELETE_PARENT_BUTTON
           
protected static java.lang.String DELETE_PARENT_BUTTON_ACTION
           
protected static java.lang.String DIALOG_HEADER
           
private  javax.swing.JTextField entityName
           
private  javax.swing.JTabbedPane entityPropertiesTabbedPane
           
protected static java.lang.String LOG_ATTRIBUTE_CARDINALITIES_CHANGED
           
protected static java.lang.String LOG_CHANGED_METHODS
           
protected static java.lang.String LOG_CHANGED_PROPERTIES
           
protected static java.lang.String LOG_CHANGED_TO
           
protected static java.lang.String LOG_DELETED_ATTRIBUTES
           
protected static java.lang.String LOG_DELETED_METHODS
           
protected static java.lang.String LOG_DELETED_PARENTS
           
protected static java.lang.String LOG_ENTITY_NAME
           
protected static java.lang.String LOG_NEW_ATTRIBUTES
           
protected static java.lang.String LOG_NEW_METHODS
           
protected static java.lang.String LOG_NEW_PARENTS
           
protected static java.lang.String LOG_PREFIX
           
protected static java.lang.String MAIN_CANCEL_BUTTON
           
protected static java.lang.String MAIN_CANCEL_BUTTON_ACTION
           
protected static java.lang.String MAIN_OK_BUTTON
           
protected static java.lang.String MAIN_OK_BUTTON_ACTION
           
protected static java.lang.String MAIN_PROPERTIES_HEADER
           
protected static java.lang.String METHODS_TAB_HEADER
           
protected static java.lang.String[] METHODS_TABLE_COLUMNS
           
private  javax.swing.JPanel methodsContainerPanel
           
private  javax.swing.JScrollPane methodsScrollPane
           
private  javax.swing.JTable methodsTable
           
private  javax.swing.table.DefaultTableModel methodsTableModel
           
protected static java.lang.String NEW_ATTRIBUTE_BUTTON
           
protected static java.lang.String NEW_ATTRIBUTE_BUTTON_ACTION
           
protected static java.lang.String NEW_METHOD_BUTTON
           
protected static java.lang.String NEW_METHOD_BUTTON_ACTION
           
protected static java.lang.String NEW_PARENT_BUTTON
           
protected static java.lang.String NEW_PARENT_BUTTON_ACTION
           
protected static java.lang.String PARENTS_TAB_HEADER
           
protected static java.lang.String[] PARENTS_TABLE_COLUMNS
           
private  javax.swing.JPanel parentsContainerPanel
           
private  javax.swing.JScrollPane parentsScrollPane
           
private  javax.swing.JTable parentsTable
           
private  javax.swing.table.DefaultTableModel parentsTableModel
           
(package private)  java.awt.event.ComponentListener resizeListener
          ComponentListener is required to keep the JTable elements correctly sized in height.
private  java.lang.String selectedEntityName
           
protected static java.lang.String SELF_POINTER_NAME
           
private  boolean verboseMode
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
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
EntityPropertiesDialog(javax.swing.JFrame owner)
          Default constructor for EntityPropertiesDialog.
EntityPropertiesDialog(javax.swing.JFrame owner, boolean beVerbose)
          EntityPropertiesDialog constructor.
 
Method Summary
protected  javax.swing.DefaultCellEditor createCardinalityEditor()
          Method for creating a cardinality editor as a DefaultCellEditor.
protected  javax.swing.DefaultCellEditor createComboBoxCellEditor(java.lang.String[] values)
          This method creates a new JComboBox Cell Editor for a JTable element from the given String array.
protected  javax.swing.DefaultCellEditor createComboBoxCellEditor(java.lang.String[] values, boolean allowSelf)
          This method creates a new JComboBox Cell Editor for a JTable element from the given String array.
protected  javax.swing.DefaultCellEditor createComboBoxCellEditor(java.lang.String[] values, boolean allowSelf, boolean addEmpty)
          This method creates a new JComboBox Cell Editor for a JTable element from the given String array.
private  void initializeDialog()
          This method initializes the dialog and all its dynamic components.
 AnalyzeModel modifyEntityProperties(java.lang.String entityName, AnalyzeModel model)
          Method to spawn the EntityPropertiesDialog and stay modal until user closes it.
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, getTitle, hide, isModal, isResizable, isUndecorated, 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, 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, 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, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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

selectedEntityName

private java.lang.String selectedEntityName

entityPropertiesTabbedPane

private javax.swing.JTabbedPane entityPropertiesTabbedPane

analyzeModel

private AnalyzeModel analyzeModel

verboseMode

private boolean verboseMode

methodsTable

private javax.swing.JTable methodsTable

methodsContainerPanel

private javax.swing.JPanel methodsContainerPanel

methodsScrollPane

private javax.swing.JScrollPane methodsScrollPane

methodsTableModel

private javax.swing.table.DefaultTableModel methodsTableModel

attributesTable

private javax.swing.JTable attributesTable

attributesContainerPanel

private javax.swing.JPanel attributesContainerPanel

attributesScrollPane

private javax.swing.JScrollPane attributesScrollPane

attributesTableModel

private javax.swing.table.DefaultTableModel attributesTableModel

parentsTable

private javax.swing.JTable parentsTable

parentsContainerPanel

private javax.swing.JPanel parentsContainerPanel

parentsScrollPane

private javax.swing.JScrollPane parentsScrollPane

parentsTableModel

private javax.swing.table.DefaultTableModel parentsTableModel

entityName

private javax.swing.JTextField entityName

DIALOG_HEADER

protected static java.lang.String DIALOG_HEADER

METHODS_TABLE_COLUMNS

protected static java.lang.String[] METHODS_TABLE_COLUMNS

ATTRIBUTES_TABLE_COLUMNS

protected static java.lang.String[] ATTRIBUTES_TABLE_COLUMNS

PARENTS_TABLE_COLUMNS

protected static java.lang.String[] PARENTS_TABLE_COLUMNS

DEFAULT_CARDINALITY

protected static java.lang.String DEFAULT_CARDINALITY

CARDINALITY_TOOLTIP

protected static java.lang.String CARDINALITY_TOOLTIP

SELF_POINTER_NAME

protected static java.lang.String SELF_POINTER_NAME

LOG_PREFIX

protected static java.lang.String LOG_PREFIX

LOG_CHANGED_PROPERTIES

protected static java.lang.String LOG_CHANGED_PROPERTIES

LOG_ENTITY_NAME

protected static java.lang.String LOG_ENTITY_NAME

LOG_CHANGED_TO

protected static java.lang.String LOG_CHANGED_TO

LOG_NEW_PARENTS

protected static java.lang.String LOG_NEW_PARENTS

LOG_DELETED_PARENTS

protected static java.lang.String LOG_DELETED_PARENTS

LOG_NEW_ATTRIBUTES

protected static java.lang.String LOG_NEW_ATTRIBUTES

LOG_DELETED_ATTRIBUTES

protected static java.lang.String LOG_DELETED_ATTRIBUTES

LOG_ATTRIBUTE_CARDINALITIES_CHANGED

protected static java.lang.String LOG_ATTRIBUTE_CARDINALITIES_CHANGED

LOG_NEW_METHODS

protected static java.lang.String LOG_NEW_METHODS

LOG_DELETED_METHODS

protected static java.lang.String LOG_DELETED_METHODS

LOG_CHANGED_METHODS

protected static java.lang.String LOG_CHANGED_METHODS

NEW_METHOD_BUTTON

protected static java.lang.String NEW_METHOD_BUTTON

DELETE_METHOD_BUTTON

protected static java.lang.String DELETE_METHOD_BUTTON

NEW_ATTRIBUTE_BUTTON

protected static java.lang.String NEW_ATTRIBUTE_BUTTON

DELETE_ATTRIBUTE_BUTTON

protected static java.lang.String DELETE_ATTRIBUTE_BUTTON

NEW_PARENT_BUTTON

protected static java.lang.String NEW_PARENT_BUTTON

DELETE_PARENT_BUTTON

protected static java.lang.String DELETE_PARENT_BUTTON

MAIN_OK_BUTTON

protected static java.lang.String MAIN_OK_BUTTON

MAIN_CANCEL_BUTTON

protected static java.lang.String MAIN_CANCEL_BUTTON

DELETE_ENTITY_BUTTON

protected static java.lang.String DELETE_ENTITY_BUTTON

METHODS_TAB_HEADER

protected static java.lang.String METHODS_TAB_HEADER

PARENTS_TAB_HEADER

protected static java.lang.String PARENTS_TAB_HEADER

ATTRIBUTES_TAB_HEADER

protected static java.lang.String ATTRIBUTES_TAB_HEADER

MAIN_PROPERTIES_HEADER

protected static java.lang.String MAIN_PROPERTIES_HEADER

NEW_METHOD_BUTTON_ACTION

protected static final java.lang.String NEW_METHOD_BUTTON_ACTION
See Also:
Constant Field Values

DELETE_METHOD_BUTTON_ACTION

protected static final java.lang.String DELETE_METHOD_BUTTON_ACTION
See Also:
Constant Field Values

NEW_PARENT_BUTTON_ACTION

protected static final java.lang.String NEW_PARENT_BUTTON_ACTION
See Also:
Constant Field Values

DELETE_PARENT_BUTTON_ACTION

protected static final java.lang.String DELETE_PARENT_BUTTON_ACTION
See Also:
Constant Field Values

NEW_ATTRIBUTE_BUTTON_ACTION

protected static final java.lang.String NEW_ATTRIBUTE_BUTTON_ACTION
See Also:
Constant Field Values

DELETE_ATTRIBUTE_BUTTON_ACTION

protected static final java.lang.String DELETE_ATTRIBUTE_BUTTON_ACTION
See Also:
Constant Field Values

MAIN_OK_BUTTON_ACTION

protected static final java.lang.String MAIN_OK_BUTTON_ACTION
See Also:
Constant Field Values

MAIN_CANCEL_BUTTON_ACTION

protected static final java.lang.String MAIN_CANCEL_BUTTON_ACTION
See Also:
Constant Field Values

DELETE_ENTITY_BUTTON_ACTION

protected static final java.lang.String DELETE_ENTITY_BUTTON_ACTION
See Also:
Constant Field Values

resizeListener

java.awt.event.ComponentListener resizeListener
ComponentListener is required to keep the JTable elements correctly sized in height.


buttonListener

private java.awt.event.ActionListener buttonListener
ActionListener for all button events within the dialog.

Constructor Detail

EntityPropertiesDialog

public EntityPropertiesDialog(javax.swing.JFrame owner,
                              boolean beVerbose)
                       throws java.awt.HeadlessException
EntityPropertiesDialog constructor. This creates the whole dialog, but the actual contents of the all fields will be set later in the initialization method.

Parameters:
owner - This dialog's owner component.
beVerbose - Boolean variable which indicates wether this dialog should be verbose or not.
Throws:
java.awt.HeadlessException - Exception is thrown if the superclass initialization goes wrong.

EntityPropertiesDialog

public EntityPropertiesDialog(javax.swing.JFrame owner)
                       throws java.awt.HeadlessException
Default constructor for EntityPropertiesDialog. This constructor assumes that the dialog is not supposed to be in verbose mode.

Parameters:
owner - Owner component of this dialog.
Throws:
java.awt.HeadlessException - Exception is thrown if something goes wrong with the superclass initialization.
Method Detail

createComboBoxCellEditor

protected javax.swing.DefaultCellEditor createComboBoxCellEditor(java.lang.String[] values,
                                                                 boolean allowSelf,
                                                                 boolean addEmpty)
This method creates a new JComboBox Cell Editor for a JTable element from the given String array. Duplicate entries from given array will be filtered and the array is sorted to alphabetical order.

Parameters:
values - Available options in the JComboBox.
allowSelf - Allow self pointer in the list.
addEmpty - Create an empty item to the beginning of the list.
Returns:
JComboBox table cell editor as a DefaultCellEditor.

createComboBoxCellEditor

protected javax.swing.DefaultCellEditor createComboBoxCellEditor(java.lang.String[] values)
This method creates a new JComboBox Cell Editor for a JTable element from the given String array. Duplicate entries from given array will be filtered and the array is sorted to alphabetical order. Calling this method will both allow self pointers and create an empty item to the beginning of the drop down list.

Parameters:
values - Available options in the JComboBox.
Returns:
JComboBox table cell editor as a DefaultCellEditor.

createComboBoxCellEditor

protected javax.swing.DefaultCellEditor createComboBoxCellEditor(java.lang.String[] values,
                                                                 boolean allowSelf)
This method creates a new JComboBox Cell Editor for a JTable element from the given String array. Duplicate entries from given array will be filtered and the array is sorted to alphabetical order. Calling this method will also create an empty item to the beginning of the drop down list.

Parameters:
values - Available options in the JComboBox.
allowSelf - Allow self pointer in the list.
Returns:
JComboBox table cell editor as a DefaultCellEditor.

createCardinalityEditor

protected javax.swing.DefaultCellEditor createCardinalityEditor()
Method for creating a cardinality editor as a DefaultCellEditor. Mainly used for JTables where cardinalities must be edited.

Returns:
Cardinality editor inherited from a JTextField as a DefaultCellEditor object.

modifyEntityProperties

public AnalyzeModel modifyEntityProperties(java.lang.String entityName,
                                           AnalyzeModel model)
Method to spawn the EntityPropertiesDialog and stay modal until user closes it. Modified analyze model is returned.

Parameters:
entity - Entity to edit.
model - Analyze model to edit.
Returns:
Modified analyze model as an AnalyzeModel object.

initializeDialog

private void initializeDialog()
This method initializes the dialog and all its dynamic components.