org.tentackle.appworx
Class SecurityDialog

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 org.tentackle.ui.FormDialog
                          extended by org.tentackle.appworx.SecurityDialog
All Implemented Interfaces:
ContainerListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants, FormContainer, FormWindow

public class SecurityDialog
extends FormDialog

Dialog to edit security rules.
The dialog edits the class rules in one tab and the optional object rules in a second. The user can create, modify, delete and re-arrange rules to setup the desired ACLs.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
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  String className
          classname (basename or full)
protected  Class clazz
          managed class
protected  TrackedArrayList<Security> clazzList
          security rules for the class
protected  AppDbObjectTablePanel clazzPanel
          panel for to edit the class rules
protected  ContextDb contextDb
          database context
protected  long id
          managed object
protected  boolean isAppDbObjectClass
          true if clazz is an AppDbObject.class
protected  SecurityManager manager
          security manager
protected  TrackedArrayList<Security> objectList
          security rules for the object
protected  AppDbObjectTablePanel objPanel
          panel to edit the object rules
protected  int permissionType
          permissiontype
static String TX_SAVE_RULES
          transaction name for "save rules"
protected  JLabel userLabel
           
protected  boolean writeAllowed
          true if current user has the write permission to security rules
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
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
protected SecurityDialog(ContextDb contextDb, int permissionType, Class clazz, long id)
          Creates a dialog for editing security rule sets.
The constructors are protected because the SecurityDialog should be invoked indirectly by the SecurityManager.
 
Method Summary
protected  void configureTable(FormTable table)
          Configures a table.
 ContextDb getContextDb()
          Gets the database context.
protected  void processWindowEvent(WindowEvent e)
          Handles window events depending on the state of the defaultCloseOperation property.
protected  boolean saveRules()
          Saves the rules.
 void saveValues()
          Sets a savepoint for all components in this container and all sub containers.
protected  void setup()
          Sets up the dialog.
protected  void setupUserLabel()
          Sets up the userlabel.
 void showDialog()
          Shows the (modal) dialog.
 void triggerValuesChanged()
          Signals that values in the components of the container may have changed.
 
Methods inherited from class org.tentackle.ui.FormDialog
addFormWrapListener, alignLocation, areValuesChanged, checkAutoClose, componentAdded, componentRemoved, fireFormWrappedFocus, getAutoClose, getFormValues, getHelpURL, getKeepChangedValues, getParentWindow, getRelatedWindow, getTimeOfLastValuesChanged, getTooltipDisplay, getUIVersion, invalidateParentInfo, isAllChangeable, isAutoCloseable, isAutoPosition, isHonourAllChangeable, pack, paint, removeFormWrapListener, setAllChangeable, setAutoClose, setAutoPosition, setFormValues, setFormValuesKeepChanged, setHelpURL, setHonourAllChangeable, setKeepChangedValues, setRelatedWindow, setTimeOfLastValuesChanged, setTooltipDisplay, setUIVersion, showHelp
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.tentackle.ui.FormContainer
getTitle, setTitle
 

Field Detail

TX_SAVE_RULES

public static final String TX_SAVE_RULES
transaction name for "save rules"

See Also:
Constant Field Values

contextDb

protected ContextDb contextDb
database context


clazz

protected Class clazz
managed class


className

protected String className
classname (basename or full)


id

protected long id
managed object


clazzPanel

protected AppDbObjectTablePanel clazzPanel
panel for to edit the class rules


objPanel

protected AppDbObjectTablePanel objPanel
panel to edit the object rules


clazzList

protected TrackedArrayList<Security> clazzList
security rules for the class


objectList

protected TrackedArrayList<Security> objectList
security rules for the object


permissionType

protected int permissionType
permissiontype


manager

protected SecurityManager manager
security manager


writeAllowed

protected boolean writeAllowed
true if current user has the write permission to security rules


isAppDbObjectClass

protected boolean isAppDbObjectClass
true if clazz is an AppDbObject.class


userLabel

protected JLabel userLabel
Constructor Detail

SecurityDialog

protected SecurityDialog(ContextDb contextDb,
                         int permissionType,
                         Class clazz,
                         long id)
                  throws ApplicationException
Creates a dialog for editing security rule sets.
The constructors are protected because the SecurityDialog should be invoked indirectly by the SecurityManager.

Parameters:
contextDb - the database context
clazz - the class to set security rules for. (use org.tentackle.appworx.SecurityDialog.class if working on security itself)
permissionType - the kind of permission set. If 0, will be determined from clazz (if AppDbObject) or set to Security.TYPE_PROGRAM otherwise.
id - he object id in clazz (if clazz is a AppDbObject) or null if all objects or clazz is not a AppDbObject.
Throws:
ApplicationException - is setup failed
Method Detail

getContextDb

public ContextDb getContextDb()
Gets the database context.

Returns:
the database context

setupUserLabel

protected void setupUserLabel()
Sets up the userlabel. By default the userlabel gets the username from the UserInfo.


setup

protected void setup()
              throws ApplicationException
Sets up the dialog.

Throws:
ApplicationException - if setup failed

showDialog

public void showDialog()
Shows the (modal) dialog.


saveRules

protected boolean saveRules()
Saves the rules.

Returns:
true if done, else false if error

processWindowEvent

protected void processWindowEvent(WindowEvent e)
Handles window events depending on the state of the defaultCloseOperation property.

Overridden to allow FormHelper keeping track of windows

Overritten so we can exit when window is closed: do some stuff before exit.

Overrides:
processWindowEvent in class FormDialog
Parameters:
e - the window event
See Also:
JDialog.setDefaultCloseOperation(int)

triggerValuesChanged

public void triggerValuesChanged()
Signals that values in the components of the container may have changed. The container typically uses that to invoke areValuesChanged() and enabling/disabling a button (e.g. "save", see AppDbObjectDialog).

Overridden to enable/disable the save-button.

Specified by:
triggerValuesChanged in interface FormContainer
Overrides:
triggerValuesChanged in class FormDialog

saveValues

public void saveValues()
Sets a savepoint for all components in this container and all sub containers.

Overridden to update the save-button.

Specified by:
saveValues in interface FormContainer
Overrides:
saveValues in class FormDialog
See Also:
FormComponent.saveValue()

configureTable

protected void configureTable(FormTable table)
Configures a table.

Parameters:
table - the table (object rules or class rules)


Copyright © 2001-2008 Harald Krake, Bergstr. 48, 78098 Triberg, Germany, harald@krake.de