com.ca.directory.jxplorer.editor
Class BasicBinaryEditor

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Dialog
                          |
                          +--javax.swing.JDialog
                                |
                                +--com.ca.directory.jxplorer.editor.BasicBinaryEditor
All Implemented Interfaces:
AbstractBinaryEditor, javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants
Direct Known Subclasses:
audioEditor, jpegPhotoEditor, ocspRSAPrivateKeyEditor, odDocumentDOCEditor, odMovieAVIEditor, odMusicMIDEditor, odSoundWAVEditor, odSpreadSheetXLSEditor

public class BasicBinaryEditor
extends javax.swing.JDialog
implements AbstractBinaryEditor

Sets up a binary editor that displays the binary data in hex format. The user can load, save and edit the data . By default the editor displays the first 1000 characters of the data. The edit button allows the user to view/edit the whole file.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  javax.swing.JButton btnCancel
           
protected  javax.swing.JButton btnEdit
           
protected  javax.swing.JButton btnHelp
           
protected  javax.swing.JButton btnLoad
           
protected  javax.swing.JButton btnOK
           
protected  javax.swing.JButton btnSave
           
protected  javax.swing.JButton btnView
           
protected  byte[] bytes
           
protected  DN currentDN
           
protected  CBPanel display
           
protected  boolean editHex
           
protected  EditableBinary editMe
           
protected  javax.swing.JTextArea field
           
protected  java.awt.Frame frame
           
protected  java.lang.StringBuffer hex
           
protected  byte[] oldBytes
           
 
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
BasicBinaryEditor(java.awt.Frame owner)
          Constructor.
BasicBinaryEditor(java.awt.Frame owner, boolean viewable)
          Sets up the frame with one panel, one scrollable text area and six buttons.
 
Method Summary
 javax.swing.JButton addHelp()
          Sets up the help button (which is used to open the java help at the appropriate location).
 void addMainViewComponent()
          Adds the text area (which is used for displaying the hex) to the panel.
 java.lang.String bytes2HexString(byte[] bytesForConversion)
          Converts a byte to hex then to a string.
 void escKeyCheck(java.awt.event.KeyEvent e)
          Checks if keyboard entry is an 'escape' key.
 byte[] getNewValue()
          Returns a new value.
 byte[] getOldValue()
          This will return a structure containing the current values of the attribute.
 byte[] hexString2bytes(java.lang.String forConversion)
          Converts a string to hex then to a byte array.
 boolean isChanged()
          Checks if the value in the editor has changed.
 boolean isValid()
          Returns true if the current value of the attribute is valid (i.e. not null).
protected  void load()
          Loads binary data from file.
 void quit()
          Shuts the window.
protected  void save()
          Save binary data to the file.
 void setButtons(boolean enabled)
          Enables or disables the ok, save & edit buttons depending on the boolean value.
 void setDN(DN dn)
          Sets the dn of the entry being modified.
 void setValue()
          Sets the value in the table editor.
 void setValue(EditableBinary editMe)
          Sets the value to display in the editor.
 void setViewCommand(java.lang.String viewCommand)
          Set the command for the binary viewer.
 void view()
          Method purely for extending, the intention is to launch the file in its default viewer using CBLauncher.launchProgram.
 
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, dispose, 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, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, 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, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, 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, 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, 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, isOpaque, 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, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, 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

editMe

protected EditableBinary editMe

field

protected javax.swing.JTextArea field

btnLoad

protected javax.swing.JButton btnLoad

btnSave

protected javax.swing.JButton btnSave

btnView

protected javax.swing.JButton btnView

btnOK

protected javax.swing.JButton btnOK

btnCancel

protected javax.swing.JButton btnCancel

btnHelp

protected javax.swing.JButton btnHelp

btnEdit

protected javax.swing.JButton btnEdit

frame

protected java.awt.Frame frame

display

protected CBPanel display

editHex

protected boolean editHex

hex

protected java.lang.StringBuffer hex

bytes

protected byte[] bytes

oldBytes

protected byte[] oldBytes

currentDN

protected DN currentDN
Constructor Detail

BasicBinaryEditor

public BasicBinaryEditor(java.awt.Frame owner)
Constructor.


BasicBinaryEditor

public BasicBinaryEditor(java.awt.Frame owner,
                         boolean viewable)
Sets up the frame with one panel, one scrollable text area and six buttons.

Parameters:
viewable - specifies if there is a viewer for the binary data, if true, the "view" button is added to the panel.
Method Detail

addMainViewComponent

public void addMainViewComponent()
Adds the text area (which is used for displaying the hex) to the panel.


addHelp

public javax.swing.JButton addHelp()
Sets up the help button (which is used to open the java help at the appropriate location).

Returns:
btnHelp the button to be added.

setValue

public void setValue(EditableBinary editMe)
Sets the value to display in the editor. If there is no value or if it is null, "No data available" is displayed in the editor. Otherwise the value is shortened (if needed) to 1000 characters then converted to a hex string and displayed in the text area.

Specified by:
setValue in interface AbstractBinaryEditor
Parameters:
editMe - a value from the dsa that is to be displayed in the editor.

load

protected void load()
Loads binary data from file. Shortens it to 1000 characters then displays it in the binary editor.


save

protected void save()
Save binary data to the file.


view

public void view()
Method purely for extending, the intention is to launch the file in its default viewer using CBLauncher.launchProgram.


setViewCommand

public void setViewCommand(java.lang.String viewCommand)
Set the command for the binary viewer. The string must have a space at the end, as the filename will be appended.


setButtons

public void setButtons(boolean enabled)
Enables or disables the ok, save & edit buttons depending on the boolean value.

Parameters:
enabled - if true buttons are enabled, if false buttons are disabled.

isChanged

public boolean isChanged()
Checks if the value in the editor has changed.

Returns:
true if data has changed, false if not.

isValid

public boolean isValid()
Returns true if the current value of the attribute is valid (i.e. not null).

Overrides:
isValid in class java.awt.Component

getNewValue

public byte[] getNewValue()
Returns a new value. If the whole file is displayed (i.e. if the user has clicked on 'edit', the new value will be retrieved from the text area. If the editor is only displaying the first 1000 characters the new value is retrieved from its source (in this case the bytes array). The idea behind this is that the only time a value can be edited/changed is when the user has clicked the edit button. Therefore this is the only time that we need to get a new value.

Returns:
byte[] a value that is to be set in the table editor.

getOldValue

public byte[] getOldValue()
This will return a structure containing the current values of the attribute.

Returns:
old value.

setValue

public void setValue()
Sets the value in the table editor.


bytes2HexString

public java.lang.String bytes2HexString(byte[] bytesForConversion)
Converts a byte to hex then to a string.

Returns:
string representation of hex.

hexString2bytes

public byte[] hexString2bytes(java.lang.String forConversion)
Converts a string to hex then to a byte array.

Parameters:
forConversion - value to be converted.
Returns:
bytesConverted byte representation of the hex.

quit

public void quit()
Shuts the window.


escKeyCheck

public void escKeyCheck(java.awt.event.KeyEvent e)
Checks if keyboard entry is an 'escape' key. If so, dialog closes. Checks if keyboard entry is an 'enter' key. If so, fakes a click on the 'ok' button.

Parameters:
e - the key code to be checked ie '27' is the 'escape' key as '10' is the 'enter' key.

setDN

public void setDN(DN dn)
Sets the dn of the entry being modified.

Parameters:
dn - the DN of the entry being modified.