Properties

NameTypeDefault
contextMenu boolean false

Sets or gets wheter a custom context menu will appear when certain elements of the widget are right-clicked.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout} contextMenu={true}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
height string | number null

Sets or gets the layout's height.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
layout Array<Layout> []
LayoutType: "layoutGroup" | "tabbedGroup" | "documentGroup" | "autoHideGroup" | "layoutPanel" | "documentPanel"

LayoutAlignment: "left" | "right" | "top" | "bottom"

LayoutOrientation: "horizontal" | "vertical"

Interface Layout {
  type?: LayoutType;
  alignment?: LayoutAlignment;
  allowClose?: boolean;
  allowPin?: boolean;
  allowUnpin?: boolean;
  contentContainer?: string;
  height?: number | string;
  initContent?: () => void;
  minHeight?: number | string;
  minWidth?: number | string;
  orientation?: LayoutOrientation;
  pinnedHeight?: number | string;
  pinnedWidth?: number | string;
  selected?: boolean;
  title?: number | string;
  unpinnedHeight?: number | string;
  unpinnedWidth?: number | string;
  width?: number | string;
  items?: Array<Layout>;
}

Sets or gets the layout. This property determines the position of the layout elements and their characteristics. The layout array always contains one root item of type 'layoutGroup'.

Each object in the layout array can have the following properties, with some restrictions based on the type :

  • type. Possible values:
    • 'layoutGroup' - container for other groups. It has no visual features. The root item is always of this type.
    • 'tabbedGroup' - a group that contains layoutPanels. It is represented by a jqxWindow-like panel with a bottom-aligned jqxRibbon inside.
    • 'documentGroup' - a group that contains documentPanels. It is represented by a top-aligned jqxRibbon.
    • 'autoHideGroup' - a group that contains layoutPanels. It is represented by a jqxRibbon with mode: 'popup'. Each ribbon item has a jqxWindow-like panel in its content. This group has to be either the first or the last child item of its parent layoutGroup.
    • 'layoutPanel' - a panel that can be inserted in a tabbedGroup or autoHideGroup. When it is in a tabbedGroup it is represented by a ribbon item and in an autoHideGroup - by a jqxWindow-like panel inside a ribbon item.
    • 'documentPanel' - a panel that can be inserted in a documentGroup. It is represented by a ribbon item.
  • alignment - sets the alignment of an autoHideGroup. Possible values:
    • 'left'
    • 'right'
    • 'top'
    • 'bottom'
  • allowClose - applicable to tabbedGroups, layoutPanels and documentPanels. If set to true, the group/panel can be closed.
  • allowPin - applicable only to tabbedGroups. If set to false, the group cannot be pinned.
  • allowUnpin - applicable only to autoHideGroups. If set to false, the group cannot be unpinned.
  • contentContainer - indicates which HTML element has the content of the panel. The required value is the value of an existing HTML element's data-container attribute. N/A to groups.
  • height - sets the height of a group (N/A to panels). Used only if the parent group's orientation is 'vertical'. The heights of all such groups have to be set either in pixels or percents (not a mix of both).
  • initContent - a callback function to be called when a panel is opened for the first time. Useful for initializing widgets in panels. N/A to groups.
  • minHeight - sets the minimumn height (in pixels) of a group which is vertically aligned within its parent group. Disregards the value of the minGroupHeight property.
  • minWidth - sets the minimumn width (in pixels) of a group which is horizontally aligned within its parent group. Disregards the value of the minGroupWidth property.
  • orientation - orients child items either horizontally or vertically. Applicable only to layoutGroups. Possible values:
    • 'horizontal'
    • 'vertical'
  • pinnedHeight - sets what the height of a tabbedGroup will be after it is pinned.
  • pinnedWidth - sets what the width of a tabbedGroup will be after it is pinned.
  • selected - sets whether a panel is initially selected. N/A to groups.
  • title - sets the title of a panel. Represented by the corresponding ribbon item's title. N/A to groups.
  • unpinnedHeight - sets what the height of an autoHideGroup will be after it is unpinned.
  • unpinnedWidth - sets what the width of an autoHideGroup will be after it is unpinned.
  • width - sets the width of a group (N/A to panels). Used only if the parent group's orientation is 'horizontal'. The widths of all such groups have to be set either in pixels or percents (not a mix of both).
  • items - an array of item objects with the fields described above. N/A to panels.
/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
minGroupHeight number | string 100

Sets the default minimumn height for groups which are vertically aligned within their parent group.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout} minGroupHeight={200}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
minGroupWidth number | string 100

Sets the default minimumn width for groups which are horizontally aligned within their parent group.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout} minGroupWidth={150}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
resizable boolean true

Sets or gets wheter panels can be dynamically resized.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout} resizable={false}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
rtl boolean false

Sets or gets a value indicating whether widget's elements are aligned to support locales using right-to-left fonts.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout} rtl={true}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
theme string ''
/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout} theme={'material'}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
width string | number null

Sets or gets the layout's width.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);

Events

pin Event

This event is triggered when a group has been pinned.

Code examples

Bind to the pin event of jqxLayout.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout} onPin={this.onPin}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
private onPin(e: Event): void {
alert('do something...');
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);

resize Event

This event is triggered when a group has been resized (when the group has been resized with the mouse or when an adjacent group has been pinned, unpinned or closed).

Code examples

Bind to the resize event of jqxLayout.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout} onResize={this.onResize}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
private onResize(e: Event): void {
alert('do something...');
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);

unpin Event

This event is triggered when a group has been unpinned.

Code examples

Bind to the unpin event of jqxLayout.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public render() {
return (
<JqxLayout ref={this.myLayout} onUnpin={this.onUnpin}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
private onUnpin(e: Event): void {
alert('do something...');
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);

Methods

NameArgumentsReturn Type
destroy None

Destroys the widget.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public componentDidMount(): void {
this.myLayout.current!.destroy();
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
loadLayout Layout

Loads a previously saved layout.

refresh None

Refreshes the widget.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public componentDidMount(): void {
this.myLayout.current!.refresh();
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
render None

Renders the widget.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxLayout, { ILayoutProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxlayout';
class App extends React.PureComponent<{}, ILayoutProps> {
private myLayout = React.createRef<JqxLayout>();
constructor(props: {}) {
super(props);
this.state = {
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: 'Document 1',
contentContainer: 'Document1Panel'
}, {
type: 'documentPanel',
title: 'Document 2',
contentContainer: 'Document2Panel'
}]
}, {
type: 'tabbedGroup',
height: 200,
pinnedHeight: 30,
items: [{
type: 'layoutPanel',
title: 'Error List',
contentContainer: 'ErrorListPanel'
}, {
type: 'layoutPanel',
title: 'Output',
contentContainer: 'OutputPanel',
selected: true
}]
}]
}, {
type: 'tabbedGroup',
width: 220,
minWidth: 200,
items: [{
type: 'layoutPanel',
title: 'Solution Explorer',
contentContainer: 'SolutionExplorerPanel'
}, {
type: 'layoutPanel',
title: 'Properties',
contentContainer: 'PropertiesPanel'
}]
}]
}]
}
}
public componentDidMount(): void {
this.myLayout.current!.render();
}
public render() {
return (
<JqxLayout ref={this.myLayout}
width={800} height={600} layout={this.state.layout}>
<div data-container="ToolboxPanel">List of tools</div>
<div data-container="HelpPanel"> Help topics </div>
<!--documentGroup-->
<div data-container="Document1Panel"> Document 1 content </div>
<div data-container="Document2Panel"> Document 2 content </div>
<!--bottom tabbedGroup-->
<div data-container="ErrorListPanel"> List of errors </div>
<div data-container="OutputPanel"> Output </div>
<!--right tabbedGroup-->
<div data-container="SolutionExplorerPanel"> Solution structure </div>
<div data-container="PropertiesPanel"> List of properties </div>
</JqxLayout>
);
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
saveLayout None

Saves the current layout of the widget. The object returned by this method can be passed to the method loadLayout.