Commit 151a287e authored by Alexander Diewald's avatar Alexander Diewald
Browse files

Merge branch '3437' into 'master'

3437

See merge request af3/af3!267
parents 9f66f781 a0d86780
......@@ -4,7 +4,7 @@ BasicScheduleConstraint.java 8c64023fd01bcf858218e322f020aceff3661d98 GREEN
ConstraintDefinitionUtils.java a51705fb421fd2d1d3c2a9b74a055947f7e70e98 GREEN
ConstraintTransformationAdapter.java 8806164d71491c7d1af665990dd154f2275cad8c GREEN
DSMLTransformationService.java 2344a468547413121ba43a12556c38812a63de5f GREEN
DSMLtoSMTTransformator.java 7e1e4cbcf8c5acdb2b82fd7a266fb8c38f787f00 GREEN
DSMLtoSMTTransformator.java 2a9b4efa2210a4a1da5c2b4328fd99cfe928028b GREEN
DefaultExpressionTransformator.java 47e3c00647a2a9845d1c0785668f6270cf06517e GREEN
DeploScheduleRun.java 2b07bd6b40cf4ce2eabc12198f6db3b9655bed25 GREEN
DeploymentRun.java 4b2d0a6d64bb5a6efabc2ee9bf933cc523843ac8 GREEN
......
......@@ -483,7 +483,10 @@ public class DSMLtoSMTTransformator {
Expr valueExpr = null;
if(annotation instanceof SafetyIntegrityLevel) {
Enumerator value = ((SafetyIntegrityLevel)annotation).getValue();
valueExpr = createInteger(context, value.getValue());
// Null implies no safety level defined --> Lowest safety level. A different and
// cleaner approach to solve this problem is implemented in #3690.
valueExpr = (value != null) ? createInteger(context, value.getValue())
: createInteger(context, 0);
} else if(annotation instanceof HardwareCost) {
int value = ((HardwareCost)annotation).getCost();
valueExpr = createInteger(context, value);
......
......@@ -19,7 +19,7 @@ import static java.util.Arrays.asList;
import static org.fortiss.af3.exploration.model.solutions.SolutionState.OPTIMAL;
import static org.fortiss.af3.exploration.smt.util.Z3ModelElementFactory.createSMTConstraint;
import static org.fortiss.af3.exploration.util.PatternFactoryUtils.createAllocationPatternExpression;
import static org.fortiss.af3.exploration.util.PatternFactoryUtils.createFunctionCouplingPattern;
import static org.fortiss.af3.exploration.util.PatternFactoryUtils.createFunctionCouplingPatternExpression;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static test.org.fortiss.af3.exploration.smt.util.TestDSEUtils.getSuperSetEntries;
......@@ -83,7 +83,7 @@ public class FunctionCouplingTest extends SMTTestBase {
Task[] tasks = getSuperSetEntries(superSetMap, Task.class);
IExpression coupling =
createFunctionCouplingPattern(dse, true, asList(tasks[0], tasks[1]));
createFunctionCouplingPatternExpression(dse, true, asList(tasks[0], tasks[1]));
explorationTargets
.add(createSMTConstraint("Function Coupling: ECU 0 : ECU 1", coupling, false));
}
......@@ -128,7 +128,7 @@ public class FunctionCouplingTest extends SMTTestBase {
.add(createSMTConstraint("Allocation: Task 1 - ECU 0", allocate1, false));
IExpression coupling =
createFunctionCouplingPattern(dse, true, asList(tasks[0], tasks[1]));
createFunctionCouplingPatternExpression(dse, true, asList(tasks[0], tasks[1]));
explorationTargets
.add(createSMTConstraint("Function Coupling: ECU 0 : ECU 1", coupling, false));
}
......@@ -153,7 +153,7 @@ public class FunctionCouplingTest extends SMTTestBase {
Task[] tasks = getSuperSetEntries(superSetMap, Task.class);
IExpression coupling =
createFunctionCouplingPattern(dse, false, asList(tasks[0], tasks[1]));
createFunctionCouplingPatternExpression(dse, false, asList(tasks[0], tasks[1]));
explorationTargets.add(
createSMTConstraint("Function Decoupling: ECU 0 : ECU 1", coupling, false));
}
......@@ -198,7 +198,7 @@ public class FunctionCouplingTest extends SMTTestBase {
.add(createSMTConstraint("Allocation: Task 1 - ECU 0", allocate1, false));
IExpression coupling =
createFunctionCouplingPattern(dse, false, asList(tasks[0], tasks[1]));
createFunctionCouplingPatternExpression(dse, false, asList(tasks[0], tasks[1]));
explorationTargets
.add(createSMTConstraint("Function Coupling: ECU 0 : ECU 1", coupling, false));
}
......
......@@ -43,7 +43,6 @@ import org.junit.runners.Parameterized.Parameters;
import test.org.fortiss.af3.exploration.smt.suite.base.SMTTestBase;
import test.org.fortiss.af3.exploration.smt.suite.base.TestProcedure;
import test.org.fortiss.af3.exploration.smt.suite.base.TestProcedure;
import test.org.fortiss.af3.exploration.smt.suite.testruns.DeploymentTestRun;
/**
......@@ -123,7 +122,7 @@ public class BusBandwidthOptimizationTest extends SMTTestBase {
// Minimize the weight of the given transmission unit
IExpression bandwidthOptimization =
createBusWeightOptimizationPatternExpression(dse, testTransmissionUnit);
createBusWeightOptimizationPatternExpression(dse, testTransmissionUnit, true);
explorationTargets.add(createSMTObjective(
"Bandwidth Optimization: " + transmissionUnitName, bandwidthOptimization));
}
......@@ -140,7 +139,8 @@ public class BusBandwidthOptimizationTest extends SMTTestBase {
for(Signal signal : signals) {
// It does not matter where signals are deployed as long as they are not transmitted
// over the transmission unit to optimize bandwidth for
assertFalse(getTransmissionUnitsFromAllocation(solution, signal).contains(testTransmissionUnit));
assertFalse(getTransmissionUnitsFromAllocation(solution, signal)
.contains(testTransmissionUnit));
}
}
}
......
......@@ -23,9 +23,9 @@
<extension point="org.eclipse.ui.views">
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.perspective.navigator.ExplorationNavigatorController"
class="org.fortiss.af3.exploration.ui.perspective.navigator.ExplorationNavigatorFXViewPart"
icon="res/org/fortiss/af3/exploration/ui/icons/DSE.gif"
id="org.fortiss.af3.exploration.ui.perspective.navigator.ExplorationNavigatorController"
id="org.fortiss.af3.exploration.ui.perspective.navigator.ExplorationNavigatorFXViewPart"
name="DSE Navigator"
restorable="true">
</view>
......@@ -39,20 +39,28 @@
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.perspective.dashboard.DashboardController"
class="org.fortiss.af3.exploration.ui.perspective.dashboard.DashboardFXViewPart"
icon="res/org/fortiss/af3/exploration/ui/icons/home_icon.gif"
id="org.fortiss.af3.exploration.ui.perspective.dashboard.DashboardController"
id="org.fortiss.af3.exploration.ui.perspective.dashboard.DashboardFXViewPart"
name="Dashboard"
restorable="true">
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.perspective.targetdef.constraint.ConstraintViewBackend"
class="org.fortiss.af3.exploration.ui.perspective.targetdef.constraint.ConstraintsFXViewPart"
icon="res/org/fortiss/af3/exploration/ui/icons/constraints_icon.png"
id="org.fortiss.af3.exploration.ui.perspective.targetdef.constraint.ConstraintViewBackend"
id="org.fortiss.af3.exploration.ui.perspective.targetdef.constraint.ConstraintsFXViewPart"
name="Constraints"
restorable="true">
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.perspective.targetdef.objective.ObjectivesFXViewPart"
icon="res/org/fortiss/af3/exploration/ui/icons/constraints_icon.png"
id="org.fortiss.af3.exploration.ui.perspective.targetdef.objective.ObjectivesFXViewPart"
name="Objectives"
restorable="true">
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.perspective.synthesis.PlatformSynthesisViewBackend"
......@@ -85,14 +93,6 @@
name="Visualization"
restorable="true">
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.perspective.targetdef.objective.ObjectiveViewBackend"
icon="res/org/fortiss/af3/exploration/ui/icons/objectives_icon.png"
id="org.fortiss.af3.exploration.ui.perspective.targetdef.objective.ObjectiveViewBackend"
name="Objectives"
restorable="true">
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.perspective.generic.HelpView"
......@@ -102,23 +102,9 @@
restorable="true">
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.playground.DummyJavaFXView"
id="org.fortiss.af3.exploration.ui.playground.DummyJavaFXView"
name="DummyView"
restorable="true">
</view>
<view
allowMultiple="false"
class="org.fortiss.af3.exploration.ui.playground.FxComponentTreeController"
id="org.fortiss.af3.exploration.ui.playground.FxComponentTreeController"
name="FxDseNavigator"
restorable="true">
</view>
<view
class="org.fortiss.af3.exploration.ui.playground.SimpleAnnotationTableController"
id="org.fortiss.af3.exploration.ui.playground.SimpleAnnotationTableController"
name="FXSimpleAnnotationTable"
class="org.fortiss.af3.exploration.ui.playground.SimpleAnnotationTableFXViewPart"
id="org.fortiss.af3.exploration.ui.playground.SimpleAnnotationTableFXViewPart"
name="SimpleAnnotationTable"
restorable="true">
</view>
</extension>
......
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.canvas.Canvas?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.image.Image?>
......@@ -12,163 +11,145 @@
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.RowConstraints?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<AnchorPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="632.0" prefWidth="969.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="80.0" minHeight="10.0" prefHeight="74.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="5.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="1.7976931348623157E308" minHeight="10.0" prefHeight="552.0" vgrow="SOMETIMES" />
</rowConstraints>
<GridPane layoutX="10.0" layoutY="10.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="542.0" prefWidth="979.6" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="1.7976931348623157E308" minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0">
<children>
<fx:include fx:id="headerBar" maxWidth="1.7976931348623157E308" source="HeaderBar.fxml" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
</children>
</AnchorPane>
<GridPane GridPane.rowIndex="2">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="1.7976931348623157E308" minHeight="10.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="50.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ImageView fitHeight="150.0" fitWidth="200.0" nodeOrientation="INHERIT" pickOnBounds="true" preserveRatio="true" GridPane.halignment="CENTER">
<image>
<Image url="@../../icons/constraints.png" />
</image>
</ImageView>
<ImageView fitHeight="150.0" fitWidth="158.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.halignment="CENTER">
<image>
<Image url="@../../icons/synthesis.png" />
</image>
</ImageView>
<ImageView fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
<image>
<Image url="@../../icons/visualization.png" />
</image>
</ImageView>
<GridPane GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<ImageView fitHeight="150.0" fitWidth="200.0" nodeOrientation="INHERIT" pickOnBounds="true" preserveRatio="true" GridPane.halignment="CENTER">
<image>
<Image url="@../../icons/constraints.png" />
</image>
</ImageView>
<ImageView fitHeight="150.0" fitWidth="158.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="1" GridPane.halignment="CENTER">
<image>
<Image url="@../../icons/synthesis.png" />
</image>
</ImageView>
<ImageView fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" GridPane.columnIndex="2" GridPane.halignment="CENTER" GridPane.valignment="CENTER">
<image>
<Image url="@../../icons/visualization.png" />
</image>
</ImageView>
<GridPane GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="constraintsButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onConstaintsButton" text="Constraints">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
<Button fx:id="objectiveButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onObjectivesButton" text="Objectives" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="platformButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onPlatformButton" text="Platform">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
<Button fx:id="deploymentButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onDeploymentButton" text="Deployment" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
<Button fx:id="scheduleButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onScheduleButton" text="Schedule" GridPane.rowIndex="2">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
<GridPane GridPane.columnIndex="2" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="visualizationButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onVisualizationButton" text="Visualization">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
<Button fx:id="constraintsButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onConstaintsButton" text="Constraints">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
<Button fx:id="objectiveButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onObjectivesButton" text="Objectives" GridPane.rowIndex="1">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="3">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="selectAF3Button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onSelectAF3Button" text="Select AF3 Project">
<Button fx:id="platformButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onPlatformButton" text="Platform">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
<Button fx:id="deploymentButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onDeploymentButton" text="Deployment" GridPane.rowIndex="1">
<GridPane.margin>
<Insets right="2.0" />
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
<Button fx:id="importButton" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onImportButton" text="Import external model" GridPane.columnIndex="1">
<Button fx:id="scheduleButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onScheduleButton" text="Schedule" GridPane.rowIndex="2">
<GridPane.margin>
<Insets left="2.0" />
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
<HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="4">
<GridPane GridPane.columnIndex="2" GridPane.rowIndex="1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="Currently selected Project:" />
<Label fx:id="selectedProjectLabel" text="None">
<HBox.margin>
<Insets left="5.0" />
</HBox.margin>
</Label>
<Button fx:id="visualizationButton" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onVisualizationButton" text="Visualization">
<GridPane.margin>
<Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
</GridPane.margin>
</Button>
</children>
</HBox>
</GridPane>
</children>
</GridPane>
<GridPane GridPane.columnIndex="1" GridPane.rowIndex="3">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button fx:id="selectAF3Button" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onSelectAF3Button" text="Select AF3 Project">
<GridPane.margin>
<Insets right="2.0" />
</GridPane.margin>
</Button>
<Button fx:id="importButton" disable="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#onImportButton" text="Import external model" GridPane.columnIndex="1">
<GridPane.margin>
<Insets left="2.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
<HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="1" GridPane.rowIndex="4">
<children>
<Label text="Currently selected Project:" />
<Label fx:id="selectedProjectLabel" text="None">
<HBox.margin>
<Insets left="5.0" />
</HBox.margin>
</Label>
</children>
</HBox>
</children>
</GridPane>
<Canvas height="200.0" width="200.0" />
</children>
</AnchorPane>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?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.text.Font?>
<AnchorPane xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.fortiss.af3.exploration.ui.perspective.dashboard.HeaderBarController">
<children>
<GridPane layoutX="10.0" layoutY="10.0" prefHeight="67.0" prefWidth="967.0" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" />
<ColumnConstraints hgrow="SOMETIMES" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="-Infinity" minHeight="30.0" vgrow="NEVER" />
</rowConstraints>
<children>
<Button fx:id="buttonBack" mnemonicParsing="false" onAction="#onButtonBack" prefHeight="75.0" prefWidth="100.0" text="&lt;- Back" textAlignment="CENTER">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<HBox fx:id="headerBox" alignment="CENTER" prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="1" />
<Button fx:id="buttonHelp" alignment="CENTER" mnemonicParsing="false" onAction="#onButtonHelp" prefHeight="75.0" prefWidth="100.0" text="Help" GridPane.columnIndex="2">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
</children>
</GridPane>
</children>
</AnchorPane>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Accordion?>
<Accordion fx:id="accordion" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" />
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?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.text.Font?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<GridPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="632.0" prefWidth="969.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="80.0" minHeight="10.0" prefHeight="74.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="5.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="1.7976931348623157E308" minHeight="10.0" prefHeight="552.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<AnchorPane fx:id="containerAnchorPane" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="2" />
<AnchorPane>
<children>
<GridPane layoutX="10.0" layoutY="10.0" prefHeight="67.0" prefWidth="967.0" AnchorPane.bottomAnchor="2.0" AnchorPane.leftAnchor="2.0" AnchorPane.rightAnchor="2.0" AnchorPane.topAnchor="2.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" />
<ColumnConstraints hgrow="SOMETIMES" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="-Infinity" minWidth="10.0" />