Class TableSaveChooser

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

    public abstract class TableSaveChooser
    extends javax.swing.JPanel
    Dialog which permits a user to save one or more StarTables in a place and format of choice. It should be able to provide suitable dialogs for all the supported table types; in particular it includes a filestore browser and special JDBC connection dialog.

    The usual way to use this is to implement getTables() to provide the table which will be saved, and then call showSaveDialog(java.awt.Component).

    Author:
    Mark Taylor (Starlink)
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • 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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, 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
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      javax.swing.JDialog createDialog​(java.awt.Component parent)
      Creates a dialogue which can be used for user interaction.
      javax.swing.Action createSaveDialogAction​(TableSaveDialog tsd)
      Returns an action which will result in the given save dialogue being posted to allow the user to save this chooser's current table.
      void done()
      Called when the table has been written.
      static java.lang.String[] getExtraWriterNames​(boolean multi)
      Returns a selection of output handler specifications that can be offered to the user alongside the default-configuration ones.
      javax.swing.JComboBox<java.lang.String> getFormatSelector()
      Returns the selector which chooses table output formats.
      javax.swing.Action[] getSaveDialogActions()
      Returns actions which correspond to the save dialogues this saver is using.
      java.lang.String getSelectedFormat()
      Returns the currently selected format string.
      StarTableOutput getTableOutput()
      Returns the StarTableOutput object which this saver uses to do the actual writing of the StarTables.
      abstract StarTable[] getTables()
      Obtains the tables to write.
      static void main​(java.lang.String[] args)
      Testing purposes only.
      static javax.swing.ComboBoxModel<java.lang.String> makeFormatBoxModel​(StarTableOutput sto, boolean multi)
      Constructs a ComboBoxModel containing an entry for each of the known output formats.
      void setEnabled​(boolean isEnabled)  
      void setProgressBar​(javax.swing.JProgressBar progBar)
      Sets the progress bar that will be used by this chooser.
      void setSelectedFormat​(java.lang.String format)
      Sets the currently selected format string.
      void setTableOutput​(StarTableOutput sto)
      Sets the StarTableOutput object which this saver uses to do the actual writing of the StarTables.
      void showSaveDialog​(java.awt.Component parent)
      Pops up a modal dialogue which interacts with the user to save the tables returned by getTables().
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • TableSaveChooser

        public TableSaveChooser()
        Constructs a saver with a default StarTableOutput and save dialogues.
      • TableSaveChooser

        public TableSaveChooser​(StarTableOutput sto,
                                TableSaveDialog[] saveDialogs)
        Constructs a saver with a given StarTableOutput and save dialogues.
        Parameters:
        sto - output marshaller
        saveDialogs - array of save dialogues to use
    • Method Detail

      • setTableOutput

        public void setTableOutput​(StarTableOutput sto)
        Sets the StarTableOutput object which this saver uses to do the actual writing of the StarTables.
        Parameters:
        sto - the new StarTableOutput to use
      • getTableOutput

        public StarTableOutput getTableOutput()
        Returns the StarTableOutput object which this saver uses to do the actual writing of the StarTables.
        Returns:
        sto the StarTableOutput object
      • getFormatSelector

        public javax.swing.JComboBox<java.lang.String> getFormatSelector()
        Returns the selector which chooses table output formats. It may be replaced.
        Returns:
        format selector
      • getTables

        public abstract StarTable[] getTables()
        Obtains the tables to write. This must be implemented by concrete subclasses.
        Returns:
        table to write
      • setProgressBar

        public void setProgressBar​(javax.swing.JProgressBar progBar)
        Sets the progress bar that will be used by this chooser. Should be called before the component is displayed to the user.
        Parameters:
        progBar - progress bar for displaying save progress
      • getSaveDialogActions

        public javax.swing.Action[] getSaveDialogActions()
        Returns actions which correspond to the save dialogues this saver is using. Each action is the result of an earlier call to createSaveDialogAction(uk.ac.starlink.table.gui.TableSaveDialog).
        Returns:
        array of actions which will trigger a particular save dialogue
      • done

        public void done()
        Called when the table has been written.
      • showSaveDialog

        public void showSaveDialog​(java.awt.Component parent)
        Pops up a modal dialogue which interacts with the user to save the tables returned by getTables().
        Parameters:
        parent - parent component
      • setEnabled

        public void setEnabled​(boolean isEnabled)
        Overrides:
        setEnabled in class javax.swing.JComponent
      • getSelectedFormat

        public java.lang.String getSelectedFormat()
        Returns the currently selected format string.
        Returns:
        format label
      • setSelectedFormat

        public void setSelectedFormat​(java.lang.String format)
        Sets the currently selected format string.
        Parameters:
        format - format label
      • createDialog

        public javax.swing.JDialog createDialog​(java.awt.Component parent)
        Creates a dialogue which can be used for user interaction.
        Parameters:
        parent - parent component
      • createSaveDialogAction

        public final javax.swing.Action createSaveDialogAction​(TableSaveDialog tsd)
        Returns an action which will result in the given save dialogue being posted to allow the user to save this chooser's current table. This method is invoked in the constructor, hence is declared final.
        Parameters:
        tsd - save dialogue
        Returns:
        action to post tsd
      • makeFormatBoxModel

        public static javax.swing.ComboBoxModel<java.lang.String> makeFormatBoxModel​(StarTableOutput sto,
                                                                                     boolean multi)
        Constructs a ComboBoxModel containing an entry for each of the known output formats.
        Parameters:
        sto - output marshaller
        multi - true if multiple tables might be used, false if only a single table will be written
        Returns:
        format combo box model
      • getExtraWriterNames

        public static java.lang.String[] getExtraWriterNames​(boolean multi)
        Returns a selection of output handler specifications that can be offered to the user alongside the default-configuration ones.
        Parameters:
        multi - true if multiple tables might be used, false if only a single table will be written
        Returns:
        example/useful writer specifications including config options
      • main

        public static void main​(java.lang.String[] args)
        Testing purposes only.