@using
FinancialChartExplorer.Models
@
{
IEnumerable<
FinanceData
> fbData = ViewBag.FbData;
IEnumerable<
FinanceData
> rsData = ViewBag.RsData;
ViewBag.DemoSettings =
true
;
ClientSettingsModel demoSettingsModel = ViewBag.DemoSettingsModel;
}
<script type="text/javascript">
c1.documentReady(
function
() {
var
scaling = wijmo.Control.getControl(
'#Scaling'
);
var
boxSize = wijmo.Control.getControl(
'#BoxSize'
);
var
period = wijmo.Control.getControl(
'#Period'
);
function
updateStatus(s) {
boxSize.isDisabled = s.selectedIndex != 1;
period.isDisabled = s.selectedIndex != 2;
}
updateStatus(scaling);
scaling.selectedIndexChanged.addHandler(
function
(s, e) {
updateStatus(s);
});
function
updateX(cv) {
var
items = cv.sourceCollection;
for
(
var
i = 0; i <
items.length
; i++) {
var
item
=
items
[i];
item[
'X'
] = wijmo.Globalize.parseDate(item[
'X'
],
"yyyy-MM-dd"
);
}
}
updateX(c1.getService(
"cvFb"
));
updateX(c1.getService(
"cvRs"
));
});
function
customChangeFields(control, value) {
var
options
=
getPointAndFigureOptions
(control);
options.fields
=
wijmo
.chart.finance.DataFields[value];
control.invalidate();
}
function
customChangeReversal(control, value) {
var
options
=
getPointAndFigureOptions
(control);
options.reversal = +value;
control.invalidate();
}
function
customChangeScaling(control, value) {
var
options
=
getPointAndFigureOptions
(control);
options.scaling
=
wijmo
.chart.finance.PointAndFigureScaling[value];
control.invalidate();
}
function
customChangeBoxSize(control, value) {
var
options
=
getPointAndFigureOptions
(control);
options.boxSize = +value;
control.invalidate();
}
function
customChangePeriod(control, value) {
var
options
=
getPointAndFigureOptions
(control);
options.period = +value;
control.invalidate();
}
function
getPointAndFigureOptions(control) {
var
options
=
control
.options;
if
(!options) {
options
=
control
.options = {};
}
var
pointAndFigure
=
options
.pointAndFigure;
if
(!pointAndFigure) {
pointAndFigure
=
options
.pointAndFigure = {};
}
return
pointAndFigure;
}
function
customChangeStroke(control, value) {
setColor(control,
"style"
,
"stroke"
, value);
}
function
customChangeAltStroke(control, value) {
setColor(control,
"altStyle"
,
"stroke"
, value);
}
function
setColor(control, styleName, attName, value) {
control.series[0][styleName][attName] = value;
control.invalidate();
}
function
changeStockData(menu) {
var
chart
=
wijmo
.Control.getControl(
'#@demoSettingsModel.ControlId'
);
var
fields
=
wijmo
.Control.getControl(
'#Fields'
);
menu.header =
"@Html.Raw(Resources.Home.PointAndFigure_StockData) <b>"
+ menu.selectedItem.Header +
"</b>"
;
var
value = menu.selectedItem.CommandParameter;
switch
(value) {
case
"rs"
:
chart.itemsSource = c1.getService(
"cvRs"
);
fields.selectedIndex = 1;
break
;
case
"fb"
:
default
:
chart.itemsSource = c1.getService(
"cvFb"
);
fields.selectedIndex = 0;
break
;
}
changeFields(fields);
}
</script>
@Html
.C1().Menu().Id(
"stockData"
).Header(Resources.Home.PointAndFigure_StockData +
" <b>"
+ Resources.Home.PointAndFigure_FacebookIncFB +
"</b>"
).MenuItems(items =>
{
items.Add().Header(Resources.Home.PointAndFigure_FacebookIncFB).CommandParameter(
"fb"
);
items.Add().Header(Resources.Home.PointAndFigure_FBRelativeToNASDAQNDX).CommandParameter(
"rs"
);
}).OnClientItemClicked(
"changeStockData"
)
@Html
.C1().CollectionViewService().Id(
"cvFb"
).Bind(fbData)
@Html
.C1().CollectionViewService().Id(
"cvRs"
).Bind(rsData)
@
(Html.C1().FinancialChart()
.Id(demoSettingsModel.ControlId)
.ItemsSourceId(
"cvFb"
)
.BindingX(
"X"
)
.ChartType(C1.Web.Mvc.Finance.ChartType.PointAndFigure)
.Options(o =>
{
o.PointAndFigureFields(C1.Web.Mvc.Finance.DataFields.HighLow);
o.PointAndFigureReversal(3);
o.PointAndFigureScaling(C1.Web.Mvc.Finance.PointAndFigureScaling.Traditional);
o.PointAndFigureBoxSize(1);
o.PointAndFigurePeriod(20);
})
.Series(sers =>
{
sers.Add().Binding(
"High,Low,Open,Close"
).Name(
"FB"
).Style(s => s.Stroke(
"Black"
)).AltStyle(s => s.Stroke(
"Red"
));
})
.Tooltip(t => t.Content(
"{x:d}<br/>{y}"
)))
@section
Description{
<
p
>
@Html
.Raw(Resources.Home.PointAndFigure_Text0)</
p
>
}
@section
Summary{
<
p
>
@Html
.Raw(Resources.Home.PointAndFigure_Text1)</
p
>
}