@Override public Frame getWrappedFrame() { return screen.getFragment(); }
@Nullable @Override public Component getComponent(String id) { return screen.getFragment().getComponent(id); } }
public static Frame getFrame(FrameOwner frameOwner) { if (frameOwner instanceof Screen) { return ((Screen) frameOwner).getWindow(); } return ((ScreenFragment) frameOwner).getFragment(); }
@Nullable public static Window getParentWindow(ScreenFragment frameOwner) { Frame frame = frameOwner.getFragment(); while (frame != null) { if (frame instanceof Window && frame.getFrame() == frame) { return (Window) frame; } frame = frame.getFrame(); } return null; }
@Nullable public static Screen getScreen(ScreenFragment frameOwner) { Frame frame = frameOwner.getFragment(); while (frame != null) { if (frame instanceof Window && frame.getFrame() == frame) { return ((Window) frame).getFrameOwner(); } frame = frame.getFrame(); } return null; }
@Override public void init(ScreenFragment controller) { checkNotNullArgument(controller); FragmentContextImpl fragmentContext = (FragmentContextImpl) controller.getFragment().getContext(); ComponentLoaderContext loaderContext = fragmentContext.getLoaderContext(); loaderContext.executeInitTasks(); loaderContext.executePostInitTasks(); // resume listeners after show // only if legacy frame if (controller instanceof LegacyFrame) { com.vaadin.ui.Component vComposition = controller.getFragment().unwrapComposition(com.vaadin.ui.Component.class); vComposition.addAttachListener(new ClientConnector.AttachListener() { @Override public void attach(ClientConnector.AttachEvent event) { resumeDsContextAfterShow((LegacyFrame) controller); // run only once vComposition.removeAttachListener(this); } }); } }
@Override public void initLookupLayout() { Action selectAction = getAction(LOOKUP_SELECT_ACTION_ID); if (selectAction != null && selectAction.getOwner() == null) { Fragments fragments = UiControllerUtils.getScreenContext(this).getFragments(); ScreenFragment lookupWindowActions = fragments.create(this, "lookupWindowActions"); lookupWindowActions.getFragment().setId("lookupWindowActions"); lookupWindowActions.getFragment().setVisible(false); getFrame().add(lookupWindowActions.getFragment()); lookupWindowActions.init(); } Element element = ((Component.HasXmlDescriptor) getFrame()).getXmlDescriptor(); if (element != null) { String lookupComponent = element.attributeValue("lookupComponent"); if (StringUtils.isNotEmpty(lookupComponent)) { Component component = getFrame().getComponent(lookupComponent); setLookupComponent(component); } } Component lookupComponent = getLookupComponent(); if (lookupComponent instanceof LookupSelectionChangeNotifier) { LookupSelectionChangeNotifier selectionNotifier = (LookupSelectionChangeNotifier) lookupComponent; if (selectAction != null) { //noinspection unchecked selectionNotifier.addLookupValueChangeListener(valueChangeEvent -> selectAction.setEnabled(!selectionNotifier.getLookupSelectedItems().isEmpty())); selectAction.setEnabled(!selectionNotifier.getLookupSelectedItems().isEmpty()); } } }
screenFragment.getFragment().setId(id); container.add(screenFragment.getFragment());