
๋์๋ณด๋ โ ๋น์ ์ ๋ชจ์ต! Reveal์์ ์๋ก์ด ์ฌ์ฉ์ ์ง์ ํ ๋ง๋ฅผ ๋ง๋๋ณด์ธ์
Reveal์ ๋ด์ฅ๋ ๋ถ์๊ณผ ํตํฉํ ์ค๋น๊ฐ ๋ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ค์ํ ๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด์ฅํ๋ ์์๊ฐ ๋ชจ์๊ณผ ๋๋๊ณผ ์ผ์นํ๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์๋ฅผ ์ํด Reveal ์ด์ Mountain๊ณผ Ocean์ด๋ผ๋ ๋ ๊ฐ์ง ํ ๋ง๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ฉฐ, ๋น๊ณผ [โฆ] ๋ชจ๋์์ ์๋ฆ๋ต๊ฒ ๋ณด์ ๋๋ค.
์์ฝ:
์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์๋ฅผ ์ํดReveal ์ด์ ๋ฐ์ ํ ๋ง์ ์ด๋์ด ํ ๋ง ๋ชจ๋์์ ์๋ฆ๋ต๊ฒ ๋ณด์ด๋ Mountain๊ณผ Ocean์ด๋ผ๋ ๋ ๊ฐ์ง ํ ๋ง๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ํ ๋ง์ ์ผ์นํ๋ ์๊ฐํ๋ฅผ ์๋ฒ ๋ํ๊ณ ์ถ์ผ์ ๊ฐ์? ๋ฌธ์ ์์ต๋๋ค! Reveal SDK๋ฅผ ํตํด ์ด์ ์ฌ์ฉ์ ์ ์ ํ ๋ง๋ฅผ ๋ง๋ค๊ณ ๋์๋ณด๋์ ๋ชจ๋ ์ธก๋ฉด์ ์ ์ดํ ์ ์์ต๋๋ค.
Reveal์ ์๋ก์ด ๋์๋ณด๋ ํ ๋ง
์ฐ๊ณผ ๋ฐ๋ค์ ์๋ก์ด ํ
๋ง๋ก ์ต๊ณ ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์๋ฆ๋ต๊ฒ ๋ณด์ด๊ณ ๋ฐ์ ๋ชจ๋์ ์ด๋์ด ๋ชจ๋์์ ์๋ํ๋ฉฐ ํ๋์ ์ธ ๋ชจ์๊ณผ ๋๋์ ๊ฐ์ง ์์ ํ๋ ํธ๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค.
๋ฆฌ๋น์ ๋ฐ๋ค ํ
๋ง
์์ ํ๋ ํธ
Reveal ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ ๊ฐ ํ ๋ง๋ ํ๋ ํธ์ 10๊ฐ์ง ๋ค๋ฅธ ์์์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์๊ฐํ๋ฅผ ํธ์งํ๊ฑฐ๋ ๋ง๋ค ๋ ํ๋ ํธ์์ ์ ํํ์ฌ ์์ ์์์ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
Analytics ํฌํจ ์ ์ฌ์ฉ์ ์ง์ ํ ๋ง ์ง์
๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ์์ ์๋ฒ ๋ํ ๋ ํด๋น ๋์๋ณด๋๊ฐ ์ฑ์ ๋ชจ์๊ณผ ๋๋๊ณผ ์ผ์นํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ทธ๋์ SDK๋ฅผ ํตํด Reveal ๋์๋ณด๋์ ๋ํ ์์ ํ ์ ์ด๊ถ์ ์ ๊ณตํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋น๊ตํ์ ๋, ์ฌ์ฉ์ ์ ์ ํ ๋ง๋ก ๋ฌ์ฑํ ์ ์๋ ์ฃผ์ ์ฌ์ฉ์ ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์ ํ๋ ํธ: ์๊ฐํ์์ ์๋ฆฌ์ฆ๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์์์ ๋๋ค. ๋ฌด์ ํ์ผ๋ก ์์์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์๊ฐํ์์ ๋ชจ๋ ์์์ด ์ฌ์ฉ๋๋ฉด Reveal ์ด๋ฌํ ์์์ ์๋ก์ด ์์์ ์๋ ์์ฑํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์์ด ๋ฐ๋ณต๋์ง ์๊ณ ๊ฐ ๊ฐ๋ง๋ค ๊ณ ์ ํ ์์์ด ์์ต๋๋ค.
- ๊ฐ์กฐ์: Reveal์ ๊ธฐ๋ณธ ๊ฐ์กฐ์์ + ๋์๋ณด๋ ๋ฒํผ๊ณผ ๋ค๋ฅธ ๋ํํ ์์ ์์ ์ฐพ์ ์ ์๋ ํ๋์ ์์์ ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฐ์กฐ์๊ณผ ์ผ์นํ๋๋ก ์์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- ์กฐ๊ฑด๋ถ ์์ ์์: ์กฐ๊ฑด๋ถ ์์์ ์ฌ์ฉํ ๋ ์ค์ ํ ์ ์๋ ๋ฒ์์ ๊ธฐ๋ณธ ์์์ ๋ณ๊ฒฝํฉ๋๋ค.
- ๊ธ๊ผด: Reveal ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ผ๋ฐ, ์ค๊ฐ ๋ฐ ๊ตต์ ์ธ ๊ฐ์ง ์ ํ์ ํ ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ๊ฐ ํ ์คํธ ๊ทธ๋ฃน์ ๋ํด ๊ธ๊ผด ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค.
- ์๊ฐํ ๋ฐ ๋์๋ณด๋ ๋ฐฐ๊ฒฝ์: ๋์๋ณด๋์ ๋ฐฐ๊ฒฝ์๊ณผ ์๊ฐํ์ ๋ฐฐ๊ฒฝ์์ ๋ณ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ง์ ํ ๋ง๋ ์ด๋ป๊ฒ ๋ง๋๋์?
Reveal์์ ์์ ์ ํ ๋ง๋ฅผ ๋ง๋๋ ๊ฒ์ ์ ํ ๋ง์ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ฒ๋งํผ ์ฝ์ต๋๋ค. ํ ๋ง ๊ณต๊ฐ()/$.ig.ํ ๋ง ๊ณต๊ฐ() ํด๋์ค. ์ด ํด๋์ค์๋ ์์ ๋์ด๋ ๋ชจ๋ ์ฌ์ฉ์ ์ ์ ์ค์ ์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ RevealTheme/$.ig.RevealTheme ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ฉด ๊ฐ ์ค์ ์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ด์ ๋ณ๊ฒฝํด์ผ ํ ์ค์ ์ ์์ ํ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ํ ๋ง ์ธ์คํด์ค๋ฅผ UpdateRevealTheme(theme)/ updateRevealTheme(theme) ๋ฉ์๋์ ์ ๋ฌํฉ๋๋ค. ๋์๋ณด๋๋ ๋ค๋ฅธ Reveal ๊ตฌ์ฑ ์์๊ฐ ์ด๋ฏธ ํ๋ฉด์ ํ์๋์ด ์๋ ๊ฒฝ์ฐ ์ ์ฉ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด๋ ค๋ฉด ๋ค์ ๋ ๋๋งํด์ผ ํฉ๋๋ค.
์ด๋ฏธ ๊ณ ์ ํ ํ ๋ง๋ฅผ ์ ์ฉํ์ง๋ง ๋ค๋ฅธ ์ค์ ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์์ง ์๊ณ ์ผ๋ถ ์ค์ ์ ์์ ํ๊ณ ์ถ์ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ GetCurrentTheme()/getCurrentTheme() ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด RevealTheme ์ค์ ์ ๋ํด ์ค์ ํ ๋ง์ง๋ง ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ฒ์๋ถํฐ RevealTheme์ ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์ ๋ฌ๋ฆฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ณ ํ ๋ง๋ฅผ ๋ค์ ์ ๋ฐ์ดํธํ๋ฉด ๊ธฐ๋ณธ๊ฐ ๋์ ์์ ํ์ง ์์ ๊ฐ ์ค์ ์ ๋ํ ํ์ฌ ๊ฐ์ ์ป๊ฒ ๋ฉ๋๋ค.
โGetCurrentTheme()/getCurrentTheme() ๋ฐ UpdateRevealTheme(theme)/updateRevealTheme(theme) ๋ฉ์๋๋ ๋ชจ๋ RevealView / $.ig.RevealView ํด๋์ค๋ฅผ ํตํด ์ก์ธ์คํ ์ ์์ต๋๋ค.
์ฝ๋ ์
๋ค์ ์ฝ๋ ์กฐ๊ฐ์์๋ ํ์ฌ ํ
๋ง๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๊ณ Reveal์์ ํ
๋ง๋ฅผ ์
๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋จผ์ ๋ณ๊ฒฝํ๊ธฐ ์ ์ ์คํฌ๋ฆฐ์ท์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
์ด์ ์ด ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ ์ ํ ๋ง๋ฅผ ์ ์ํ์ญ์์ค.
var regularFont = new FontFamily(new Uri("pack://application:,,,/ [Your ProjectName];component/[pathToFonts]/"), "./#Verdana Italic");
var boldFont = new FontFamily(new Uri("pack://application:,,,/ [Your ProjectName];component/[pathToFonts]/"), "./#Verdana Bold");
var mediumFont = new FontFamily(new Uri("pack://application:,,,/ [Your ProjectName];component/[pathToFonts]/"), "./#Verdana Bold Italic");
var customTheme = RevealView.GetCurrentTheme();
customTheme.ChartColors.Clear();
customTheme.ChartColors.Add(Color.FromRgb(192, 80, 77));
customTheme.ChartColors.Add(Color.FromRgb(101, 197, 235));
customTheme.ChartColors.Add(Color.FromRgb(232, 77, 137);
customTheme.BoldFont = new FontFamily("Gabriola");
customTheme.MediumFont = new FontFamily("Comic Sans MS");
customTheme.FontColor = Color.FromRgb(31, 59, 84);
customTheme.AccentColor = Color.FromRgb(192, 80, 77);
customTheme.DashboardBackgroundColor = Color.FromRgb(232, 235, 252);
RevealView.UpdateRevealTheme(customTheme);
์ฐธ๊ณ : ์ ์์ ์ธํธ๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ๋จผ์ ์ฐจํธ ์์ ๋ชฉ๋ก ๊ธฐ๋ณธ๊ฐ์ ์ง์์ผ ํฉ๋๋ค.
var revealTheme = new $.ig.RevealTheme();
revealTheme.chartColors = ["rgb(192, 80, 77)", "rgb(101, 197, 235)", "rgb(232, 77, 137)"];
revealTheme.mediumFont = "Gabriola";
revealTheme.boldFont = "Comic Sans MS";
revealTheme.fontColor = "rgb(31, 59, 84)";
revealTheme.accentColor = "rgb(192, 80, 77)";
revealTheme.dashboardBackgroundColor = "rgb(232, 235, 252)";
$.ig.RevealView.updateRevealTheme(revealTheme);
์ฐธ๊ณ : ๊ธ๊ผด ์ต์ ์ฌ์ฉ
๊ณต๊ฐ ํ
๋ง์ boldFont, regularFont ๋๋ mediumFont ์ค์ ์ ์ ์ํ ๋ ์ ํํ ๊ธ๊ผด ํจ๋ฐ๋ฆฌ ์ด๋ฆ์ ์ ๋ฌํด์ผ ํฉ๋๋ค. ๊ฐ์ค์น๋ ์ด๋ฆ์ด ์๋๋ผ ๊ธ๊ผด ์์ฒด์ ์ ์์ ์ํด ์ ์๋ฉ๋๋ค. $.ig.RevealTheme ๊ธ๊ผด ์ค์ ์ ์ง์ ๋ ๊ธ๊ผด ์ด๋ฆ์ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ๋ ค๋ฉด @font-face(CSS ์์ฑ)๋ฅผ ์ฌ์ฉํด์ผ ํ ์ ์์ต๋๋ค.
์ด์ ํ ๋ง ๋ณ๊ฒฝ ์ฌํญ์ ๊ตฌํํ ํ ๋์๋ณด๋ ๋ฐ ์๊ฐํ ํธ์ง๊ธฐ ๋ชจ๋์ ์๋ก์ด ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค.
์์ ์ฝ๋ ์ค๋ํซ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ํ์ ๋์๋ณด๋ ํธ์ง๊ธฐ.
์์ ์ฝ๋ ์ค๋ํซ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ ํ์ Visualization Editor.
ํ ๋ง ์์ฑ์ ๋ณ๊ฒฝํ๋ ์ฝ๋ ์ค๋ํซ
ํ ๋ง ๋ณ๊ฒฝ ๋ฌธ์๋ ๋ค์ ์์น์ ์์ต๋๋ค.
https://www.revealbi.io/help/developer/rvui.wpf~infragistics.sdk.revealtheme_properties
๋ค์์ $.ig.RevealTheme์์ ์ค์ ํ ์ ์๋ ์์ฑ์ ๋๋ค.
- ์ฐจํธ์์
- ์ผ๋ฐ๊ธ๊ผด
- ์ค๊ฐ๊ธ๊ผด
- ๋ณผ๋์ฒด
- ๊ธ๊ผด ์์
- ๋์๋ณด๋๋ฐฐ๊ฒฝ์์
- ์๊ฐํ๋ฐฐ๊ฒฝ์์
- ์ ์ผํธ์์
- ๋ฅ๊ทผ ๋ชจ์๋ฆฌ ์ฌ์ฉ
- conditionalFormatting.lowColor
- conditionalFormatting.midColor
- conditionalFormatting.hiColor
- conditionalFormatting.noneColor
๋ค์์ ์น SDK์์ ํ ๋ง๋ฅผ ์์ ํ๋ ์ค๋ํซ์ ๋๋ค.
var revealTheme = new $.ig.RevealTheme();
// ํ์ค ์์/๊ธ๊ผด ์ค์
๊ณต๊ฐTheme.accentColor = "rgb(15,96,69)";
๊ณต๊ฐTheme.regularFont = "์๋ก์ด";
๊ณต๊ฐTheme.mediumFont = "์ฃผ์์ฌํญ";
๊ณต๊ฐTheme.boldFont = "๋๋ฏธ๋ค";
๊ณต๊ฐTheme.fontColor = "rgb(226,24,125)";
๊ณต๊ฐTheme.dashboardBackgroundColor = "rgb(24,224,37)";
๊ณต๊ฐTheme.visualizationBackgroundColor = "rgb(221,224,37)";
// ์กฐ๊ฑด ์์ ์ค์
๊ณต๊ฐTheme.conditionalFormatting.hiColor = "rgb(87,0,127)";
๊ณต๊ฐTheme.conditionalFormatting.lowColor = "rgb(158,0,232)";
๊ณต๊ฐTheme.conditionalFormatting.midColor = "rgb(198,137,229)";
๊ณต๊ฐTheme.conditionalFormatting.noneColor = "rgb(255,255,127)";
// ์ฐจํธ ์์ ์ค์
๊ณต๊ฐTheme.chartColors = [โrgb(248,53,255)โ, โrgb(248,53,75)โ, โrgb(54,247,160)โ, โrgb(130,53,244)โ, โrgb(235,242,138),rgb(239,139,219),rgb(38,116,68 ),rgb(108,147,178)"];
// ์ ์ฌ๊ฐํ ๋๋ ๋ฅ๊ทผ ๋ชจ์ ์ค์
๊ณต๊ฐTheme.useRoundedCorners = ๊ฑฐ์ง;
// ๋์๋ณด๋ ์
๋ฐ์ดํธ
$.ig.RevealView.updateRevealTheme(revealTheme);
Theme ์์ฑ์ ์ค์ ํ ํ RevealView์์ updateReveal ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.
$.ig.RevealView.updateRevealTheme(revealTheme);
๊ธ๊ผด ์ฌ์ฉ์ ์ง์ ์ ์ํด ํ์ด์ง์ css์ ๋ค์ ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
<link href=โhttps://fonts.googleapis.com/css?family=Righteousโ rel=โ์คํ์ผ์ํธโ>
<๋งํฌ href=โhttps://fonts.googleapis.com/css?family=Domineโ rel=โ์คํ์ผ์ํธโ>
<๋งํฌ href=โhttps://fonts.googleapis.com/css?family=Caveatโ rel=โ์คํ์ผ์ํธโ>
์ด๋ฌํ ์์ฑ ์ค์ ์ ์ฌ์ฉํ๋ฉด ํ์ํ ๋ธ๋๋ ๊ณ ๊ฐ ๊ฒฝํ์ ๋ง๊ฒ Reveal ๋ด์ฅ ๋ถ์์ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค!
์ถ๊ฐ์ ์ผ๋ก ์ํ์๋ ์คํ์ผ๋ง ํฌ์ธํธ๊ฐ ์๋ค๋ฉด ๋ง์ ํด์ฃผ์ธ์!