arlut.csd.JDataComponent
Class JIPField

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.text.JTextComponent
                          |
                          +--javax.swing.JTextField
                                |
                                +--arlut.csd.JDataComponent.JentryField
                                      |
                                      +--arlut.csd.JDataComponent.JIPField
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.Scrollable, java.io.Serializable, javax.swing.SwingConstants

public class JIPField
extends JentryField

This class is an IPv4/IPv6 data display/entry widget for Ganymede. Its purpose is to allow the viewing and editing of either 4 or 16 byte Internet addresses and subnet masks.

Note that wherever Ganymede manipulates IP addresses, it does so in terms of unsigned bytes. Since Java does not provide an unsigned byte type, Ganymede uses the s2u() and u2s() static methods defined in this class to convert from the signed Java byte to the Ganymede 0-255 IP octet range.

See Also:
Serialized Form

Inner classes inherited from class javax.swing.JTextField
javax.swing.JTextField.AccessibleJTextField, javax.swing.JTextField.NotifyAction, javax.swing.JTextField.ScrollRepainter
 
Inner classes inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.ClipboardObserver, javax.swing.text.JTextComponent.ComposedTextCaret, javax.swing.text.JTextComponent.DefaultKeymap, javax.swing.text.JTextComponent.InputMethodRequestsHandler, javax.swing.text.JTextComponent.KeyBinding, javax.swing.text.JTextComponent.KeymapActionMap, javax.swing.text.JTextComponent.KeymapWrapper, javax.swing.text.JTextComponent.MutableCaretEvent
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
(package private)  boolean allowV6
           
static boolean debug
           
static int DEFAULT_COLS
           
private static java.lang.String IPv4allowedChars
           
private static java.lang.String IPv6allowedChars
           
private  boolean processingCallback
           
(package private)  java.lang.String value
           
 
Fields inherited from class arlut.csd.JDataComponent.JentryField
allowCallback, changed, my_parent
 
Fields inherited from class javax.swing.JTextField
action, actionPropertyChangeListener, columns, columnWidth, command, defaultActions, horizontalAlignment, notifyAction, uiClassID, visibility
 
Fields inherited from class javax.swing.text.JTextComponent
canAccessSystemClipboard, caret, caretColor, caretEvent, composedText, composedTextCaret, composedTextContent, composedTextEnd, composedTextStart, DEFAULT_KEYMAP, defaultClipboardOwner, disabledTextColor, editable, editor, FOCUS_ACCELERATOR_KEY, focusAccelerator, focusedComponent, highlighter, inputMethodRequestsHandler, keymap, keymapTable, margin, model, needToSendKeyTypedEvent, originalCaret, SandboxClipboardKey, selectedTextColor, selectionColor
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JIPField(boolean allowV6)
          Constructor which uses default fonts,no parent, default column size, and default foregound/background colors.
JIPField(boolean is_editable, boolean allowV6)
          Base constructor for JIPField
JIPField(boolean is_editable, JsetValueCallback callback, boolean allowV6)
          Constructor that allows for the creation of a JIPField that knows about its parent.
 
Method Summary
static java.lang.Byte[] genIPV4bytes(java.lang.String input)
          This method takes an IPv4 string in standard format and generates an array of 4 bytes that the Ganymede server can accept.
static java.lang.String genIPV4string(java.lang.Byte[] octets)
          This method generates a standard string representation of an IPv4 address from an array of 4 octets.
static java.lang.Byte[] genIPV6bytes(java.lang.String input)
          This method takes an IPv6 string in any of the standard RFC 1884 formats or a standard IPv4 string and generates an array of 16 bytes that the Ganymede server can accept as an IPv6 address.
static java.lang.String genIPV6string(java.lang.Byte[] octets)
          This method takes an array of 4 or 16 bytes and generates an optimal RFC 1884 string encoding suitable for display.
 char getCharAt(int n)
          returns the character located at position n in the JIPField value
 java.lang.Byte[] getValue()
          Returns the current IP value held in this JIPField.
private static boolean isAllowedV4(char ch)
          determines whether a given character is valid or invalid for a JIPField
private static boolean isAllowedV6(char ch)
          determines whether a given character is valid or invalid for a JIPField
static void main(java.lang.String[] argv)
           
private  void reportError(java.lang.String error)
          This private method is used to report an error condition to the user.
static short s2u(byte b)
          This method maps a u2s-encoded signed byte value to an int value between 0 and 255 inclusive.
 void sendCallback()
          When the JIPField looses focus, any changes made to the value in the JIPField need to be propogated to the server.
 void setValue(java.lang.Byte[] bytes)
          Sets the IP value held in this JIPField, without triggering a callback update.
static byte u2s(int x)
          This method maps an int value between 0 and 255 inclusive to a legal signed byte value.
 
Methods inherited from class arlut.csd.JDataComponent.JentryField
focusGained, focusLost, getChanged, getLength, getMaxStringSize, isAllowed, setCallback
 
Methods inherited from class javax.swing.JTextField
, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, hasActionListener, isListener, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setFont, setHorizontalAlignment, setScrollOffset, writeObject
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, canAccessSystemClipboard, copy, createComposedString, cut, exchangeCaret, fireCaretUpdate, getCaret, getCaretColor, getCaretPosition, getClipboard, getDisabledTextColor, getDocument, getFocusAccelerator, getFocusedComponent, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getUI, isEditable, isFocusTraversable, isProcessInputMethodEventOverridden, loadKeymap, mapCommittedTextToAction, modelToView, moveCaretPosition, paste, processInputMethodEvent, read, readObject, removeCaretListener, removeKeymap, removeNotify, replaceInputMethodText, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDocument, setEditable, setFocusAccelerator, setHighlighter, setInputMethodCaretPosition, setKeymap, setMargin, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateInputMap, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

debug

public static final boolean debug

DEFAULT_COLS

public static int DEFAULT_COLS

IPv4allowedChars

private static java.lang.String IPv4allowedChars

IPv6allowedChars

private static java.lang.String IPv6allowedChars

value

java.lang.String value

allowV6

boolean allowV6

processingCallback

private boolean processingCallback
Constructor Detail

JIPField

public JIPField(boolean is_editable,
                boolean allowV6)
Base constructor for JIPField
Parameters:
columns - number of colums in the JIPField
is_editable - true if this JIPField is editable

JIPField

public JIPField(boolean allowV6)
Constructor which uses default fonts,no parent, default column size, and default foregound/background colors.

JIPField

public JIPField(boolean is_editable,
                JsetValueCallback callback,
                boolean allowV6)
Constructor that allows for the creation of a JIPField that knows about its parent.
Parameters:
cols - number of colums in the JIPField
parent - the container within which this JIPField is contained (This container will implement an interface that will utilize the data contained within this JIPField.)
Method Detail

getCharAt

public char getCharAt(int n)
returns the character located at position n in the JIPField value
Parameters:
n - position in the JIPField value from which to retrieve character

setValue

public void setValue(java.lang.Byte[] bytes)
Sets the IP value held in this JIPField, without triggering a callback update.
Parameters:
bytes - IP v4 or v6 address in byte array form

getValue

public java.lang.Byte[] getValue()
Returns the current IP value held in this JIPField.

sendCallback

public void sendCallback()
When the JIPField looses focus, any changes made to the value in the JIPField need to be propogated to the server. This method will handle that functionality.
Overrides:
sendCallback in class JentryField

reportError

private void reportError(java.lang.String error)
This private method is used to report an error condition to the user.

u2s

public static final byte u2s(int x)
This method maps an int value between 0 and 255 inclusive to a legal signed byte value.

s2u

public static final short s2u(byte b)
This method maps a u2s-encoded signed byte value to an int value between 0 and 255 inclusive.

isAllowedV4

private static final boolean isAllowedV4(char ch)
determines whether a given character is valid or invalid for a JIPField
Parameters:
ch - the character which is being tested for its validity

isAllowedV6

private static final boolean isAllowedV6(char ch)
determines whether a given character is valid or invalid for a JIPField
Parameters:
ch - the character which is being tested for its validity

genIPV4bytes

public static java.lang.Byte[] genIPV4bytes(java.lang.String input)
This method takes an IPv4 string in standard format and generates an array of 4 bytes that the Ganymede server can accept.

genIPV4string

public static java.lang.String genIPV4string(java.lang.Byte[] octets)
This method generates a standard string representation of an IPv4 address from an array of 4 octets.

genIPV6bytes

public static java.lang.Byte[] genIPV6bytes(java.lang.String input)
This method takes an IPv6 string in any of the standard RFC 1884 formats or a standard IPv4 string and generates an array of 16 bytes that the Ganymede server can accept as an IPv6 address.

genIPV6string

public static java.lang.String genIPV6string(java.lang.Byte[] octets)
This method takes an array of 4 or 16 bytes and generates an optimal RFC 1884 string encoding suitable for display.

main

public static void main(java.lang.String[] argv)