Class SupportForm
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
edu.wisc.ssec.mcidasv.supportform.SupportForm
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,RootPaneContainer
,WindowConstants
This class handles all the GUI elements of a McIDAS-V support request.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.Type
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
Modifier and TypeFieldDescriptionprivate JTextField
private JTextField
private JCheckBox
private JButton
private JCheckBox
private final StateCollector
private JTextField
private JPanel
private JTextArea
private JTextField
private static ExecutorService
private static final String
private JButton
private final SupportForm.CancelListener
private static final org.slf4j.Logger
private JTextField
static final String
static final String
static final String
private JButton
private final IdvObjectStore
private JTextField
private static String[]
private JTextField
Fields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabled
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
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
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
ConstructorDescriptionSupportForm
(IdvObjectStore store, StateCollector collector) Creates a support request form that collects information about the current McIDAS-V session. -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
attachFileToField
(JTextField field) private void
private void
private void
private void
boolean
boolean
Determine ifmcidasv.log
can be sent to the Help Desk.boolean
Determine ifRESOLV.SRV
can be sent to the Help Desk.boolean
ChecksemailField
andconfirmField
to see if they match (case is ignored).static void
Returns whatever file path has monopolizedattachmentOneField
.Returns whatever file path has appeared withinattachmentTwoField
.byte[]
Returns whatever currently lives inconfirmField
.Returns whatever is ensconced insidedescriptionArea
.getEmail()
Returns whatever currently lives inemailField
.byte[]
private static String
getFileExtensionSF
(String fullName) private static String
getFileNameWithoutExt
(File file) Get path to wheremcidasv.log
should be located.Returns whatever has commandeeredorganizationField
.Get path to McV prefs file.Get the path to where the user'sRESOLV.SRV
file should be located.boolean
boolean
Returns whatever resides insubjectField
.getUser()
Returns whatever occupiesuserField
.boolean
Checks whether or not the user has attached a file in the "first file" slot.boolean
Checks whether or not the user has attached a file in the "second file" slot.void
Create the frame.static void
Launch a test of the Support Request Form.private void
Due to some fields persisting user input between McIDAS-V sessions we set the focus to be on the first of these fields lacking input.private void
Saves user input for the following: name, email address, email address confirmation, organization, whether or not to CC the user a copy, and whether or not a "state" bundle should be included.private void
sendRequest
(ActionEvent evt) void
showFailure
(String reason) private void
void
private void
Loads user input for the following: name, email address, email address confirmation, organization, whether or not to CC the user a copy, and whether or not a "state" bundle should be included.private boolean
Checks to see if there is anything in the name, email, email confirmation, subject, and description.private static boolean
zipFile
(JTextField field) McIDAS Inquiry #1690-3141 Zip files before sending them through the support formMethods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, 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, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, 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, 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, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Field Details
-
logger
-
PROP_SUPPORTREQ_BUNDLE
- See Also:
-
PROP_SUPPORTREQ_CC
- See Also:
-
PROP_SUPPORTREQ_CONFIRMEMAIL
- See Also:
-
HELP_ID
- See Also:
-
exec
-
store
-
collector
-
listener
-
contentPane
-
userField
-
emailField
-
confirmField
-
organizationField
-
subjectField
-
attachmentOneField
-
attachmentTwoField
-
descriptionArea
-
bundleCheckBox
-
ccCheckBox
-
sendButton
-
cancelButton
-
helpButton
-
unsupportedAttachments
-
filesToDelete
-
-
Constructor Details
-
SupportForm
Creates a support request form that collects information about the current McIDAS-V session.- Parameters:
store
- Storage for persisted user input. Should not benull
.collector
- Collects information about the current session.
-
-
Method Details
-
persistInput
Saves user input for the following: name, email address, email address confirmation, organization, whether or not to CC the user a copy, and whether or not a "state" bundle should be included.You should initialize the GUI components before calling this method.
-
unpersistInput
Loads user input for the following: name, email address, email address confirmation, organization, whether or not to CC the user a copy, and whether or not a "state" bundle should be included.You should initialize the GUI components before calling this method.
-
initComponents
Create the frame. -
checkEmailAddresses
ChecksemailField
andconfirmField
to see if they match (case is ignored).- Returns:
true
if there is a match,false
otherwise.
-
getUser
Returns whatever occupiesuserField
.- Returns:
- User's name.
-
getEmail
Returns whatever currently lives inemailField
.- Returns:
- User's email address.
-
getConfirmedEmail
Returns whatever currently lives inconfirmField
.- Returns:
- User's confirmed email address.
-
getSubject
Returns whatever resides insubjectField
.- Returns:
- Subject of the support request.
-
getOrganization
Returns whatever has commandeeredorganizationField
.- Returns:
- Organization to which the user belongs.
-
getDescription
Returns whatever is ensconced insidedescriptionArea
.- Returns:
- Body of the user's email.
-
hasAttachmentOne
Checks whether or not the user has attached a file in the "first file" slot.- Returns:
true
if there's a file,false
otherwise.
-
hasAttachmentTwo
Checks whether or not the user has attached a file in the "second file" slot.- Returns:
true
if there's a file,false
otherwise.
-
getAttachmentOne
Returns whatever file path has monopolizedattachmentOneField
.- Returns:
- Path to the first file attachment, or a blank string if no file has been selected.
-
getAttachmentTwo
Returns whatever file path has appeared withinattachmentTwoField
.- Returns:
- Path to the second file attachment, or a blank string if no file has been selected.
-
getSendCopy
-
getSendBundle
-
getExtraState
-
getExtraStateName
-
canBundleState
-
getBundledState
-
getBundledStateName
-
canSendLog
Determine ifmcidasv.log
can be sent to the Help Desk.- Returns:
true
ifmcidasv.log
exists,false
otherwise.
-
getLogPath
Get path to wheremcidasv.log
should be located.- Returns:
- String representing the full path to the user's
mcidasv.log
. Note: the file may not exist!
-
canSendResolvSrv
Determine ifRESOLV.SRV
can be sent to the Help Desk.- Returns:
true
ifRESOLV.SRV
exists,false
otherwise.
-
getResolvSrvPath
Get the path to where the user'sRESOLV.SRV
file should be located.- Returns:
- Path to
RESOLV.SRV
. Note: the file may not exist!
-
getPrefsPath
Get path to McV prefs file.- Returns:
-
showSuccess
-
showFailure
-
validInput
Checks to see if there is anything in the name, email, email confirmation, subject, and description.- Returns:
true
if all of the required fields have some sort of input,false
otherwise.
-
attachmentOneButtonActionPerformed
-
attachmentTwoButtonActionPerformed
-
attachmentOneFieldMouseClicked
-
attachmentTwoFieldMouseClicked
-
showInvalidInputs
-
sendRequest
-
otherDoFocusThingNow
Due to some fields persisting user input between McIDAS-V sessions we set the focus to be on the first of these fields lacking input. -
clearFiles
-
attachFileToField
-
getFileExtensionSF
-
getFileNameWithoutExt
-
zipFile
McIDAS Inquiry #1690-3141 Zip files before sending them through the support form -
main
Launch a test of the Support Request Form.- Parameters:
args
- Ignored.
-