jqwidgets-scripts-custom
Version:
jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.
258 lines (247 loc) • 11.8 kB
JavaScript
import React from 'react';
import ReactDOM from 'react-dom';
import JqxDockingLayout from '../../../jqwidgets-react/react_jqxdockinglayout.js';
import JqxChart from '../../../jqwidgets-react/react_jqxchart.js';
import JqxTextArea from '../../../jqwidgets-react/react_jqxtextarea.js';
import JqxTree from '../../../jqwidgets-react/react_jqxtree.js';
import JqxButton from '../../../jqwidgets-react/react_jqxbuttons.js';
class App extends React.Component {
componentDidMount() {
this.refs.viewServerExplorer.on('click', () => {
this.refs.myDockingLayout.addFloatGroup(300, 200, { x: 500, y: 200 }, 'layoutPanel', 'Server Explorer', '<div id="serverExplorerTree" />',
() => {
let source = [{
icon: '../../images/dataadapter.png',
label: 'Data Connections',
expanded: true,
items: [{
icon: '../../images/validator.png',
label: 'northwinddatabase.mdf'
}]
}, {
icon: '../../images/nav1.png',
label: 'Servers',
items: [{
icon: '../../images/nav1.png',
label: 'WorkStation3-PC'
}, {
icon: '../../images/dragdrop.png',
label: 'SharePoint Connections'
}]
}];
ReactDOM.render(
<JqxTree style={{ border: 'none' }}
width={190} height={'auto'} source={source} />
, document.getElementById('serverExplorerTree'));
}
);
this.refs.viewServerExplorer.disabled(true);
});
}
render() {
let layout = [{
type: 'layoutGroup',
orientation: 'horizontal',
items: [{
type: 'autoHideGroup',
alignment: 'left',
width: 80,
unpinnedWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Toolbox',
contentContainer: 'ToolboxPanel'
}, {
type: 'layoutPanel',
title: 'Help',
contentContainer: 'HelpPanel'
}]
}, {
type: 'layoutGroup',
orientation: 'vertical',
width: 500,
items: [{
type: 'documentGroup',
height: 400,
minHeight: 200,
items: [{
type: 'documentPanel',
title: 'index.htm',
contentContainer: 'Document1Panel',
initContent: () => {
let textArea = ReactDOM.render(
<JqxTextArea style={{ margin: 5 }}
width={'100%'} height={400} />
, document.getElementById('Document1TextArea'));
textArea.val('<!DOCTYPE html>\n<html>\n\t<head>\n\t<title>Page Title</title>\n\t</head>\n\t<body>\n\t\t<h1>This is a Heading</h1>\n\t\t<p>This is a paragraph.</p>\n\t</body>\n</html>');
}
}, {
type: 'documentPanel',
title: 'New Document',
contentContainer: 'Document2Panel',
initContent: () => {
ReactDOM.render(
<JqxTextArea style={{ margin: 5 }}
width={'100%'} height={400} placeHolder={'Blank document'} />
, document.getElementById('Document2TextArea'));
}
}]
}, {
type: 'tabbedGroup',
height: 200,
minHeight: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Performance',
contentContainer: 'PerformancePanel',
selected: true,
initContent: () => {
let data = [1, 5, 12, 5, 33, 38, 40, 42, 18, 18, 70, 76, 75, 99, 100, 88, 64, 13, 19, 15];
let padding = {
left: 0,
top: 10,
right: 0,
bottom: 0
};
let titlePadding = {
left: 0,
top: 0,
right: 0,
bottom: 0
};
let xAxis = {
visible: false,
valuesOnTicks: false
};
let seriesGroups = [{
type: 'line',
columnsGapPercent: 0,
columnsMaxWidth: 2,
valueAxis: {
minValue: 0,
visible: false
},
series: [{
linesUnselectMode: 'click',
colorFunction: (value, itemIndex, serie, group) => {
if (value <= 33) {
return '#32CD32';
} else if (value <= 66) {
return '#FFD700';
} else {
return '#AA4643';
}
}
}]
}];
ReactDOM.render(
<JqxChart style={{ width: '99%', height: '100%' }}
title={'CPU Usage'} description={''} showLegend={false}
enableAnimations={false} showBorderLine={false} showToolTips={false}
backgroundColor={'transparent'} padding={padding} titlePadding={titlePadding}
source={data} xAxis={xAxis} colorScheme={'scheme01'} seriesGroups={seriesGroups} />
, document.getElementById('cpuUsage'));
}
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel',
initContent: () => {
// initialize a jqxTree inside the Solution Explorer Panel
let source = [{
icon: '../../images/earth.png',
label: 'Project',
expanded: true,
items: [{
icon: '../../images/folder.png',
label: 'css',
expanded: true,
items: [{
icon: '../../images/nav1.png',
label: 'jqx.base.css'
}, {
icon: '../../images/nav1.png',
label: 'jqx.energyblue.css'
}, {
icon: '../../images/nav1.png',
label: 'jqx.orange.css'
}]
}, {
icon: '../../images/folder.png',
label: 'scripts',
items: [{
icon: '../../images/nav1.png',
label: 'jqxcore.js'
}, {
icon: '../../images/nav1.png',
label: 'jqxdata.js'
}, {
icon: '../../images/nav1.png',
label: 'jqxgrid.js'
}]
}, {
icon: '../../images/nav1.png',
label: 'index.htm',
selected: true
}]
}];
ReactDOM.render(
<JqxTree style={{ border: 'none' }}
width={190} source={source} />
, document.getElementById('solutionExplorerTree'));
}
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}];
return (
<div>
<JqxDockingLayout ref='myDockingLayout'
width={800} height={600}
layout={layout} contextMenu={true}>
<div data-container='ToolboxPanel'>
List of tools
</div>
<div data-container='HelpPanel'>
Help topics
</div>
<div data-container='Document1Panel'>
<div style={{ padding: 5 }} id='Document1TextArea' />
</div>
<div data-container='Document2Panel'>
<div style={{ padding: 5 }} id='Document2TextArea' />
</div>
<div data-container='ErrorListPanel'>
No errors.
</div>
<div data-container='PerformancePanel'>
<div id='cpuUsage' />
</div>
<div data-container='SolutionExplorerPanel'>
<div id='solutionExplorerTree' />
</div>
<div data-container='PropertiesPanel'>
List of properties
</div>
</JqxDockingLayout>
<br />
<JqxButton ref='viewServerExplorer' value='View Server Explorer' />
</div >
)
}
}
ReactDOM.render(<App />, document.getElementById('app'));