Class SearchGUI

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by SearchGUI
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class SearchGUI
extends javax.swing.JFrame
implements java.awt.event.ItemListener, java.awt.event.ActionListener, java.awt.event.WindowListener

Class SearchGUI is used to create a popup GUI to run the converter.

 List of Methods
=================== SearchGUI() - Constructor initGUI() - create the popup GUI addMenuTree() - create pull down menus in menu bar for the GUI clearGuiProcessingState() - clear the GUI state processGuiStateData() - Process data specified by the GUI state resetGuiState() - reset the GUI state so nothing is specified. setCancelFlag() - set the Cancel flag value getCancelFlag() - get the Cancel flag value setDemoParameters() - set the Search Terms list for demo state. setUserTermListFromFile() - set user search term-list state from a file. setGUItoSGstate() - set GUI to instance of SGstate. getGUItoSGstate() - get additional SGstate variables from GUI. setEnableSearchParamsButtonsAndMenus() - set Search Params GUI & state setEnableCancelButtonsAndMenus() - when are able to do processing state setEnableViewingButtonsAndMenus() - enable view processed HTML files state positionReportWindow() - position report window on the screen setShow() - set the show/hide popup status updateReportStatusLine() - clear text in popup window clearText() - clear text in popup window getDBgeneList() - get printable text list of genes in the database. getEGsampleList() - get printable text list of EG samples in the database. matchEGsampleBySearchTerms() - test sGSPID if match searchTerms list. getReportText() - get the text from the Report popup window setReportText() - update text in popup window setGUItitle() - update title in popup window setSaveAsFile() - set SaveAs file default file name close() - close this popup and reset flags if needed testAndSetProjDir() - test and set project directory cvt.userDir. actionPerformed() - Handle menu actions and button clicks resetInitialGuiProcessingState() - reset search terms & samples GUI state quit() - closing down the window, get rid of the frame. updateSearchGUIjarFile() - update SearchGui.jar from URL_HOME web server. itemStateChanged() - handle item state changed events viewHTMLfile() - popup browser on guiActiveHTMLfile file. windowClosing() - closing down the window, get rid of the frame. Class SGstate - holds SearchGui GUI data that can be read/write by methods ------------- SGstate() - constructor copyStateFromCvt() - copy the partial state from cvt Globals copySGstateInstance() - copy from SGstate instance values to this. cvtSGstateToStr() - convert SGstate vars. to .sgs state string to write to file. copyGlobalsToSGstate() - copy Globals instance in SGstate variables. readSGstateFile() - read the SearchGUI State file stateFile parseHTtoSGstate() - parse .sgs state hashtable to SGstate variables. writeSGstate() - write SearchGUI state to .sgs SGstate file. readNameValuesHashTableFromFile() - read hashtable tab-delim name-value pairs setStateHashtableForGetValue() - set working hash table for next getStateValue calls getStateStr() - generate tab-delim SGstate string for writing .sgs state. getStateValue() - get PARAM and use default if not found.

This code is available at the HTMLtools project on SourceForge at http://htmltools.sourceforge.org/ under the "Common Public License Version 1.0" http://www.opensource.org/licenses/cpl1.0.php.

It was derived and refactored from the open source MAExplorer (http://maexplorer.sourceforge.org/), and Open2Dprot (http://Open2Dprot.sourceforge.net/) Table modules.

$Date: 2009/12/09 11:45:56 $ $Revision: 1.41 $
Copyright 2008, 2009 by Peter Lemkin E-Mail: lemkin@users.sourceforge.net http://lemkingroup.com/

See Also:
Serialized Form

Nested Class Summary
(package private)  class SearchGUI.SGstate
          Class SGstate contains the SearchGUI state as well as functions to maintain the state.
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
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  javax.swing.JRadioButton andEGnamesRB
          AND match radio button for EG sample list specification, button grouped with orEGnamesRB.
 PopupTextViewer bptv
          Optional Big popup text viewer for Report-Log
 javax.swing.JButton cancelButton
          button for "Cancel" button - may enable/disable button
 boolean cancelFlag
          "Cancel" the processing in the GUI
private  java.awt.MenuItem classAMI
          MenuItem "Assign EG samples to Class A"
private  java.awt.MenuItem classBMI
          MenuItem "Assign EG samples to Class A"
 boolean closeGuiFlag
          "Close" the GUI
 HTMLtools cvt
           
private  java.lang.String dataSource
          The subtitle for generated Web page by mapping to the preface "$$DATA_SOURCE_SUBTITLE$$"
private  java.lang.String[] dbGSPIDlist
          This is the list of ftData Data Table columns starting with "EG" and is the list of EG GSP IDs in the database.
 boolean doneFlag
          "Done" processing data in the GUI
private  java.awt.Menu fileMenu
          "File" pull down Menu list
private  javax.swing.JTextField filterRowTextField
           
 java.lang.String flipTableDataFile
          Name of database Table file that we will use to verify search terms.
 java.lang.String flipTableIndexMapFile
          Name of Index Map file that we will use to verify search terms.
private  java.awt.CheckboxMenuItem foldChangeMCB
          Menu checkbox item for "Report Fold Change of 2 sample subsets"
private  java.awt.CheckboxMenuItem foldChangeThrMCB
          Menu checkbox item for "Only keep genes/probes with |fold-change| >= threshold" This pops up a dialog to enter the threshold value between 0.0 and some large number and saves it in sgs.foldChangeThr.
 FileTable ftData
          Header-only Data FileTable that we will use to get the list of EG Samples.We get this from '-flipTableByIndexMap:{dataSet.txt,dataSet.idx}'.
 FileTable ftIM
          Index Map FileTable that we will use to verify search terms.
 java.lang.String guiActiveHTMLfile
           
 java.lang.String guiActiveTXTfile
           
 java.lang.String[] guiArgV
          Command line string array created to use when running the converter used by ProcessDataSearch
 java.lang.String guiFSMstate
          GUI FSM state
 java.lang.String guiParamsMapDefaultPath
          GUI Converter params map default file path
 java.lang.String guiParamsMapFile
          GUI Converter params map file
private  java.awt.Menu helpMenu
          "Help" pull down Menu list
 boolean indexMapProblemFlag
          There has been a problem reading the Index Map file into ftIM by the ProcessLoadIndexMapData Thread.
 boolean indexMapReadyFlag
          The Index Map file into ftIM has been read successfully by the ProcessLoadIndexMapData Thread.
 java.lang.String inputSearchDir
          Param .map default input Dir
private  java.awt.MenuItem lastRestoreSGstateMI
          MenuItem "Restore previously saved search .sgs parameters from file"
private  java.awt.Menu listMenu
          "List" pull down Menu list
private  javax.swing.JRadioButton matchGeneTermRB
          Exact match radio button for search-term specification, button grouped with matchSearchStrTermRB.
private  javax.swing.JRadioButton matchSubStrTermRB
          Substring match radio button for search-term specification, button grouped with matchGeneTermRB.
private  java.awt.MenuBar mbar
          menu bar for the frame
private  MenuSupport ms
          Menu support functions using Hashtables to track what is active
private  int nSearchTermNames
           
private  javax.swing.JRadioButton orEGnamesRB
          OR match radio button for EG sample list specification, button grouped with andEGnamesRB.
 java.lang.String outputSearchDir
          Param .map default output Dir
 ProcessDataSearch pds
          Thread for converter processing
 javax.swing.JButton processButton
          button for "Process" button - may enable/disable button
 boolean processedOKflag
          "Process was ok" if true.
 boolean processFlag
          "Processing" data in the GUI
private  java.lang.String programName
          The name of the program
private  java.lang.String reportFile
          Default SAVE AS .txt file for Report-Log textReport data used in reportTextarea.
private  javax.swing.JTextArea reportTextarea
          Text area GUI for main Report-Log.
private  javax.swing.JButton resetButton
          button for "Reset" converter button
private  java.awt.MenuItem restoreSGstateMI
          MenuItem "Restore previously saved search .sgs parameters from file"
private  java.lang.String[][] sampleChoiceData
          The sample list is a 2 column array where the Object value is [][0], and the viewable choice name is [][1].
private  javax.swing.JList samplesList
           
private  java.awt.MenuItem saveSGstateMI
          MenuItem "SaveAs current search .sgs parameters to file"
private  javax.swing.JTextField searchResultsFilenamePrefixTF
          SearchResults filename Prefix text field
private  java.lang.String searchRowFilterName
          Switch supplied search sample groups filter name for sampleExprGroupsTextArea.
private  java.lang.String searchRowFilterPrompt
          Switch supplied search samples group filter prompt for sampleExprGroupsTextArea.
private  java.lang.String searchSampleChoiceFile
          The name of the sample list Table file.
private  java.lang.String[][] searchTermFilter
           
private  java.lang.String[] searchTermNames
           
private  java.lang.String searchTermsFilterPrompt
          Switch supplied search Terms filter prompt for searchTermTextArea Set by -searchTermsFilterPrompt:{...}.
private  javax.swing.JTextArea searchTermTextArea
          Text area GUI for entering list of search terms
static long serialVersionUID
           
 SearchGUI.SGstate sgs
          SearchGUI state variables that can be saved/imported from .sgs files.
 SearchGUI sGui
           
 java.lang.String sGuiArgV
          Command line string created to use when running the converter used by ProcessDataSearch
private  java.awt.CheckboxMenuItem showDataHeatmapFlipTableMCB
          Menu checkbox item for "Show data heat-map in View HTML Results"
 boolean showStatusFlag
           
private  javax.swing.JLabel statusLineLabel
          Status line label updated with UtilCM.updateReportStatusLine()
 java.lang.String tableSearchDir
          Param .map default table Dir
private  int textAreaFontSize
          font size
private  java.lang.String textFontFamily
          Text area font family
private  java.lang.String textReport
          Copy of text in Report-Log reportTextarea
private  java.lang.String title
          string for title of frame
static java.lang.String URL_HOME
          Home URL for server
static java.lang.String URL_JAR_FILE
          URL for SearchGui.jar if update from the server
private  java.awt.CheckboxMenuItem verboseMCB
          Menu checkbox item for Verbose reporting
private  java.lang.String version
          version number of the program
 javax.swing.JButton viewHTMLButton
          button for "ViewHTML" button - may enable/disable button
private  java.awt.Menu viewMenu
          "View" pull down Menu list
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, 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 javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SearchGUI(HTMLtools cvt, java.lang.String programName, java.lang.String version, java.lang.String textReport, java.lang.String title, java.lang.String reportFile, java.lang.String paramsMapDefaultFile)
          SearchGUI() - Constructor
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          actionPerformed() - Handle menu actions and button clicks
private  void addMenuTree(java.awt.Frame f, java.awt.MenuBar mbar)
          addMenuTree() - create pull down menus in menu bar for the GUI
 void clearGuiProcessingState()
          clearGuiProcessingState() - clear the GUI state
 void clearText()
          clearText() - clear text in popup window
 void close()
          close() - close this popup and reset flags if needed
private  boolean createParamsMapFile()
          createParamsMapFile() - Create guiParamsMapFile from default params.map file
 boolean getCancelFlag()
          getCancelFlag() - get the Cancel flag value
 java.lang.String getDBgeneList(java.lang.String searchTermsStr, boolean matchSubstringFlag)
          getDBgeneList() - get printable text list of genes in the database.
 java.lang.String getEGclassSampleList(java.lang.String classSamplesList, java.lang.String className, java.lang.String sTitle)
          getEGclassSampleList() - get printable text list of class EG samples.
 java.lang.String getEGsampleList(java.lang.String searchTermsStr, java.lang.String[] egGroupList, boolean evalSchANDboolean, java.lang.String sTitle)
          getEGsampleList() - get printable text list of EG samples in the database.
 java.lang.String getEGsamplesString(java.lang.String searchTermsStr, java.lang.String[] egGroupList, boolean evalSchANDboolean)
          getEGsamplesString() - get "," separated text string of EG samples in database.
 java.lang.String getGuiFSM()
          getGuiFSM() - Get the GUI FSM state string.
private  boolean getGUItoSGstate(SearchGUI.SGstate sg)
          getGUItoSGstate() - get additional SGstate variables from GUI.
 boolean getOtherSearchParams(java.lang.String paramsSearchDefaultPath)
          getOtherSearchParams() - get search information for GUI for prompts and menus These terms are found in the default search params .map file.
 java.lang.String getReportText()
          getReportText() - get the text from the Report popup window
 void getSearchResultsFilenamePrefix()
          getSearchResultsFilenamePrefix() - get the new value from JTextField searchResultsFilenamePrefixTF and set it to searchResultsBaseFile
 boolean initGUI()
          initGUI() - create the popup GUI
 void itemStateChanged(java.awt.event.ItemEvent e)
          itemStateChanged() - handle item state changed events NOTE: need to implement CheckboxMenuItems.
private  boolean matchEGsampleBySearchTerms(java.lang.String sGSPID, java.lang.String[] searchTermList, boolean evalSchANDboolean)
          matchEGsampleBySearchTerms() - test sGSPID if match searchTerms list.
 void positionReportWindow()
          positionReportWindow() - position report window on the screen
 void printGuiFSM(java.lang.String preface, boolean printFlag)
          printGuiFSM() - print GuiFSM if printFlag set
 void printGuiFSMlf(java.lang.String preface, boolean printFlag)
          printGuiFSMlf() - print GuiFSM if printFlag set followed by extra line feed
private  void printSearchResultsFileNames()
          printSearchResultsFileNames() - print Search-Results File Names to log.
private  boolean processGuiStateData()
          processGuiStateData() - Process data specified by the GUI state.
 void quit()
          quit() - closing down the window, get rid of the frame.
 void resetInitialGuiProcessingState()
          resetInitialGuiProcessingState() - reset the search terms & samples GUI state
private  boolean restoreGUIfromGSstateFile(java.lang.String filePath)
          restoreGUIfromGSstateFile() - restore GUI from GSstate .sgs file
private  boolean saveGUItoGSstateFile(java.lang.String filePath)
          saveGUItoGSstateFile() - save GUI to GSstate .sgs file
 void setCancelFlag(boolean flag)
          setCancelFlag() - set the Cancel flag value
 void setDemoParameters()
          setDemoParameters() - set the Search Terms list for demo state.
 void setEnableCancelButtonsAndMenus(java.lang.String statusLabel)
          setEnableCancelButtonsAndMenus() - when are able to do processing state.
 void setEnableCancelState()
          setEnableCancelState() - when are able to do processing state.
 void setEnableSearchParamsButtonsAndMenus()
          setEnableSearchParamsButtonsAndMenus() - set Search buttons & menus state.
 void setEnableSearchParamsState()
          setEnableSearchParamsState() - set Search parameters GUI & menus state.
 void setEnableViewingButtonsAndMenus()
          setEnableViewingButtonsAndMenus() - when can view processed HTML files state.
 void setEnableViewingState()
          setEnableViewingState() - when can view processed HTML files state.
 void setGUItitle(java.lang.String title)
          setGUItitle() - update title in popup window
private  boolean setGUItoSGstate(SearchGUI.SGstate sg)
          setGUItoSGstate() - set GUI to instance of SGstate.
 void setReportText(java.lang.String newText)
          setReportText() - update text in popup window
 void setSaveAsFile(java.lang.String reportFile)
          setSaveAsFile() - set SaveAs file default file name
 void setShow(boolean showStatusFlag)
          setShow() - set the show/hide popup status
 void setUserSearchTermFileParameters()
          setUserSearchTermFileParameters() - set search term list from user file.
 boolean setUserTermListFromFile()
          setUserTermListFromFile() - set user search term-list state from a file.
 java.lang.String testAndSetProjDir(java.lang.String testProjDir, boolean fatalFlag)
          testAndSetProjDir() - test and set project directory cvt.userDir.
 void updateReportStatusLine(java.lang.String msg)
          updateReportStatusLine() - clear text in popup window
 void updateSampleList(javax.swing.event.ListSelectionEvent lsEvent)
          updateSampleList() - handle item state changed events NOTE: need to implement radio groups here since AWT only implements radio groups for Checkboxes, and CheckboxMenuItems.
 boolean updateSearchGUIjarFile()
          updateSearchGUIjarFile() - update the SearchGui.jar file from the URL_HOME web server.
private  boolean viewHTMLfile()
          viewHTMLfile() - popup browser on guiActiveHTMLfile file.
 void windowActivated(java.awt.event.WindowEvent e)
           
 void windowClosed(java.awt.event.WindowEvent e)
           
 void windowClosing(java.awt.event.WindowEvent e)
          windowClosing() - closing down the window, get rid of the frame.
 void windowDeactivated(java.awt.event.WindowEvent e)
           
 void windowDeiconified(java.awt.event.WindowEvent e)
           
 void windowIconified(java.awt.event.WindowEvent e)
           
 void windowOpened(java.awt.event.WindowEvent e)
           
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, 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, paint, 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, 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, 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
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values

URL_HOME

public static final java.lang.String URL_HOME
Home URL for server

See Also:
Constant Field Values

URL_JAR_FILE

public static final java.lang.String URL_JAR_FILE
URL for SearchGui.jar if update from the server

See Also:
Constant Field Values

cvt

public HTMLtools cvt

sGui

public SearchGUI sGui

sgs

public SearchGUI.SGstate sgs
SearchGUI state variables that can be saved/imported from .sgs files.


title

private java.lang.String title
string for title of frame


programName

private java.lang.String programName
The name of the program


version

private java.lang.String version
version number of the program


mbar

private java.awt.MenuBar mbar
menu bar for the frame


fileMenu

private java.awt.Menu fileMenu
"File" pull down Menu list


viewMenu

private java.awt.Menu viewMenu
"View" pull down Menu list


listMenu

private java.awt.Menu listMenu
"List" pull down Menu list


helpMenu

private java.awt.Menu helpMenu
"Help" pull down Menu list


ms

private MenuSupport ms
Menu support functions using Hashtables to track what is active


verboseMCB

private java.awt.CheckboxMenuItem verboseMCB
Menu checkbox item for Verbose reporting


foldChangeMCB

private java.awt.CheckboxMenuItem foldChangeMCB
Menu checkbox item for "Report Fold Change of 2 sample subsets"


foldChangeThrMCB

private java.awt.CheckboxMenuItem foldChangeThrMCB
Menu checkbox item for "Only keep genes/probes with |fold-change| >= threshold" This pops up a dialog to enter the threshold value between 0.0 and some large number and saves it in sgs.foldChangeThr. The associated flag is sgs.foldChangeThrFlag.


lastRestoreSGstateMI

private java.awt.MenuItem lastRestoreSGstateMI
MenuItem "Restore previously saved search .sgs parameters from file"


restoreSGstateMI

private java.awt.MenuItem restoreSGstateMI
MenuItem "Restore previously saved search .sgs parameters from file"


saveSGstateMI

private java.awt.MenuItem saveSGstateMI
MenuItem "SaveAs current search .sgs parameters to file"


classAMI

private java.awt.MenuItem classAMI
MenuItem "Assign EG samples to Class A"


classBMI

private java.awt.MenuItem classBMI
MenuItem "Assign EG samples to Class A"


showDataHeatmapFlipTableMCB

private java.awt.CheckboxMenuItem showDataHeatmapFlipTableMCB
Menu checkbox item for "Show data heat-map in View HTML Results"


showStatusFlag

public boolean showStatusFlag

textAreaFontSize

private int textAreaFontSize
font size


textFontFamily

private java.lang.String textFontFamily
Text area font family


bptv

public PopupTextViewer bptv
Optional Big popup text viewer for Report-Log


reportTextarea

private javax.swing.JTextArea reportTextarea
Text area GUI for main Report-Log. Data is also kept int textReport and can be saved in reportFile.


searchTermTextArea

private javax.swing.JTextArea searchTermTextArea
Text area GUI for entering list of search terms


samplesList

private javax.swing.JList samplesList

processButton

public javax.swing.JButton processButton
button for "Process" button - may enable/disable button


cancelButton

public javax.swing.JButton cancelButton
button for "Cancel" button - may enable/disable button


viewHTMLButton

public javax.swing.JButton viewHTMLButton
button for "ViewHTML" button - may enable/disable button


resetButton

private javax.swing.JButton resetButton
button for "Reset" converter button


statusLineLabel

private javax.swing.JLabel statusLineLabel
Status line label updated with UtilCM.updateReportStatusLine()


filterRowTextField

private javax.swing.JTextField filterRowTextField

searchResultsFilenamePrefixTF

private javax.swing.JTextField searchResultsFilenamePrefixTF
SearchResults filename Prefix text field


matchGeneTermRB

private javax.swing.JRadioButton matchGeneTermRB
Exact match radio button for search-term specification, button grouped with matchSearchStrTermRB. Sets sgs.flipTableUseExactMatchFlag.


matchSubStrTermRB

private javax.swing.JRadioButton matchSubStrTermRB
Substring match radio button for search-term specification, button grouped with matchGeneTermRB. Clears sgs.flipTableUseExactMatchFlag.


andEGnamesRB

private javax.swing.JRadioButton andEGnamesRB
AND match radio button for EG sample list specification, button grouped with orEGnamesRB. Sets sgs.evalSearchANDbooleanFlag.


orEGnamesRB

private javax.swing.JRadioButton orEGnamesRB
OR match radio button for EG sample list specification, button grouped with andEGnamesRB. Clears sgs.evalSearchANDbooleanFlag.


textReport

private java.lang.String textReport
Copy of text in Report-Log reportTextarea


reportFile

private java.lang.String reportFile
Default SAVE AS .txt file for Report-Log textReport data used in reportTextarea.


searchTermsFilterPrompt

private java.lang.String searchTermsFilterPrompt
Switch supplied search Terms filter prompt for searchTermTextArea Set by -searchTermsFilterPrompt:{...}.


searchTermFilter

private java.lang.String[][] searchTermFilter

searchTermNames

private java.lang.String[] searchTermNames

nSearchTermNames

private int nSearchTermNames

flipTableDataFile

public java.lang.String flipTableDataFile
Name of database Table file that we will use to verify search terms. We get this from '-flipTableByIndexMap:{dataSet.txt,dataSet.idx}'.


flipTableIndexMapFile

public java.lang.String flipTableIndexMapFile
Name of Index Map file that we will use to verify search terms. We get this from '-flipTableByIndexMap:{dataSet.txt,dataSet.idx}'. This is used to read the ftIM FileTable.


ftIM

public FileTable ftIM
Index Map FileTable that we will use to verify search terms. We get this from '-flipTableByIndexMap:{dataSet.txt,dataSet.idx}'.


ftData

public FileTable ftData
Header-only Data FileTable that we will use to get the list of EG Samples.We get this from '-flipTableByIndexMap:{dataSet.txt,dataSet.idx}'.


dbGSPIDlist

private java.lang.String[] dbGSPIDlist
This is the list of ftData Data Table columns starting with "EG" and is the list of EG GSP IDs in the database.


indexMapReadyFlag

public volatile boolean indexMapReadyFlag
The Index Map file into ftIM has been read successfully by the ProcessLoadIndexMapData Thread.


indexMapProblemFlag

public volatile boolean indexMapProblemFlag
There has been a problem reading the Index Map file into ftIM by the ProcessLoadIndexMapData Thread.


searchSampleChoiceFile

private java.lang.String searchSampleChoiceFile
The name of the sample list Table file. It is a 2 column array where used for the sample Choice GUI where the choice Object value is [][0], and the viewable choice name is [][1]. Set by '-searchsearchSampleChoiceFile:{sample choice Table file}'.


sampleChoiceData

private java.lang.String[][] sampleChoiceData
The sample list is a 2 column array where the Object value is [][0], and the viewable choice name is [][1].


searchRowFilterName

private java.lang.String searchRowFilterName
Switch supplied search sample groups filter name for sampleExprGroupsTextArea. Set by -searchRowFilterName:{...}.


searchRowFilterPrompt

private java.lang.String searchRowFilterPrompt
Switch supplied search samples group filter prompt for sampleExprGroupsTextArea. Set by -searchRowFilterPrompt:{...}.


pds

public ProcessDataSearch pds
Thread for converter processing


processFlag

public volatile boolean processFlag
"Processing" data in the GUI


processedOKflag

public volatile boolean processedOKflag
"Process was ok" if true. Set to false if any problems.


doneFlag

public volatile boolean doneFlag
"Done" processing data in the GUI


closeGuiFlag

public volatile boolean closeGuiFlag
"Close" the GUI


cancelFlag

public volatile boolean cancelFlag
"Cancel" the processing in the GUI


guiFSMstate

public volatile java.lang.String guiFSMstate
GUI FSM state


dataSource

private java.lang.String dataSource
The subtitle for generated Web page by mapping to the preface "$$DATA_SOURCE_SUBTITLE$$"


inputSearchDir

public volatile java.lang.String inputSearchDir
Param .map default input Dir


outputSearchDir

public volatile java.lang.String outputSearchDir
Param .map default output Dir


tableSearchDir

public volatile java.lang.String tableSearchDir
Param .map default table Dir


guiParamsMapFile

public volatile java.lang.String guiParamsMapFile
GUI Converter params map file


guiParamsMapDefaultPath

public volatile java.lang.String guiParamsMapDefaultPath
GUI Converter params map default file path


guiActiveHTMLfile

public volatile java.lang.String guiActiveHTMLfile

guiActiveTXTfile

public volatile java.lang.String guiActiveTXTfile

sGuiArgV

public volatile java.lang.String sGuiArgV
Command line string created to use when running the converter used by ProcessDataSearch


guiArgV

public volatile java.lang.String[] guiArgV
Command line string array created to use when running the converter used by ProcessDataSearch

Constructor Detail

SearchGUI

public SearchGUI(HTMLtools cvt,
                 java.lang.String programName,
                 java.lang.String version,
                 java.lang.String textReport,
                 java.lang.String title,
                 java.lang.String reportFile,
                 java.lang.String paramsMapDefaultFile)
SearchGUI() - Constructor

Parameters:
cvt - is an instance of the CvtTabDelim2HTML class
programName - name of the program
version - - of program
textReport - is initial text string for buffer.
title - of the window
String - reportFile is default SAVE AS .txt file. Default "log.txt"
guiParamsMapDefaultFile - is default params. map file if not null, else it uses "paramsSearchDefault.map".
Method Detail

getOtherSearchParams

public boolean getOtherSearchParams(java.lang.String paramsSearchDefaultPath)
getOtherSearchParams() - get search information for GUI for prompts and menus These terms are found in the default search params .map file. The following must be defined:
 E.g.,
   -flipTableByIndexMap:{dataSet.txt,dataSet.idx}
   -searchTermNames:"Gene,Feature ID"
   -searchRowFilterName:"Sample Experiment Groups"
   -searchSampleChoiceFile:sampleExperimentGroupsChoices.txt
   -searchTermsDemoData:"Stat5a Stat5b 1438470_at 1441476_at 1446085_at"
   -searchUserTermList:"LitRefGeneList.txt,Gene,Literature Review"
   -searchTermsFilterPrompt:"'Gene' and/or 'Probe' names. E.g., Stat5a, Stat5b, 1449109_at, etc."
   -searchRowFilterPrompt:"'Sample Experiment Groups'. E.g., select one or more Experiment Groups"

Returns:
true if succeed, false if do not find all of the search terms

initGUI

public boolean initGUI()
initGUI() - create the popup GUI

Returns:
true if succeed

addMenuTree

private void addMenuTree(java.awt.Frame f,
                         java.awt.MenuBar mbar)
addMenuTree() - create pull down menus in menu bar for the GUI

Parameters:
f - is frame
mbar - is MenuBar

processGuiStateData

private boolean processGuiStateData()
processGuiStateData() - Process data specified by the GUI state. This is called from the "Process" event-handler for the button and menu handler.

Returns:
true if succeed, false if any problems after write err msg to window

createParamsMapFile

private boolean createParamsMapFile()
createParamsMapFile() - Create guiParamsMapFile from default params.map file
 Add the following required switches:
   -flipOrderHdrColNames:"*LIST*,Stat5a,"
   -flipColumnName:"*LIST*,Gene,Stat5a,Stat5b"
   -flipColumnName:"*LIST*,Feature ID,1438470_at,1441476_at,1446085_at"
   -flipRowFilterNames:\"*LIST*,EG003.1,EG003.2"
  
 Add the following optional switches:
   -flipRowGSPIDfilterSubstring:"AND,.stat,.GH"
   -flipAclass:"{classAsamples}"  [if sgs.reportFoldChangeFlag]
   -flipBclass:"{classBsamples}"  [if sgs.reportFoldChangeFlag]
   -flipFCthreshold:{foldChangeThr} [if foldChangeThrFlag && foldChangeThr>0.0F]
   -dataPrecisionHTMLtable:{precision of HTML table}
   -sortFlipTableByColumnName:{sort column}
   -showDataHeatmapFlipTable
   -flipUseExactColumnNameMatch:{sgs.flipTableUseExactMatchFlag}
   -flipDirectory:"{outputSearchDir}"
   -flipSaveOutputFile:"{searchResultsBaseFile}"
 

Returns:
true if created the params .map file

setDemoParameters

public void setDemoParameters()
setDemoParameters() - set the Search Terms list for demo state. The demo argument to load into the searchTermTextArea GUI Set by "-searchTermsDemoData:{list of search terms}" The demo argument to load into the sample list choice GUI and into sampleRowFilter[] data. Set by "-searchRowsDemoData:{list of sample groups}"


setUserSearchTermFileParameters

public void setUserSearchTermFileParameters()
setUserSearchTermFileParameters() - set search term list from user file. The demo argument to load into the searchTermTextArea GUI Set by "-searchUserTermList:{userListTable,colName,title string}". The demo argument to load into the sample list choice GUI.


setUserTermListFromFile

public boolean setUserTermListFromFile()
setUserTermListFromFile() - set user search term-list state from a file. It pops up a file browser with the default set to {userListTable} which can be a single column list or if a Table, then use the {colName} set by "-searchUserTermList:{userListTable,colName,title str}". If {colName} is not specified, then assume the data is just delimited search terms. Map all " ", ",", "\t" and "\n" to single space normalized string. The list is then loaded into the searchTermTextArea GUI


setGUItoSGstate

private boolean setGUItoSGstate(SearchGUI.SGstate sg)
setGUItoSGstate() - set GUI to instance of SGstate. Set the GUI to variables in SGstate sg instance.

Parameters:
sg - is instance of SGstate to use (that could be different than this.sgs
Returns:
true if succeed

getGUItoSGstate

private boolean getGUItoSGstate(SearchGUI.SGstate sg)
getGUItoSGstate() - get additional SGstate variables from GUI. Note that most variables are set as the GUI state changes, but some sg variables need to be set. I.e., the TextAreas and TextFields. Set the GUI to variables in SGstate sg instance.

Parameters:
sg - is instance of SGstate to use (that could be different than this.sgs
Returns:
true if succeed

saveGUItoGSstateFile

private boolean saveGUItoGSstateFile(java.lang.String filePath)
saveGUItoGSstateFile() - save GUI to GSstate .sgs file

Parameters:
filePath - - of .sgs file to save
Returns:
true if succeed

restoreGUIfromGSstateFile

private boolean restoreGUIfromGSstateFile(java.lang.String filePath)
restoreGUIfromGSstateFile() - restore GUI from GSstate .sgs file

Parameters:
filePath - - of .sgs file to restore
Returns:
true if succeed

setEnableSearchParamsButtonsAndMenus

public void setEnableSearchParamsButtonsAndMenus()
setEnableSearchParamsButtonsAndMenus() - set Search buttons & menus state. This sets the flags to the initial "Assign" data state.


setEnableCancelButtonsAndMenus

public void setEnableCancelButtonsAndMenus(java.lang.String statusLabel)
setEnableCancelButtonsAndMenus() - when are able to do processing state. This sets the flags to the "Process" data state. It also clears the list of generated HTML files.

Parameters:
statusLabel - to use for Report status line.

setEnableViewingButtonsAndMenus

public void setEnableViewingButtonsAndMenus()
setEnableViewingButtonsAndMenus() - when can view processed HTML files state. This sets the flags to the "Viewing-enable" data state.


positionReportWindow

public void positionReportWindow()
positionReportWindow() - position report window on the screen


setShow

public void setShow(boolean showStatusFlag)
setShow() - set the show/hide popup status

Parameters:
showStatusFlag - to show (true), hide(false).

updateReportStatusLine

public void updateReportStatusLine(java.lang.String msg)
updateReportStatusLine() - clear text in popup window

Parameters:
msg - to display

clearText

public void clearText()
clearText() - clear text in popup window


getReportText

public java.lang.String getReportText()
getReportText() - get the text from the Report popup window

Returns:
text report

getSearchResultsFilenamePrefix

public void getSearchResultsFilenamePrefix()
getSearchResultsFilenamePrefix() - get the new value from JTextField searchResultsFilenamePrefixTF and set it to searchResultsBaseFile


getDBgeneList

public java.lang.String getDBgeneList(java.lang.String searchTermsStr,
                                      boolean matchSubstringFlag)
getDBgeneList() - get printable text list of genes in the database. If there are no search terms, then return the entire list.

Parameters:
searchTermsStr - - list of search terms if not null in which case return the entire list
matchSubstringFlag - - to match it as a substring of Gene field, else use the exact match.
Returns:
text if found, else "" if a problem.

getEGsampleList

public java.lang.String getEGsampleList(java.lang.String searchTermsStr,
                                        java.lang.String[] egGroupList,
                                        boolean evalSchANDboolean,
                                        java.lang.String sTitle)
getEGsampleList() - get printable text list of EG samples in the database. If there are no search terms, then return the entire list. [TODO] Read the header from the Database file which contains the sample GSP IDs but omit the leading "Gene, Well ID, Feature ID"

Parameters:
searchTermsStr - - list of search terms if not null in which case return the entire list,
egGroupList - - is list of the EG groups, if ALL, then all groups
evalSchANDboolean - - is true if AND, false if OR for matching search terms.
sTitle - optional title if not null
Returns:
text if found, else "" if a problem.

getEGclassSampleList

public java.lang.String getEGclassSampleList(java.lang.String classSamplesList,
                                             java.lang.String className,
                                             java.lang.String sTitle)
getEGclassSampleList() - get printable text list of class EG samples.

Parameters:
classSamplesList - - set of comma-delim. Class A or B EG samples
className - - (e.g., "A" or "B")
sTitle - - optional title
Returns:
printable list else null.

getEGsamplesString

public java.lang.String getEGsamplesString(java.lang.String searchTermsStr,
                                           java.lang.String[] egGroupList,
                                           boolean evalSchANDboolean)
getEGsamplesString() - get "," separated text string of EG samples in database. If there are no search terms, then return the entire list. [TODO] Read the header from the Database file which contains the sample GSP IDs but omit the leading "Gene, Well ID, Feature ID"

Parameters:
searchTermsStr - - list of search terms if not null in which case return the entire list,
egGroupList - - is list of the EG groups, if ALL, then all groups
evalSchANDboolean - - is true if AND, false if OR for matching search terms.
Returns:
text if found, else "" if a problem.

matchEGsampleBySearchTerms

private boolean matchEGsampleBySearchTerms(java.lang.String sGSPID,
                                           java.lang.String[] searchTermList,
                                           boolean evalSchANDboolean)
matchEGsampleBySearchTerms() - test sGSPID if match searchTerms list. Match by evalSearchANDbooleanFlag true if AND, false if OR for matching search terms.

Parameters:
sGSPID - - EG sample GSP ID name
searchTerms - - list of search terms to test
evalSchANDboolean - - is true if AND, false if OR for matching search terms.
Returns:
true if match successful.

setReportText

public void setReportText(java.lang.String newText)
setReportText() - update text in popup window

Parameters:
newText - is string to copy into text window

setGUItitle

public void setGUItitle(java.lang.String title)
setGUItitle() - update title in popup window

Parameters:
title - is new title.

setSaveAsFile

public void setSaveAsFile(java.lang.String reportFile)
setSaveAsFile() - set SaveAs file default file name

Parameters:
reportFile - is new reportFile.

close

public void close()
close() - close this popup and reset flags if needed


testAndSetProjDir

public java.lang.String testAndSetProjDir(java.lang.String testProjDir,
                                          boolean fatalFlag)
testAndSetProjDir() - test and set project directory cvt.userDir. If valid, then save it in cvt.userDir. [TODO] need to [DEBUG]

Parameters:
testProjDir - project directory
Returns:
projDir if succeed in finding the project directory, else null

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed() - Handle menu actions and button clicks

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - is action evet

printSearchResultsFileNames

private void printSearchResultsFileNames()
printSearchResultsFileNames() - print Search-Results File Names to log.


printGuiFSM

public void printGuiFSM(java.lang.String preface,
                        boolean printFlag)
printGuiFSM() - print GuiFSM if printFlag set


printGuiFSMlf

public void printGuiFSMlf(java.lang.String preface,
                          boolean printFlag)
printGuiFSMlf() - print GuiFSM if printFlag set followed by extra line feed


getGuiFSM

public java.lang.String getGuiFSM()
getGuiFSM() - Get the GUI FSM state string.

Returns:
the current state string

resetInitialGuiProcessingState

public void resetInitialGuiProcessingState()
resetInitialGuiProcessingState() - reset the search terms & samples GUI state


clearGuiProcessingState

public void clearGuiProcessingState()
clearGuiProcessingState() - clear the GUI state


setCancelFlag

public void setCancelFlag(boolean flag)
setCancelFlag() - set the Cancel flag value

Parameters:
flag - value to set the cancelFlag

getCancelFlag

public boolean getCancelFlag()
getCancelFlag() - get the Cancel flag value


setEnableSearchParamsState

public void setEnableSearchParamsState()
setEnableSearchParamsState() - set Search parameters GUI & menus state. This sets the flags to the initial "SearchParams" data state.


setEnableCancelState

public void setEnableCancelState()
setEnableCancelState() - when are able to do processing state. This sets the flags to the "Process" data state. It also clears the list of generated HTML files.


setEnableViewingState

public void setEnableViewingState()
setEnableViewingState() - when can view processed HTML files state. This sets the flags to the "Viewing-enable" data state.


quit

public void quit()
quit() - closing down the window, get rid of the frame.

See Also:
close()

updateSearchGUIjarFile

public boolean updateSearchGUIjarFile()
updateSearchGUIjarFile() - update the SearchGui.jar file from the URL_HOME web server.


itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
itemStateChanged() - handle item state changed events NOTE: need to implement CheckboxMenuItems.

Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Parameters:
e - is ItemEvent

updateSampleList

public void updateSampleList(javax.swing.event.ListSelectionEvent lsEvent)
updateSampleList() - handle item state changed events NOTE: need to implement radio groups here since AWT only implements radio groups for Checkboxes, and CheckboxMenuItems.

Parameters:
e - is ItemEvent

viewHTMLfile

private boolean viewHTMLfile()
viewHTMLfile() - popup browser on guiActiveHTMLfile file.

Returns:
true if succeed

windowClosing

public void windowClosing(java.awt.event.WindowEvent e)
windowClosing() - closing down the window, get rid of the frame.

Specified by:
windowClosing in interface java.awt.event.WindowListener
Parameters:
e - is window closing event
See Also:
close()

windowOpened

public void windowOpened(java.awt.event.WindowEvent e)
Specified by:
windowOpened in interface java.awt.event.WindowListener

windowActivated

public void windowActivated(java.awt.event.WindowEvent e)
Specified by:
windowActivated in interface java.awt.event.WindowListener

windowClosed

public void windowClosed(java.awt.event.WindowEvent e)
Specified by:
windowClosed in interface java.awt.event.WindowListener

windowDeactivated

public void windowDeactivated(java.awt.event.WindowEvent e)
Specified by:
windowDeactivated in interface java.awt.event.WindowListener

windowDeiconified

public void windowDeiconified(java.awt.event.WindowEvent e)
Specified by:
windowDeiconified in interface java.awt.event.WindowListener

windowIconified

public void windowIconified(java.awt.event.WindowEvent e)
Specified by:
windowIconified in interface java.awt.event.WindowListener