jqwidgets-scripts-custom
Version:
jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.
122 lines (112 loc) • 4.86 kB
Plain Text
import React from 'react';
import ReactDOM from 'react-dom';
import JqxDockPanel from '../../../jqwidgets-react/react_jqxdockpanel.js';
class App extends React.Component {
componentDidMount(){
document.getElementById('layout').addEventListener('click', (event) => {
layoutOnClick(event);
this.refs.DockPanel.refresh();
},true);
}
render () {
let dockPanel1HTML = `
<div id='first' dock='left' style='background: #486974;'>First Div</div>
<div id='second' dock='top' style='height: 100px; background: #368ba7;'>Second Div</div>
<div id='third' dock='right' style='background: #df7169;'>Third Div</div>
<div id='fourth' style='background: #a73654;'>Fourth Div</div>
`;
let dockPanel2HTML = `
<div id='Div1' dock='left' style='background: #486974;'>1</div>
<div id='Div2' dock='top' style='background: #368ba7;'>2</div>
<div id='Div3' dock='right' style='background: #df7169;'>3</div>
<div id='Div4' dock='bottom' style='background: #a73654;'>4</div>
`;
return (
<div id='jqxWidget' style={{ width: 300, height: 600, fontSize: 13, fontFamily: 'Verdana' }}>
<JqxDockPanel className='DockPanel' ref='DockPanel' template={dockPanel1HTML}
width={300} height={210}
/>
<br />
<div>Layout Types:</div>
<div id='layout'>
<img title='click to apply a new layout' alt='layout types' src='../../../../images/LayoutTypes.png' />
</div>
<br />
<div>Spiral:</div>
<JqxDockPanel className='DockPanel' template={dockPanel2HTML}
width={300} height={210} lastchildfill={false}
/>
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById('app'));
for (let i = 0; i < 4; i++)
{
document.getElementsByClassName('DockPanel')[0].children[0].children[i].style.color = 'white';
document.getElementsByClassName('DockPanel')[1].children[0].children[i].style.color = 'white';
document.getElementsByClassName('DockPanel')[1].children[0].children[i].style.width = '20px';
document.getElementsByClassName('DockPanel')[1].children[0].children[i].style.height = '20px';
}
function layoutOnClick (event) {
let firstElement = document.getElementById('first');
let secondElement = document.getElementById('second');
let thirdElement = document.getElementById('third');
let fourthElement = document.getElementById('fourth');
let position = parseInt(event.clientX) - parseInt(event.target.offsetLeft);
if (position < 55)
{
firstElement.setAttribute('dock', 'bottom');
firstElement.style.height = '105px';
secondElement.setAttribute('dock', 'left');
secondElement.style.width = '100px';
thirdElement.setAttribute('dock', 'left');
thirdElement.style.width = '100px';
fourthElement.setAttribute('dock', 'left');
fourthElement.style.width = '100px';
} else
if (position < 115)
{
for (let i = 0; i < 4; i++)
{
document.getElementsByClassName('DockPanel')[0].children[0].children[i].style.width = '100px';
}
firstElement.setAttribute('dock', 'left');
secondElement.setAttribute('dock', 'right');
thirdElement.setAttribute('dock', 'bottom');
thirdElement.style.height = '140px';
fourthElement.setAttribute('dock', 'top');
fourthElement.style.height = '70px';
} else if (position < 175)
{
for (let i = 0; i < 4; i++)
{
document.getElementsByClassName('DockPanel')[0].children[0].children[i].style.width = '150px';
}
firstElement.setAttribute('dock', 'left');
secondElement.setAttribute('dock', 'left');
thirdElement.setAttribute('dock', 'left');
fourthElement.setAttribute('dock', 'left');
} else if (position < 235)
{
for (let i = 0; i < 4; i++)
{
document.getElementsByClassName('DockPanel')[0].children[0].children[i].style.height = '70px';
}
firstElement.setAttribute('dock', 'top');
secondElement.setAttribute('dock', 'top');
thirdElement.setAttribute('dock', 'top');
fourthElement.setAttribute('dock', 'top');
}
else
{
for (let i = 0; i < 4; i++)
{
document.getElementsByClassName('DockPanel')[0].children[0].children[i].style.width = '100px';
}
firstElement.setAttribute('dock', 'left');
secondElement.setAttribute('dock', 'left');
thirdElement.setAttribute('dock', 'left');
fourthElement.setAttribute('dock', 'left');
}
}