Class CellEditDialog

  • All Implemented Interfaces:
    org.eclipse.jface.window.IShellProvider, ICellEditDialog
    Direct Known Subclasses:
    TickUpdateCellEditDialog

    public class CellEditDialog
    extends org.eclipse.jface.dialogs.Dialog
    implements ICellEditDialog
    Dialog that supports editing of cells in NatTable. Is used for multi cell editing and for dialog only editors.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.jface.window.Window

        org.eclipse.jface.window.Window.IExceptionHandler
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Object calculateValue​(Object currentValue, Object processValue)
      In case ICellEditDialog.getEditType() returns an edit type for processing values, this method should implemented to do that transformation.
      protected void cancelPressed()  
      protected void configureShell​(org.eclipse.swt.widgets.Shell newShell)  
      protected org.eclipse.swt.widgets.Control createDialogArea​(org.eclipse.swt.widgets.Composite parent)  
      Object getCommittedValue()  
      EditTypeEnum getEditType()  
      protected org.eclipse.swt.events.KeyListener getEscKeyListener()  
      protected org.eclipse.swt.graphics.Point getInitialLocation​(org.eclipse.swt.graphics.Point initialSize)  
      protected org.eclipse.swt.graphics.Point getInitialSize()  
      protected boolean isResizable()  
      protected void okPressed()  
      void setDialogSettings​(Map<String,​Object> editDialogSettings)
      Allows to customize the appearance of the dialog.
      • Methods inherited from class org.eclipse.jface.dialogs.Dialog

        applyDialogFont, buttonPressed, close, convertHeightInCharsToPixels, convertHeightInCharsToPixels, convertHorizontalDLUsToPixels, convertHorizontalDLUsToPixels, convertVerticalDLUsToPixels, convertVerticalDLUsToPixels, convertWidthInCharsToPixels, convertWidthInCharsToPixels, create, createButton, createButtonBar, createButtonsForButtonBar, createContents, dialogFontIsDefault, getBlockedHandler, getButton, getButtonBar, getCancelButton, getDialogArea, getDialogBoundsSettings, getDialogBoundsStrategy, getImage, getOKButton, initializeBounds, initializeDialogUnits, setBlockedHandler, setButtonLayoutData, setButtonLayoutFormData, shortenText
      • Methods inherited from class org.eclipse.jface.window.Window

        canHandleShellCloseEvent, constrainShellSize, createShell, getConstrainedShellBounds, getContents, getDefaultImage, getDefaultImages, getDefaultOrientation, getLayout, getParentShell, getReturnCode, getShell, getShellListener, getShellStyle, getWindowManager, handleFontChange, handleShellCloseEvent, open, setBlockOnOpen, setDefaultImage, setDefaultImages, setDefaultModalParent, setDefaultOrientation, setExceptionHandler, setParentShell, setReturnCode, setShellStyle, setWindowManager
      • Methods inherited from interface org.eclipse.nebula.widgets.nattable.edit.gui.ICellEditDialog

        open
    • Field Detail

      • originalCanonicalValue

        protected final Object originalCanonicalValue
        The value that should be propagated to the editor control. Needed because for multi cell editing or editor activation by letter/digit key will result in a different value to populate for some editors than populating the value out of the cell/ data model directly.
      • cellEditor

        protected final ICellEditor cellEditor
        The cell editor that should be integrated and activated in this dialog.
      • cell

        protected final ILayerCell cell
        The cell that should be edited. Needed because editor activation retrieves the configuration for editing directly out of the cell.
      • configRegistry

        protected final IConfigRegistry configRegistry
        The IConfigRegistry containing the configuration of the current NatTable instance the command should be executed for. This is necessary because the edit controllers in the current architecture are not aware of the instance they are running in and therefore it is needed for activation of editors.
      • editDialogSettings

        protected Map<String,​Object> editDialogSettings
        Map that contains custom configurations for this CellEditDialog. We do not use the IDialogSettings provided by JFace, because they are used to store and load the settings in XML rather than overriding the behaviour.
    • Constructor Detail

      • CellEditDialog

        public CellEditDialog​(org.eclipse.swt.widgets.Shell parentShell,
                              Object originalCanonicalValue,
                              ILayerCell cell,
                              ICellEditor cellEditor,
                              IConfigRegistry configRegistry)
        Parameters:
        parentShell - the parent shell, or null to create a top-level shell
        originalCanonicalValue - The value that should be propagated to the editor control. Needed because for multi cell editing or editor activation by letter/digit key will result in a different value to populate for some editors than populating the value out of the cell/data model directly.
        cell - The cell that should be edited. Needed because editor activation retrieves the configuration for editing directly out of the cell.
        cellEditor - The ICellEditor that will be used as editor control within the dialog.
        configRegistry - The IConfigRegistry containing the configuration of the current NatTable instance the command should be executed for. This is necessary because the edit controllers in the current architecture are not aware of the instance they are running in and therefore it is needed for activation of editors.
    • Method Detail

      • configureShell

        protected void configureShell​(org.eclipse.swt.widgets.Shell newShell)
        Overrides:
        configureShell in class org.eclipse.jface.window.Window
      • isResizable

        protected boolean isResizable()
        Overrides:
        isResizable in class org.eclipse.jface.dialogs.Dialog
      • getInitialLocation

        protected org.eclipse.swt.graphics.Point getInitialLocation​(org.eclipse.swt.graphics.Point initialSize)
        Overrides:
        getInitialLocation in class org.eclipse.jface.dialogs.Dialog
      • getInitialSize

        protected org.eclipse.swt.graphics.Point getInitialSize()
        Overrides:
        getInitialSize in class org.eclipse.jface.dialogs.Dialog
      • okPressed

        protected void okPressed()
        Overrides:
        okPressed in class org.eclipse.jface.dialogs.Dialog
      • cancelPressed

        protected void cancelPressed()
        Overrides:
        cancelPressed in class org.eclipse.jface.dialogs.Dialog
      • createDialogArea

        protected org.eclipse.swt.widgets.Control createDialogArea​(org.eclipse.swt.widgets.Composite parent)
        Overrides:
        createDialogArea in class org.eclipse.jface.dialogs.Dialog
      • getEditType

        public EditTypeEnum getEditType()
        Specified by:
        getEditType in interface ICellEditDialog
        Returns:
        The edit type that has impact on how the set value will be updated to the data model. By default EditTypeEnum.SET is returned, which will simply set the committed value to the data model. Every other edit type will do some calculation based on the committed value and the current value in the data model.
      • calculateValue

        public Object calculateValue​(Object currentValue,
                                     Object processValue)
        In case ICellEditDialog.getEditType() returns an edit type for processing values, this method should implemented to do that transformation.
        Specified by:
        calculateValue in interface ICellEditDialog
        Parameters:
        currentValue - The current value for the cell before data model update
        processValue - The value committed to the editor that should be used for calculation on the current value.
        Returns:
        This implementation will always return processValue, as there is no processing specified in this ICellEditDialog implementation and therefore the value that was committed to the editor will be updated to the data model.
      • getEscKeyListener

        protected org.eclipse.swt.events.KeyListener getEscKeyListener()
        Returns:
        KeyListener that intercepts the ESC key to cancel editing, close the editor and close the dialog.