Java 类javafx.stage.PopupWindow 实例源码

项目:CSS-Editor-FX    文件:AutoCompletionCodeAreaBind.java   
public void showPopup() {
  Collection<String> suggestions = suggestionProvider.apply(codeArea.getText(), codeArea.getCaretPosition());
  if (suggestions.isEmpty()) {
    hidePopup();
  } else {
    PopupWindow popupWindow = codeArea.getPopupWindow();
    if (popupWindow != popup) {
      popupWindow.hide();
      codeArea.setPopupWindow(popup);
    }
    popup.getSuggestions().setAll(suggestions);
    selectFirstSuggestion(popup);
    if (popup.isShowing() == false) {
      popup.show(codeArea.getScene().getWindow());
    }
  }
}
项目:myWMS    文件:BasicEntityEditor.java   
protected PopupWindow createPopup() {
    ListView<BODTO<T>> listView = new ListView<>();
    listView.getStyleClass().addAll("combo-box-popup");
    listView.setItems(completionItems);
    listView.cellFactoryProperty().bind(control.cellFactoryProperty());
    listView.setOnKeyReleased(e -> { 
        if (e.getCode() == KeyCode.ENTER ) { select(listView); e.consume(); }
        if (e.getCode() == KeyCode.ESCAPE ) { hidePopup(); e.consume(); }
    });

    listView.setOnMouseClicked(e -> { if (e.getClickCount() == 1) select(listView); e.consume();});

    Popup popup = new Popup();
    control.showPopup.bind(popup.showingProperty());
    popup.getContent().add(listView);
    textInput.updateValue("");
    return popup;
}
项目:openjfx-8u-dev-tests    文件:ChoiceTest.java   
@Smoke
@Test(timeout = 300000)
public void converter() throws InterruptedException {
    choice.as(Selectable.class).selector().select("1");
    converter.mouse().click();
    final LookupCriteria marker = new ByText("Converted", StringComparePolicy.SUBSTRING);
    final Parent choiceAsParent = choice.as(Parent.class, Node.class);
    choiceAsParent.lookup(marker).wait(1);
    choice.mouse().click();
    final Lookup<? extends Scene> popupLookup = Root.ROOT.lookup(new ByWindowType(PopupWindow.class)).lookup(Scene.class);
    popupLookup.wrap().as(Parent.class, Node.class).lookup(marker).wait(3);
    removeConverter.mouse().click();
    choice.waitState(new State<Integer>() {
        public Integer reached() {
            return choiceAsParent.lookup(marker).size();
        }
    }, 0);
    choice.mouse().click();
    choice.waitState(new State<Integer>() {
        public Integer reached() {
            return popupLookup.wrap().as(Parent.class, Node.class).lookup(marker).size();
        }
    }, 0);
}
项目:openjfx-8u-dev-tests    文件:ScrollEventTest.java   
/**
 * This test checks that context menu appears
 * but there are no other popup windows
 *
 * Input: each control gets right mouse click
 * Expected output: only one new window appears on the stage
 *
 */
@Smoke
@Test(timeout=300000)
public void contextMenuPopupTest() {
    enableContextMenuTest();

    for (Object nf : nodeChooser.as(Selectable.class).getStates()) {
        nodeChooser.as(Selectable.class).selector().select(nf);

        targetControl = parent.lookup(Node.class, new ByID<Node>(ID_TARGET_NODE)).wrap();
        targetControl.mouse().click(1, targetControl.getClickPoint(), Mouse.MouseButtons.BUTTON3);

        Lookup<Scene> popUpLookup = Root.ROOT.lookup(new ByWindowType(PopupWindow.class)).lookup(Scene.class);
        assertEquals("There must be only one popup window for control <" + nf + ">", 1, popUpLookup.size());
    }
}
项目:openjfx-8u-dev-tests    文件:ChoiceBoxWrap.java   
public void select(final Object state) {
    if (!isShowing()) {
        mouse().click();
    }
    Parent<Node> popupContainer =
            Root.ROOT.lookup(new ByWindowType<>(PopupWindow.class)).as(Parent.class, Node.class);

    // TODO: figure out what to do with duplicate strings
    popupContainer.lookup(Node.class, cntrl -> {
        MenuItem item = (MenuItem) cntrl.getProperties().get(MenuItem.class);
        if (item == null) {
            return false;
        }
        ;
        if (!item.getText().contentEquals(state.toString())) {
            return false;
        }
        return true;
    }).wrap().mouse().click();
}
项目:openjfx-8u-dev-tests    文件:FXSceneTreeBuilder.java   
public static ArrayList<TreeNode<FXSimpleNodeDescription>> build(final Wrap<? extends Parent> wrap) {
    return new GetAction<ArrayList<TreeNode<FXSimpleNodeDescription>>>() {
        @Override
        public void run(Object... os) throws Exception {
            ArrayList<TreeNode<FXSimpleNodeDescription>> list = new ArrayList<TreeNode<FXSimpleNodeDescription>>();
            list.add(build(wrap.getControl()));
            final Lookup<Scene> lookup = Root.ROOT.lookup(new ByWindowType(PopupWindow.class));
            for (int  i = 0; i < lookup.size(); i++) {
                Wrap<? extends Scene> popup = lookup.wrap(i);
                if (wrap.getScreenBounds().intersects(popup.getScreenBounds())) {
                    list.add(build(popup.getControl().getRoot(), wrap.getControl()));
                }
            }
            setResult(list);
        }
    }.dispatch(wrap.getEnvironment());
}
项目:CSS-Editor-FX    文件:AutoCompletionCodeAreaBind.java   
public void showPopup() {
  Collection<String> suggestions = suggestionProvider.apply(codeArea.getText(), codeArea.getCaretPosition());
  if (suggestions.isEmpty()) {
    hidePopup();
  } else {
    PopupWindow popupWindow = codeArea.getPopupWindow();
    if (popupWindow != popup) {
      popupWindow.hide();
      codeArea.setPopupWindow(popup);
    }
    popup.getSuggestions().setAll(suggestions);
    selectFirstSuggestion(popup);
    if (popup.isShowing() == false) {
      popup.show(codeArea.getScene().getWindow());
    }
  }
}
项目:Elegit    文件:NotificationController.java   
/**
 * Updates the notification alert
 * @param notification new alert
 * @return new PopOver
 */
private PopOver updateNotificationBubble(String notification) {
    Text notifcationText = new Text(notification);
    notifcationText.setWrappingWidth(230);
    notifcationText.setStyle("-fx-font-weight: bold");

    HBox hBox = new HBox(notifcationText);
    hBox.setPadding(new Insets(0, 5, 0, 5));
    hBox.setOnMouseClicked(event -> showNotificationList());

    PopOver popOver = new PopOver(hBox);
    popOver.setTitle("New Notification");
    popOver.setArrowLocation(PopOver.ArrowLocation.BOTTOM_RIGHT);
    popOver.setAnchorLocation(PopupWindow.AnchorLocation.CONTENT_BOTTOM_RIGHT);

    return popOver;
}
项目:marathonv5    文件:ContextMenuHandler.java   
public ContextMenuHandler(IJSONRecorder recorder, RFXComponentFactory finder) {
    popup = new PopupWindow() {
    };
    root = new AssertionPanel(popup, recorder, finder);
    root.setPrefWidth(300.0);
    popup.getScene().setRoot(root);
    popup.sizeToScene();
}
项目:marathonv5    文件:RFXComponent.java   
private Stage getStage(Window window) {
    if (window instanceof Stage) {
        return (Stage) window;
    }
    if (window instanceof PopupWindow) {
        Node ownerNode = ((PopupWindow) window).getOwnerNode();
        ownerNode.getScene().getWindow();
        return getStage(ownerNode.getScene().getWindow());
    }
    return null;
}
项目:CSS-Editor-FX    文件:PreviewCodeAreaBind.java   
public void showPopup() {
  PopupWindow popupWindow = codeArea.getPopupWindow();
  if (popupWindow != popup) {
    popupWindow.hide();
    codeArea.setPopupWindow(popup);
  }
  popup.show(codeArea.getScene().getWindow());
}
项目:fx-animation-editor    文件:ComboButton.java   
private void createUi() {
    setMinSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);
    setMaxSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);

    popupContent.getStyleClass().add(POPUP_CONTENT_STYLE_CLASS);
    popupContent.addEventHandler(MouseEvent.MOUSE_PRESSED, event -> popup.hide());

    popup.setAutoHide(true);
    popup.getContent().add(popupContent);
    popup.showingProperty().addListener((v, o, n) -> pseudoClassStateChanged(SHOWING_PSEUDO_CLASS, n));
    popup.setAnchorLocation(PopupWindow.AnchorLocation.CONTENT_TOP_LEFT);
}
项目:openjfx-8u-dev-tests    文件:ApplicationInteractionFunctions.java   
protected void checkPopup() throws Exception {
    Lookup<Scene> lookup = Root.ROOT.lookup(new ByWindowType(PopupWindow.class))
                                     .lookup(Scene.class);
    if (lookup.size() != 1) {
        throw new Exception("Popup is expected to appear.");
    }
}
项目:openjfx-8u-dev-tests    文件:TooltipTest.java   
protected void checkVisibleState(boolean check) {
    isVisible.waitProperty(TextControlWrap.SELECTED_PROP_NAME, check ? CheckBoxWrap.State.CHECKED : CheckBoxWrap.State.UNCHECKED);
    if (check) {
        isActivated.waitProperty(TextControlWrap.SELECTED_PROP_NAME, CheckBoxWrap.State.UNCHECKED);
        activatedPropVal.waitProperty(TextControlWrap.SELECTED_PROP_NAME, CheckBoxWrap.State.UNCHECKED);
    }
    assertEquals(check ? 1 : 0, Root.ROOT.lookup(new ByWindowType(PopupWindow.class)).lookup(Scene.class).size());
}
项目:openjfx-8u-dev-tests    文件:ChoiceTest.java   
@Smoke
@Test(timeout = 300000)
public void keyboardCapture() throws InterruptedException { //RT-12597
    choice.mouse().click();
    Wrap<? extends Scene> popupScene = Root.ROOT.lookup(new ByWindowType(PopupWindow.class)).lookup(Scene.class).wrap(0);
    Node focused = getFocused();
    popupScene.keyboard().pushKey(KeyboardButtons.UP);
    assertEquals(focused, getFocused());
}
项目:openjfx-8u-dev-tests    文件:RichTextEditorTest.java   
private Wrap<? extends Scene> getPopupWrap() throws InterruptedException {
    Wrap<? extends Scene> temp;
    try {
        temp = Root.ROOT.lookup(new ByWindowType(PopupWindow.class)).lookup(Scene.class).wrap(0);
    } catch (Exception e) {
        return null;
    }
    return temp;
}
项目:openjfx-8u-dev-tests    文件:TestBase.java   
protected Wrap<? extends Scene> getPopupWrap() {
    Wrap<? extends Scene> temp;
    try {
        temp = Root.ROOT.lookup(new ByWindowType(PopupWindow.class)).lookup(Scene.class).wrap(0);
    } catch (Exception e) {
        return null;
    }
    return temp;
}
项目:CSS-Editor-FX    文件:PreviewCodeAreaBind.java   
public void showPopup() {
  PopupWindow popupWindow = codeArea.getPopupWindow();
  if (popupWindow != popup) {
    popupWindow.hide();
    codeArea.setPopupWindow(popup);
  }
  popup.show(codeArea.getScene().getWindow());
}
项目:openjfx-8u-dev-tests    文件:PopupTest.java   
private void pressEscOnPopup() {
    Wrap<? extends Scene> popupScene = Root.ROOT.lookup(new ByWindowType(PopupWindow.class)).lookup(Scene.class).wrap(0);
    popupScene.keyboard().pushKey(KeyboardButtons.ESCAPE);
}
项目:openjfx-8u-dev-tests    文件:SceneBuilderTest.java   
@Test
public void testPrototype() {
    //find Scene Builder scene
    final SceneDock sceneBuilder = new SceneDock(new ByTitleSceneLookup<>("Scene Builder", StringComparePolicy.SUBSTRING));
    //find library panel  by node ID using Scene Builder's scene as Parent
    ListViewDock library = new ListViewDock(sceneBuilder.asParent(), ID_LIBRARY_PANEL_LIST_VIEW);

    //find button in library
    ListItemDock button = new ListItemDock(library.asList(), new ByID("Button"));

    //show list item with button by scrolling listview
    button.shower().show();

    //find design surface by node ID "Anchor Pane".
    NodeDock designSurface = new NodeDock(sceneBuilder.asParent(), "AnchorPane");

    //drag list item with button and drop in center of design surface
    button.drag().dnd(designSurface.wrap(), designSurface.wrap().getClickPoint());

    //find properties panel by node ID
    TitledPaneDock titledPaneDock = new TitledPaneDock(sceneBuilder.asParent(), "Properties");

    //find text field for property "Text"
    TextInputControlDock textField = new TextInputControlDock(new NodeDock(titledPaneDock.asParent(), "TextValue").asParent());
    //clear and type text
    textField.clear();
    textField.type("Submit");
    //push enter to complete
    textField.keyboard().pushKey(Keyboard.KeyboardButtons.ENTER);

    //Add text field/////////////////////////////////////////////////////////////////////////////////////////////////////

    //find text field in library
    ListItemDock textFieldControl = new ListItemDock(library.asList(), new ByID("Text Field"));

    //show list item with text field by scrolling listview
    textFieldControl.shower().show();

    //drag list item with text field and drop on design surface near button
    textFieldControl.drag().dnd(designSurface.wrap(), designSurface.wrap().getClickPoint().translate(70, 50));

    //find text field on design surface and double click to invoke inline editing
    new TextInputControlDock(designSurface.asParent()).mouse().click(2);

    //find inline text field and type text "Name".
    TextInputControlDock inline = new TextInputControlDock(sceneBuilder.asParent(), ID_TEXT_INLINE_EDITING);
    inline.clear();
    inline.type("Name");
    inline.keyboard().pushKey(Keyboard.KeyboardButtons.ENTER);


    //show preview
    //find menu bar by ID then push "Preview" menu. Finally push "Show preview" menu item. All menu item have id's that help to find them.
    new MenuBarDock(sceneBuilder.asParent(), ID_MENU_BAR).menu().push(new ByIdMenuItem(ID_PREVIEW_MENU), new ByIdMenuItem(ID_PREVIEW_MENU_ITEM));

    //find preview scene. Criteria: scene is not existing scene builder scene and scene.getWindow is not PopupWindow
    SceneDock previewScene = new SceneDock(new LookupCriteria<Scene>() {
        @Override
        public boolean check(Scene cntrl) {
            return (cntrl != sceneBuilder.wrap().getControl() && !(cntrl.getWindow() instanceof PopupWindow));
        }
    });

    //find Button with text "Submit" on preview scene
    new LabeledDock(previewScene.asParent(), Button.class, new ByText<Button>("Submit"));
    //find TextField with text "Name" on preview scene
    new TextInputControlDock(previewScene.asParent(), TextField.class, new ByText<TextField>("Name"));


    try {
        Thread.sleep(5000);
    } catch (InterruptedException ex) {
        Logger.getLogger(SceneBuilderTest.class.getName()).log(Level.SEVERE, null, ex);
    }


}