Skip to content

Commit

Permalink
clean up interface
Browse files Browse the repository at this point in the history
  • Loading branch information
eimrek committed Apr 10, 2024
1 parent 45ccc34 commit 5ab76ab
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 79 deletions.
13 changes: 4 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ Basic usage is the following:
```JSX
import BandsVisualizer from "mc-react-bands";

import Si_bands from "./data/Si_bands.json";
import Si_dos from "./data/Si_dos.json";
import si_bands from "./exampleData/si_bands.json";
import si_dos from "./exampleData/si_dos.json";

// Chart.js plugins need to be registered outside the library
import Chart from "chart.js/auto";
Expand All @@ -26,13 +26,8 @@ Chart.register(annotationPlugin);
function App() {
return (
<BandsVisualizer
bandsDataList={[Si_bands]}
dosData={Si_dos}
showFermi={true}
showLegend={undefined}
yLimit={{ ymin: -10.0, ymax: 10.0 }}
dosRange={[]}
colorInfo={undefined}
bandsDataList={[si_bands]}
dosData={si_dos}
/>
);
}
Expand Down
49 changes: 20 additions & 29 deletions src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import "./App.css";
import co_bands_fast from "./exampleData/co_bands_fast.json";
import si_bands from "./exampleData/si_bands.json";
import si_dos from "./exampleData/si_dos.json";
import si_bands_shifted from "./exampleData/si_bands_shifted.json";
import fe_spin_bands_fast from "./exampleData/fe_spin_bands_fast.json";
import fe_spin_dos_fast from "./exampleData/fe_spin_dos_fast.json";

Expand All @@ -18,31 +19,34 @@ Chart.register(zoomPlugin);
Chart.register(annotationPlugin);

function App() {
const [yLimit, setYLimit] = useState({ ymin: -10.0, ymax: 10.0 });
const [bandsData, setBandsData] = useState([si_bands]);
const [bandsDataList, setBandsDataList] = useState([
si_bands,
si_bands_shifted,
]);

const updateWidget = () => {
//setYLimit({ ymin: 0.0, ymax: 10.0 });
setBandsData([co_bands_fast]);
setBandsDataList([co_bands_fast]);
};

var jsx1 = (
<div className="center-div">
<h3>Bands and DOS</h3>
<h3>Bands (x2) and DOS</h3>
<div
style={{
width: "800px",
}}
>
<BandsVisualizer
bandsDataList={bandsData}
bandsDataList={bandsDataList}
dosData={si_dos}
showFermi={true}
showLegend={undefined}
yLimit={yLimit}
dosRange={[]}
colorInfo={undefined}
formatSettings={{ bands_ylabel: "Electronic bands (eV)" }}
energyRange={[-5.0, 5.0]}
dosRange={[0.0, 2.0]}
bandsColorInfo={["green", "red"]}
formatSettings={{
bandsYlabel: "Electronic bands (eV)",
showFermi: true,
showLegend: true,
}}
/>
</div>
</div>
Expand All @@ -60,11 +64,7 @@ function App() {
<BandsVisualizer
bandsDataList={[fe_spin_bands_fast]}
dosData={fe_spin_dos_fast}
showFermi={true}
showLegend={undefined}
yLimit={{ ymin: -10.0, ymax: 10.0 }}
dosRange={[]}
colorInfo={undefined}
energyRange={[-10.0, 10.0]}
/>
</div>
</div>
Expand All @@ -80,12 +80,7 @@ function App() {
>
<BandsVisualizer
bandsDataList={[si_bands]}
dosData={null}
showFermi={true}
showLegend={undefined}
yLimit={{ ymin: -10.0, ymax: 10.0 }}
dosRange={[]}
colorInfo={undefined}
energyRange={[-10.0, 10.0]}
/>
</div>
</div>
Expand All @@ -100,13 +95,9 @@ function App() {
}}
>
<BandsVisualizer
bandsDataList={[]}
dosData={si_dos}
showFermi={true}
showLegend={undefined}
yLimit={{ ymin: -10.0, ymax: 10.0 }}
dosRange={[]}
colorInfo={undefined}
energyRange={[-7.0, 7.0]}
dosRange={[0.0, 2.0]}
/>
</div>
</div>
Expand Down
10 changes: 4 additions & 6 deletions src/lib/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,19 @@ function BandsVisualizer(props) {
var theBandPlot = useRef(null);

// basic checks
var isBands = props.bandsDataList.length > 0;
var isBands = !(!props.bandsDataList || props.bandsDataList.length == 0);
var isDos = props.dosData != undefined || props.dosData != null;
var areBoth = isBands && isDos;

useEffect(() => {
theBandPlot = bandPlot(
uuidCanvas,
uuidTextbox,
props.bandsDataList,
isBands ? props.bandsDataList : [],
props.dosData,
props.showFermi,
props.showLegend,
props.yLimit,
props.energyRange,
props.dosRange,
props.colorInfo,
props.bandsColorInfo,
props.formatSettings
);
return () => {
Expand Down
9 changes: 2 additions & 7 deletions src/lib/jqueryBands/bands.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,7 @@ function bandPlot(
bandPathTextBoxId,
dataFilePaths,
dosFile,
showFermi,
showLegend,
yLimit,
energyRange,
dosRange,
colorInfo,
formatSettings
Expand All @@ -90,13 +88,10 @@ function bandPlot(
// create band plot object
var theBandPlot = new BandPlot(
bandDivId,
showFermi,
showLegend,
yLimit,
energyRange,
dosRange,
formatSettings
);
var colorDict;

// add data for every band structure
if (dataFilePaths.length) {
Expand Down
50 changes: 22 additions & 28 deletions src/lib/jqueryBands/bandstructure.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,14 +129,7 @@ function getValidPointNames(allData) {
}

/////////////// MAIN CLASS DEFINITION /////////////////
var BandPlot = function (
divID,
showFermi,
showLegend,
yLimit,
dosRange,
formatSettings
) {
var BandPlot = function (divID, energyRange, dosRange, formatSettings) {
this.divID = divID;
this.allData = [];
this.dosData = {};
Expand All @@ -149,12 +142,12 @@ var BandPlot = function (
this.currentPath = [];
this.bandFermiEnergy = null;
this.dosFermiEnergy = null;
this.showFermi = showFermi;
this.showLegend = showLegend;
this.yLimit = yLimit;
this.dosRange = dosRange;
this.energyRange = energyRange ?? [null, null];
this.dosRange = dosRange ?? [null, null];
this.yLabel = "";
this.formatSettings = formatSettings || {};
this.formatSettings = formatSettings ?? {};
this.showFermi = this.formatSettings["showFermi"] ?? true;
this.showLegend = this.formatSettings["showLegend"] ?? true;

if (typeof this.myChart != "undefined") {
this.myChart.destroy();
Expand Down Expand Up @@ -366,9 +359,9 @@ BandPlot.prototype.initChart = function (ticksData) {
},
};

if (bandPlotObject.yLimit) {
chartOptions.options.scales.y.min = bandPlotObject.yLimit.ymin;
chartOptions.options.scales.y.max = bandPlotObject.yLimit.ymax;
if (bandPlotObject.energyRange) {
chartOptions.options.scales.y.min = bandPlotObject.energyRange[0];
chartOptions.options.scales.y.max = bandPlotObject.energyRange[1];
}
if (bandPlotObject.xLimit) {
chartOptions.options.scales.x.min = bandPlotObject.xLimit.xmin;
Expand Down Expand Up @@ -496,8 +489,8 @@ BandPlot.prototype.initDosChart = function (orientation = "vertical") {
border: {
display: true,
},
min: bandPlotObject.yLimit.ymin,
max: bandPlotObject.yLimit.ymax,
min: bandPlotObject.energyRange[0],
max: bandPlotObject.energyRange[1],
ticks: {
// padding: 10,
// change the label of the ticks
Expand Down Expand Up @@ -633,8 +626,8 @@ BandPlot.prototype.initDosChart = function (orientation = "vertical") {
display: true,
text: "E - Ef (eV)",
},
min: bandPlotObject.yLimit.ymin,
max: bandPlotObject.yLimit.ymax,
min: bandPlotObject.energyRange[0],
max: bandPlotObject.energyRange[1],
ticks: {
// change the label of the ticks
callback: function (value, index, values) {
Expand Down Expand Up @@ -902,8 +895,7 @@ BandPlot.prototype.updateBandPlot = function (bandPath, forceRedraw) {

bandPlotObject.yLabel = bandPlotObject.allData[0].Y_label;
if (bandPlotObject.yLabel === undefined) {
bandPlotObject.yLabel =
this.formatSettings["bands_ylabel"] || "E - Ef (eV)";
bandPlotObject.yLabel = this.formatSettings["bandsYlabel"] || "E - Ef (eV)";
}

if (bandPlotObject.myChart === undefined) {
Expand Down Expand Up @@ -1016,20 +1008,22 @@ BandPlot.prototype.resBandZoom = function () {
// So, we reset them according to the current path
bandPlotObject.myChart.options.scales.x.min = bandPlotObject.xLimit.xmin;
bandPlotObject.myChart.options.scales.x.max = bandPlotObject.xLimit.xmax;
bandPlotObject.myChart.options.scales.y.min = bandPlotObject.yLimit.ymin;
bandPlotObject.myChart.options.scales.y.max = bandPlotObject.yLimit.ymax;
if (bandPlotObject.energyRange) {
bandPlotObject.myChart.options.scales.y.min = bandPlotObject.energyRange[0];
bandPlotObject.myChart.options.scales.y.max = bandPlotObject.energyRange[1];
}
bandPlotObject.myChart.update();
};

BandPlot.prototype.resDosZoom = function (orientation = "vertical") {
var bandPlotObject = this;
bandPlotObject.myDos.resetZoom();
if (orientation === "vertical") {
bandPlotObject.myDos.options.scales.y.min = bandPlotObject.yLimit.ymin;
bandPlotObject.myDos.options.scales.y.max = bandPlotObject.yLimit.ymax;
bandPlotObject.myDos.options.scales.y.min = bandPlotObject.energyRange[0];
bandPlotObject.myDos.options.scales.y.max = bandPlotObject.energyRange[1];
} else {
bandPlotObject.myDos.options.scales.x.min = bandPlotObject.yLimit.ymin;
bandPlotObject.myDos.options.scales.x.max = bandPlotObject.yLimit.ymax;
bandPlotObject.myDos.options.scales.x.min = bandPlotObject.energyRange[0];
bandPlotObject.myDos.options.scales.x.max = bandPlotObject.energyRange[1];
}
bandPlotObject.myDos.update();
};
Expand Down

0 comments on commit 5ab76ab

Please sign in to comment.