Class HistoryChart

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

    public class HistoryChart
    extends javax.swing.JPanel
    implements java.beans.PropertyChangeListener
    Chart showing either from/to or total times in given period scale.
    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 
      Modifier and Type Field Description
      private int chartType
      Type of history chart to be drawn.
      private java.util.Vector days
      Days whose data should be drawn.
      private static int INSET_BOTTOM
      Bottom space behind chart.
      private static int INSET_LEFT
      Left space before chart e.g.
      private static int INSET_RIGHT
      Right space behind chart.
      private static int INSET_TOP
      Top space above chart.
      private static java.awt.Color LIGHT_GREEN
      Light green color for chart axes and grid.
      (package private) int maxValueY
      Maximum value on Y axis.
      (package private) int minValueY
      Minimum value on X axis.
      private AbstractTaskFilter taskFilter
      Filter for highlighting tasks.
      static int TYPE_FROM_TO
      Chart displaying from/to times for days.
      static int TYPE_TIME_USAGE
      Chart displaying used/wasted time ratio.
      static int TYPE_TOTAL
      Chart displaying total times for days.
      private double xStep
      Distance between two values on X axis.
      private double yStep
      Distance between two values on Y axis.
      • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      HistoryChart​(java.util.Vector days, AbstractTaskFilter taskFilter, int chartType)
      Creates a new history chart.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void computeMaxMinY()
      Computes maximum and minimum values for Y axis.
      private void computeSteps()
      Computes both X and Y steps based on days and type of chart.
      private void drawAxes​(java.awt.Graphics graphics, boolean drawGrid)
      Draws axes and values including chart grid if needed.
      private void drawHours​(java.awt.Graphics graphics)
      Draws actual data i.e.
      private void drawReferenceLines​(java.awt.Graphics graphics, boolean drawAverageHours, boolean drawGivenHours)
      Draws reference lines in chart if required.
      Day getDayAt​(java.awt.Point point)
      Returns day represented by column at specified point.
      void paint​(java.awt.Graphics graphics)
      Draws the chart of specified type from given days.
      void propertyChange​(java.beans.PropertyChangeEvent evt)
      Method called when some property of task was changed.
      void setChartType​(int chartType)
      Sets type of history chart to be drawn.
      void setDays​(java.util.Vector days)
      Sets which days should be used to draw history chart.
      void setHighlightingFilter​(AbstractTaskFilter taskFilter)
      Sets task filter for highlighting tasks when drawing chart.
      • 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, 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, setEnabled, 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
    • Field Detail

      • days

        private java.util.Vector days
        Days whose data should be drawn.
      • chartType

        private int chartType
        Type of history chart to be drawn.
      • maxValueY

        int maxValueY
        Maximum value on Y axis.
      • minValueY

        int minValueY
        Minimum value on X axis.
      • xStep

        private double xStep
        Distance between two values on X axis.
      • yStep

        private double yStep
        Distance between two values on Y axis.
      • TYPE_TOTAL

        public static final int TYPE_TOTAL
        Chart displaying total times for days.
        See Also:
        Constant Field Values
      • TYPE_FROM_TO

        public static final int TYPE_FROM_TO
        Chart displaying from/to times for days.
        See Also:
        Constant Field Values
      • TYPE_TIME_USAGE

        public static final int TYPE_TIME_USAGE
        Chart displaying used/wasted time ratio.
        See Also:
        Constant Field Values
      • INSET_LEFT

        private static final int INSET_LEFT
        Left space before chart e.g. distance between left edge and X axis.
        See Also:
        Constant Field Values
      • INSET_RIGHT

        private static final int INSET_RIGHT
        Right space behind chart.
        See Also:
        Constant Field Values
      • INSET_BOTTOM

        private static final int INSET_BOTTOM
        Bottom space behind chart.
        See Also:
        Constant Field Values
      • LIGHT_GREEN

        private static final java.awt.Color LIGHT_GREEN
        Light green color for chart axes and grid.
    • Constructor Detail

      • HistoryChart

        public HistoryChart​(java.util.Vector days,
                            AbstractTaskFilter taskFilter,
                            int chartType)
        Creates a new history chart.
        Parameters:
        days - Days that should be used to draw history chart.
        taskFilter - Filter for highlighting tasks when drawing chart.
        chartType - Type of history chart to be drawn.
    • Method Detail

      • setDays

        public void setDays​(java.util.Vector days)
        Sets which days should be used to draw history chart.
        Parameters:
        days - Days that should be used to draw history chart.
      • setHighlightingFilter

        public void setHighlightingFilter​(AbstractTaskFilter taskFilter)
        Sets task filter for highlighting tasks when drawing chart.
        Parameters:
        taskFilter - Filter that will be used to select tasks that will be highlighted when drawing total times chart.
      • setChartType

        public void setChartType​(int chartType)
        Sets type of history chart to be drawn.
        Parameters:
        chartType - Type of history chart to be drawn.
      • paint

        public void paint​(java.awt.Graphics graphics)
        Draws the chart of specified type from given days.
        Overrides:
        paint in class javax.swing.JComponent
        Parameters:
        graphics - Graphics area where the chart should be drawn.
      • computeSteps

        private void computeSteps()
        Computes both X and Y steps based on days and type of chart.
      • computeMaxMinY

        private void computeMaxMinY()
        Computes maximum and minimum values for Y axis.
      • drawAxes

        private void drawAxes​(java.awt.Graphics graphics,
                              boolean drawGrid)
        Draws axes and values including chart grid if needed.
        Parameters:
        graphics - Graphics area where the axes should be drawn.
        drawGrid - Whether chart grid should be drawn or not.
      • drawHours

        private void drawHours​(java.awt.Graphics graphics)
        Draws actual data i.e. hour columns.
        Parameters:
        graphics - Graphics area where the axes should be drawn.
      • drawReferenceLines

        private void drawReferenceLines​(java.awt.Graphics graphics,
                                        boolean drawAverageHours,
                                        boolean drawGivenHours)
        Draws reference lines in chart if required.
        Parameters:
        graphics - Graphics area where the axes should be drawn.
        drawAverageHours - If true, average hours for all and working days will be drawn.
        drawGivenHours - If true, given working hours will be drawn.
      • getDayAt

        public Day getDayAt​(java.awt.Point point)
        Returns day represented by column at specified point.
        Parameters:
        point - Point to be checked for existency of day column.
        Returns:
        Day painted at given point or null if there is no day column at specified X position.
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent evt)
        Method called when some property of task was changed.
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
        Parameters:
        evt - Event describing what was changed.