javafx.scene.control.SplitPane Java Examples

The following examples show how to use javafx.scene.control.SplitPane. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ErlyBerly.java    From erlyberly with GNU General Public License v3.0 6 votes vote down vote up
public void sizeSplitPanes(SplitPane splitpane) {
    assert splitpane.getScene() != null;
    assert splitpane.getScene().getWidth() > 0.0d;
    try {
        double configuredProcessesWidth = configuredProcessesWidth();
        double sceneWidth = splitpane.getScene().getWidth();
        double percent = (configuredProcessesWidth / sceneWidth);
        // the split pane divider position can only be set as a percentage of the split pane
        splitpane.setDividerPosition(0, percent);
        splitpane.setDividerPosition(1, 1D - percent);
    }
    catch (NumberFormatException e) {
        e.printStackTrace();
    }
    // whenever the width of the pane changes, write it to configuration
    // this is buffered so rapid writes do not cause rapid writes to disk
    entopPane.widthProperty().addListener((o, ov, nv) -> {
        PrefBind.set("processesWidth", nv);
    });
}
 
Example #2
Source File: DeferredHtmlRendering.java    From ReactFX with BSD 2-Clause "Simplified" License 6 votes vote down vote up
@Override
public void start(Stage primaryStage) {
    TextArea textArea = new TextArea();
    WebView webView = new WebView();
    WebEngine engine = webView.getEngine();

    EventStreams.valuesOf(textArea.textProperty())
            .successionEnds(Duration.ofMillis(500))
            .subscribe(html -> engine.loadContent(html));

    SplitPane root = new SplitPane();
    root.getItems().addAll(textArea, webView);
    Scene scene = new Scene(root);
    primaryStage.setScene(scene);
    primaryStage.show();
}
 
Example #3
Source File: Tools.java    From logbook-kai with MIT License 6 votes vote down vote up
/**
 * SplitPaneの分割サイズを設定する
 * 
 * @param pane SplitPane
 * @param key SplitPaneのキー
 */
public static void setSplitWidth(SplitPane pane, String key) {
    Double position = AppConfig.get().getDividerPositionMap()
            .get(key);
    Iterator<Divider> ite = pane.getDividers()
            .iterator();
    if (ite.hasNext()) {
        Divider divider = ite.next();
        if (position != null) {
            divider.setPosition(position);
        }
        // 幅が変更された時に設定を保存する
        divider.positionProperty().addListener((ob, o, n) -> {
            AppConfig.get().getDividerPositionMap().put(key, n.doubleValue());
        });
    }
}
 
Example #4
Source File: HttpTrendController.java    From OEE-Designer with MIT License 6 votes vote down vote up
public SplitPane initializeTrend() throws Exception {
	if (trendChartController == null) {
		// Load the fxml file and create the anchor pane
		FXMLLoader loader = FXMLLoaderFactory.trendChartLoader();
		spTrendChart = (SplitPane) loader.getRoot();

		trendChartController = loader.getController();
		trendChartController.initialize(getApp());

		// data provider
		trendChartController.setProvider(this);

		setImages();
	}
	return spTrendChart;
}
 
Example #5
Source File: DatabaseTrendController.java    From OEE-Designer with MIT License 6 votes vote down vote up
public SplitPane initializeTrend() throws Exception {
	if (trendChartController == null) {
		// Load the fxml file and create the anchor pane
		FXMLLoader loader = FXMLLoaderFactory.trendChartLoader();
		spTrendChart = (SplitPane) loader.getRoot();

		trendChartController = loader.getController();
		trendChartController.initialize(getApp());

		// data provider
		trendChartController.setProvider(this);

		setImages();

		lbUser.setText(null);
	}
	return spTrendChart;
}
 
Example #6
Source File: CronTrendController.java    From OEE-Designer with MIT License 6 votes vote down vote up
public SplitPane initializeTrend() throws Exception {
	if (trendChartController == null) {
		// Load the fxml file and create the anchor pane
		FXMLLoader loader = FXMLLoaderFactory.trendChartLoader();
		spTrendChart = (SplitPane) loader.getRoot();

		trendChartController = loader.getController();
		trendChartController.initialize(getApp());

		// data provider
		trendChartController.setProvider(this);

		setImages();

		lbJob.setText(null);
	}
	return spTrendChart;
}
 
Example #7
Source File: FileTrendController.java    From OEE-Designer with MIT License 6 votes vote down vote up
public SplitPane initializeTrend() throws Exception {
	if (trendChartController == null) {
		// Load the fxml file and create the anchor pane
		FXMLLoader loader = FXMLLoaderFactory.trendChartLoader();
		spTrendChart = (SplitPane) loader.getRoot();

		trendChartController = loader.getController();
		trendChartController.initialize(getApp());

		// data provider
		trendChartController.setProvider(this);

		setImages();

		lbHost.setText(null);
	}
	return spTrendChart;
}
 
Example #8
Source File: BaseMessagingTrendController.java    From OEE-Designer with MIT License 6 votes vote down vote up
public SplitPane initializeTrend() throws Exception {
	if (trendChartController == null) {
		// Load the fxml file and create the anchor pane
		FXMLLoader loader = FXMLLoaderFactory.trendChartLoader();
		spTrendChart = (SplitPane) loader.getRoot();

		trendChartController = loader.getController();
		trendChartController.initialize(getApp());

		// data provider
		trendChartController.setProvider(this);

		setImages();

		lbBroker.setText(null);
	}
	return spTrendChart;
}
 
Example #9
Source File: SelectLyricsPanel.java    From Quelea with GNU General Public License v3.0 6 votes vote down vote up
/**
     * Create a new lyrics panel.
     * <p/>
     * @param containerPanel the container panel this panel is contained within.
     */
    public SelectLyricsPanel(LivePreviewPanel containerPanel) {
        lyricDrawer = new LyricDrawer();
        stageDrawer = new StageDrawer();
        splitPane = new SplitPane();
        splitPane.setOrientation(Orientation.VERTICAL);
        lyricsList = new SelectLyricsList();
        previewCanvas = new DisplayCanvas(false, false, false, this::updateCanvas, Priority.LOW);
        DisplayPreview preview = new DisplayPreview(previewCanvas);
        splitPane.getItems().add(lyricsList);
        splitPane.getItems().add(preview);
        setCenter(splitPane);
        registerDisplayCanvas(previewCanvas);
        lyricsList.getSelectionModel().selectedItemProperty().addListener((ov, t1, t2) -> {
            updateCanvas();
        });
        lyricsList.itemsProperty().addListener((ov, t1, t2) -> {
            updateCanvas();
        });
//        
    }
 
Example #10
Source File: MainApp.java    From fxgraph with Do What The F*ck You Want To Public License 6 votes vote down vote up
@Override
public void start(Stage primaryStage) {
	final SplitPane root = new SplitPane();

	Graph tree = new Graph();
	addTreeComponents(tree);
	root.getItems().add(tree.getCanvas());
	
	SequenceDiagram seqDiagram = new SequenceDiagram();
	addSequenceDiagramComponents(seqDiagram);
	root.getItems().add(seqDiagram.getCanvas());

	final Scene scene = new Scene(root, 1024, 768);
	scene.getStylesheets().add(getClass().getResource("/application.css").toExternalForm());

	primaryStage.setScene(scene);
	primaryStage.show();
}
 
Example #11
Source File: FxSchema.java    From FxDock with Apache License 2.0 6 votes vote down vote up
private static void restoreSplitPane(String prefix, SplitPane sp)
{
	String k = prefix + SFX_DIVIDERS;
	SStream s = GlobalSettings.getStream(k);
	
	// must run later because of FX split pane inability to set divider positions exactly
	FX.later(() ->
	{
		int ct = s.nextInt();
		if(sp.getDividers().size() == ct)
		{
			for(int i=0; i<ct; i++)
			{
				double div = s.nextDouble();
				sp.setDividerPosition(i, div);
			}
		}
	});
}
 
Example #12
Source File: JavaFXSplitPaneElementTest.java    From marathonv5 with Apache License 2.0 6 votes vote down vote up
@Test
public void select() {
    SplitPane splitPaneNode = (SplitPane) getPrimaryStage().getScene().getRoot().lookup(".split-pane");
    JSONArray initialValue = new JSONArray(splitPaneNode.getDividerPositions());
    Platform.runLater(() -> {
        splitPane.marathon_select("[0.6]");
    });
    new Wait("Waiting for split pane to set divider location") {
        @Override
        public boolean until() {
            return initialValue.getDouble(0) != new JSONArray(splitPaneNode.getDividerPositions()).getDouble(0);
        }
    };
    JSONArray pa = new JSONArray(splitPaneNode.getDividerPositions());
    AssertJUnit.assertEquals(0.6, pa.getDouble(0), 0.2);
}
 
Example #13
Source File: JavaFXSplitPaneElementTest.java    From marathonv5 with Apache License 2.0 6 votes vote down vote up
@Test
public void select2() {
    SplitPane splitPaneNode = (SplitPane) getPrimaryStage().getScene().getRoot().lookup(".split-pane");
    JSONArray initialValue = new JSONArray(splitPaneNode.getDividerPositions());
    Platform.runLater(() -> {
        splitPane.marathon_select("[0.30158730158730157,0.8]");
    });
    new Wait("Waiting for split pane to set divider location") {
        @Override
        public boolean until() {
            return initialValue.getDouble(1) != new JSONArray(splitPaneNode.getDividerPositions()).getDouble(1);
        }
    };
    JSONArray pa = new JSONArray(splitPaneNode.getDividerPositions());
    AssertJUnit.assertEquals(0.8, pa.getDouble(1), 0.1);
}
 
Example #14
Source File: RFXSplitPaneTest.java    From marathonv5 with Apache License 2.0 6 votes vote down vote up
@Test
public void getText() {
    SplitPane splitPane = (SplitPane) getPrimaryStage().getScene().getRoot().lookup(".split-pane");
    LoggingRecorder lr = new LoggingRecorder();
    List<String> text = new ArrayList<>();
    Platform.runLater(() -> {
        RFXSplitPane rfxSplitPane = new RFXSplitPane(splitPane, null, null, lr);
        splitPane.setDividerPosition(0, 0.6);
        rfxSplitPane.mouseReleased(null);
        text.add(rfxSplitPane.getAttribute("text"));
    });
    new Wait("Waiting for split pane text.") {
        @Override
        public boolean until() {
            return text.size() > 0;
        }
    };
    AssertJUnit.assertEquals("[0.6,0.6008064516129032]", text.get(0));
}
 
Example #15
Source File: OrsonChartsFXDemo.java    From jfree-fxdemos with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
private SplitPane createChartPane() {
    CategoryDataset3D dataset = SampleData.createCompanyRevenueDataset();
    Chart3D chart = AreaChart3DFXDemo1.createChart(dataset);
    Chart3DViewer viewer = new Chart3DViewer(chart);
  
    this.splitter = new SplitPane();
    splitter.setOrientation(Orientation.VERTICAL);
    final BorderPane borderPane = new BorderPane();
    borderPane.setCenter(viewer);
    
   // Bind canvas size to stack pane size.
    viewer.prefWidthProperty().bind(borderPane.widthProperty());
    viewer.prefHeightProperty().bind(borderPane.heightProperty());

    final StackPane sp2 = new StackPane();
    
    this.chartDescription = new WebView();
    WebEngine webEngine = chartDescription.getEngine();
    webEngine.load(AreaChart3DFXDemo1.class.getResource("AreaChart3DFXDemo1.html").toString());
    
    sp2.getChildren().add(chartDescription);  
    splitter.getItems().addAll(borderPane, sp2);
    splitter.setDividerPositions(0.70f, 0.30f);
    return splitter;
}
 
Example #16
Source File: FxSchema.java    From FxDock with Apache License 2.0 5 votes vote down vote up
public static void restoreNode(String windowPrefix, Node root, Node n)
{
	// TODO skip property
			
	String name = getFullName(windowPrefix, root, n);
	if(name == null)
	{
		return;
	}
	
	if(n instanceof SplitPane)
	{
		restoreSplitPane(name, (SplitPane)n);
	}
	else if(n instanceof TableView)
	{
		restoreTableView(name, (TableView)n);
	}
	
	if(n instanceof Parent)
	{
		for(Node ch: ((Parent)n).getChildrenUnmodifiable())
		{
			restoreNode(windowPrefix, root, ch);
		}
	}
	
	LocalSettings s = LocalSettings.find(n);
	if(s != null)
	{
		restoreLocalSettings(name, s);
	}
	
	Runnable r = getOnSettingsLoaded(n);
	if(r != null)
	{
		r.run();
	}
}
 
Example #17
Source File: TracesTab.java    From phoebus with Eclipse Public License 1.0 5 votes vote down vote up
TracesTab(final Model model, final UndoableActionManager undo)
{
    super(Messages.TracesTab);
    this.model = model;
    this.undo = undo;

    // Top: Traces
    createTraceTable();

    // Bottom: Archives for selected trace
    createArchivesTable();
    createDetailSection();

    archives_table.setVisible(false);
    formula_pane.setVisible(false);

    final StackPane details = new StackPane(lower_placeholder, archives_table, formula_pane);

    trace_table.setPlaceholder(new Label(Messages.TraceTableEmpty));
    final SplitPane top_bottom = new SplitPane(trace_table, details);
    top_bottom.setOrientation(Orientation.VERTICAL);
    Platform.runLater(() -> top_bottom.setDividerPositions(0.7));

    setContent(top_bottom);

    createContextMenu();

    model.addListener(model_listener);
    updateFromModel();

    trace_table.getSelectionModel().getSelectedItems().addListener(selection_changed);
}
 
Example #18
Source File: AlarmTableUI.java    From phoebus with Eclipse Public License 1.0 5 votes vote down vote up
public AlarmTableUI(final AlarmClient client)
{
    this.client = client;

    toolbar = createToolbar();

    // When user resizes columns, update them in the 'other' table
    active.setColumnResizePolicy(new LinkedColumnResize(active, acknowledged));
    acknowledged.setColumnResizePolicy(new LinkedColumnResize(acknowledged, active));

    // When user sorts column, apply the same to the 'other' table
    active.getSortOrder().addListener(new LinkedColumnSorter(active, acknowledged));
    acknowledged.getSortOrder().addListener(new LinkedColumnSorter(acknowledged, active));

    // Insets make ack. count appear similar to the active count,
    // which is laid out based on the ack/unack/search buttons in the toolbar
    acknowledged_count.setPadding(new Insets(10, 0, 10, 5));
    VBox.setVgrow(acknowledged, Priority.ALWAYS);
    final VBox bottom = new VBox(acknowledged_count, acknowledged);

    // Overall layout:
    // Toolbar
    // Top section of split: Active alarms
    // Bottom section o. s.: Ack'ed alarms
    split = new SplitPane(active, bottom);
    split.setOrientation(Orientation.VERTICAL);

    setTop(toolbar);
    setCenter(split);
}
 
Example #19
Source File: ParsedViewerPane.java    From classpy with MIT License 5 votes vote down vote up
private SplitPane buildSplitPane() {
    SplitPane sp = new SplitPane();
    sp.getItems().add(tree);
    sp.getItems().add(hexPane);
    sp.setDividerPositions(0.3, 0.7);
    return sp;
}
 
Example #20
Source File: SplitPaneSample.java    From marathonv5 with Apache License 2.0 5 votes vote down vote up
public SplitPaneSample() {
    SplitPane sp = new SplitPane();
    sp.setPrefSize(250, 250);

    StackPane sp1 = new StackPane();
    sp1.getChildren().add(new Button("Button One"));
    final StackPane sp2 = new StackPane();
    sp2.getChildren().add(new Button("Button Two"));
    final StackPane sp3 = new StackPane();
    sp3.getChildren().add(new Button("Button Three"));
    sp.getItems().addAll(sp1, sp2, sp3);
    sp.setDividerPositions(0.3f, 0.6f, 0.9f);
    getChildren().add(sp);
}
 
Example #21
Source File: PluginManagerPane.java    From Recaf with MIT License 5 votes vote down vote up
private void setup() {
	list.setCellFactory(cb -> new PluginCell());
	list.getSelectionModel().selectedItemProperty().addListener((ob, o, n) -> {
		view.setCenter(createPluginView(n == null ? o : n));
	});
	list.setItems(FXCollections.observableArrayList(PluginsManager.getInstance().plugins().values()));
	view.getStyleClass().add("plugin-view");
	SplitPane split = new SplitPane(list, view);
	SplitPane.setResizableWithParent(list, Boolean.FALSE);
	split.setDividerPositions(0.37);
	setCenter(split);
}
 
Example #22
Source File: FxSchema.java    From FxDock with Apache License 2.0 5 votes vote down vote up
private static void storeSplitPane(String prefix, SplitPane sp)
{
	SStream s = new SStream();
	s.add(sp.getDividers().size());
	s.addAll(sp.getDividerPositions());
	
	String k = prefix + SFX_DIVIDERS;
	GlobalSettings.setStream(k, s);
}
 
Example #23
Source File: Advanced3DFileEditorWithSplitRightTool.java    From jmonkeybuilder with Apache License 2.0 5 votes vote down vote up
/**
 * Build split component.
 *
 * @param first the first component.
 * @param second the second component.
 * @param root the root.
 * @return the result component.
 */
@FxThread
protected Region buildSplitComponent(@NotNull final Node first, @NotNull final Node second,
                                     @NotNull final StackPane root) {

    final SplitPane splitPane = new SplitPane(first, second);
    splitPane.prefHeightProperty().bind(root.heightProperty());
    splitPane.prefWidthProperty().bind(root.widthProperty());

    root.heightProperty().addListener((observableValue, oldValue, newValue) -> calcVSplitSize(splitPane));

    FXUtils.addClassTo(splitPane, CssClasses.FILE_EDITOR_TOOL_SPLIT_PANE);

    return splitPane;
}
 
Example #24
Source File: JavaFXSplitPaneElement.java    From marathonv5 with Apache License 2.0 5 votes vote down vote up
@Override
public boolean marathon_select(String value) {
    SplitPane splitPane = (SplitPane) getComponent();
    JSONArray locations = new JSONArray(value);
    double[] dividerLocations = new double[locations.length()];
    for (int i = 0; i < locations.length(); i++) {
        dividerLocations[i] = locations.getDouble(i);
    }
    splitPane.setDividerPositions(dividerLocations);
    return true;
}
 
Example #25
Source File: JavaFXElementFactory.java    From marathonv5 with Apache License 2.0 5 votes vote down vote up
public static void reset() {
    add(Node.class, JavaFXElement.class);
    add(TextInputControl.class, JavaFXTextInputControlElement.class);
    add(HTMLEditor.class, JavaFXHTMLEditor.class);
    add(CheckBox.class, JavaFXCheckBoxElement.class);
    add(ToggleButton.class, JavaFXToggleButtonElement.class);
    add(Slider.class, JavaFXSliderElement.class);
    add(Spinner.class, JavaFXSpinnerElement.class);
    add(SplitPane.class, JavaFXSplitPaneElement.class);
    add(ProgressBar.class, JavaFXProgressBarElement.class);
    add(ChoiceBox.class, JavaFXChoiceBoxElement.class);
    add(ColorPicker.class, JavaFXColorPickerElement.class);
    add(ComboBox.class, JavaFXComboBoxElement.class);
    add(DatePicker.class, JavaFXDatePickerElement.class);
    add(TabPane.class, JavaFXTabPaneElement.class);
    add(ListView.class, JavaFXListViewElement.class);
    add(TreeView.class, JavaFXTreeViewElement.class);
    add(TableView.class, JavaFXTableViewElement.class);
    add(TreeTableView.class, JavaFXTreeTableViewElement.class);
    add(CheckBoxListCell.class, JavaFXCheckBoxListCellElement.class);
    add(ChoiceBoxListCell.class, JavaFXChoiceBoxCellElement.class);
    add(ComboBoxListCell.class, JavaFXComboBoxCellElement.class);
    add(CheckBoxTreeCell.class, JavaFXCheckBoxTreeCellElement.class);
    add(ChoiceBoxTreeCell.class, JavaFXChoiceBoxCellElement.class);
    add(ComboBoxTreeCell.class, JavaFXComboBoxCellElement.class);
    add(TableCell.class, JavaFXTableViewCellElement.class);
    add(CheckBoxTableCell.class, JavaFXCheckBoxTableCellElement.class);
    add(ChoiceBoxTableCell.class, JavaFXChoiceBoxCellElement.class);
    add(ComboBoxTableCell.class, JavaFXComboBoxCellElement.class);
    add(TreeTableCell.class, JavaFXTreeTableCellElement.class);
    add(CheckBoxTreeTableCell.class, JavaFXCheckBoxTreeTableCell.class);
    add(ChoiceBoxTreeTableCell.class, JavaFXChoiceBoxCellElement.class);
    add(ComboBoxTreeTableCell.class, JavaFXComboBoxCellElement.class);
    add(WebView.class, JavaFXWebViewElement.class);
    add(GenericStyledArea.GENERIC_STYLED_AREA_CLASS, RichTextFXGenericStyledAreaElement.class);
}
 
Example #26
Source File: FeatureOverviewWindow.java    From mzmine3 with GNU General Public License v2.0 5 votes vote down vote up
private SplitPane addTicPlot(PeakListRow row) {
  SplitPane pane = new SplitPane();
  pane.setOrientation(Orientation.HORIZONTAL);
  // labels for TIC visualizer
  Map<Feature, String> labelsMap = new HashMap<Feature, String>(0);

  // scan selection
  ScanSelection scanSelection = new ScanSelection(rawFiles[0].getDataRTRange(1), 1);

  // mz range
  Range<Double> mzRange = null;
  mzRange = feature.getRawDataPointsMZRange();
  // optimize output by extending the range
  double upper = mzRange.upperEndpoint();
  double lower = mzRange.lowerEndpoint();
  double fiveppm = (upper * 5E-6);
  mzRange = Range.closed(lower - fiveppm, upper + fiveppm);

  // labels
  labelsMap.put(feature, feature.toString());

  List<Feature> featureSelection = Arrays.asList(row.getPeaks());

  TICVisualizerWindow window = new TICVisualizerWindow(rawFiles, // raw
      TICPlotType.BASEPEAK, // plot type
      scanSelection, // scan selection
      mzRange, // mz range
      featureSelection, // selected features
      labelsMap); // labels

  pane.getItems().add(window.getScene().getRoot());
  return pane;
}
 
Example #27
Source File: TestRunner.java    From marathonv5 with Apache License 2.0 5 votes vote down vote up
private Node getPane() {
    SplitPane splitPane = new SplitPane();
    splitPane.setOrientation(Orientation.VERTICAL);
    initTopPane();
    failureStackView = new FailureDetailView();
    splitPane.getItems().addAll(topPane, failureStackView);
    return splitPane;
}
 
Example #28
Source File: HiddenSplitPaneSample.java    From marathonv5 with Apache License 2.0 5 votes vote down vote up
public HiddenSplitPaneSample() {
    String hidingSplitPaneCss = HiddenSplitPaneSample.class.getResource("HiddenSplitPane.css").toExternalForm();
    final SplitPane splitPane = SplitPaneBuilder.create().id("hiddenSplitter").items(
            RegionBuilder.create().styleClass("rounded").build(),
            RegionBuilder.create().styleClass("rounded").build(),
            RegionBuilder.create().styleClass("rounded").build()).dividerPositions(new double[]{0.33, 0.66}).build();
    splitPane.getStylesheets().add(hidingSplitPaneCss);
    getChildren().add(splitPane);
}
 
Example #29
Source File: BaseFileEditorWithSplitRightTool.java    From jmonkeybuilder with Apache License 2.0 5 votes vote down vote up
/**
 * Build split component.
 *
 * @param first the first component.
 * @param second the second component.
 * @param root the root.
 * @return the result component.
 */
@FxThread
protected Region buildSplitComponent(@NotNull final Node first, @NotNull final Node second,
                                     @NotNull final StackPane root) {

    final SplitPane splitPane = new SplitPane(first, second);
    splitPane.prefHeightProperty().bind(root.heightProperty());
    splitPane.prefWidthProperty().bind(root.widthProperty());

    root.heightProperty().addListener((observableValue, oldValue, newValue) -> calcVSplitSize(splitPane));

    FXUtils.addClassTo(splitPane, CssClasses.FILE_EDITOR_TOOL_SPLIT_PANE);

    return splitPane;
}
 
Example #30
Source File: BytecodeStackHelper.java    From Recaf with MIT License 5 votes vote down vote up
/**
 * @param parent
 * 		Bytecode panel parent, contains bytecode being analyzed.
 */
public BytecodeStackHelper(BytecodeEditorPane parent) {
	this.parent = parent;
	getStyleClass().add("monospaced");
	getItems().addAll(locals, stack);
	setDividerPositions(0.5);
	SplitPane.setResizableWithParent(locals, Boolean.FALSE);
	locals.setCellFactory(c -> new ValueCell(true));
	stack.setCellFactory(c -> new ValueCell(false));
}