Add controls overview page

This commit is contained in:
mkpaz 2023-05-27 18:41:24 +04:00
parent 5f81fc2c5b
commit fbbb3469f1
3 changed files with 695 additions and 1 deletions

@ -57,6 +57,7 @@ import atlantafx.sampler.page.general.IconsPage;
import atlantafx.sampler.page.general.ThemePage;
import atlantafx.sampler.page.general.TypographyPage;
import atlantafx.sampler.page.showcase.BlueprintsPage;
import atlantafx.sampler.page.showcase.OverviewPage;
import atlantafx.sampler.page.showcase.filemanager.FileManagerPage;
import atlantafx.sampler.page.showcase.musicplayer.MusicPlayerPage;
import java.util.HashMap;
@ -230,7 +231,8 @@ public class MainModel {
showcases.getChildren().setAll(
NAV_TREE.get(BlueprintsPage.class),
NAV_TREE.get(FileManagerPage.class),
NAV_TREE.get(MusicPlayerPage.class)
NAV_TREE.get(MusicPlayerPage.class),
NAV_TREE.get(OverviewPage.class)
);
var root = NavTree.Item.root();
@ -331,6 +333,7 @@ public class MainModel {
map.put(BlueprintsPage.class, NavTree.Item.page(BlueprintsPage.NAME, BlueprintsPage.class));
map.put(FileManagerPage.class, NavTree.Item.page(FileManagerPage.NAME, FileManagerPage.class));
map.put(MusicPlayerPage.class, NavTree.Item.page(MusicPlayerPage.NAME, MusicPlayerPage.class));
map.put(OverviewPage.class, NavTree.Item.page(OverviewPage.NAME, OverviewPage.class));
return map;
}

@ -0,0 +1,87 @@
/* SPDX-License-Identifier: MIT */
package atlantafx.sampler.page.showcase;
import static javafx.scene.control.ScrollPane.ScrollBarPolicy.AS_NEEDED;
import atlantafx.base.theme.Styles;
import atlantafx.sampler.Resources;
import atlantafx.sampler.page.Page;
import atlantafx.sampler.util.NodeUtils;
import java.io.IOException;
import java.net.URI;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import org.jetbrains.annotations.Nullable;
public final class OverviewPage extends ScrollPane implements Page {
public static final String NAME = "Overview";
private final VBox wrapper;
@Override
public String getName() {
return NAME;
}
public OverviewPage() {
super();
try {
wrapper = new VBox();
wrapper.setAlignment(Pos.TOP_CENTER);
wrapper.getStyleClass().add(Styles.BG_DEFAULT);
var loader = new FXMLLoader(
Resources.getResource("assets/fxml/overview.fxml").toURL()
);
Parent fxmlContent = loader.load();
((Pane) fxmlContent).setMaxWidth(Page.MAX_WIDTH);
VBox.setVgrow(fxmlContent, Priority.ALWAYS);
wrapper.getChildren().setAll(fxmlContent);
NodeUtils.setScrollConstraints(this, AS_NEEDED, true, AS_NEEDED, true);
setMaxHeight(20_000);
setContent(wrapper);
} catch (IOException e) {
throw new RuntimeException("Unable to load FXML file", e);
}
setId("blueprints");
}
@Override
public Parent getView() {
return this;
}
@Override
public boolean canDisplaySourceCode() {
return true;
}
@Override
public boolean canChangeThemeSettings() {
return true;
}
@Override
public @Nullable URI getJavadocUri() {
return null;
}
@Override
public Node getSnapshotTarget() {
return wrapper;
}
@Override
public void reset() {
}
}

@ -0,0 +1,604 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import atlantafx.base.controls.Calendar?>
<?import atlantafx.base.controls.CustomTextField?>
<?import atlantafx.base.controls.PasswordTextField?>
<?import atlantafx.base.controls.RingProgressIndicator?>
<?import atlantafx.base.controls.Tile?>
<?import atlantafx.base.controls.ToggleSwitch?>
<?import atlantafx.base.layout.InputGroup?>
<?import atlantafx.sampler.fake.domain.Metric?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Accordion?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.scene.control.ColorPicker?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Hyperlink?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuButton?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.Pagination?>
<?import javafx.scene.control.ProgressBar?>
<?import javafx.scene.control.ProgressIndicator?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.control.Slider?>
<?import javafx.scene.control.Spinner?>
<?import javafx.scene.control.SplitMenuButton?>
<?import javafx.scene.control.Tab?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.control.ToggleButton?>
<?import javafx.scene.control.ToggleGroup?>
<?import javafx.scene.control.ToolBar?>
<?import javafx.scene.control.cell.PropertyValueFactory?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.paint.Color?>
<?import org.kordamp.ikonli.javafx.FontIcon?>
<GridPane hgap="40.0" vgap="20.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
</rowConstraints>
<children>
<GridPane hgap="10.0" vgap="10.0" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="ALWAYS" maxWidth="1.7976931348623157E308" />
<ColumnConstraints hgrow="ALWAYS" maxWidth="1.7976931348623157E308" />
<ColumnConstraints hgrow="ALWAYS" maxWidth="1.7976931348623157E308" />
<ColumnConstraints hgrow="ALWAYS" maxWidth="1.7976931348623157E308" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
</rowConstraints>
<children>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Regular" GridPane.hgrow="ALWAYS" />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="accent" text="Accent" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS" />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="success" text="Success" GridPane.columnIndex="2" GridPane.hgrow="ALWAYS" />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="danger" text="Danger" GridPane.columnIndex="3" GridPane.hgrow="ALWAYS" />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="button-outlined" text="Regular" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1" />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Accent" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1">
<styleClass>
<String fx:value="accent" />
<String fx:value="button-outlined" />
</styleClass>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Success" GridPane.columnIndex="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1">
<styleClass>
<String fx:value="success" />
<String fx:value="button-outlined" />
</styleClass>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Danger" GridPane.columnIndex="3" GridPane.hgrow="ALWAYS" GridPane.rowIndex="1">
<styleClass>
<String fx:value="danger" />
<String fx:value="button-outlined" />
</styleClass>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="flat" text="Regular" GridPane.hgrow="ALWAYS" GridPane.rowIndex="2" />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Accent" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS" GridPane.rowIndex="2">
<styleClass>
<String fx:value="accent" />
<String fx:value="flat" />
</styleClass>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Success" GridPane.columnIndex="2" GridPane.hgrow="ALWAYS" GridPane.rowIndex="2">
<styleClass>
<String fx:value="success" />
<String fx:value="flat" />
</styleClass>
</Button>
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Danger" GridPane.columnIndex="3" GridPane.hgrow="ALWAYS" GridPane.rowIndex="2">
<styleClass>
<String fx:value="danger" />
<String fx:value="flat" />
</styleClass>
</Button>
<VBox GridPane.columnSpan="2147483647" GridPane.rowIndex="4">
<children>
<MenuBar maxWidth="1.7976931348623157E308">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem mnemonicParsing="false" text="Delete" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
<ToolBar maxWidth="1.7976931348623157E308">
<items>
<Button mnemonicParsing="false">
<graphic>
<FontIcon iconLiteral="mdoal-format_bold" />
</graphic>
</Button>
<Button layoutX="10.0" layoutY="10.0" mnemonicParsing="false">
<graphic>
<FontIcon iconLiteral="mdoal-format_italic" />
</graphic>
</Button>
<Button layoutX="56.0" layoutY="10.0" mnemonicParsing="false">
<graphic>
<FontIcon iconLiteral="mdoal-format_underlined" />
</graphic>
</Button>
<Button layoutX="102.0" layoutY="10.0" mnemonicParsing="false">
<graphic>
<FontIcon iconLiteral="mdoal-format_strikethrough" />
</graphic>
</Button>
<Separator orientation="VERTICAL" />
<Button layoutX="148.0" layoutY="10.0" mnemonicParsing="false">
<graphic>
<FontIcon iconLiteral="mdoal-attach_file" />
</graphic>
</Button>
<Button layoutX="223.0" layoutY="10.0" mnemonicParsing="false">
<graphic>
<FontIcon iconLiteral="mdoal-insert_link" />
</graphic>
</Button>
</items>
</ToolBar>
</children>
<GridPane.margin>
<Insets top="10.0" />
</GridPane.margin>
</VBox>
<InputGroup maxWidth="1.7976931348623157E308" GridPane.columnSpan="2147483647" GridPane.rowIndex="3">
<children>
<ToggleButton maxWidth="Infinity" mnemonicParsing="false" text="Toggle1" HBox.hgrow="ALWAYS">
<toggleGroup>
<ToggleGroup fx:id="group2" />
</toggleGroup>
</ToggleButton>
<ToggleButton maxWidth="Infinity" mnemonicParsing="false" selected="true" text="Toggle2" toggleGroup="$group2" HBox.hgrow="ALWAYS" />
<ToggleButton maxWidth="Infinity" mnemonicParsing="false" text="Toggle3" toggleGroup="$group2" HBox.hgrow="ALWAYS" />
</children>
</InputGroup>
</children>
</GridPane>
<GridPane hgap="10.0" vgap="10.0">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="NEVER" />
</rowConstraints>
<children>
<TextField promptText="Prompt" GridPane.columnIndex="1" />
<TextField promptText="Text" />
<CustomTextField promptText="Search" GridPane.columnIndex="1" GridPane.rowIndex="2">
<left>
<FontIcon iconLiteral="mdmz-search" />
</left>
<right>
<FontIcon iconLiteral="mdal-clear" />
</right>
</CustomTextField>
<PasswordTextField text="password" GridPane.rowIndex="2" />
<TextField editable="false" promptText="Readonly" GridPane.rowIndex="1" />
<TextField disable="true" promptText="Disabled" GridPane.columnIndex="1" GridPane.rowIndex="1" />
</children>
</GridPane>
<GridPane hgap="10.0" layoutX="30.0" layoutY="30.0" vgap="10.0" GridPane.rowIndex="2">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints halignment="CENTER" hgrow="NEVER" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
</rowConstraints>
<children>
<CheckBox mnemonicParsing="false" text="Unchecked" />
<CheckBox allowIndeterminate="true" indeterminate="true" mnemonicParsing="false" selected="true" text="Indeterminate" GridPane.rowIndex="1" />
<CheckBox mnemonicParsing="false" selected="true" text="Checked" GridPane.rowIndex="2" />
<RadioButton mnemonicParsing="false" selected="true" text="Option 1" GridPane.columnIndex="1">
<toggleGroup>
<ToggleGroup fx:id="group1" />
</toggleGroup>
</RadioButton>
<RadioButton mnemonicParsing="false" text="Option 2" toggleGroup="$group1" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<RadioButton mnemonicParsing="false" text="Option 3" toggleGroup="$group1" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<ToggleSwitch selected="true" GridPane.columnIndex="2" />
<ToggleSwitch GridPane.columnIndex="2" GridPane.rowIndex="1" />
</children>
</GridPane>
<GridPane hgap="20.0" vgap="10.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="TOP">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints halignment="CENTER" hgrow="NEVER" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
</rowConstraints>
<children>
<VBox spacing="10.0">
<children>
<Slider minWidth="150.0" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" styleClass="small" value="25.0" />
<Slider layoutX="10.0" layoutY="10.0" minWidth="150.0" showTickLabels="true" showTickMarks="true" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" styleClass="small" value="25.0" />
</children>
</VBox>
<VBox spacing="10.0" GridPane.rowIndex="1">
<children>
<Slider minWidth="150.0" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" value="50.0" />
<Slider layoutX="10.0" layoutY="10.0" minWidth="150.0" showTickLabels="true" showTickMarks="true" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" value="50.0" />
</children>
</VBox>
<Slider minWidth="150.0" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" styleClass="large" value="75.0" GridPane.rowIndex="2" />
<Slider orientation="VERTICAL" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" styleClass="small" value="25.0" GridPane.columnIndex="1" GridPane.rowSpan="2147483647" />
<Slider orientation="VERTICAL" prefHeight="150.0" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" value="50.0" GridPane.columnIndex="3" GridPane.rowSpan="2147483647" />
<Slider minHeight="150.0" orientation="VERTICAL" prefHeight="150.0" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" styleClass="large" value="75.0" GridPane.columnIndex="5" GridPane.rowSpan="2147483647" />
<Slider layoutX="180.0" layoutY="10.0" orientation="VERTICAL" showTickLabels="true" showTickMarks="true" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" styleClass="small" value="25.0" GridPane.columnIndex="2" GridPane.rowSpan="2147483647" />
<Slider layoutX="261.0" layoutY="10.0" orientation="VERTICAL" prefHeight="150.0" showTickLabels="true" showTickMarks="true" style="-fx-skin: &quot;atlantafx.base.controls.ProgressSliderSkin&quot;;" value="50.0" GridPane.columnIndex="4" GridPane.rowSpan="2147483647" />
</children>
</GridPane>
<GridPane hgap="10.0" vgap="10.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints halignment="CENTER" hgrow="NEVER" minWidth="50.0" />
<ColumnConstraints halignment="CENTER" hgrow="NEVER" minWidth="50.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
<RowConstraints vgrow="NEVER" />
</rowConstraints>
<children>
<Spinner initialValue="5" max="10" min="0" minWidth="150.0" prefWidth="150.0" GridPane.rowIndex="2" />
<ComboBox minWidth="150.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="ComboBox" />
<String fx:value="Item 2" />
<String fx:value="Item 3" />
</FXCollections>
</items>
<value>
<String fx:value="ComboBox" />
</value>
</ComboBox>
<ChoiceBox minWidth="150.0" prefWidth="150.0" GridPane.columnIndex="1">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="ChoiceBox" />
<String fx:value="Item 2" />
<String fx:value="Item 3" />
</FXCollections>
</items>
<value>
<String fx:value="ChoiceBox" />
</value>
</ChoiceBox>
<DatePicker minWidth="150.0" prefWidth="150.0" showWeekNumbers="true" GridPane.rowIndex="1" />
<ColorPicker minWidth="150.0" prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<value>
<Color red="0.6784313917160034" green="0.21176470816135406" blue="0.19607843458652496" />
</value>
</ColorPicker>
<Spinner initialValue="5" max="10" min="0" minWidth="150.0" prefWidth="150.0" styleClass="split-arrows-horizontal" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<MenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" text="MenuButton" GridPane.rowIndex="3">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</MenuButton>
<SplitMenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" text="SplitButton" GridPane.columnIndex="1" GridPane.rowIndex="3">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</SplitMenuButton>
<MenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" styleClass="flat" text="MenuButton" GridPane.rowIndex="4">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</MenuButton>
<SplitMenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" styleClass="flat" text="SplitButton" GridPane.columnIndex="1" GridPane.rowIndex="4">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</SplitMenuButton>
<MenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" styleClass="outlined" text="MenuButton" GridPane.rowIndex="5">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</MenuButton>
<SplitMenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" styleClass="accent" text="SplitButton" GridPane.columnIndex="1" GridPane.rowIndex="5">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</SplitMenuButton>
<Button mnemonicParsing="false" styleClass="button-circle" GridPane.columnIndex="2">
<graphic>
<FontIcon iconLiteral="mdal-insert_chart_outlined" />
</graphic>
</Button>
<Button layoutX="330.0" layoutY="12.0" mnemonicParsing="false" GridPane.columnIndex="2" GridPane.rowIndex="1">
<graphic>
<FontIcon iconLiteral="mdal-insert_chart_outlined" />
</graphic>
<styleClass>
<String fx:value="accent" />
<String fx:value="button-circle" />
</styleClass>
</Button>
<Button layoutX="330.0" layoutY="58.0" mnemonicParsing="false" GridPane.columnIndex="2" GridPane.rowIndex="2">
<graphic>
<FontIcon iconLiteral="mdal-insert_chart_outlined" />
</graphic>
<styleClass>
<String fx:value="success" />
<String fx:value="button-circle" />
</styleClass>
</Button>
<Button layoutX="330.0" layoutY="101.0" mnemonicParsing="false" GridPane.columnIndex="2" GridPane.rowIndex="3">
<graphic>
<FontIcon iconLiteral="mdal-insert_chart_outlined" />
</graphic>
<styleClass>
<String fx:value="flat" />
<String fx:value="button-circle" />
</styleClass>
</Button>
<Button layoutX="330.0" layoutY="12.0" mnemonicParsing="false" GridPane.columnIndex="2" GridPane.rowIndex="4">
<graphic>
<FontIcon iconLiteral="mdal-insert_chart_outlined" />
</graphic>
<styleClass>
<String fx:value="flat" />
<String fx:value="button-circle" />
<String fx:value="accent" />
</styleClass>
</Button>
<Button layoutX="330.0" layoutY="190.0" mnemonicParsing="false" GridPane.columnIndex="2" GridPane.rowIndex="5">
<graphic>
<FontIcon iconLiteral="mdal-insert_chart_outlined" />
</graphic>
<styleClass>
<String fx:value="flat" />
<String fx:value="button-circle" />
<String fx:value="success" />
</styleClass>
</Button>
<VBox alignment="CENTER_LEFT" prefWidth="100.0" spacing="10.0" GridPane.columnIndex="3" GridPane.halignment="CENTER" GridPane.hgrow="ALWAYS" GridPane.rowSpan="2147483647" GridPane.vgrow="ALWAYS">
<children>
<Label text="Label">
<graphic>
<FontIcon iconLiteral="mdal-label" />
</graphic>
</Label>
<Label layoutX="10.0" layoutY="10.0" styleClass="accent" text="Label">
<graphic>
<FontIcon iconLiteral="mdal-label" />
</graphic>
</Label>
<Label layoutX="10.0" layoutY="40.0" styleClass="success" text="Label">
<graphic>
<FontIcon iconLiteral="mdal-label" />
</graphic>
</Label>
<Label layoutX="10.0" layoutY="70.0" styleClass="warning" text="Label">
<graphic>
<FontIcon iconLiteral="mdal-label" />
</graphic>
</Label>
<Label layoutX="10.0" layoutY="100.0" styleClass="danger" text="Label">
<graphic>
<FontIcon iconLiteral="mdal-label" />
</graphic>
</Label>
<Label layoutX="10.0" layoutY="130.0" styleClass="text-muted" text="Label">
<graphic>
<FontIcon iconLiteral="mdal-label" />
</graphic>
</Label>
<Label layoutX="10.0" layoutY="160.0" styleClass="text-subtle" text="Label">
<graphic>
<FontIcon iconLiteral="mdal-label" />
</graphic>
</Label>
<Hyperlink text="Hyperlink" />
<Hyperlink text="Hyperlink" visited="true" />
<Hyperlink disable="true" layoutX="10.0" layoutY="250.0" text="Hyperlink" />
</children>
</VBox>
<MenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" styleClass="success" text="MenuButton" GridPane.rowIndex="6">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</MenuButton>
<SplitMenuButton minWidth="150.0" mnemonicParsing="false" prefWidth="150.0" styleClass="danger" text="SplitButton" GridPane.columnIndex="1" GridPane.rowIndex="6">
<items>
<MenuItem mnemonicParsing="false" text="Action 1" />
<MenuItem mnemonicParsing="false" text="Action 2" />
</items>
</SplitMenuButton>
<Button layoutX="338.0" layoutY="236.0" mnemonicParsing="false" GridPane.columnIndex="2" GridPane.rowIndex="6">
<graphic>
<FontIcon iconLiteral="mdal-insert_chart_outlined" />
</graphic>
<styleClass>
<String fx:value="flat" />
<String fx:value="button-circle" />
<String fx:value="danger" />
</styleClass>
</Button>
</children>
</GridPane>
<VBox prefWidth="400.0" spacing="10.0" GridPane.columnIndex="1" GridPane.rowIndex="2" GridPane.rowSpan="2">
<children>
<TabPane tabClosingPolicy="ALL_TABS">
<tabs>
<Tab text="Tab 1" />
<Tab text="Tab 2" />
<Tab disable="true" text="Tab 3" />
</tabs>
</TabPane>
<TabPane styleClass="floating" tabClosingPolicy="ALL_TABS">
<tabs>
<Tab text="Tab1" />
<Tab text="Tab 2" />
</tabs>
</TabPane>
<TabPane styleClass="classic" tabClosingPolicy="ALL_TABS">
<tabs>
<Tab text="Tab 1" />
<Tab text="Tab 2" />
<Tab disable="true" text="Tab 3" />
</tabs>
</TabPane>
<TextArea text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam molestie lacus ut mauris consectetur, sed aliquet ipsum elementum. Aenean id tincidunt mauris. Sed sit amet leo rutrum, viverra est ac, aliquam erat. Etiam ullamcorper tincidunt felis, eget semper tortor venenatis nec. Maecenas venenatis commodo lacus non sagittis. Proin vitae turpis at enim gravida hendrerit. Interdum et malesuada fames ac ante ipsum primis in faucibus." wrapText="true" VBox.vgrow="ALWAYS" />
</children>
</VBox>
<Calendar showWeekNumbers="true" GridPane.rowIndex="3" />
<VBox alignment="CENTER_LEFT" minHeight="100.0" spacing="10.0" GridPane.rowIndex="4">
<children>
<ProgressBar maxWidth="1.7976931348623157E308" progress="0.25" styleClass="small" />
<ProgressBar layoutX="10.0" layoutY="10.0" maxWidth="1.7976931348623157E308" progress="0.51" />
<ProgressBar layoutX="10.0" layoutY="14.0" maxWidth="1.7976931348623157E308" progress="0.75" styleClass="large" />
</children>
<padding>
<Insets bottom="10.0" top="10.0" />
</padding>
</VBox>
<VBox minHeight="400.0" prefHeight="400.0" GridPane.columnIndex="1" GridPane.rowIndex="4" GridPane.rowSpan="3">
<children>
<TableView styleClass="striped" VBox.vgrow="ALWAYS">
<columns>
<TableColumn minWidth="100.0" prefWidth="100.0" text="Queries">
<cellValueFactory>
<PropertyValueFactory property="queries" />
</cellValueFactory>
</TableColumn>
<TableColumn minWidth="30.0" prefWidth="30.0" styleClass="align-right" text="Latency">
<cellValueFactory>
<PropertyValueFactory property="latency" />
</cellValueFactory>
</TableColumn>
<TableColumn prefWidth="75.0" styleClass="align-right" text="Requests">
<cellValueFactory>
<PropertyValueFactory property="requests" />
</cellValueFactory>
</TableColumn>
</columns>
<columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
</columnResizePolicy>
<items>
<FXCollections fx:factory="observableArrayList">
<Metric cacheHitRate="67.4%" latency="116ms" queries="activeCart" requests="26.1K" />
<Metric cacheHitRate="97.6%" latency="284ms" queries="getUserShippingAddress" requests="16.3K" />
<Metric cacheHitRate="14.8%" latency="456ms" queries="getPromotionCollection" requests="10.2K" />
<Metric cacheHitRate="41.3%" latency="451ms" queries="getUserPersonalDiscount" requests="8,764" />
<Metric cacheHitRate="92.4%" latency="123ms" queries="getActiveCoupons" requests="5,456" />
</FXCollections>
</items>
</TableView>
<Pagination currentPageIndex="2" pageCount="25" style="-fx-page-information-visible: false;" VBox.vgrow="NEVER" />
</children>
</VBox>
<HBox spacing="20.0" GridPane.rowIndex="5">
<children>
<ProgressIndicator minHeight="50.0" minWidth="50.0" progress="0.25" />
<ProgressIndicator layoutX="10.0" layoutY="10.0" minHeight="50.0" minWidth="50.0" progress="0.5" />
<ProgressIndicator layoutX="60.0" layoutY="10.0" minHeight="50.0" minWidth="50.0" progress="0.75" />
<RingProgressIndicator progress="0.25" />
<RingProgressIndicator layoutX="220.0" layoutY="10.0" progress="0.5" />
</children>
<padding>
<Insets bottom="10.0" top="10.0" />
</padding>
</HBox>
<Accordion minHeight="300.0" GridPane.rowIndex="6">
<panes>
<TitledPane animated="false" text="untitled 1">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Tile layoutX="-56.0" layoutY="44.0" subTitle="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sagittis vehicula elit, ac dictum metus bibendum id. Integer elit purus, varius ac eros eu, convallis ultricies tellus." title="Title" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane animated="false" text="untitled 2">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</TitledPane>
<TitledPane animated="false" text="untitled 3">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</TitledPane>
</panes>
</Accordion>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</GridPane>