Class MoxelControl

  • All Implemented Interfaces:
    ISelectionProvider, org.eclipse.swt.graphics.Drawable

    public class MoxelControl
    extends org.eclipse.swt.widgets.Composite
    implements ISelectionProvider
    SWT-based control of spreadsheet document
    • Constructor Detail

      • MoxelControl

        public MoxelControl​(org.eclipse.swt.widgets.Composite parent,
                            int style)
        Constructor
        Parameters:
        parent - - parent composite
        style - - style
      • MoxelControl

        public MoxelControl​(org.eclipse.swt.widgets.Composite parent,
                            int style,
                            ViewParameters viewParameters)
        Constructor
        Parameters:
        parent - parent composite
        style - SWT style
        viewParameters - ViewParameters
    • Method Detail

      • getEditorType

        public MoxelEditorType getEditorType()
        Get current editor type
        Returns:
        editor type, which is instance of MoxelEditorType, never null
      • setEditorType

        public void setEditorType​(MoxelEditorType editorType)
        Set current editor type
        Parameters:
        editorType - editor type, which is instance of MoxelEditorType, must not be null
      • setDrawSelectionBorder

        public void setDrawSelectionBorder​(boolean paint)
        Set up flag for drawing cells selection border.
        Parameters:
        paint - for drawing cells selection border
      • getImage

        public static org.eclipse.swt.graphics.Image getImage​(Picture picture)
        Make Image from Picture object
        Parameters:
        picture - Picture
        Returns:
        Image or null for invalid pictures
      • setTransparentPixel

        public static org.eclipse.swt.graphics.Image setTransparentPixel​(org.eclipse.swt.graphics.Image image,
                                                                         int transparentPixel)
        Set transparent poit to specified image
        Parameters:
        image - Image
        transparentPixel - - transparent pixel value
        Returns:
        transparent image
      • getEditedCommentDrawing

        public Drawing getEditedCommentDrawing()
        Get current edited comment drawing
        Returns:
        current edited comment drawing
      • getHorizontalFixedViewPort

        public ViewPort getHorizontalFixedViewPort()
        Get horizontal fixed view port
        Returns:
        horizontal fixed view port
      • getVerticalFixedViewPort

        public ViewPort getVerticalFixedViewPort()
        Get vertical fixed viewPort
        Returns:
        vertical fixed viewPort
      • getTLFixedViewPort

        public ViewPort getTLFixedViewPort()
        Get top-left fixed view port
        Returns:
        top-left fixed viewe port
      • getHorizontalFixedHeaderArea

        public HeaderArea getHorizontalFixedHeaderArea()
        Get horizontal fixed header area
        Returns:
        horizontal fixed header area
      • getVerticalFixedHeaderArea

        public HeaderArea getVerticalFixedHeaderArea()
        Get vertical fixed header area
        Returns:
        vertical fixed header area
      • setTopScrollablePoint

        public void setTopScrollablePoint​(org.eclipse.swt.graphics.Point point)
        Set top scrollable point
        Parameters:
        point - - point to set up
      • getTopScrollbalePoint

        public org.eclipse.swt.graphics.Point getTopScrollbalePoint()
        Get top scrollable point
        Returns:
        top scrollable point
      • getListOfViewPorts

        public List<ViewPort> getListOfViewPorts()
        Get list of all view ports
        Returns:
        list of view ports
      • setCurrentMouseTool

        public void setCurrentMouseTool​(Tool tool)
        Установить инструмент для мыши.
      • getCurrentMouseTool

        public Tool getCurrentMouseTool()
        Получить текущий инструмент.
      • setDropSelection

        public void setDropSelection​(Selection selection)
        Set drop selection.
        Parameters:
        selection - Selection
      • setDragMouseButton

        public void setDragMouseButton​(int dragMouseButton)
        Set key code of mouse button used for drag
        Parameters:
        lastMouseState - key code of mouse button used for drag
      • getDragMouseButton

        public int getDragMouseButton()
        Get key code of mouse button used for drag
        Returns:
        key code of mouse button used for drag
      • findDrawingHandlesAtPos

        public DrawingResizeHandle findDrawingHandlesAtPos​(ViewPort viewPort,
                                                           int x,
                                                           int y)
        Найти рукоятки для изменения размеров рисунков.
      • findDrawingAtPos

        public Drawing findDrawingAtPos​(ViewPort viewPort,
                                        int x,
                                        int y)
        Найти рисункок в указанной позиции.
      • getDrawingsInRect

        public List<Drawing> getDrawingsInRect​(ViewPort viewPort,
                                               org.eclipse.swt.graphics.Rectangle rectangle)
        Получить рисунки в прямоугольнике.
      • findColumnToResize

        public Integer findColumnToResize​(int x,
                                          int y,
                                          int[] colPosition,
                                          Columns[] columns_,
                                          boolean headerOnly)
        Найти колонку, которой нужно изменить размер.
      • findRowToResize

        public Integer findRowToResize​(int x,
                                       int y,
                                       int[] rowPosition,
                                       boolean headerOnly)
        Найти строку, которой нужно изменить размер.
      • getScale

        public int getScale()
        Получить масштаб
      • setScale

        public void setScale​(int scale)
        Установить масштаб отображения.
      • refreshViewParameters

        public void refreshViewParameters()
        Обновить настройки отображения.
      • paintSelection

        public void paintSelection​(ViewPort viewPort,
                                   org.eclipse.swt.graphics.GC gc,
                                   org.eclipse.swt.graphics.Rectangle deviceUpdateRect)
        Отрисовать выделение.
      • drawResizedSelectedDrawings

        public void drawResizedSelectedDrawings​(ViewPort viewPort,
                                                org.eclipse.swt.graphics.GC gc,
                                                int resizeX,
                                                int resizeY,
                                                DrawingResizeHandle resizeHandle)
        Нарисовать изменение размеров рисунка.
      • drawMovedSelectedDrawings

        public void drawMovedSelectedDrawings​(ViewPort viewPort,
                                              org.eclipse.swt.graphics.GC gc,
                                              int horizontalShift,
                                              int verticalShift)
        Нарисовать перемещение рисунков.
      • paintDrawingContour

        public void paintDrawingContour​(org.eclipse.swt.graphics.GC gc,
                                        Drawing drawing,
                                        org.eclipse.swt.graphics.Rectangle drawingPositionPixel)
        Нарисовать контур рисунка.
      • getDrawingHandles

        public List<DrawingResizeHandle> getDrawingHandles​(Drawing drawing,
                                                           org.eclipse.swt.graphics.Rectangle drawingPositionPixel)
        Получить рукоятки для изменения рисунка.
      • getCurrentColumns

        public Columns getCurrentColumns()
        Получить колонки, для которых идет вывод
      • getMainScrollableViewPort

        public ViewPort getMainScrollableViewPort()
        Получить основную прокручиваемую область.
      • getShowHeaders

        public boolean getShowHeaders()
        Получить признак того, что нужно отображать заголовки.
      • setShowHeaders

        public void setShowHeaders​(boolean show)
        Установить необходимость отображения заголовков
      • getShowGrid

        public boolean getShowGrid()
        Получить признак того, что нужно отображать сетку.
      • setShowGrid

        public void setShowGrid​(boolean show)
        Установить необходимость отображения заголовков
      • getShowGroups

        public boolean getShowGroups()
        Получить признак того, что нужно отображать заголовки.
      • setShowGroups

        public void setShowGroups​(boolean show)
        Установить необходимость отображения заголовков
      • getShowNamedRowColumns

        public boolean getShowNamedRowColumns()
        Получить признак того, что нужно отображать именованные строки/колонки.
      • setNamedRowColumns

        public void setNamedRowColumns​(boolean show)
        Установить необходимость отображения именованных строк/колонок.
      • getBlackWhiteMode

        public boolean getBlackWhiteMode()
        Получить режим черно/белого просмотра.
      • setBlackWhiteMode

        public void setBlackWhiteMode​(boolean blackWhiteMode)
        Установить режим черно/белого просмотра.
      • isPageViewMode

        public boolean isPageViewMode()
        Check if page view mode is on
        Returns:
        result of check
      • setPageViewMode

        public void setPageViewMode​(boolean pageViewMode)
        Set 'page view mode' flag to specified value
        Parameters:
        pageViewMode - - 'page view mode' flag value
      • getShowComments

        public boolean getShowComments()
        Получить признак того, что нужно отображать примечания.
      • setShowComments

        public void setShowComments​(boolean show)
        Установить необходимость отображения примечаний.
      • getFixedColumn

        public int getFixedColumn()
        Get fixed column index
        Returns:
        fixed column index
      • setFixedColumn

        public void setFixedColumn​(int column)
        Set fixed column index
        Parameters:
        column - - fixed column index
      • getFixedColumnColumns

        public Columns getFixedColumnColumns()
        Get column type for columns fixation
        Returns:
        Columns - column type
      • setFixedColumnColumns

        public void setFixedColumnColumns​(Columns columns)
        Get column type for columns fixation
        Parameters:
        columns - - Columns - column type
      • getFixedRow

        public int getFixedRow()
        Get fixed row index
        Returns:
        fixed row index
      • setFixedRow

        public void setFixedRow​(int row)
        Set fixed row index
        Parameters:
        row - - fixed row index
      • getFixationPointColumn

        public int getFixationPointColumn()
        Get fixation point for columns
        Returns:
        fixation point for columns
      • setFixationPointColumn

        public void setFixationPointColumn​(int column)
        Set fixation point for columns
        Parameters:
        column - - fixation point for columns
      • getFixationPointRow

        public int getFixationPointRow()
        Get fixation point for rows
        Returns:
        fixation point for rows
      • setFixationPointRow

        public void setFixationPointRow​(int row)
        Set fixation point for rows
        Parameters:
        row - - fixation point for rows
      • getTopFixationPointColumn

        public int getTopFixationPointColumn()
        Get top fixation point for columns
        Returns:
        top fixation point for columns
      • setTopFixationPointColumn

        public void setTopFixationPointColumn​(int column)
        Set top fixation point for columns
        Parameters:
        column - - top fixation point for columns
      • getTopFixationPointRow

        public int getTopFixationPointRow()
        Get top fixation point for rows
        Returns:
        top fixation point for rows
      • setTopFixationPointRow

        public void setTopFixationPointRow​(int row)
        Set top fixation point for rows
        Parameters:
        row - - top fixation point for rows
      • isReadOnlyMode

        public boolean isReadOnlyMode()
        Check if read-only mode for current spreadsheet is turned on.
        Returns:
        true if read-only mode is turned on, false otherwise.
      • setReadOnlyMode

        public void setReadOnlyMode​(boolean mode)
        Set up read-only mode value.
        Parameters:
        mode - read-only mode value
      • isTrueReadOnly

        public boolean isTrueReadOnly()
        Check if editing is disabled for current editor.
        Returns:
        true if editing is not enabled, false otherwise
      • findViewPort

        public ViewPort findViewPort​(int x,
                                     int y)
        Найти область, в которой находится указанная точка.
      • invalidateSelection

        public void invalidateSelection()
        Инвалидировать область под текущим выделением.
      • setActiveCell

        public void setActiveCell​(org.eclipse.swt.graphics.Point point)
        Установить активную ячейку.
      • getActiveCell

        public org.eclipse.swt.graphics.Point getActiveCell()
        Получить активную ячейку.
      • addTailSelection

        public void addTailSelection​(Selection selection)
        Добавить выделение к хвосу выделений.
      • replaceTailSelection

        public void replaceTailSelection​(Selection selection)
        Заменить хвостовое выделение..
      • replaceAllSelection

        public void replaceAllSelection​(Selection selection)
        Заменить все выделение.
      • setSelectionToCellSelection

        public void setSelectionToCellSelection​(int rowIndex,
                                                int columnIndex)
        Заменить выделение на выделение с одной ячейкой. При этом учитывать объедиенния.
      • addCellSelectionToTail

        public void addCellSelectionToTail​(int rowIndex,
                                           int columnIndex)
        Добавить выделение с одной ячейкой. При этом учитывать объедиенния.
      • replaceTailSelectionToRectSelection

        public void replaceTailSelectionToRectSelection​(int x1,
                                                        int y1,
                                                        int x2,
                                                        int y2)
        Заменить выделение на выделение с область с - по. При этом учитывать объедиения и наличия различных форматов строк в прямоуольнике.
      • addRowSelectionToTail

        public void addRowSelectionToTail​(int rowIndex)
        Добавить выделение - строку к выделению.
      • setSelectionToRowsSelection

        public void setSelectionToRowsSelection​(int rowIndex)
        Заменить выделение на выделение с одной строкой.
      • replaceTailSelectionToRowsSelection

        public void replaceTailSelectionToRowsSelection​(int rowIndex1,
                                                        int rowIndex2)
        Заменить выделение на выделение строк с - по.
      • addColumnSelectionToTail

        public void addColumnSelectionToTail​(int columnIndex)
        Добавить выделение - строку к выделению.
      • setSelectionToColumnsSelection

        public void setSelectionToColumnsSelection​(int columnIndex)
        Заменить выделение на выделение с одной строкой.
      • replaceTailSelectionToColumnsSelection

        public void replaceTailSelectionToColumnsSelection​(int columnIndex1,
                                                           int columnIndex2)
        Заменить выделение на выделение строк с - по.
      • getTailSelection

        public Selection getTailSelection()
        Получить верхнюю область выделения.
      • getCellsSelection

        public List<Selection> getCellsSelection()
        Получить выделение.
      • ensureCellVisible

        public void ensureCellVisible​(int rowIndex,
                                      int columnIndex)
        Прокрутить область так, чтобы указанная ячейка стала полностью видимой.
      • ensureDrawingVisible

        public void ensureDrawingVisible​(Drawing drawing)
        Прокрутить область так, чтобы рисунок стал полностью видимым.
      • ensureRowVisible

        public void ensureRowVisible​(int rowIndex)
        Сделать так, чтобы строка была в видимой области.
      • ensureColumnVisible

        public void ensureColumnVisible​(int columnIndex)
        Сделать так, чтобы колонка была видна полностью.
      • ensureColumnVisible

        public void ensureColumnVisible​(Columns columns,
                                        int columnIndex)
        Сделать так, чтобы колонка была видна полностью.
      • findHeaderArea

        public HeaderArea findHeaderArea​(int x,
                                         int y)
        Найти область заголовка в указанной позиции.
      • selectAll

        public void selectAll()
        Выделить все.
      • isDrawingsSelection

        public boolean isDrawingsSelection()
        Проверить, выделен ли рисунок.
      • isDrawingDelected

        public boolean isDrawingDelected​(Drawing drawing)
        Проверить, выделен ли рисунок.
      • clearDrawingSelection

        public void clearDrawingSelection()
        Убрать вделение с рисунков.
      • addDrawingToSelection

        public void addDrawingToSelection​(Drawing drawing)
        Добавить рисунок в выделение.
      • replaceSelectionToDrawing

        public void replaceSelectionToDrawing​(Drawing drawing)
        Добавить рисунок в выделение.
      • addDrawingsToSelection

        public void addDrawingsToSelection​(List<Drawing> drawings)
        Добавить рисунки в выделение.
      • replaceSelectionToDrawings

        public void replaceSelectionToDrawings​(List<Drawing> drawings)
        Добавить рисунок в выделение.
      • moveDrawingToTopOfSelection

        public void moveDrawingToTopOfSelection​(Drawing drawing)
        Переместить рисунок в вершину выделения.
      • ensureSelectionVisible

        public void ensureSelectionVisible()
        Make current selected area visible
      • addScaleChangeListener

        public void addScaleChangeListener​(IScaleChangeListener listener)
        Добавить обработчик при изменении масштаба.
      • removeScaleChangeListener

        public void removeScaleChangeListener​(IScaleChangeListener listener)
        Удатить обработчик при изменении масштаба.
      • getOperationHistory

        public org.eclipse.core.commands.operations.IOperationHistory getOperationHistory()
        Get operation history.
        Returns:
        IOperationHistory
      • findGroupOpener

        public GroupInfo findGroupOpener​(int x,
                                         int y)
        Найти кнопку открытия/закрытия группировки.
      • findGroupToSelect

        public GroupInfo findGroupToSelect​(int x,
                                           int y)
        Найти группировку для выделения.
      • findNamedRowsColumnsToSelect

        public NamedItemInfo findNamedRowsColumnsToSelect​(int x,
                                                          int y)
        Найти именованную область строк/колонок для выделения.
        Parameters:
        x -
        y -
        Returns:
      • findGroupLevelOpener

        public boolean findGroupLevelOpener​(int x,
                                            int y,
                                            int[] level,
                                            Columns[] columns)
        Найти кнопку открытия уровня группировок.
      • setEditingContext

        public void setEditingContext​(IEditingContext editingContext)
        Установить контекст отката.
      • getEditingContext

        public IEditingContext getEditingContext()
        Получить контекст отката.
      • getShowNamedRowsColumns

        public boolean getShowNamedRowsColumns()
        Отображать именованные строки/колонки.
      • setShowNamedRowsColumns

        public void setShowNamedRowsColumns​(boolean show)
        Установить необходимость отображения именованных строк/колонок.
      • getShowNamedCells

        public boolean getShowNamedCells()
        Отображать именованные ячейки.
      • setShowNamedCells

        public void setShowNamedCells​(boolean show)
        Установить необходимость отображения именованных ячеек.
      • setMoxelCursor

        public void setMoxelCursor​(MoxelCursorType cursorType)
        Установить курсор
      • calcColumnAutoWidth

        public Integer calcColumnAutoWidth​(int columnIndex,
                                           TreeSet<Integer> rowsSet)
        Рассчитать рекомендуемую ширину колонки для указанных строк.
      • calcColumnAutoWidth

        public Integer calcColumnAutoWidth​(int columnIndex,
                                           Columns columns)
        Рассчитать рекомендуемую ширину колонки для колонок.
      • getUnitsConverter

        public UnitsConverter getUnitsConverter()
        Получить конвертера единиц измерения.
      • getDisplayPositionHolder

        public PositionHolder getDisplayPositionHolder()
        Получить хранителя позиций.
      • getSelectionFormat

        public ReadOnlyFormat getSelectionFormat​(long[] mask)
        Get format of selected area.
        Parameters:
        mask - result mask, cannot be null
        Returns:
        compound format of selected cells, never null
      • getSelectionFont

        public Pair<Font,​Integer> getSelectionFont()
        Returns font and font properties mask (see FontProperties) for current cells selection.
        Returns:
        pair of:
        • font of selected drawings, can be null
        • font properties mask, never null
      • getDrawingsSelectionFont

        public Pair<Font,​Integer> getDrawingsSelectionFont()
        Returns font and font properties mask (see FontProperties) for selected drawings.
        Returns:
        pair of:
        • font of selected drawings, can be null if no text drawings are selected
        • font properties mask, never null
      • addSelectionFormatListener

        public void addSelectionFormatListener​(ISelectionFormatChangeListener listener)
        Добавить подписчика на событие об изменении формата области выделения.
      • startInplaceEdit

        public void startInplaceEdit​(String initialText,
                                     boolean edit)
        Начать редактирование по месту.
      • finishInplaceEdit

        public void finishInplaceEdit​(boolean abort)
        Закончить редактирование по месту.
      • getCurrentLanguage

        public String getCurrentLanguage()
        Получить текущий язык.
      • updateSelection

        public void updateSelection()
        Обновить выделенную область. Например, после даления строк.
      • addChangeListener

        public void addChangeListener​(ISheetAcessorChangeListener listener)
        Добавить слушателя об изменениях.
      • getSelectedDrawingsRectPixel

        public org.eclipse.swt.graphics.Rectangle getSelectedDrawingsRectPixel​(ViewPort viewPort)
        Получить прямоугольник, охватывающий все рисунки.
      • getSelectedDrawgins

        public List<Drawing> getSelectedDrawgins()
        Получить выделенные рисунки.
      • calcDrawingSize

        public void calcDrawingSize​(Drawing drawing)
        Рассчитать размер рисунка.
      • getCommentRectPixel

        public org.eclipse.swt.graphics.Rectangle getCommentRectPixel​(ViewPort viewPort,
                                                                      CommentDrawing commentDrawing)
        Получить прямоугольник примечания в пикселях.ы
      • isInplaceEdit

        public boolean isInplaceEdit()
        Check if inplace edit mode is active
        Returns:
        true if inplace editor is active, false otherwise
      • isCellInSelection

        public boolean isCellInSelection​(int rowIndex,
                                         int columnIndex)
        Проверить, попадает ли ячейка в выделение.
        Parameters:
        rowIndex -
        columnIndex -
        Returns:
      • resetTooltip

        public void resetTooltip()
        Сбросить подсказки.
      • setTooltipCell

        public void setTooltipCell​(int x,
                                   int y)
        Установить ячейку подсказки.
      • setEditedCommentDrawing

        public void setEditedCommentDrawing​(CommentDrawing commentDrawing)
        Set currently edited comment drawing.
        Parameters:
        commentDrawing - CommentDrawing to be edited, may be null
      • setEditedCommentDrawing

        public void setEditedCommentDrawing​(CommentDrawing commentDrawing,
                                            boolean startEditing)
        Set currently edited comment drawing.
        Parameters:
        commentDrawing - CommentDrawing to be edited, may be null
        startEditing - start comment text editing
      • find

        public boolean find​(SearchParameters search)
        Найти следующее.
      • replaceAll

        public boolean replaceAll​(SearchParameters search,
                                  String replaceString)
        Заменить везде.
      • isCurrentSelectionMatch

        public boolean isCurrentSelectionMatch​(SearchParameters search)
        Соответствует ли текущее выделение искомому.
      • replace

        public void replace​(SearchParameters search,
                            String replaceString)
        Заменить в текущей ячейке.
      • paintText

        public void paintText​(org.eclipse.swt.graphics.GC gc,
                              PositionHolder positionHolder,
                              String text,
                              ReadOnlyFormat fmt,
                              org.eclipse.swt.graphics.Rectangle lprc,
                              org.eclipse.swt.graphics.Rectangle lprcClip,
                              int indention,
                              boolean drawing)
        Вывести текст с заданным форматом.
        Parameters:
        text -
        fmt -
        lprc -
        lprcClip -
        indention -
        font -
        textColorRef -
      • calcSpreadsheetVisibleArea

        public SpreadsheetRect calcSpreadsheetVisibleArea​(PositionHolder positionHolder,
                                                          SpreadsheetPoint startPoint,
                                                          org.eclipse.swt.graphics.Point areaSizePixel)
        Рассчитать видимую область табличного документа, если отображать начиная с указанной точки.
        Parameters:
        positionHolder - - контейнер позиций табличного документа.
        startPoint - - точка табличного документа, которая будет выводиться в верхней части области.
        areaSize - - размеры выводимой области в пикселях
        Returns:
        - область табличного документа, которая будет выводиться в области.
      • finishCurrentMouseTool

        public void finishCurrentMouseTool()
        Finish working with current mouse tool.
      • resetDrawableAreaWidth

        public void resetDrawableAreaWidth()
        Reset drawable area width.
      • getSpreadsheetDisplayAreaWidth

        public int getSpreadsheetDisplayAreaWidth()
        Get width of spreadsheet displaying area.
        Returns:
        display area width in pixels
      • isCellsHighlightingEnabled

        public boolean isCellsHighlightingEnabled()
        Check if cells'highlighting is enabled.
        Returns:
        true if cells' highlighting is enabled, false otherwise.
      • showTooltp

        protected void showTooltp()
        Показать подсказку.
      • dispose

        public void dispose()
        Overrides:
        dispose in class org.eclipse.swt.widgets.Widget
      • paintViewPort

        public void paintViewPort​(ViewPort viewPort,
                                  org.eclipse.swt.graphics.GC gc,
                                  org.eclipse.swt.graphics.Rectangle deviceUpdateRect_,
                                  boolean paintSelection)
        Отрисовать заданную область.
        Parameters:
        viewPort -
        paintSelectionCells - - нужно ли подкрашивать ячейки, находящиеся в выделенной области.