I have an entity browser in my application (PrototypeActivity.browse) which calls an editor. I was trying to add code in the editor to access an application parameter and then I began facing this exception when the “Edit” button was clicked.
The editor called is Activity.edit and it appears this screen is failing to be built from the XML. I did not make any changes to the editor´s XML.
Error message and stack trace are below:
RuntimeException: Unable to create instance of screen class class com.calidus.pdcs.screen.activity.ActivityEdit
java.lang.RuntimeException: Unable to create instance of screen class class com.calidus.pdcs.screen.activity.ActivityEdit
at io.jmix.ui.sys.ScreensImpl.createController(ScreensImpl.java:849)
at io.jmix.ui.sys.ScreensImpl.createScreen(ScreensImpl.java:169)
at io.jmix.ui.sys.ScreensImpl.create(ScreensImpl.java:145)
at io.jmix.ui.builder.EditorBuilderProcessor.createScreen(EditorBuilderProcessor.java:314)
at io.jmix.ui.builder.EditorBuilderProcessor.buildEditor(EditorBuilderProcessor.java:88)
at io.jmix.ui.builder.EditorBuilder.build(EditorBuilder.java:355)
at io.jmix.ui.action.list.EditAction.execute(EditAction.java:363)
at io.jmix.ui.action.list.EditAction.actionPerform(EditAction.java:324)
at io.jmix.ui.component.impl.ButtonImpl.buttonClicked(ButtonImpl.java:75)
at io.jmix.ui.widget.JmixButton.fireClick(JmixButton.java:77)
at com.vaadin.ui.Button$1.click(Button.java:57)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:153)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:115)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:442)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:407)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:275)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:83)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1636)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:465)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at io.jmix.core.impl.logging.LogMdcFilter.doFilterInternal(LogMdcFilter.java:28)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:106)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:147)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:928)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1794)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
The code and XML for both the browser and editor are shown below:
package com.calidus.pdcs.screen.activity;
import com.calidus.pdcs.entity.products.Prototype;
.
.
.
@UiController("PrototypeActivity.browse")
@UiDescriptor("prototype-activity-browse.xml")
@LookupComponent("activitiesTable")
public class PrototypeActivityBrowse extends StandardLookup<Activity> {
private Prototype prototype;
@Autowired
private CollectionLoader<Activity> activitiesDl;
@Autowired
private ScreenBuilders screenBuilders;
@Autowired
Label<String> proModelLabel;
@Autowired
Label<String> pttSerialNumberLabel;
@Autowired
DataManager dataManager;
@Subscribe
public void onInit(InitEvent event) {
ScreenOptions options = event.getOptions();
if (options instanceof PrototypeActivityOptions) {
this.prototype = ((PrototypeActivityOptions) options).getPrototype();
proModelLabel.setValue(prototype.getPttPro().getProModel().trim());
pttSerialNumberLabel.setValue(prototype.getPttSerialNumber());
}
else{
this.prototype = null;
}
}
protected void loadActivities() {
activitiesDl.load();
}
@Subscribe("activitiesTable.create")
public void onActivitiesTableCreate(Action.ActionPerformedEvent event) {
screenBuilders.editor(Activity.class,this)
.withInitializer(e->{ e.setActPtt(prototype);
e.setActCreationDate(LocalDateTime.now());
e.setActLastChangeDate(LocalDateTime.now());
})
.newEntity()
.build()
.show()
.addAfterCloseListener(e->loadActivities());
}
@Install(to = "activitiesDl", target = Target.DATA_LOADER)
protected List<Activity> activitiesDlLoadDelegate(LoadContext<Activity> loadContext) {
// Load the activities for a prototype
return dataManager.load(Activity.class)
.query( "select act from Activity act" +
" where act.actPtt = :ptpp")
.parameter("ptpp", this.prototype)
.list();
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<window xmlns="http://jmix.io/schema/ui/window"
xmlns:c="http://jmix.io/schema/ui/jpql-condition"
caption="msg://prototypeActivityBrowse.caption"
focusComponent="activitiesTable">
<data readOnly="true">
<collection id="activitiesDc"
class="com.calidus.pdcs.entity.activities.Activity">
<fetchPlan extends="_base"/>
<loader id="activitiesDl">
</loader>
</collection>
</data>
<facets>
<screenSettings id="settingsFacet" auto="true"/>
<dataLoadCoordinator auto="true"/>
</facets>
<actions>
<action id="lookupSelectAction"
caption="msg:///actions.Select"
icon="LOOKUP_OK"
primary="true"
shortcut="${COMMIT_SHORTCUT}"/>
<action id="lookupCancelAction"
caption="msg:///actions.Cancel"
icon="LOOKUP_CANCEL"/>
</actions>
<dialogMode height="600"
width="800"/>
<layout expand="activitiesTable" spacing="true">
<hbox spacing="false">
<label value="Prototype: " stylename="h2"/>
<label id="proModelLabel" stylename="h2"/>
<label value="-" stylename="h2"/>
<label id="pttSerialNumberLabel" stylename="h2"/>
</hbox>
<filter id="filter"
dataLoader="activitiesDl">
<properties include=".*"/>
</filter>
<table id="activitiesTable"
width="100%"
dataContainer="activitiesDc">
<actions>
<action id="create" type="create"/>
<action id="edit" type="edit"/>
<action id="remove" type="remove"/>
</actions>
<columns>
<column id="actOrder" caption="msg://com.calidus.pdcs.screen.activity/prototypeActivityBrowse.actOrder"/>
<column id="actName" caption="msg://com.calidus.pdcs.screen.activity/prototypeActivityBrowse.actName"/>
<column id="actCreationDate"
caption="msg://com.calidus.pdcs.screen.activity/prototypeActivityBrowse.actCreationDate"/>
<column id="actStartDate"
caption="msg://com.calidus.pdcs.screen.activity/prototypeActivityBrowse.actStartDate"/>
<column id="actEndDate"
caption="msg://com.calidus.pdcs.screen.activity/prototypeActivityBrowse.actEndDate"/>
<column id="actType"/>
<column id="actReason"/>
</columns>
<simplePagination/>
<buttonsPanel id="buttonsPanel"
alwaysVisible="true">
<button id="createBtn" stylename="small" action="activitiesTable.create"/>
<button id="editBtn" stylename="small" action="activitiesTable.edit"/>
<button id="removeBtn" stylename="small" action="activitiesTable.remove"/>
</buttonsPanel>
</table>
<hbox id="lookupActions" spacing="true" visible="false">
<button action="lookupSelectAction"/>
<button action="lookupCancelAction"/>
</hbox>
</layout>
</window>
package com.calidus.pdcs.screen.activity;
import com.calidus.pdcs.core.WxCGCalculator;
.
.
.
@UiController("Activity.edit")
@UiDescriptor("activity-edit.xml")
@EditedEntityContainer("activityDc")
public class ActivityEdit extends StandardEditor<Activity> implements EntityChangeListener {
@Autowired
private FileStorageLocator fileStorageLocator;
protected FileStorage fileStorage = fileStorageLocator.getDefault();
@Autowired
private TaskBrowserEditorFragment actTasks;
@Autowired
private TabSheet actTabs;
@Autowired
private Button saveBtn;
@Autowired
private Button commitAndCloseBtn;
@Autowired
private Table<FtiParameter> actFpmsTable;
@Autowired
ActivityWcgFragment actWCGFrag;
@Autowired
private WcgGraphFragment xWCgGraph;
@Autowired
private WcgGraphFragment yWCgGraph;
@Autowired
Messages messages;
@Autowired
private TextField<String> actNameField;
@Autowired
protected DataContext dataContext;
@Autowired
protected CollectionContainer<FtiParameter>actFpmsDc;
@Value("${app.storage.activity.descr.folder}")
protected String actDescrFolder;
public String getActDescrFolder() {
return actDescrFolder;
}
@Subscribe
public void onBeforeShow(BeforeShowEvent event) {
// Initialize dependent fragments
actWCGFrag.setEntityChangeListener(this);
actTasks.setEntityChangeListener(this);
}
private void updateGraphs(){
// Update the WxCG graphs
// Set the X and Y CG graphs
Product product = this.getEditedEntity().getActPtt().getPttPro();
this.xWCgGraph.setProduct(product);
this.xWCgGraph.clearWcgPath();
this.xWCgGraph.setAcftAxis(AcftAxis.X);
this.xWCgGraph.setGraphTitle(messages.getMessage("com.calidus.pdcs.screen.activity/activityEdit.tsWCG.xWCGGraph.caption"));
this.yWCgGraph.setProduct(product);
this.yWCgGraph.clearWcgPath();
this.yWCgGraph.setAcftAxis(AcftAxis.Y);
this.yWCgGraph.setGraphTitle(messages.getMessage("com.calidus.pdcs.screen.activity/activityEdit.tsWCG.yWCGGraph.caption"));
List<WxCGCalculator> wCGStates = this.actWCGFrag.getwCGStates();
for (WxCGCalculator wcgCalculator:wCGStates){
XYSeries xSeries = new XYSeries(wcgCalculator.getCalcDataSz());
XYSeries ySeries = new XYSeries(wcgCalculator.getCalcDataSz());
for (int i=0; i<wcgCalculator.getCalcDataSz();i++){
xSeries.setData(i, (double) wcgCalculator.getXCG()[i], (double) wcgCalculator.getTotalWeight()[i]);
ySeries.setData(i, (double) wcgCalculator.getYCG()[i], (double) wcgCalculator.getTotalWeight()[i]);
}
xSeries.setColor(String.format("%06X", Color.BLACK.getRGB() & 0xffffff));
ySeries.setColor(String.format("%06X", Color.BLACK.getRGB() & 0xffffff));
this.xWCgGraph.addWcgPath(xSeries);
this.yWCgGraph.addWcgPath(ySeries);
}
this.xWCgGraph.refresh();
this.yWCgGraph.refresh();
}
private void onDataChange() {
// Handles the change of any data related to this activity
// Set the last changed timestamp for force the activity to be saved
// and the related entities to be saved by cascading
this.getEditedEntity().setActLastChangeDate(LocalDateTime.now());
if ((actTabs.getSelectedTab() != null) && (actTabs.getSelectedTab().getName().equals("tsWCG"))) {
// Recalculate the Weight and CG information
actWCGFrag.recalculate();
// Update the WCG graphs
updateGraphs();
}
}
@Subscribe("actTabs")
public void onActTabsSelectedTabChange(TabSheet.SelectedTabChangeEvent event) {
TabSheet.Tab selectedTab = event.getSelectedTab();
if (selectedTab.getName().equals("tsTasks")) {
// Load the tasks for this activity on the tasks browser fragment
actTasks.refresh();
}
else {
if (selectedTab.getName().equals("tsWCG")) {
// Refresh the WCG tabs
actWCGFrag.refresh();
// Recalculate the Weight and CG information
actWCGFrag.recalculate();
// Update the WCG graphs
updateGraphs();
}
else {
if (selectedTab.getName().equals("tsActDescrDoc")) {
// FileRef descrDocRef = new FileRef(fileStorage.getStorageName(), actDescrFolder, "teste.doc");
} else {
}
}
}
}
public void onEntityChange(Entity entity) {
// Handle changes done to the current instance
onDataChange();
}
public Entity getEditedInstance() {
// Returns the entity instance being edited
return (Entity) getEditedEntity();
}
public DataContext getDataContext(){
return dataContext;
}
@Install(to = "actFpmsTable.add", subject = "screenOptionsSupplier")
private ScreenOptions actFpmsTableAddScreenOptionsSupplier() {
return new FtiParameterOptions(this.getEditedEntity().getActPtt().getPttPro()
, new HashSet<>(this.actFpmsTable.getItems().getItems()));
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<window xmlns="http://jmix.io/schema/ui/window"
caption="msg://activityEdit.caption"
focusComponent="form">
<data>
<instance id="activityDc"
class="com.calidus.pdcs.entity.activities.Activity">
<fetchPlan extends="_base">
<property name="actPtt" fetchPlan="_base" fetch="JOIN">
<property name="pttPro" fetchPlan="_base" fetch="JOIN"/>
</property>
<property name="actTsks" fetchPlan="_base">
<property name="tskLdis" fetchPlan="_base" fetch="JOIN">
<property name="ldiPmi" fetchPlan="_base" fetch="JOIN">
<property name="pmiMias" fetchPlan="_base" fetch="JOIN"/>
</property>
</property>
</property>
<property name="actFpms" fetchPlan="_base"/>
</fetchPlan>
<loader/>
<collection id="actFpmsDc" property="actFpms"/>
</instance>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
<screenSettings id="settingsFacet" auto="true"/>
</facets>
<actions>
<action id="windowCommitAndClose" caption="msg:///actions.Ok"
icon="EDITOR_OK"
primary="true"
shortcut="${COMMIT_SHORTCUT}"/>
<action id="windowClose"
caption="msg:///actions.Close"
icon="EDITOR_CANCEL"/>
<action id="windowCommit"
caption="msg://com.calidus.pdcs.screen.taskdefinition/taskDefinitionEdit.saveChanges"
icon="font-icon:SAVE"/>
</actions>
<dialogMode height="AUTO"
width="AUTO"
modal="true"/>
<layout spacing="true" expand="editActions">
<form id="form" dataContainer="activityDc" width="100%" align="TOP_CENTER">
<column width="100%">
<textField id="actNameField"
property="actName"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.actName.caption"/>
<!-- <dateField id="actCreationDateField" property="actCreationDate"/>-->
<!-- <dateField id="actStartDateField" property="actStartDate"/>-->
<!-- <dateField id="actEndDateField" property="actEndDate"/>-->
<tabSheet id="actTabs" width="100%" align="TOP_CENTER">
<tab id="tsMain"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsMain.caption"
margin="true"
spacing="true"
expand="actDescrField">
<comboBox id="actTypeField"
property="actType"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.actType.caption"
dataContainer="activityDc"
optionsEnum="com.calidus.pdcs.screen.activity.ActivityType"/>
<comboBox id="actReasonField"
property="actReason"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.actReason.caption"
dataContainer="activityDc"
optionsEnum="com.calidus.pdcs.screen.activity.ActivityReason"/>
<textArea id="actDescrField"
property="actDescr"
dataContainer="activityDc"
width="100%"/>
</tab>
<tab id="tsConfig"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsConfig.caption"
margin="true"
spacing="true">
<richTextArea id="actConfigSpecField"
width="100%"
dataContainer="activityDc"
property="actConfigSpec"/>
</tab>
<tab id="tsWCG"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsWCG.caption"
margin="true"
spacing="true">
<hbox width="100%">
<fragment id="xWCgGraph" screen="WcgGraphFragment" width="100%"/>
<fragment id="yWCgGraph" screen="WcgGraphFragment" width="100%"/>
</hbox>
<scrollBox id="sbLoads"
width="100%"
height="150px"
spacing="false"
caption="">
<fragment id="actWCGFrag" screen="ActivityWcgFragment" width="100%" height="100%"/>
</scrollBox>
</tab>
<tab id="tsActReq"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsActReq.caption"
margin="true"
spacing="true">
</tab>
<tab id="tsTasks"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsTasks.caption"
margin="true"
spacing="true"
expand="actTasks">
<fragment id="actTasks" screen="TaskBrowserEditorFragment" width="100%"/>
</tab>
<tab id="tsFti"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsFti.caption"
margin="true"
spacing="true"
expand="actFpmsBox">
<groupBox id="actFpmsBox" caption="msg://com.calidus.pdcs.entity.activities/Activity.actFpms" width="100%">
<table id="actFpmsTable" dataContainer="actFpmsDc" width="100%" height="100%" align="BOTTOM_LEFT">
<actions>
<action id="add" type="add">
<properties>
<property name="openMode" value="DIALOG"/>
<property name="screenClass" value="com.calidus.pdcs.screen.ftiparameter.FtiParameterLookup"/>
</properties>
</action>
<action id="exclude" type="exclude"/>
</actions>
<columns>
<column id="fpmCode"/>
<column id="fpmName"/>
</columns>
<buttonsPanel>
<button action="actFpmsTable.add" stylename="small"/>
<button action="actFpmsTable.exclude" stylename="small"/>
</buttonsPanel>
</table>
</groupBox>
</tab>
<tab id="tsAppr"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsAppr.caption"
margin="true"
spacing="true">
</tab>
<tab id="tsActRpt"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsActRpt.caption"
margin="true"
spacing="true">
</tab>
<tab id="tsActDescrDoc"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.tsActDescrDoc.caption"
margin="true"
spacing="true">
<groupBox width="100%" height="AUTO">
<button id="btGenDescr"
caption="msg://com.calidus.pdcs.screen.activity/activityEdit.btGenDescr.caption"/>
</groupBox>
</tab>
</tabSheet>
</column>
</form>
<hbox id="editActions" spacing="true" align="BOTTOM_RIGHT">
<button id="closeBtn" action="windowClose" stylename="small"/>
<button id="saveBtn" action="windowCommit" stylename="small"/>
<button id="commitAndCloseBtn" action="windowCommitAndClose" stylename="small"/>
</hbox>
</layout>
</window>
I don´t know if there is any relation but I am also facing a problem with the Intelij debugger which is losing its synchronization to the source code.
I tried a build with clean and also deleted the whole “build” folder under the project but with no improvement in the situation.
Any clues on what might be wrong?
Jmix version: 1.5.5
Jmix Studio plugin version: 1.5.6-231
IntelliJ version: IntelliJ IDEA 2023.1.5 (Community Edition)
java version “11.0.10” 2021-01-19 LTS
Java™ SE Runtime Environment 18.9 (build 11.0.10+8-LTS-162)
Java HotSpot™ 64-Bit Server VM 18.9 (build 11.0.10+8-LTS-162, mixed mode)