Java Code Examples for javafx.scene.control.Label#setTooltip()

The following examples show how to use javafx.scene.control.Label#setTooltip() . 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: PickerLabel.java    From HubTurbo with GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public Node getNode() {
    // actual name for labels at the top, add tick for selected labels
    Label label = new Label((canDisplayFullName ? getFullName() : getShortName()));
    setLabelStyle(label);
    label.setText(label.getText() + (!canDisplayFullName && isSelected ? " ✓" : ""));

    FontLoader fontLoader = Toolkit.getToolkit().getFontLoader();
    double width = fontLoader.computeStringWidth(label.getText(), label.getFont());
    label.setPrefWidth(width + 30);

    if (isInGroup()) {
        Tooltip groupTooltip = new Tooltip(getGroupName());
        label.setTooltip(groupTooltip);
    }

    setupEvents(label);
    return label;
}
 
Example 2
Source File: NodeDetailPaneController.java    From pmd-designer with BSD 2-Clause "Simplified" License 6 votes vote down vote up
@Override
protected void beforeParentInit() {
    additionalInfoListView.setPlaceholder(new Label("No additional info"));

    Val<Node> currentSelection = initNodeSelectionHandling(getDesignerRoot(), EventStreams.never(), false);

    // pin to see updates
    currentSelection.pin();

    hideCommonAttributesProperty()
        .values()
        .distinct()
        .subscribe(show -> setFocusNode(currentSelection.getValue(), new DataHolder()));


    attrValueColumn.setCellValueFactory(param -> Val.constant(DesignerUtil.attrToXpathString(param.getValue())));
    attrNameColumn.setCellValueFactory(param -> Val.constant("@" + param.getValue().getName()));
    attrNameColumn.setCellFactory(col -> new AttributeNameTableCell());

    Label valueColGraphic = new Label("Value");
    valueColGraphic.setTooltip(new Tooltip("This is the XPath 2.0 representation"));
    attrValueColumn.setGraphic(valueColGraphic);
}
 
Example 3
Source File: DataSetMeasurements.java    From chart-fx with Apache License 2.0 6 votes vote down vote up
protected void addGraphBelowItems() {
    final String toolTip = "whether to draw the new DataSet below (checked) or above (un-checked) the existing DataSets";
    final Label label = new Label("draw below: ");
    label.setTooltip(new Tooltip(toolTip));
    GridPane.setConstraints(label, 0, lastLayoutRow);
    graphBelowOtherDataSets.setSelected(false);
    graphBelowOtherDataSets.setTooltip(new Tooltip(toolTip));
    GridPane.setConstraints(graphBelowOtherDataSets, 1, lastLayoutRow++);

    graphBelowOtherDataSets.selectedProperty().addListener((obs, o, n) -> {
        final Chart chart = localChart.get();
        if (chart == null) {
            return;
        }
        chart.getRenderers().remove(renderer);
        if (Boolean.TRUE.equals(n)) {
            chart.getRenderers().add(0, renderer);
        } else {
            chart.getRenderers().add(renderer);
        }
    });

    this.getDialogContentBox().getChildren().addAll(label, graphBelowOtherDataSets);
}
 
Example 4
Source File: SnapshotTable.java    From phoebus with Eclipse Public License 1.0 6 votes vote down vote up
private void setup(String text, String tooltip, int minWidth, int prefWidth, boolean resizable) {
            label = new Label(text);
            label.setTooltip(new Tooltip(tooltip));
            label.setTextAlignment(TextAlignment.CENTER);
            setGraphic(label);

            if (minWidth != -1) {
                setMinWidth(minWidth);
            }
            if (prefWidth != -1) {
                setPrefWidth(prefWidth);
            }
            setResizable(resizable);
//            setOnEditStart(e -> controller.suspend());
//            setOnEditCancel(e -> controller.resume());
//            setOnEditCommit(e -> controller.resume());
            this.text = text;
        }
 
Example 5
Source File: SnapshotTreeTable.java    From phoebus with Eclipse Public License 1.0 6 votes vote down vote up
private void setup(String text, String tooltip, int minWidth, int prefWidth, boolean resizable) {
            label = new Label(text);
            label.setTooltip(new Tooltip(tooltip));
            label.setTextAlignment(TextAlignment.CENTER);
            setGraphic(label);

            if (minWidth != -1) {
                setMinWidth(minWidth);
            }
            if (prefWidth != -1) {
                setPrefWidth(prefWidth);
            }
            setResizable(resizable);
//            setOnEditStart(e -> controller.suspend());
//            setOnEditCancel(e -> controller.resume());
//            setOnEditCommit(e -> controller.resume());
            this.text = text;
        }
 
Example 6
Source File: StatusBar.java    From scenic-view with GNU General Public License v3.0 5 votes vote down vote up
private Label createLabel(final String value, final Tooltip tooltip) {
    final Label label = new Label(value);
    label.getStyleClass().add("value-name");
    if (tooltip != null) {
        label.setTooltip(tooltip);
    }
    return label;
}
 
Example 7
Source File: TxIdTextField.java    From bisq with GNU Affero General Public License v3.0 5 votes vote down vote up
public TxIdTextField() {
    txConfidenceIndicator = new TxConfidenceIndicator();
    txConfidenceIndicator.setFocusTraversable(false);
    txConfidenceIndicator.setMaxSize(20, 20);
    txConfidenceIndicator.setId("funds-confidence");
    txConfidenceIndicator.setLayoutY(1);
    txConfidenceIndicator.setProgress(0);
    txConfidenceIndicator.setVisible(false);
    AnchorPane.setRightAnchor(txConfidenceIndicator, 0.0);
    AnchorPane.setTopAnchor(txConfidenceIndicator, 3.0);
    progressIndicatorTooltip = new Tooltip("-");
    txConfidenceIndicator.setTooltip(progressIndicatorTooltip);

    copyIcon = new Label();
    copyIcon.setLayoutY(3);
    copyIcon.getStyleClass().addAll("icon", "highlight");
    copyIcon.setTooltip(new Tooltip(Res.get("txIdTextField.copyIcon.tooltip")));
    AwesomeDude.setIcon(copyIcon, AwesomeIcon.COPY);
    AnchorPane.setRightAnchor(copyIcon, 30.0);

    Tooltip tooltip = new Tooltip(Res.get("txIdTextField.blockExplorerIcon.tooltip"));

    blockExplorerIcon = new Label();
    blockExplorerIcon.getStyleClass().addAll("icon", "highlight");
    blockExplorerIcon.setTooltip(tooltip);
    AwesomeDude.setIcon(blockExplorerIcon, AwesomeIcon.EXTERNAL_LINK);
    blockExplorerIcon.setMinWidth(20);
    AnchorPane.setRightAnchor(blockExplorerIcon, 52.0);
    AnchorPane.setTopAnchor(blockExplorerIcon, 4.0);

    textField = new JFXTextField();
    textField.setId("address-text-field");
    textField.setEditable(false);
    textField.setTooltip(tooltip);
    AnchorPane.setRightAnchor(textField, 80.0);
    AnchorPane.setLeftAnchor(textField, 0.0);
    textField.focusTraversableProperty().set(focusTraversableProperty().get());
    getChildren().addAll(textField, copyIcon, blockExplorerIcon, txConfidenceIndicator);
}
 
Example 8
Source File: TextFieldWithCopyIcon.java    From bisq with GNU Affero General Public License v3.0 5 votes vote down vote up
public TextFieldWithCopyIcon(String customStyleClass) {
    Label copyIcon = new Label();
    copyIcon.setLayoutY(3);
    copyIcon.getStyleClass().addAll("icon", "highlight");
    copyIcon.setTooltip(new Tooltip(Res.get("shared.copyToClipboard")));
    AwesomeDude.setIcon(copyIcon, AwesomeIcon.COPY);
    copyIcon.setOnMouseClicked(e -> {
        String text = getText();
        if (text != null && text.length() > 0) {
            String copyText;
            if (copyWithoutCurrencyPostFix) {
                String[] strings = text.split(" ");
                if (strings.length > 1)
                    copyText = strings[0]; // exclude the BTC postfix
                else
                    copyText = text;
            } else {
                copyText = text;
            }
            Utilities.copyToClipboard(copyText);
        }
    });
    textField = new JFXTextField();
    textField.setEditable(false);
    if (customStyleClass != null) textField.getStyleClass().add(customStyleClass);
    textField.textProperty().bindBidirectional(text);
    AnchorPane.setRightAnchor(copyIcon, 5.0);
    AnchorPane.setRightAnchor(textField, 30.0);
    AnchorPane.setLeftAnchor(textField, 0.0);
    textField.focusTraversableProperty().set(focusTraversableProperty().get());
    //TODO app wide focus
    //focusedProperty().addListener((ov, oldValue, newValue) -> textField.requestFocus());

    getChildren().addAll(textField, copyIcon);
}
 
Example 9
Source File: MainView.java    From bisq with GNU Affero General Public License v3.0 5 votes vote down vote up
private void updateMarketPriceLabel(Label label) {
    if (model.getIsPriceAvailable().get()) {
        if (model.getIsExternallyProvidedPrice().get()) {
            label.setText(Res.get("mainView.marketPriceWithProvider.label", getPriceProvider()));
            label.setTooltip(new Tooltip(getPriceProviderTooltipString()));
        } else {
            label.setText(Res.get("mainView.marketPrice.bisqInternalPrice"));
            final Tooltip tooltip = new Tooltip(Res.get("mainView.marketPrice.tooltip.bisqInternalPrice"));
            label.setTooltip(tooltip);
        }
    } else {
        label.setText("");
        label.setTooltip(null);
    }
}
 
Example 10
Source File: DataSetMeasurements.java    From chart-fx with Apache License 2.0 5 votes vote down vote up
protected void addParameterValueEditorItems() {
    if (measType.getControlParameterNames().isEmpty()) {
        return;
    }
    final String toolTip = "math function parameter - usually in units of the x-axis";
    for (String controlParameter : measType.getControlParameterNames()) {
        final Label label = new Label(controlParameter + ": "); // NOPMD - done only once
        final CheckedNumberTextField parameterField = new CheckedNumberTextField(1.0); // NOPMD - done only once
        label.setTooltip(new Tooltip(toolTip)); // NOPMD - done only once
        GridPane.setConstraints(label, 0, lastLayoutRow);
        parameterField.setTooltip(new Tooltip(toolTip)); // NOPMD - done only once
        GridPane.setConstraints(parameterField, 1, lastLayoutRow++);

        this.parameterFields.add(parameterField);
        this.getDialogContentBox().getChildren().addAll(label, parameterField);
    }
    switch (measType) {
    case TRENDING_SECONDS:
    case TRENDING_TIMEOFDAY_UTC:
    case TRENDING_TIMEOFDAY_LOCAL:
        parameterFields.get(0).setText("600.0");
        parameterFields.get(1).setText("10000");
        Button resetButton = new Button("reset history");
        resetButton.setTooltip(new Tooltip("press to reset trending history"));
        resetButton.setOnAction(evt -> this.trendingDataSet.reset());
        GridPane.setConstraints(resetButton, 1, lastLayoutRow++);
        this.getDialogContentBox().getChildren().addAll(resetButton);
        break;
    default:
        break;
    }
}
 
Example 11
Source File: SpectralMatchPanelFX.java    From mzmine3 with GNU General Public License v2.0 5 votes vote down vote up
private GridPane createTitlePane() {
  pnTitle = new GridPane();
  pnTitle.setAlignment(Pos.CENTER);

  // create Top panel
  double simScore = hit.getSimilarity().getScore();
  Color gradientCol = FxColorUtil.awtColorToFX(ColorScaleUtil
      .getColor(FxColorUtil.fxColorToAWT(MIN_COS_COLOR), FxColorUtil.fxColorToAWT(MAX_COS_COLOR),
          MIN_COS_COLOR_VALUE, MAX_COS_COLOR_VALUE, simScore));
  pnTitle.setBackground(
      new Background(new BackgroundFill(gradientCol, CornerRadii.EMPTY, Insets.EMPTY)));

  lblHit = new Label(hit.getName());
  lblHit.getStyleClass().add("white-larger-label");

  lblScore = new Label(COS_FORM.format(simScore));
  lblScore.getStyleClass().add("white-score-label");
  lblScore
      .setTooltip(new Tooltip("Cosine similarity of raw data scan (top, blue) and database scan: "
          + COS_FORM.format(simScore)));

  pnTitle.add(lblHit, 0, 0);
  pnTitle.add(lblScore, 1, 0);
  ColumnConstraints ccTitle0 = new ColumnConstraints(150, -1, -1, Priority.ALWAYS, HPos.LEFT,
      true);
  ColumnConstraints ccTitle1 = new ColumnConstraints(150, 150, 150, Priority.NEVER, HPos.LEFT,
      false);
  pnTitle.getColumnConstraints().add(0, ccTitle0);
  pnTitle.getColumnConstraints().add(1, ccTitle1);

  return pnTitle;
}
 
Example 12
Source File: NodeEditionCodeArea.java    From pmd-designer with BSD 2-Clause "Simplified" License 5 votes vote down vote up
@NonNull
public Label buildExpectedLabel(IntFunction<Val<Integer>> numViolationsPerLine, int idx) {
    Label foo = new Label();
    foo.getStyleClass().addAll("num-violations-gutter-label");
    Val<Integer> num = numViolationsPerLine.apply(idx + 1);
    foo.textProperty().bind(num.map(Object::toString));
    foo.setTooltip(new Tooltip("Number of violations expected on this line"));
    foo.visibleProperty().bind(num.map(it -> it > 0));
    return foo;
}
 
Example 13
Source File: CObjectArrayField.java    From Open-Lowcode with Eclipse Public License 2.0 4 votes vote down vote up
@Override
public Node getNode(
		PageActionManager actionmanager,
		CPageData inputdata,
		Window parentwindow,
		TabPane[] parenttabpanes,
		CollapsibleNode nodetocollapsewhenactiontriggered) {
	logger.fine("built node CObjectArrayField " + this.name);
	this.actionmanager = actionmanager;
	if (this.inlinefeeding) {
		inputdata.addInlineActionDataRef(this.feedinginlineactionoutputdata);

	}
	this.tooltip = new Tooltip("click to open object\nShift+click to unlink object.");
	HBox thispane = new HBox();

	if (label != null)
		if (label.length() > 0) {
			Label thislabel = new Label(label);
			if (helper != null)
				if (helper.length() > 0)
					thislabel.setTooltip(new Tooltip(helper));
			thislabel.setFont(
					Font.font(thislabel.getFont().getName(), FontPosture.ITALIC, thislabel.getFont().getSize()));
			thislabel.setMinWidth(120);
			thislabel.setWrapText(true);
			thislabel.setMaxWidth(120);
			thispane.getChildren().add(thislabel);
		}

	datapane = new FlowPane();
	boolean nolabel = true;
	if (label != null)
		if (label.length() > 0) {
			FlowPane flowdatapane = new FlowPane();
			thispane.setAlignment(Pos.TOP_LEFT);
			flowdatapane.setPrefWrapLength(400);
			// for object workflow tasks.
			flowdatapane.setVgap(4);
			flowdatapane.setHgap(8);
			this.datapane = flowdatapane;
			nolabel = false;
		}

	if (nolabel) {
		HBox boxdatapane = new HBox();
		thispane.setAlignment(Pos.CENTER_LEFT);
		boxdatapane.setAlignment(Pos.CENTER_LEFT);
		this.datapane = boxdatapane;
	}

	// this is to keep the widget tiny when used as right of title

	thiselementarray = getExternalContent(inputdata, datareference);
	if (objectatendoffielddata != null)
		dataatendoffielddata = objectatendoffielddata.getNode(actionmanager, inputdata, parentwindow,
				parenttabpanes,nodetocollapsewhenactiontriggered);
	refreshDisplay();

	thispane.getChildren().add(datapane);

	return thispane;
}
 
Example 14
Source File: WaterfallPerformanceSample.java    From chart-fx with Apache License 2.0 4 votes vote down vote up
private ToolBar getContourToolBar(final XYChart chart, final ContourDataSetRenderer renderer) {
    ToolBar contourToolBar = new ToolBar();

    contourType.getItems().addAll(ContourType.values());
    contourType.setValue(renderer.getContourType());
    contourType.valueProperty().bindBidirectional(renderer.contourTypeProperty());
    contourType.valueProperty().addListener((ch, old, selection) -> chart.requestLayout());

    colorGradient.setValue(renderer.getColorGradient());
    colorGradient.valueProperty().bindBidirectional(renderer.colorGradientProperty());
    colorGradient.valueProperty().addListener((ch, old, selection) -> chart.requestLayout());

    nCountourLevelSlider.setShowTickLabels(true);
    nCountourLevelSlider.setShowTickMarks(true);
    nCountourLevelSlider.setMajorTickUnit(10);
    nCountourLevelSlider.setMinorTickCount(5);
    nCountourLevelSlider.setBlockIncrement(1);
    nCountourLevelSlider.setTooltip(new Tooltip("adjusts number of contour levels"));
    HBox.setHgrow(nCountourLevelSlider, Priority.ALWAYS);
    Label nContourLabel = new Label("n contours:");
    nContourLabel.setTooltip(new Tooltip("adjusts number of contour levels"));
    final HBox hBoxContourLevelSlider = new HBox(nContourLabel, nCountourLevelSlider);
    nCountourLevelSlider.valueProperty().bindBidirectional(renderer.quantisationLevelsProperty());
    nCountourLevelSlider.valueProperty().addListener((ch, o, n) -> chart.requestLayout());

    nSegmentSlider.setShowTickLabels(true);
    nSegmentSlider.setShowTickMarks(true);
    nSegmentSlider.setMajorTickUnit(200);
    nSegmentSlider.setMinorTickCount(50);
    nSegmentSlider.setBlockIncrement(10);
    HBox.setHgrow(nSegmentSlider, Priority.ALWAYS);
    final HBox hBoxSegmentSlider = new HBox(new Label("n segments :"), nSegmentSlider);
    nSegmentSlider.valueProperty().bindBidirectional(renderer.maxContourSegmentsProperty());
    nSegmentSlider.valueProperty().addListener((ch, o, n) -> chart.requestLayout());

    minHexSizeSlider.setShowTickLabels(true);
    minHexSizeSlider.setShowTickMarks(true);
    minHexSizeSlider.setMajorTickUnit(10);
    minHexSizeSlider.setMinorTickCount(10);
    minHexSizeSlider.setBlockIncrement(1);
    HBox.setHgrow(minHexSizeSlider, Priority.ALWAYS);
    final HBox hBoxHexSizeSlider = new HBox(new Label("HexSize :"), minHexSizeSlider);
    minHexSizeSlider.valueProperty().bindBidirectional(renderer.minHexTileSizeProperty());
    minHexSizeSlider.valueProperty().addListener((ch, o, n) -> chart.requestLayout());

    localRange.setSelected(renderer.computeLocalRange());
    localRange.setTooltip(new Tooltip("select for auto-adjusting the colour axis for the selected sub-range"));
    localRange.selectedProperty().bindBidirectional(renderer.computeLocalRangeProperty());
    localRange.selectedProperty().addListener((ch, old, selection) -> chart.requestLayout());

    final ToolBar standardCountourParameters = new ToolBar(contourType, colorGradient, hBoxContourLevelSlider,
            hBoxSegmentSlider, hBoxHexSizeSlider, localRange);

    dataReduction.setSelected(renderer.isReducePoints());
    dataReduction.selectedProperty().bindBidirectional(renderer.pointReductionProperty());
    dataReduction.selectedProperty().addListener((ch, old, selection) -> chart.requestLayout());

    ChangeListener<Integer> reductionListener = (ch, o, n) -> {
        renderer.setReductionFactorX(reductionFactorX.getValue());
        renderer.setReductionFactorY(reductionFactorY.getValue());
        chart.requestLayout();
    };

    reductionFactorX.getValueFactory().setValue(renderer.getReductionFactorX());
    reductionFactorY.getValueFactory().setValue(renderer.getReductionFactorY());
    reductionFactorX.setPrefWidth(80);
    reductionFactorY.setPrefWidth(80);
    reductionFactorX.valueProperty().addListener(reductionListener);
    reductionFactorY.valueProperty().addListener(reductionListener);
    HBox.setHgrow(reductionFactorX, Priority.ALWAYS);
    HBox.setHgrow(reductionFactorY, Priority.ALWAYS);

    final HBox hBoxReductionFactorSlider = new HBox(new Label("Min Data Pixel Size X:"), reductionFactorX,
            new Label(" Y:"), reductionFactorY);

    reductionType.getItems().addAll(ReductionType.values());
    reductionType.setValue(renderer.getReductionType());
    reductionType.valueProperty().bindBidirectional(renderer.reductionTypeProperty());
    reductionType.valueProperty().addListener((ch, old, selection) -> chart.requestLayout());

    smooth.setSelected(renderer.isSmooth());
    smooth.selectedProperty().bindBidirectional(renderer.smoothProperty());
    smooth.selectedProperty().addListener((ch, old, selection) -> chart.requestLayout());

    altImplementation.setSelected(renderer.isAltImplementation());
    altImplementation.selectedProperty().bindBidirectional(renderer.altImplementationProperty());
    altImplementation.selectedProperty().addListener((ch, old, selection) -> chart.requestLayout());

    parallelImplementation.setSelected(renderer.isParallelImplementation());
    parallelImplementation.selectedProperty().bindBidirectional(renderer.parallelImplementationProperty());
    parallelImplementation.selectedProperty().addListener((ch, old, selection) -> chart.requestLayout());

    final ToolBar newCountourParameters = new ToolBar(dataReduction, hBoxReductionFactorSlider, reductionType,
            smooth, altImplementation, parallelImplementation);

    contourToolBar.getItems().addAll(new VBox(standardCountourParameters, newCountourParameters));
    return contourToolBar;
}
 
Example 15
Source File: BsqAddressTextField.java    From bisq with GNU Affero General Public License v3.0 4 votes vote down vote up
public BsqAddressTextField() {
    TextField textField = new BisqTextField();
    textField.setId("address-text-field");
    textField.setEditable(false);
    textField.textProperty().bind(address);
    String tooltipText = Res.get("addressTextField.copyToClipboard");
    textField.setTooltip(new Tooltip(tooltipText));

    textField.setOnMousePressed(event -> wasPrimaryButtonDown = event.isPrimaryButtonDown());
    textField.setOnMouseReleased(event -> {
        if (wasPrimaryButtonDown && address.get() != null && address.get().length() > 0) {
            Utilities.copyToClipboard(address.get());
            Notification walletFundedNotification = new Notification()
                    .notification(Res.get("addressTextField.addressCopiedToClipboard"))
                    .hideCloseButton()
                    .autoClose();

            walletFundedNotification.show();
        }

        wasPrimaryButtonDown = false;
    });

    textField.focusTraversableProperty().set(focusTraversableProperty().get());
    //TODO app wide focus
    //focusedProperty().addListener((ov, oldValue, newValue) -> textField.requestFocus());


    Label copyIcon = new Label();
    copyIcon.setLayoutY(3);
    copyIcon.getStyleClass().addAll("icon", "highlight");
    copyIcon.setTooltip(new Tooltip(Res.get("addressTextField.copyToClipboard")));
    AwesomeDude.setIcon(copyIcon, AwesomeIcon.COPY);
    copyIcon.setOnMouseClicked(e -> GUIUtil.showFeeInfoBeforeExecute(() -> {
        if (address.get() != null && address.get().length() > 0)
            Utilities.copyToClipboard(address.get());
    }));

    AnchorPane.setRightAnchor(copyIcon, 5.0);
    AnchorPane.setRightAnchor(textField, 30.0);
    AnchorPane.setLeftAnchor(textField, 0.0);

    getChildren().addAll(textField, copyIcon);
}
 
Example 16
Source File: AddressTextField.java    From bisq with GNU Affero General Public License v3.0 4 votes vote down vote up
public AddressTextField(String label) {
    JFXTextField textField = new BisqTextField();
    textField.setId("address-text-field");
    textField.setEditable(false);
    textField.setLabelFloat(true);
    textField.setPromptText(label);

    textField.textProperty().bind(address);
    String tooltipText = Res.get("addressTextField.openWallet");
    textField.setTooltip(new Tooltip(tooltipText));

    textField.setOnMousePressed(event -> wasPrimaryButtonDown = event.isPrimaryButtonDown());
    textField.setOnMouseReleased(event -> {
        if (wasPrimaryButtonDown)
            GUIUtil.showFeeInfoBeforeExecute(AddressTextField.this::openWallet);

        wasPrimaryButtonDown = false;
    });

    textField.focusTraversableProperty().set(focusTraversableProperty().get());
    //TODO app wide focus
    //focusedProperty().addListener((ov, oldValue, newValue) -> textField.requestFocus());

    Label extWalletIcon = new Label();
    extWalletIcon.setLayoutY(3);
    extWalletIcon.getStyleClass().addAll("icon", "highlight");
    extWalletIcon.setTooltip(new Tooltip(tooltipText));
    AwesomeDude.setIcon(extWalletIcon, AwesomeIcon.SIGNIN);
    extWalletIcon.setOnMouseClicked(e -> GUIUtil.showFeeInfoBeforeExecute(this::openWallet));

    Label copyIcon = new Label();
    copyIcon.setLayoutY(3);
    copyIcon.getStyleClass().addAll("icon", "highlight");
    Tooltip.install(copyIcon, new Tooltip(Res.get("addressTextField.copyToClipboard")));
    AwesomeDude.setIcon(copyIcon, AwesomeIcon.COPY);
    copyIcon.setOnMouseClicked(e -> GUIUtil.showFeeInfoBeforeExecute(() -> {
        if (address.get() != null && address.get().length() > 0)
            Utilities.copyToClipboard(address.get());
    }));

    AnchorPane.setRightAnchor(copyIcon, 30.0);
    AnchorPane.setRightAnchor(extWalletIcon, 5.0);
    AnchorPane.setRightAnchor(textField, 55.0);
    AnchorPane.setLeftAnchor(textField, 0.0);

    getChildren().addAll(textField, copyIcon, extWalletIcon);
}
 
Example 17
Source File: SearchableTreeView.java    From pmd-designer with BSD 2-Clause "Simplified" License 4 votes vote down vote up
/**
 * Textfield for the search query.
 */
private void popSearchField() {
    TextField textField = new TextField();
    textField.setPrefWidth(150);
    textField.setPromptText("Search tree");
    ControlUtil.makeTextFieldShowPromptEvenIfFocused(textField);

    Label label = new Label();
    label.getStyleClass().addAll("hint-label");
    label.setTooltip(new Tooltip("Go to next result with F3"));

    StackPane pane = new StackPane();
    pane.getStyleClass().addAll("search-popup");
    pane.getStylesheets().addAll(DesignerUtil.getCss("designer").toString());

    StackPane.setAlignment(textField, Pos.TOP_RIGHT);
    StackPane.setAlignment(label, Pos.BOTTOM_RIGHT);


    pane.getChildren().addAll(textField, label);

    Val<String> query = Val.wrap(textField.textProperty())
                           .filter(StringUtils::isNotBlank).map(String::trim)
                           .filter(it -> it.length() >= MIN_QUERY_LENGTH);

    Var<Integer> numResults = Var.newSimpleVar(0);

    Subscription subscription = bindSearchQuery(query.conditionOnShowing(pane), numResults, textField);

    label.textProperty().bind(
        numResults.map(n -> n == 0 ? "no match" : n == 1 ? "1 match" : n + " matches")
    );

    label.visibleProperty().bind(query.map(Objects::nonNull));

    Popup popup = new Popup();
    popup.getContent().addAll(pane);
    popup.setAutoHide(true);
    popup.setHideOnEscape(true);

    Bounds bounds = localToScreen(getBoundsInLocal());
    popup.show(this, bounds.getMaxX() - textField.getPrefWidth() - 1, bounds.getMinY());
    popup.setOnHidden(e -> {
        openSearchField = null;
        subscription.unsubscribe();
    }); // release resources

    // Hide popup when ENTER or ESCAPE is pressed
    EventStreams.eventsOf(popup, KeyEvent.KEY_RELEASED)
                .filter(it -> it.getCode() == KeyCode.ENTER || it.getCode() == KeyCode.ESCAPE)
                .subscribeForOne(e -> {
                    popup.hide();
                    e.consume();
                });

    textField.requestFocus();
    openSearchField = textField;
}
 
Example 18
Source File: PropertyMapView.java    From pmd-designer with BSD 2-Clause "Simplified" License 3 votes vote down vote up
@Override
protected Pair<Node, Subscription> getNonEditingGraphic(Pair<PropertyDescriptorSpec, Var<String>> pair) {

    setEditable(true);

    Subscription sub = Subscription.EMPTY;

    Label propName = new Label();
    propName.textProperty().bind(pair.getKey().nameProperty());

    sub = sub.and(() -> propName.textProperty().unbind());

    Label sep = new Label(" → ");


    Label propValue = new Label();
    propValue.textProperty().bind(pair.getValue());

    sub = sub.and(() -> propValue.textProperty().unbind());

    Pane spacer = new Pane();
    HBox.setHgrow(spacer, Priority.ALWAYS);

    FontIcon defaultIcon = new FontIcon("fas-map-marker");
    Label defaultLabel = new Label("", defaultIcon);
    defaultLabel.visibleProperty().bind(
        pair.getValue().flatMap(it -> pair.getKey().valueProperty())
            .map(it -> Objects.equals(it, pair.getValue().getValue()))
    );
    defaultLabel.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
    defaultLabel.setTooltip(new Tooltip("Default value"));

    sub = sub.and(() -> defaultLabel.visibleProperty().unbind());

    HBox box = new HBox();
    box.getChildren().addAll(propName, sep, propValue, spacer, defaultLabel);
    sub = sub.and(ControlUtil.registerDoubleClickListener(box, this::doStartEdit));

    return new Pair<>(box, sub);
}