ElegantJCharts Java API Specification v2.0

com.elegantj.graphx.doughnut
Class DoughnutGraphTypeObject

java.lang.Object
  |
  +--com.elegantj.graphx.GraphTypeObject
        |
        +--com.elegantj.graphx.doughnut.DoughnutGraphTypeObject
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
SingleDoughnutGraphTypeObject

public class DoughnutGraphTypeObject
extends GraphTypeObject
implements java.io.Serializable

DoughnutGraphTyepObject is used to render Doughnut Graph

See Also:
Serialized Form

Field Summary
protected  java.awt.Rectangle dataPointRect
          Specifies Mouse over DataPoint Circle Rectangle
protected static int EXPLAN_HOFFSET
          Specifies the constant for explanation notes horizontal offset
protected static int H_SPACE
          Specifies the Horizontal offset
protected  double m_DonutBarWidth
           
protected  java.awt.Rectangle m_DonutBoundRect
           
protected  int m_DonutHeight
           
protected  int m_DonutHOffset
          Donut parameter
protected  java.awt.Shape[] m_DonutShapeList
          Contain Doughnut Shpae
protected  int m_DonutVOffset
           
protected  int m_DonutWidth
           
protected  DoughnutGraph m_DoughnutGraph
          Specifies DoughnutGraph Object
protected  DoughnutGraphExplanNotes m_DoughnutGraphExplanNotes
          Specifies the graph explanation notes
protected  int m_ExplanAreaAlign
          Specifies the Explanation area Alignment(LEFT/CENTER/RIGHT OR TOP/CENTER/BOTTOM)
protected  int m_ExplanAreaHeight
          Specifies the explanation area height
protected  int m_ExplanAreaPosition
          Specifies the explanation area position(LEFT/RIGHT/TOP/BOTTOM/CENTER)
protected  int m_ExplanAreaWidth
          Specifies the explanation area width
protected static boolean m_fDebug
          Specifies the execution mode
protected  int m_FontHeight
          Specifies the font height
protected  int m_GraphAreaWidth
          Specifies the graph width
protected  GraphDonutDetail m_GraphDonutDetail
          Specifies the Doughnut Properties of Graph
protected  GraphLabel m_GraphLabel
          Specifies the graph label
protected  java.awt.Polygon m_GraphRectangle
          Specifies Actual Graph Area Rectangle
protected  GraphTitleDetail m_GraphTitleDetail
          Specifies the Title Detail for Graph
protected  GraphXAxisDetail m_GraphXAxisDetail
          Specifies the X-Axis Detail for Graph
protected  java.awt.Rectangle m_GraphXAxisRectangle
          Specifies Actual X-Axis label Area Rectangle
protected  GraphYAxisDetail m_GraphYAxisDetail
          Specifies the Y-Axis Detail for Graph
protected  java.awt.Rectangle m_GraphYAxisRectangle
          Specifies Actual Y-Axis Label Area Rectangle
protected  GraphZAxisDetail m_GraphZAxisDetail
          Specifies the Z-Axis (Legends) Detail for Graph
protected  java.awt.Rectangle m_GraphZAxisRectangle
          Specifies Actual Z-Axis Label Area Rectangle
protected  int m_Height
          Specifies the total height
protected  int m_HOffset
          Specifies the horizontal offset
protected  boolean m_Is3DGraph
          Specifies 3D effect is Enable or Disable
protected  boolean m_IsPointSet
          Specifies the Mouse Over effect is drawn then this flag is false
protected  int m_MinusYClipLabels
          Specifies the total number of y-axis minimum labels
protected  int m_MinusYClipLength
          Specifies the y-axis minimum extra length
protected  java.awt.Rectangle m_MouseOverTextRect
          Specifies Mouse Over text Area Rectangle
protected  int m_NegValRep
          Specifies the representation type for yaxis label -ve value
protected  DrillDownDetail m_OldMODetail
          Specifies old Mouse Over Object (DrillDownDetail)
protected  int m_PlusYClipLabels
          Specifies the total number of y-axis maximum labels
protected  int m_PlusYClipLength
          Specifies the y-axis maximum extra length
protected  java.awt.Point[] m_StaticTextPoint
           
protected  TextAlign m_TextAlign
          Specifies the text alignment
protected  java.awt.Font m_TitleFont
          Specifies Title Font
protected  int m_TitleFontHeight
          Specifies Graph Title Font Height
protected  int m_TitleHeight
          Specifies Graph Title Height
protected  java.awt.Rectangle m_TitleRectangle
          Specifies Title Rectangle
protected  int[] m_TotalOfDataMatrix
          Contain Total of each Row from data matrix
protected  int m_VOffset
          Specifies the vertical offset
protected  int m_Width
          Specifies the total width
protected  int m_XAxisHeight
          Specifies X-Axis Label Height
protected  java.awt.Font m_XAxisLabelFont
          Specifies X-Axis Font
protected  int m_XAxisWidth
          Specifies X-Axis Label Width
protected  int m_XGradLength
          Specifies the x-axis gradient length
protected  int m_XLabelHeight
           
protected  int m_XLabels
          Specifies the total number of x-axis labels
protected  int m_XLabelVSteps
          Specifies the total number of x-axis labels vertical steps
protected  int m_XLength
          Specifies the x-axis length
protected  int m_XMaxLabelWidth
           
protected  double m_YAbsGradLabel
          Specifies the y-axis gradient absolute label size
protected  int m_YAxisHeight
          Specifies Y-Axis Label Height
protected  java.awt.Font m_YAxisLabelFont
          Specifies Y-Axis Font
protected  int m_YAxisWidth
          Specifies Y-Axis Label Width
protected  int m_YClipLabels
          Specifies the total number of y-axis labels
protected  int m_YClipLength
          Specifies the y-axis length
protected  int m_YGradLength
          Specifies the y-axis gradient length
protected  double m_YMaxLabelValue
          Specifies the y-axis maximum value
protected  int m_YMaxLabelWidth
          Specifies Y-Axis Label Maximum Width
protected  double m_YMinLabelValue
          Specifies the y-axis minimum value
protected  int m_ZLabels
          Specifies the total number of z-axis labels
protected static int V_SPACE
           
 
Fields inherited from class com.elegantj.graphx.GraphTypeObject
m_GraphicsEx
 
Constructor Summary
DoughnutGraphTypeObject(DoughnutGraph inGraphMain)
          Creates the DoughnutGraphTypeObject with specified DoughnutGraph object
 
Method Summary
 void calculateTotalofRowData(java.util.Vector theDataMatrix, int theRowLabels)
           
 void draw2DGraph()
           
 void draw3DGraph()
          Draw 3D Donut Graph
 java.awt.Rectangle drawDonutBorder(java.awt.Graphics2D g2d, java.awt.Shape s, int theBrWidth, java.awt.Color theBrColor)
           
 java.awt.Shape drawDonutTop(java.awt.Graphics2D g2d, java.awt.Rectangle outerRect, java.awt.Rectangle innerRect, double startang, double endang, int theBrWidth, java.awt.Color theBrColor, java.awt.Color theColor, java.awt.Color theGradientColor, boolean isGrVisible, boolean isBrVisible)
           
protected  void drawExplanNotes()
          Draws the explanation notes
 void drawGraph()
          Draws Graph this method should be overriden by the subclass
protected  void drawGraphAreaBackground(GraphicsEx inGraphicsEx)
          Draws Backgound of Actual graph Area
 boolean drawMouseOverEffect(GraphicsEx inGraphicsEx, DrillDownDetail inDDD, boolean isMOEDraw, boolean isMOTDraw, int theH, int theV, boolean isRestore)
          This method returns true If any shape is drawn on given graphics Object otherwize false
 java.awt.Rectangle drawMouseOverText(GraphicsEx inGraphicsEx, DrillDownDetail inDDD, int inH, int inV)
          This method draws mouse over Text
 java.awt.Rectangle drawStaticMouseOverText(GraphicsEx inGraphicsEx)
          This method draws Static mouse over Text
protected  void drawTitle()
          Draws the title
protected  void drawXAxisGridAndTick()
          Draws The X-Axis Grid and Tick lines
protected  void drawXAxisLabels()
          Draws The X-Axis Labels
protected  void drawXAxisLine()
          Draws The X-Axis Line
protected  void drawYAxisGridAndTick()
          Draws The Y-Axis Grid and Tick lines
protected  void drawYAxisLabels()
          Draws The Y-Axis Labels
protected  void drawYAxisLine()
          Draws The Y-Axis
 DrillDownDetail getClickedXAxisLabel(int click_x, int click_y)
          If Given Point on X axis Label then it will Return Drilldowndetail Object Otherwise Return null
 DrillDownDetail getClickedYAxisLabel(int click_x, int click_y)
          If Given Point on Y axis Label then it will Return Drilldowndetail Object Otherwise Return null
 DrillDownDetail getDrillDetail(int click_x, int click_y)
          If Given Point on Graph then it will Return Drilldowndetail Object Otherwise Return null (Common function for 2D and 3D Graph)
protected  DrillDownDetail getDrillDownDetail(GraphicsEx inGraphicsEx, int click_x, int click_y)
          If Given Point on Graph then it will Return Drilldowndetail Object and draw mouse over effect and mouse over text Otherwise Return null
 java.awt.Polygon getGraphAreaPolygon()
          Get Polygon for Graph Area excluding title space, x-Axis space, y-Axis space and Legend space
static java.awt.Dimension getPreferredWidth(DoughnutGraph inDoughnutGraph, GraphicsEx inGraphicsEx, int inWidth, int inHeight)
           
 int getSeriesIndex(int click_x, int click_y)
          Return Series Index near to given horizontal distance
static java.lang.String getXMaxLabelWidthString(DoughnutGraph inDoughnutGraph, GraphicsEx inGraphicsEx)
          Sets the maximum label width string of x-axis
protected  void init(GraphPanel inGraphPanel)
          Initialization of Graph
protected  void initFields()
          Initialization of the fields
 void initTitle()
          Calculation for Title Of Graph
 void reDrawing(GraphicsEx inGraphicsEx)
          Redraw Graph According to Graphics's clipping rectangle th
 DrillDownDetail setMouseOverPoint(GraphicsEx inGraphicsEx, int click_x, int click_y)
          If Given Point on Graph then it will Return Drilldowndetail Object and draw mouse over effect and mouse over text Otherwise Return null
 
Methods inherited from class com.elegantj.graphx.GraphTypeObject
initDrawing
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_XMaxLabelWidth

protected int m_XMaxLabelWidth

m_XLabelHeight

protected int m_XLabelHeight

m_fDebug

protected static final boolean m_fDebug
Specifies the execution mode

See Also:
Constant Field Values

m_IsPointSet

protected boolean m_IsPointSet
Specifies the Mouse Over effect is drawn then this flag is false


EXPLAN_HOFFSET

protected static final int EXPLAN_HOFFSET
Specifies the constant for explanation notes horizontal offset

See Also:
Constant Field Values

H_SPACE

protected static final int H_SPACE
Specifies the Horizontal offset

See Also:
Constant Field Values

V_SPACE

protected static final int V_SPACE
See Also:
Constant Field Values

m_Width

protected int m_Width
Specifies the total width


m_Height

protected int m_Height
Specifies the total height


m_GraphAreaWidth

protected int m_GraphAreaWidth
Specifies the graph width


m_ExplanAreaWidth

protected int m_ExplanAreaWidth
Specifies the explanation area width


m_HOffset

protected int m_HOffset
Specifies the horizontal offset


m_VOffset

protected int m_VOffset
Specifies the vertical offset


m_XLength

protected int m_XLength
Specifies the x-axis length


m_XLabels

protected int m_XLabels
Specifies the total number of x-axis labels


m_XGradLength

protected int m_XGradLength
Specifies the x-axis gradient length


m_XLabelVSteps

protected int m_XLabelVSteps
Specifies the total number of x-axis labels vertical steps


m_YClipLength

protected int m_YClipLength
Specifies the y-axis length


m_PlusYClipLength

protected int m_PlusYClipLength
Specifies the y-axis maximum extra length


m_MinusYClipLength

protected int m_MinusYClipLength
Specifies the y-axis minimum extra length


m_YClipLabels

protected int m_YClipLabels
Specifies the total number of y-axis labels


m_PlusYClipLabels

protected int m_PlusYClipLabels
Specifies the total number of y-axis maximum labels


m_MinusYClipLabels

protected int m_MinusYClipLabels
Specifies the total number of y-axis minimum labels


m_YGradLength

protected int m_YGradLength
Specifies the y-axis gradient length


m_YAbsGradLabel

protected double m_YAbsGradLabel
Specifies the y-axis gradient absolute label size


m_YMaxLabelValue

protected double m_YMaxLabelValue
Specifies the y-axis maximum value


m_YMinLabelValue

protected double m_YMinLabelValue
Specifies the y-axis minimum value


m_ZLabels

protected int m_ZLabels
Specifies the total number of z-axis labels


m_FontHeight

protected int m_FontHeight
Specifies the font height


m_GraphLabel

protected GraphLabel m_GraphLabel
Specifies the graph label


m_DoughnutGraphExplanNotes

protected DoughnutGraphExplanNotes m_DoughnutGraphExplanNotes
Specifies the graph explanation notes


m_TextAlign

protected TextAlign m_TextAlign
Specifies the text alignment


m_GraphTitleDetail

protected GraphTitleDetail m_GraphTitleDetail
Specifies the Title Detail for Graph


m_GraphXAxisDetail

protected GraphXAxisDetail m_GraphXAxisDetail
Specifies the X-Axis Detail for Graph


m_GraphYAxisDetail

protected GraphYAxisDetail m_GraphYAxisDetail
Specifies the Y-Axis Detail for Graph


m_GraphZAxisDetail

protected GraphZAxisDetail m_GraphZAxisDetail
Specifies the Z-Axis (Legends) Detail for Graph


m_GraphDonutDetail

protected GraphDonutDetail m_GraphDonutDetail
Specifies the Doughnut Properties of Graph


m_TitleFont

protected java.awt.Font m_TitleFont
Specifies Title Font


m_TitleFontHeight

protected int m_TitleFontHeight
Specifies Graph Title Font Height


m_XAxisLabelFont

protected java.awt.Font m_XAxisLabelFont
Specifies X-Axis Font


m_YAxisLabelFont

protected java.awt.Font m_YAxisLabelFont
Specifies Y-Axis Font


m_TitleHeight

protected int m_TitleHeight
Specifies Graph Title Height


m_XAxisHeight

protected int m_XAxisHeight
Specifies X-Axis Label Height


m_XAxisWidth

protected int m_XAxisWidth
Specifies X-Axis Label Width


m_YAxisHeight

protected int m_YAxisHeight
Specifies Y-Axis Label Height


m_YAxisWidth

protected int m_YAxisWidth
Specifies Y-Axis Label Width


m_YMaxLabelWidth

protected int m_YMaxLabelWidth
Specifies Y-Axis Label Maximum Width


m_Is3DGraph

protected boolean m_Is3DGraph
Specifies 3D effect is Enable or Disable


m_DoughnutGraph

protected DoughnutGraph m_DoughnutGraph
Specifies DoughnutGraph Object


m_ExplanAreaPosition

protected int m_ExplanAreaPosition
Specifies the explanation area position(LEFT/RIGHT/TOP/BOTTOM/CENTER)


m_ExplanAreaAlign

protected int m_ExplanAreaAlign
Specifies the Explanation area Alignment(LEFT/CENTER/RIGHT OR TOP/CENTER/BOTTOM)


m_ExplanAreaHeight

protected int m_ExplanAreaHeight
Specifies the explanation area height


m_GraphRectangle

protected java.awt.Polygon m_GraphRectangle
Specifies Actual Graph Area Rectangle


m_GraphXAxisRectangle

protected java.awt.Rectangle m_GraphXAxisRectangle
Specifies Actual X-Axis label Area Rectangle


m_GraphYAxisRectangle

protected java.awt.Rectangle m_GraphYAxisRectangle
Specifies Actual Y-Axis Label Area Rectangle


m_GraphZAxisRectangle

protected java.awt.Rectangle m_GraphZAxisRectangle
Specifies Actual Z-Axis Label Area Rectangle


m_TitleRectangle

protected java.awt.Rectangle m_TitleRectangle
Specifies Title Rectangle


m_MouseOverTextRect

protected java.awt.Rectangle m_MouseOverTextRect
Specifies Mouse Over text Area Rectangle


dataPointRect

protected java.awt.Rectangle dataPointRect
Specifies Mouse over DataPoint Circle Rectangle


m_OldMODetail

protected DrillDownDetail m_OldMODetail
Specifies old Mouse Over Object (DrillDownDetail)


m_NegValRep

protected int m_NegValRep
Specifies the representation type for yaxis label -ve value


m_TotalOfDataMatrix

protected int[] m_TotalOfDataMatrix
Contain Total of each Row from data matrix


m_DonutShapeList

protected java.awt.Shape[] m_DonutShapeList
Contain Doughnut Shpae


m_DonutHOffset

protected int m_DonutHOffset
Donut parameter


m_DonutVOffset

protected int m_DonutVOffset

m_DonutWidth

protected int m_DonutWidth

m_DonutHeight

protected int m_DonutHeight

m_DonutBarWidth

protected double m_DonutBarWidth

m_DonutBoundRect

protected java.awt.Rectangle m_DonutBoundRect

m_StaticTextPoint

protected java.awt.Point[] m_StaticTextPoint
Constructor Detail

DoughnutGraphTypeObject

public DoughnutGraphTypeObject(DoughnutGraph inGraphMain)
                        throws GraphException
Creates the DoughnutGraphTypeObject with specified DoughnutGraph object

Method Detail

init

protected void init(GraphPanel inGraphPanel)
             throws GraphException
Initialization of Graph

Overrides:
init in class GraphTypeObject
GraphException

initFields

protected void initFields()
                   throws GraphException
Initialization of the fields

GraphException

getXMaxLabelWidthString

public static java.lang.String getXMaxLabelWidthString(DoughnutGraph inDoughnutGraph,
                                                       GraphicsEx inGraphicsEx)
Sets the maximum label width string of x-axis


calculateTotalofRowData

public void calculateTotalofRowData(java.util.Vector theDataMatrix,
                                    int theRowLabels)

drawGraph

public void drawGraph()
Description copied from class: GraphTypeObject
Draws Graph this method should be overriden by the subclass

Overrides:
drawGraph in class GraphTypeObject

draw3DGraph

public void draw3DGraph()
Draw 3D Donut Graph


drawDonutTop

public java.awt.Shape drawDonutTop(java.awt.Graphics2D g2d,
                                   java.awt.Rectangle outerRect,
                                   java.awt.Rectangle innerRect,
                                   double startang,
                                   double endang,
                                   int theBrWidth,
                                   java.awt.Color theBrColor,
                                   java.awt.Color theColor,
                                   java.awt.Color theGradientColor,
                                   boolean isGrVisible,
                                   boolean isBrVisible)

draw2DGraph

public void draw2DGraph()

drawDonutBorder

public java.awt.Rectangle drawDonutBorder(java.awt.Graphics2D g2d,
                                          java.awt.Shape s,
                                          int theBrWidth,
                                          java.awt.Color theBrColor)

reDrawing

public void reDrawing(GraphicsEx inGraphicsEx)
               throws GraphException
Description copied from class: GraphTypeObject
Redraw Graph According to Graphics's clipping rectangle th

Overrides:
reDrawing in class GraphTypeObject
Throws:
GraphException

drawGraphAreaBackground

protected void drawGraphAreaBackground(GraphicsEx inGraphicsEx)
Draws Backgound of Actual graph Area

Overrides:
drawGraphAreaBackground in class GraphTypeObject

drawXAxisLine

protected void drawXAxisLine()
Draws The X-Axis Line

Overrides:
drawXAxisLine in class GraphTypeObject

drawXAxisLabels

protected void drawXAxisLabels()
Draws The X-Axis Labels

Overrides:
drawXAxisLabels in class GraphTypeObject

drawXAxisGridAndTick

protected void drawXAxisGridAndTick()
Draws The X-Axis Grid and Tick lines

Overrides:
drawXAxisGridAndTick in class GraphTypeObject

drawYAxisLine

protected void drawYAxisLine()
Draws The Y-Axis

Overrides:
drawYAxisLine in class GraphTypeObject

drawYAxisLabels

protected void drawYAxisLabels()
Draws The Y-Axis Labels

Overrides:
drawYAxisLabels in class GraphTypeObject

drawYAxisGridAndTick

protected void drawYAxisGridAndTick()
Draws The Y-Axis Grid and Tick lines

Overrides:
drawYAxisGridAndTick in class GraphTypeObject

initTitle

public void initTitle()
Calculation for Title Of Graph


drawTitle

protected void drawTitle()
Draws the title

Overrides:
drawTitle in class GraphTypeObject

drawExplanNotes

protected void drawExplanNotes()
Draws the explanation notes

Overrides:
drawExplanNotes in class GraphTypeObject

getDrillDownDetail

protected DrillDownDetail getDrillDownDetail(GraphicsEx inGraphicsEx,
                                             int click_x,
                                             int click_y)
If Given Point on Graph then it will Return Drilldowndetail Object and draw mouse over effect and mouse over text Otherwise Return null

Parameters:
inGraphicsEx - GraphicsEx Object
click_x - x point on graph
click_y - y point on graph

setMouseOverPoint

public DrillDownDetail setMouseOverPoint(GraphicsEx inGraphicsEx,
                                         int click_x,
                                         int click_y)
If Given Point on Graph then it will Return Drilldowndetail Object and draw mouse over effect and mouse over text Otherwise Return null

Parameters:
inGraphicsEx - GraphicsEx Object
click_x - x point on graph
click_y - y point on graph

getClickedXAxisLabel

public DrillDownDetail getClickedXAxisLabel(int click_x,
                                            int click_y)
If Given Point on X axis Label then it will Return Drilldowndetail Object Otherwise Return null

Parameters:
click_x - x coordinate of mouse over point
click_y - y coordinate of mouse over point
Returns:
DrillDownDetail object of DrillDownDetail

getClickedYAxisLabel

public DrillDownDetail getClickedYAxisLabel(int click_x,
                                            int click_y)
If Given Point on Y axis Label then it will Return Drilldowndetail Object Otherwise Return null

Parameters:
click_x - x coordinate of mouse over point
click_y - y coordinate of mouse over point
Returns:
DrillDownDetail object of DrillDownDetail

getSeriesIndex

public int getSeriesIndex(int click_x,
                          int click_y)
Return Series Index near to given horizontal distance

Parameters:
click_x - Horizontal Distance
Returns:
int

getDrillDetail

public DrillDownDetail getDrillDetail(int click_x,
                                      int click_y)
If Given Point on Graph then it will Return Drilldowndetail Object Otherwise Return null (Common function for 2D and 3D Graph)

Parameters:
click_x - x point on graph
click_y - y point on graph

drawMouseOverEffect

public boolean drawMouseOverEffect(GraphicsEx inGraphicsEx,
                                   DrillDownDetail inDDD,
                                   boolean isMOEDraw,
                                   boolean isMOTDraw,
                                   int theH,
                                   int theV,
                                   boolean isRestore)
This method returns true If any shape is drawn on given graphics Object otherwize false

Parameters:
inGraphicsEx - GraphicsEx Object
inDDD - DrillDownDetail Object
isMOEDraw - true - to draw mouse over effect
isMOTDraw - true - to draw mouse over Text
isRestore - true - to draw mouse over effect or mouse over text, false - to remove mouse over effect or mouse over text
Returns:
boolean true If any shape is drawn on given graphics Object otherwize false

drawMouseOverText

public java.awt.Rectangle drawMouseOverText(GraphicsEx inGraphicsEx,
                                            DrillDownDetail inDDD,
                                            int inH,
                                            int inV)
This method draws mouse over Text

Parameters:
inGraphicsEx - GraphicsEx Object
inDDD - DrillDownDetail Object
inH - x point
inV - y point
Returns:
Rectangle Rectangle Donut where mouse over text is drawn

drawStaticMouseOverText

public java.awt.Rectangle drawStaticMouseOverText(GraphicsEx inGraphicsEx)
This method draws Static mouse over Text

Parameters:
inGraphicsEx - GraphicsEx Object

getPreferredWidth

public static java.awt.Dimension getPreferredWidth(DoughnutGraph inDoughnutGraph,
                                                   GraphicsEx inGraphicsEx,
                                                   int inWidth,
                                                   int inHeight)
                                            throws GraphException
GraphException

getGraphAreaPolygon

public java.awt.Polygon getGraphAreaPolygon()
Get Polygon for Graph Area excluding title space, x-Axis space, y-Axis space and Legend space

Returns:
Polygon Polygon object of graph area

ElegantJCharts Java API Specification v2.0

For any feedback, suggestion, or query, please revert back to support@elegantcharts.com

Copyright(c)
Elegant Microweb Technologies Pvt. Ltd.
www.elegantmicroweb.com
www.elegantjcharts.com
All Rights Reserved.