use of com.haulmont.cuba.gui.model.ScreenData in project cuba by cuba-platform.
the class AnnotationBasedLoaderBeforeShow method loadData.
@Override
public void loadData(Screen screen) {
LoadDataBeforeShow annotation = screen.getClass().getAnnotation(LoadDataBeforeShow.class);
if (annotation != null && annotation.value()) {
ScreenData screenData = UiControllerUtils.getScreenData(screen);
screenData.loadAll();
}
}
use of com.haulmont.cuba.gui.model.ScreenData in project cuba by cuba-platform.
the class RemoveOperation method commitIfNeeded.
protected void commitIfNeeded(Collection<? extends Entity> entitiesToRemove, CollectionContainer container, ScreenData screenData) {
List<? extends Entity> entitiesToCommit = entitiesToRemove.stream().filter(entity -> !entityStates.isNew(entity)).collect(Collectors.toList());
boolean needCommit = !entitiesToCommit.isEmpty();
if (container instanceof Nested) {
InstanceContainer masterContainer = ((Nested) container).getMaster();
String property = ((Nested) container).getProperty();
MetaClass masterMetaClass = masterContainer.getEntityMetaClass();
MetaProperty metaProperty = masterMetaClass.getPropertyNN(property);
needCommit = needCommit && (metaProperty.getType() != MetaProperty.Type.COMPOSITION);
}
if (needCommit) {
CommitContext commitContext = new CommitContext();
for (Entity entity : entitiesToCommit) {
commitContext.addInstanceToRemove(entity);
}
dataManager.commit(commitContext);
for (Entity entity : entitiesToRemove) {
screenData.getDataContext().evict(entity);
}
} else {
for (Entity entity : entitiesToRemove) {
screenData.getDataContext().remove(entity);
}
}
}
use of com.haulmont.cuba.gui.model.ScreenData in project cuba by cuba-platform.
the class FragmentLoader method loadScreenData.
protected void loadScreenData(Element dataEl) {
ScreenData hostScreenData = null;
ComponentContext parent = getComponentContext().getParent();
while (hostScreenData == null && parent != null) {
hostScreenData = parent.getScreenData();
parent = parent.getParent();
}
ScreenDataXmlLoader screenDataXmlLoader = beanLocator.get(ScreenDataXmlLoader.class);
ScreenData screenData = UiControllerUtils.getScreenData(resultComponent.getFrameOwner());
screenDataXmlLoader.load(screenData, dataEl, hostScreenData);
((ComponentLoaderContext) context).setScreenData(screenData);
}
use of com.haulmont.cuba.gui.model.ScreenData in project cuba by cuba-platform.
the class TokenListLoader method loadOptionsContainer.
protected void loadOptionsContainer(TokenList component, Element element) {
String containerId = element.attributeValue("optionsContainer");
if (containerId != null) {
FrameOwner frameOwner = getComponentContext().getFrame().getFrameOwner();
ScreenData screenData = UiControllerUtils.getScreenData(frameOwner);
InstanceContainer container = screenData.getContainer(containerId);
if (!(container instanceof CollectionContainer)) {
throw new GuiDevelopmentException("Not a CollectionContainer: " + containerId, context);
}
// noinspection unchecked
component.setOptions(new ContainerOptions((CollectionContainer) container));
}
}
use of com.haulmont.cuba.gui.model.ScreenData in project cuba by cuba-platform.
the class TreeLoader method loadTreeChildren.
@SuppressWarnings("unchecked")
protected void loadTreeChildren() {
Element itemsElem = element.element("treechildren");
String containerId = element.attributeValue("dataContainer");
if (containerId != null) {
FrameOwner frameOwner = getComponentContext().getFrame().getFrameOwner();
ScreenData screenData = UiControllerUtils.getScreenData(frameOwner);
InstanceContainer container = screenData.getContainer(containerId);
CollectionContainer collectionContainer;
if (container instanceof CollectionContainer) {
collectionContainer = (CollectionContainer) container;
} else {
throw new GuiDevelopmentException("Not a CollectionContainer: " + containerId, context);
}
String hierarchyProperty = element.attributeValue("hierarchyProperty");
if (hierarchyProperty == null && itemsElem != null) {
// legacy behaviour
hierarchyProperty = itemsElem.attributeValue("hierarchyProperty");
}
if (Strings.isNullOrEmpty(hierarchyProperty)) {
throw new GuiDevelopmentException("Tree doesn't have 'hierarchyProperty' attribute of the 'treechildren' element", context, "Tree ID", element.attributeValue("id"));
}
String showOrphansAttr = element.attributeValue("showOrphans");
boolean showOrphans = showOrphansAttr == null || Boolean.parseBoolean(showOrphansAttr);
resultComponent.setItems(new ContainerTreeItems(collectionContainer, hierarchyProperty, showOrphans));
} else if (itemsElem != null) {
String datasource = itemsElem.attributeValue("datasource");
if (!StringUtils.isBlank(datasource)) {
HierarchicalDatasource ds = (HierarchicalDatasource) getComponentContext().getDsContext().get(datasource);
resultComponent.setDatasource(ds);
}
}
String captionProperty = element.attributeValue("captionProperty");
if (captionProperty == null && itemsElem != null) {
captionProperty = itemsElem.attributeValue("captionProperty");
}
if (!StringUtils.isEmpty(captionProperty)) {
resultComponent.setCaptionProperty(captionProperty);
resultComponent.setCaptionMode(CaptionMode.PROPERTY);
}
}
Aggregations