Java Code Examples for javafx.scene.control.Button#setTooltip()
The following examples show how to use
javafx.scene.control.Button#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: AbstractFileEditor.java From jmonkeybuilder with Apache License 2.0 | 6 votes |
/** * Create the save action. * * @return the button */ protected @NotNull Button createSaveAction() { final Button action = new Button(); action.setTooltip(new Tooltip(Messages.FILE_EDITOR_ACTION_SAVE + " (Ctrl + S)")); action.setOnAction(event -> save()); action.setGraphic(new ImageView(Icons.SAVE_16)); action.disableProperty().bind(dirtyProperty().not()); FXUtils.addClassesTo(action, CssClasses.FLAT_BUTTON, CssClasses.FILE_EDITOR_TOOLBAR_BUTTON); DynamicIconSupport.addSupport(action); return action; }
Example 2
Source File: Pin.java From BlockMap with MIT License | 6 votes |
@Override protected PopOver initInfo() { PopOver info = super.initInfo(); GridPane content = new GridPane(); content.getStyleClass().add("grid"); content.add(new Label("Player position:"), 0, 2); Vector3dc position = player.getPosition(); Button jumpButton = new Button(position.toString()); jumpButton.setTooltip(new Tooltip("Click to go there")); content.add(jumpButton, 1, 2); jumpButton.setOnAction(e -> { Vector2d spawnpoint = new Vector2d(position.x(), position.z()); AABBd frustum = viewport.frustumProperty.get(); viewport.translationProperty.set(spawnpoint.negate().add((frustum.maxX - frustum.minX) / 2, (frustum.maxY - frustum.minY) / 2)); info.hide(); }); info.setContentNode(content); return info; }
Example 3
Source File: StateCell.java From phoebus with Eclipse Public License 1.0 | 6 votes |
private Button createButton(final String icon, final String tooltip, final ScanAction action) { final Button button = new Button(); button.setMinSize(ButtonBase.USE_PREF_SIZE, ButtonBase.USE_PREF_SIZE); button.setPrefHeight(20); button.setGraphic(ImageCache.getImageView(StateCell.class, icon)); button.setTooltip(new Tooltip(tooltip)); button.setOnAction(event -> { try { action.perform(getTableRow().getItem().id.get()); } catch (Exception ex) { logger.log(Level.WARNING, "Failed: " + tooltip, ex); } }); return button; }
Example 4
Source File: AlarmTreeView.java From phoebus with Eclipse Public License 1.0 | 6 votes |
private ToolBar createToolbar() { final Button collapse = new Button("", ImageCache.getImageView(AlarmUI.class, "/icons/collapse.png")); collapse.setTooltip(new Tooltip("Collapse alarm tree")); collapse.setOnAction(event -> { for (TreeItem<AlarmTreeItem<?>> sub : tree_view.getRoot().getChildren()) sub.setExpanded(false); }); final Button show_alarms = new Button("", ImageCache.getImageView(AlarmUI.class, "/icons/expand_alarms.png")); show_alarms.setTooltip(new Tooltip("Expand alarm tree to show active alarms")); show_alarms.setOnAction(event -> expandAlarms(tree_view.getRoot())); return new ToolBar(no_server, ToolbarHelper.createSpring(), collapse, show_alarms); }
Example 5
Source File: BasicSongPanel.java From Quelea with GNU General Public License v3.0 | 6 votes |
/** * Get the sequence dialog button. * * @return the sequence button */ private Button getSequenceButton() { Button ret = new Button("", new ImageView(new Image("file:icons/edit32.png", 24, 24, false, true))); ret.setTooltip(new Tooltip(LabelGrabber.INSTANCE.getLabel("sequence.tooltip"))); ret.setOnAction((event) -> { SequenceSelectionDialog sequenceSelectionDialog = new SequenceSelectionDialog(); sequenceSelectionDialog.showAndWait(); if (sequenceSelectionDialog.isFinished()) { StringBuilder sb = new StringBuilder(); for (String s : sequenceSelectionDialog.getChosenSequence()) { sb.append(s).append(" "); } getSequenceField().setText(sb.toString().trim()); } }); return ret; }
Example 6
Source File: WaterfallPerformanceSample.java From chart-fx with Apache License 2.0 | 5 votes |
private ToolBar getTestToolBar(final Scene scene) { ToolBar testVariableToolBar = new ToolBar(); final Button fillDataSet = new Button("fill"); fillDataSet.setTooltip(new Tooltip("update data set with demo data")); fillDataSet.setOnAction(evt -> dataSet.fillTestData()); final Button stepDataSet = new Button("step"); stepDataSet.setTooltip(new Tooltip("update data set by one row")); stepDataSet.setOnAction(evt -> dataSet.step()); // repetitively generate new data final Button periodicTimer = new Button("timer"); periodicTimer.setTooltip(new Tooltip("update data set periodically")); periodicTimer.setOnAction(evt -> updateTimer(false)); updatePeriod.valueProperty().addListener((ch, o, n) -> updateTimer(true)); updatePeriod.setEditable(true); updatePeriod.setPrefWidth(80); final ProfilerInfoBox profilerInfoBox = new ProfilerInfoBox(DEBUG_UPDATE_RATE); profilerInfoBox.setDebugLevel(DebugLevel.VERSION); final Pane spacer = new Pane(); HBox.setHgrow(spacer, Priority.ALWAYS); testVariableToolBar.getItems().addAll(fillDataSet, stepDataSet, periodicTimer, updatePeriod, new Label("[ms]"), spacer, profilerInfoBox); return testVariableToolBar; }
Example 7
Source File: DataSetMeasurements.java From chart-fx with Apache License 2.0 | 5 votes |
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 8
Source File: SampleView.java From phoebus with Eclipse Public License 1.0 | 5 votes |
public SampleView(final Model model) { this.model = model; items.setOnAction(event -> select(items.getSelectionModel().getSelectedItem())); final Button refresh = new Button(Messages.SampleView_Refresh); refresh.setTooltip(new Tooltip(Messages.SampleView_RefreshTT)); refresh.setOnAction(event -> update()); final Label label = new Label(Messages.SampleView_Item); final HBox top_row = new HBox(5, label, items, refresh); top_row.setAlignment(Pos.CENTER_LEFT); // Combo should fill the available space. // Tried HBox.setHgrow(items, Priority.ALWAYS) etc., // but always resulted in shrinking the label and button. // -> Explicitly compute combo width from available space // minus padding and size of label, button items.prefWidthProperty().bind(top_row.widthProperty().subtract(20).subtract(label.widthProperty()).subtract(refresh.widthProperty())); items.prefHeightProperty().bind(refresh.heightProperty()); createSampleTable(); top_row.setPadding(new Insets(5)); sample_count.setPadding(new Insets(5)); sample_table.setPadding(new Insets(0, 5, 5, 5)); VBox.setVgrow(sample_table, Priority.ALWAYS); getChildren().setAll(top_row, sample_count, sample_table); // TODO Add 'export' to sample view? CSV in a format usable by import update(); }
Example 9
Source File: Arrow.java From LogFX with GNU General Public License v3.0 | 5 votes |
public static Button arrowButton( Direction direction, EventHandler<ActionEvent> eventEventHandler, String toolTipText ) { Button button = new Button( "", new Arrow( direction ) ); button.setFont( Font.font( 4.0 ) ); button.setMinWidth( 16 ); button.setMinHeight( 8 ); button.setTooltip( new Tooltip( toolTipText ) ); button.getTooltip().setFont( Font.font( 12.0 ) ); button.setOnAction( eventEventHandler ); return button; }
Example 10
Source File: FilesList.java From phoebus with Eclipse Public License 1.0 | 5 votes |
private Node createButtons() { final Button attach = new Button(Messages.AttachFile); final Button remove = new Button(Messages.RemoveSelected, ImageCache.getImageView(ImageCache.class, "/icons/delete.png")); attach.setTooltip(new Tooltip(Messages.AddImageLog)); remove.setTooltip(new Tooltip(Messages.RemoveSelectedFiles)); // Only enable 'remove' when file(s) selected remove.disableProperty().bind(Bindings.isEmpty(files.getSelectionModel().getSelectedItems())); attach.setOnAction(event -> { final FileChooser dialog = new FileChooser(); dialog.setInitialDirectory(new File(System.getProperty("user.home"))); final List<File> to_add = dialog.showOpenMultipleDialog(getScene().getWindow()); if (null != to_add) files.getItems().addAll(to_add); }); remove.setOnAction(event -> { final List<File> selected = new ArrayList<>(files.getSelectionModel().getSelectedItems()); if (selected.size() > 0) files.getItems().removeAll(selected); }); final HBox row = new HBox(10, attach, remove); // Have buttons equally split the available width attach.setMaxWidth(Double.MAX_VALUE); remove.setMaxWidth(Double.MAX_VALUE); HBox.setHgrow(attach, Priority.ALWAYS); HBox.setHgrow(remove, Priority.ALWAYS); return row; }
Example 11
Source File: ExecuteDisplayAction.java From phoebus with Eclipse Public License 1.0 | 5 votes |
public static Button asButton(final DisplayEditorInstance editor) { final Runnable action = new ExecuteDisplayAction(editor); final Button button = new Button(); button.setGraphic(new ImageView(icon)); button.setTooltip(new Tooltip(Messages.Run)); button.setOnAction(event -> action.run()); return button; }
Example 12
Source File: StringTable.java From phoebus with Eclipse Public License 1.0 | 5 votes |
private Button createToolbarButton(final String id, final String tool_tip, final EventHandler<ActionEvent> handler) { final Button button = new Button(); try { // Icons are not centered inside the button until the // button is once pressed, or at least focused via "tab" button.setGraphic(ImageCache.getImageView(ImageCache.class, "/icons/" + id + ".png")); // Using the image as a background like this centers the image, // but replaces the complete characteristic button outline with just the icon. // button.setBackground(new Background(new BackgroundImage(new Image(Activator.getIcon(id)), // BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, // BackgroundPosition.CENTER, // new BackgroundSize(16, 16, false, false, false, false)))); button.setTooltip(new Tooltip(tool_tip)); } catch (Exception ex) { logger.log(Level.WARNING, "Cannot load icon for " + id, ex); button.setText(tool_tip); } // Without defining the button size, the buttons may start out zero-sized // until they're first pressed/tabbed button.setMinSize(35, 25); button.setOnAction(handler); // Forcing a layout of the button on later UI ticks // tends to center the image Platform.runLater(() -> Platform.runLater(button::requestLayout)); return button; }
Example 13
Source File: ProductIonFilterVisualizerWindow.java From mzmine3 with GNU General Public License v2.0 | 4 votes |
public ProductIonFilterVisualizerWindow(RawDataFile dataFile, ParameterSet parameters) { borderPane = new BorderPane(); scene = new Scene(borderPane); setScene(scene); this.dataFile = dataFile; // Retrieve parameter's values Range<Double> rtRange = parameters.getParameter(ProductIonFilterParameters.retentionTimeRange).getValue(); Range<Double> mzRange = parameters.getParameter(ProductIonFilterParameters.mzRange).getValue(); Object xAxisType = parameters.getParameter(ProductIonFilterParameters.xAxisType).getValue(); mzDifference = parameters.getParameter(ProductIonFilterParameters.mzDifference).getValue(); targetedMZ_List = parameters.getParameter(ProductIonFilterParameters.targetedMZ_List).getValue(); targetedNF_List = parameters.getParameter(ProductIonFilterParameters.targetedNF_List).getValue(); fileName = parameters.getParameter(ProductIonFilterParameters.fileName).getValue(); basePeakPercent = parameters.getParameter(ProductIonFilterParameters.basePeakPercent).getValue(); // Set window components dataset = new ProductIonFilterDataSet(dataFile, xAxisType, rtRange, mzRange, this, mzDifference, targetedMZ_List, targetedNF_List, basePeakPercent, fileName); productIonFilterPlot = new ProductIonFilterPlot(this); productIonFilterPlot.setAxisTypes(xAxisType); productIonFilterPlot.addProductionFilterDataSet(dataset); productIonFilterPlot.setMenuItems(); borderPane.setCenter(productIonFilterPlot); toolBar = new ToolBar(); toolBar.setOrientation(Orientation.VERTICAL); Button highlightPrecursorBtn = new Button(null, new ImageView(PRECURSOR_MASS_ICON)); highlightPrecursorBtn.setTooltip(new Tooltip("Highlight selected precursor mass range")); highlightPrecursorBtn.setOnAction(e -> { ProductIonFilterSetHighlightDialog dialog = new ProductIonFilterSetHighlightDialog(this, productIonFilterPlot, "HIGHLIGHT_PRECURSOR"); dialog.show(); }); toolBar.getItems().add(highlightPrecursorBtn); borderPane.setRight(toolBar); MZmineCore.getTaskController().addTask(dataset, TaskPriority.HIGH); updateTitle(); // Add the Windows menu WindowsMenu.addWindowsMenu(getScene()); // get the window settings parameter ParameterSet paramSet = MZmineCore.getConfiguration().getModuleParameters(ProductIonFilterVisualizerModule.class); WindowSettingsParameter settings = paramSet.getParameter(ProductIonFilterParameters.windowSettings); // update the window and listen for changes settings.applySettingsToWindow(this); }
Example 14
Source File: PhoebusApplication.java From phoebus with Eclipse Public License 1.0 | 4 votes |
private ToolBar createToolbar() { final ToolBar toolBar = new ToolBar(); ImageView homeIcon = ImageCache.getImageView(ImageCache.class, "/icons/home.png"); homeIcon.setFitHeight(16.0); homeIcon.setFitWidth(16.0); home_display_button = new Button(null, homeIcon); home_display_button.setTooltip(new Tooltip(Messages.HomeTT)); toolBar.getItems().add(home_display_button); final TopResources homeResource = TopResources.parse(Preferences.home_display); home_display_button.setOnAction(event -> openResource(homeResource.getResource(0), false)); top_resources_button = new MenuButton(null, ImageCache.getImageView(getClass(), "/icons/fldr_obj.png")); top_resources_button.setTooltip(new Tooltip(Messages.TopResources)); top_resources_button.setDisable(true); toolBar.getItems().add(top_resources_button); layout_menu_button = new MenuButton(null, ImageCache.getImageView(getClass(), "/icons/layouts.png")); layout_menu_button.setTooltip(new Tooltip(Messages.LayoutTT)); toolBar.getItems().add(layout_menu_button); // Contributed Entries ToolbarEntryService.getInstance().listToolbarEntries().forEach((entry) -> { final AtomicBoolean open_new = new AtomicBoolean(); // If entry has icon, use that with name as tool tip. // Otherwise use the label as button text. final Button button = new Button(); final Image icon = entry.getIcon(); if (icon == null) button.setText(entry.getName()); else { button.setGraphic(new ImageView(icon)); button.setTooltip(new Tooltip(entry.getName())); } // Want to handle button presses with 'Control' in different way, // but action event does not carry key modifier information. // -> Add separate event filter to remember the 'Control' state. button.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> { open_new.set(event.isControlDown()); // Still allow the button to react by 'arming' it button.arm(); }); button.setOnAction((event) -> { try { // Future<?> future = executor.submit(entry.getActions()); if (open_new.get()) { // Invoke with new stage final Window existing = DockPane.getActiveDockPane().getScene().getWindow(); final Stage new_stage = new Stage(); DockStage.configureStage(new_stage); entry.call(); // Position near but not exactly on top of existing stage new_stage.setX(existing.getX() + 10.0); new_stage.setY(existing.getY() + 10.0); new_stage.show(); } else entry.call(); } catch (Exception ex) { logger.log(Level.WARNING, "Error invoking toolbar " + entry.getName(), ex); } }); toolBar.getItems().add(button); }); toolBar.setPrefWidth(600); return toolBar; }
Example 15
Source File: MarkdownEditorControl.java From Lipi with MIT License | 4 votes |
private void setupImageInsertButton() { imageInsertButton = new Button("Insert Image"); imageInsertButton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Open Resource File"); fileChooser.getExtensionFilters().addAll( new FileChooser.ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif") ); File selectedFile = fileChooser.showOpenDialog(new Stage()); if (selectedFile != null) { try { File dir = new File(blogDir + "/static/images/" + new SimpleDateFormat("yyyy_MM_dd").format(new Date())); dir.mkdirs(); FileUtils.copyFileToDirectory(selectedFile, dir); String copiedFile = dir.getCanonicalPath() + "/" + selectedFile.getName(); TextInputDialog dialog = new TextInputDialog("Image Alt Text"); dialog.setTitle("Image Description Input Dialog"); dialog.setHeaderText("ALT TEXT for the Image"); dialog.setContentText("Please enter a small description:"); String altText = ""; // Traditional way to get the response value. Optional<String> result = dialog.showAndWait(); if (result.isPresent()) { altText = result.get(); } setMdText(getMdText() + "![" + altText + "](file://" + copiedFile + ")"); } catch (IOException e1) { ExceptionAlerter.showException(e1); } } } }); imageInsertButton.setTooltip(new Tooltip("Coming soon!")); }
Example 16
Source File: SpectraBottomPanel.java From mzmine3 with GNU General Public License v2.0 | 4 votes |
SpectraBottomPanel(SpectraVisualizerWindow masterFrame, RawDataFile dataFile) { // super(new BorderLayout()); this.dataFile = dataFile; this.masterFrame = masterFrame; // setBackground(Color.white); topPanel = new FlowPane(); // topPanel.setBackground(Color.white); // topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS)); setCenter(topPanel); // topPanel.add(Box.createHorizontalStrut(10)); Button prevScanBtn = new Button(leftArrow); // prevScanBtn.setBackground(Color.white); // prevScanBtn.setFont(smallFont); // topPanel.add(Box.createHorizontalGlue()); Label featureListLabel = new Label("Feature list: "); peakListSelector = new ComboBox<PeakList>( MZmineCore.getProjectManager().getCurrentProject().getFeatureLists()); // peakListSelector.setBackground(Color.white); // peakListSelector.setFont(smallFont); peakListSelector.setOnAction( e -> masterFrame.loadPeaks(peakListSelector.getSelectionModel().getSelectedItem())); processingCbx = new CheckBox("Enable Processing"); processingCbx.setTooltip(new Tooltip("Enables quick scan processing.")); processingCbx.setOnAction(e -> masterFrame.enableProcessing()); updateProcessingCheckbox(); processingParametersBtn = new Button("Spectra processing"); processingParametersBtn .setTooltip(new Tooltip("Set the parameters for quick spectra processing.")); processingParametersBtn.setOnAction(e -> masterFrame.setProcessingParams()); updateProcessingButton(); // topPanel.add(Box.createHorizontalGlue()); Button nextScanBtn = new Button(rightArrow); nextScanBtn.setOnAction(e -> masterFrame.loadNextScan()); topPanel.getChildren().addAll(prevScanBtn, featureListLabel, peakListSelector, processingCbx, processingParametersBtn, nextScanBtn); // nextScanBtn.setBackground(Color.white); // nextScanBtn.setFont(smallFont); // topPanel.add(Box.createHorizontalStrut(10)); bottomPanel = new FlowPane(); // bottomPanel.setBackground(Color.white); // bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.X_AXIS)); setBottom(bottomPanel); // bottomPanel.add(Box.createHorizontalGlue()); Label msmsLabel = new Label("MS/MS: "); msmsSelector = new ComboBox<String>(); // msmsSelector.setBackground(Color.white); // msmsSelector.setFont(smallFont); Button showButton = new Button("Show"); bottomPanel.getChildren().addAll(msmsLabel, msmsSelector, showButton); // showButton.setBackground(Color.white); showButton.setOnAction(e -> { String selectedScanString = msmsSelector.getSelectionModel().getSelectedItem(); if (selectedScanString == null) return; int sharpIndex = selectedScanString.indexOf('#'); int commaIndex = selectedScanString.indexOf(','); selectedScanString = selectedScanString.substring(sharpIndex + 1, commaIndex); int selectedScan = Integer.valueOf(selectedScanString); SpectraVisualizerModule.showNewSpectrumWindow(dataFile, selectedScan); }); // showButton.setFont(smallFont); // bottomPanel.add(Box.createHorizontalGlue()); }
Example 17
Source File: BasicSongPanel.java From Quelea with GNU General Public License v3.0 | 4 votes |
private Button getNonBreakingLineButton() { Button ret = new Button("", new ImageView(new Image("file:icons/nonbreakline.png", 24, 24, false, true))); Utils.setToolbarButtonStyle(ret); ret.setTooltip(new Tooltip(LabelGrabber.INSTANCE.getLabel("nonbreak.tooltip"))); ret.setOnAction((event) -> { int caretPos = lyricsArea.getArea().getTextArea().getCaretPosition(); String[] parts = lyricsArea.getTextAndChords().split("\n"); int lineIndex = lineFromPos(lyricsArea.getTextAndChords(), caretPos); String line = parts[lineIndex]; if (line.trim().isEmpty()) { Platform.runLater(new Runnable() { @Override public void run() { lyricsArea.getArea().getTextArea().replaceText(caretPos, caretPos, "<>"); lyricsArea.getArea().refreshStyle(); } }); } else { int nextLinePos = nextLinePos(lyricsArea.getTextAndChords(), caretPos); if (nextLinePos >= lyricsArea.getTextAndChords().length()) { Platform.runLater(new Runnable() { @Override public void run() { lyricsArea.getArea().getTextArea().replaceText(nextLinePos, nextLinePos, "\n<>\n"); lyricsArea.getArea().refreshStyle(); } }); } else { Platform.runLater(new Runnable() { @Override public void run() { lyricsArea.getArea().getTextArea().replaceText(nextLinePos, nextLinePos, "<>\n"); lyricsArea.getArea().refreshStyle(); } }); } } }); return ret; }
Example 18
Source File: CActionButton.java From Open-Lowcode with Eclipse Public License 2.0 | 4 votes |
@Override public Node getNode( PageActionManager actionmanager, CPageData inputdata, Window parentwindow, TabPane[] parenttabpanes, CollapsibleNode nodetocollapsewhenactiontriggered) { if (this.conditionalshow) { DataElt thiselement = inputdata.lookupDataElementByName(conditionalshowdatareference.getName()); if (thiselement == null) throw new RuntimeException(String.format( "could not find any page data with name = %s" + conditionalshowdatareference.getName())); if (!thiselement.getType().equals(conditionalshowdatareference.getType())) throw new RuntimeException( String.format("page data with name = %s does not have expected %s type, actually found %s", conditionalshowdatareference.getName(), conditionalshowdatareference.getType(), thiselement.getType())); ChoiceDataElt<?> thischoiceelement = (ChoiceDataElt<?>) thiselement; if (thischoiceelement.getStoredValue().compareTo("YES") != 0) return new Label(""); } button = new Button(label); button.setStyle("-fx-base: #ffffff; -fx-hover-base: #ddeeff;"); button.setMinSize(Button.USE_PREF_SIZE, Button.USE_PREF_SIZE); button.textOverrunProperty().set(OverrunStyle.CLIP); // button.setMinWidth((new // Text(this.label).getBoundsInLocal().getWidth()+20)*1.3); if (tooltip != null) button.setTooltip(new Tooltip("tooltip")); if (!this.hasconfirmationmessage) { if (action != null) { actionmanager.registerEvent(button, action); if (callback != null) actionmanager.registerCallback(button, callback); buttonhandler = new ButtonHandler(actionmanager); button.setOnMouseClicked(buttonhandler); } if (inlineaction != null) { if (nodetocollapsewhenactiontriggered != null) inlineaction.setNodeToCollapse(nodetocollapsewhenactiontriggered); if (this.forcepopuphidewheninline) { actionmanager.registerInlineActionwithPopupClose(button, inlineaction); } else { actionmanager.registerInlineAction(button, inlineaction); } buttonhandler = new ButtonHandler(actionmanager); button.setOnMouseClicked(buttonhandler); } } if (this.hasconfirmationmessage) { button.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent arg0) { Alert alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("User Confirmation"); alert.setContentText(confirmationmessage); ButtonType continuetype = new ButtonType(confirmationmessagecontinuelabel); ButtonType stoptype = new ButtonType(confirmationmessagestoplabel); alert.getButtonTypes().setAll(continuetype, stoptype); Optional<ButtonType> result = alert.showAndWait(); if (result.get() == continuetype) { if (action != null) { if (callback != null) actionmanager.directfireEvent(action, callback); if (callback == null) actionmanager.directfireEvent(action); } if (inlineaction != null) { if (forcepopuphidewheninline) inlineaction.forcePopupClose(); actionmanager.directfireInlineEvent(inlineaction); } } } }); } return button; }
Example 19
Source File: ChartPerformanceBenchmark.java From chart-fx with Apache License 2.0 | 4 votes |
private Button startTestButton(final String label, final int[] nSamplesTest, final long updatePeriod) { final Button startTimer = new Button(label); startTimer.setTooltip(new Tooltip("start test series iterating through each chart implementation")); startTimer.setMaxWidth(Double.MAX_VALUE); startTimer.setOnAction(evt -> { if (timer == null) { timer = new Thread() { @Override public void run() { try { for (int i = 0; i < nSamplesTest.length; i++) { final int samples = nSamplesTest[i]; final int wait = i == 0 ? 2 * WAIT_PERIOD : WAIT_PERIOD; LOGGER.atInfo().log("start test iteration for: " + samples + " samples"); if (samples > 10000) { // pre-emptively abort test JavaFX Chart // test case (too high memory/cpu // consumptions crashes gc) compute[0] = false; } final TestThread t1 = new TestThread(1, compute[0] ? samples : 1000, chart1, chartTestCase1, results1, updatePeriod, wait); final TestThread t2 = new TestThread(2, compute[1] ? samples : 1000, chart2, chartTestCase2, results2, updatePeriod, wait); final TestThread t3 = new TestThread(3, compute[2] ? samples : 1000, chart3, chartTestCase3, results3, updatePeriod, wait); meter.resetAverages(); if (compute[0]) { t1.start(); t1.join(); } if (compute[1]) { t2.start(); t2.join(); } if (compute[2]) { t3.start(); t3.join(); } if (i <= 2) { // ignore compute for first iteration // (needed to optimise JIT compiler) compute[0] = true; compute[1] = true; compute[2] = true; results1.clearData(); results2.clearData(); results3.clearData(); } } } catch (final InterruptedException e) { if (LOGGER.isErrorEnabled()) { LOGGER.atError().setCause(e).log("InterruptedException"); } } } }; timer.start(); LOGGER.atInfo().log("reset FPS averages"); meter.resetAverages(); } else { timer.interrupt(); timer = null; } }); return startTimer; }
Example 20
Source File: ImageList.java From phoebus with Eclipse Public License 1.0 | 4 votes |
private Node createImageSection() { preview.setPreserveRatio(true); preview.setManaged(false); final Button removeImage = new Button(Messages.Remove, ImageCache.getImageView(ImageCache.class, "/icons/delete.png")); removeImage.setTooltip(new Tooltip(Messages.RemoveImage)); removeImage.setOnAction(event -> { final Image image = preview.getImage(); if (image != null) { images.getItems().remove(image); selectFirstImage(); } }); final StackPane left = new StackPane(preview, removeImage); // Image in background fills the area preview.setX(5); preview.setY(5); preview.fitWidthProperty().bind(left.widthProperty()); preview.fitHeightProperty().bind(left.heightProperty()); // Remove button on top, upper right corner StackPane.setAlignment(removeImage, Pos.TOP_RIGHT); StackPane.setMargin(removeImage, new Insets(5)); images.setPlaceholder(new Label(Messages.NoImages)); images.setStyle("-fx-control-inner-background-alt: #f4f4f4"); images.setStyle("-fx-control-inner-background: #f4f4f4"); images.setCellFactory(param -> new ImageCell(preview)); // Show selected image in preview preview.imageProperty().bind(images.getSelectionModel().selectedItemProperty()); // Enable button if something is selected removeImage.disableProperty().bind(Bindings.isEmpty(images.getSelectionModel().getSelectedItems())); VBox.setVgrow(images, Priority.ALWAYS); final VBox right = new VBox(new Label(Messages.ImagesTitle), images); right.setPadding(new Insets(5)); final SplitPane split = new SplitPane(left, right); split.setDividerPositions(0.7); return split; }