use of com.haulmont.cuba.gui.config.WindowInfo in project cuba by cuba-platform.
the class HasWindowManager method openLookup.
/**
* Open a lookup screen. <br> It is recommended to use {@link ScreenBuilders} bean instead.
*
* @param windowAlias screen ID as defined in {@code screens.xml}
* @param handler is invoked when selection confirmed and the lookup screen closes
* @param openType how to open the screen
* @param params parameters to pass to {@code init()} method of the screen's controller
* @return created window
*/
@Deprecated
default AbstractLookup openLookup(String windowAlias, Window.Lookup.Handler handler, WindowManager.OpenType openType, Map<String, Object> params) {
WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME);
WindowInfo windowInfo = windowConfig.getWindowInfo(windowAlias);
return (AbstractLookup) getWindowManager().openLookup(windowInfo, handler, openType, params);
}
use of com.haulmont.cuba.gui.config.WindowInfo in project cuba by cuba-platform.
the class HasWindowManager method openEditor.
/**
* Open an edit screen for entity instance. <br> It is recommended to use {@link ScreenBuilders} bean instead.
*
* @param item entity to edit
* @param openType how to open the screen
* @param params parameters to pass to {@code init()} method of the screen's controller
* @param parentDs if this parameter is not null, the editor will commit edited instance into this
* datasource instead of directly to database
* @return created window
*/
@Deprecated
default AbstractEditor openEditor(Entity item, WindowManager.OpenType openType, Map<String, Object> params, Datasource parentDs) {
WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME);
WindowInfo editorScreen = windowConfig.getEditorScreen(item);
return (AbstractEditor) getWindowManager().openEditor(editorScreen, item, openType, params, parentDs);
}
use of com.haulmont.cuba.gui.config.WindowInfo in project cuba by cuba-platform.
the class HasWindowManager method openEditor.
/**
* Open an edit screen. <br> It is recommended to use {@link ScreenBuilders} bean instead.
*
* @param windowAlias screen ID as defined in {@code screens.xml}
* @param item entity to edit
* @param openType how to open the screen
* @param parentDs if this parameter is not null, the editor will commit edited instance into this
* datasource instead of directly to database
* @return created window
*/
@Deprecated
default AbstractEditor openEditor(String windowAlias, Entity item, WindowManager.OpenType openType, Datasource parentDs) {
WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME);
WindowInfo windowInfo = windowConfig.getWindowInfo(windowAlias);
return (AbstractEditor) getWindowManager().openEditor(windowInfo, item, openType, parentDs);
}
use of com.haulmont.cuba.gui.config.WindowInfo in project cuba by cuba-platform.
the class HasWindowManager method openEditor.
/**
* Open an edit screen. <br> It is recommended to use {@link ScreenBuilders} bean instead.
*
* @param windowAlias screen ID as defined in {@code screens.xml}
* @param item entity to edit
* @param openType how to open the screen
* @param params parameters to pass to {@code init()} method of the screen's controller
* @param parentDs if this parameter is not null, the editor will commit edited instance into this
* datasource instead of directly to database
* @return created window
*/
@Deprecated
default AbstractEditor openEditor(String windowAlias, Entity item, WindowManager.OpenType openType, Map<String, Object> params, Datasource parentDs) {
WindowConfig windowConfig = AppBeans.get(WindowConfig.NAME);
WindowInfo windowInfo = windowConfig.getWindowInfo(windowAlias);
return (AbstractEditor) getWindowManager().openEditor(windowInfo, item, openType, params, parentDs);
}
use of com.haulmont.cuba.gui.config.WindowInfo in project cuba by cuba-platform.
the class FragmentComponentLoader method createComponent.
@Override
public void createComponent() {
String src = element.attributeValue("src");
String screenId = element.attributeValue("screen");
if (src == null && screenId == null) {
throw new GuiDevelopmentException("Either 'src' or 'screen' must be specified for 'frame'", context, "fragment", element.attributeValue("id"));
}
String fragmentId;
if (element.attributeValue("id") != null) {
fragmentId = element.attributeValue("id");
} else if (screenId != null) {
fragmentId = screenId;
} else {
fragmentId = src;
}
FragmentHelper fragmentHelper = getFragmentHelper();
WindowInfo windowInfo;
if (src == null) {
// load screen class only once
windowInfo = getWindowConfig().getWindowInfo(screenId).resolve();
} else {
windowInfo = fragmentHelper.createFakeWindowInfo(src, fragmentId);
}
StopWatch createStopWatch = createStopWatch(ScreenLifeCycle.CREATE, windowInfo.getId());
Fragment fragment = factory.create(Fragment.NAME);
ScreenFragment controller = fragmentHelper.createController(windowInfo, fragment);
// setup screen and controller
ComponentLoaderContext parentContext = (ComponentLoaderContext) getContext();
FrameOwner hostController = parentContext.getFrame().getFrameOwner();
setHostController(controller, hostController);
setWindowId(controller, windowInfo.getId());
setFrame(controller, fragment);
setScreenContext(controller, new ScreenContextImpl(windowInfo, parentContext.getOptions(), getScreenContext(hostController)));
setScreenData(controller, new ScreenDataImpl());
FragmentImplementation fragmentImpl = (FragmentImplementation) fragment;
fragmentImpl.setFrameOwner(controller);
fragmentImpl.setId(fragmentId);
FragmentContextImpl frameContext = new FragmentContextImpl(fragment, innerContext);
((FrameImplementation) fragment).setContext(frameContext);
if (windowInfo.getTemplate() != null) {
String frameId = fragmentId;
if (parentContext.getFullFrameId() != null) {
frameId = parentContext.getFullFrameId() + "." + frameId;
}
innerContext = new ComponentLoaderContext(getComponentContext().getOptions());
innerContext.setMessagesPack(fragmentHelper.getMessagePack(windowInfo.getTemplate()));
innerContext.setCurrentFrameId(fragmentId);
innerContext.setFullFrameId(frameId);
innerContext.setFrame(fragment);
innerContext.setParent(parentContext);
innerContext.setProperties(loadProperties(element));
LayoutLoader layoutLoader = getLayoutLoader(innerContext);
ScreenXmlLoader screenXmlLoader = beanLocator.get(ScreenXmlLoader.NAME);
Element rootElement = screenXmlLoader.load(windowInfo.getTemplate(), windowInfo.getId(), getComponentContext().getParams());
String messagesPack = rootElement.attributeValue("messagesPack");
if (messagesPack != null) {
innerContext.setMessagesPack(messagesPack);
}
this.fragmentLoader = layoutLoader.createFragmentContent(fragment, rootElement);
}
createStopWatch.stop();
this.resultComponent = fragment;
}
Aggregations