package com.constellio.app.ui.tools.vaadin;
import com.constellio.app.ui.application.ConstellioUI;
import com.constellio.app.ui.pages.base.InitUIListener;
import com.constellio.app.ui.pages.base.SessionContext;
import com.constellio.app.ui.pages.base.VaadinSessionContext;
import com.vaadin.ui.HasComponents.ComponentAttachEvent;
import com.vaadin.ui.HasComponents.ComponentAttachListener;
import com.vaadin.ui.HasComponents.ComponentDetachEvent;
import com.vaadin.ui.HasComponents.ComponentDetachListener;
@SuppressWarnings("serial")
public class TestInitUIListener implements InitUIListener {
private SessionContext sessionContext;
public TestInitUIListener(SessionContext testSessionContext) {
this.sessionContext = testSessionContext;
}
@Override
public void beforeInitialize(ConstellioUI ui) {
if (sessionContext != null) {
ui.setSessionContext(sessionContext);
ui.getSession().getSession().setAttribute(VaadinSessionContext.CURRENT_USER_ATTRIBUTE, sessionContext.getCurrentUser());
ui.getSession().getSession().setAttribute(VaadinSessionContext.CURRENT_COLLECTION_ATTRIBUTE, sessionContext.getCurrentCollection());
}
ui.setErrorHandler(new TestErrorHandler());
// ui.addAttachListener(new AttachListener() {
// @Override
// public void attach(AttachEvent event) {
// writePageLoadTime();
// }
// });
//
// ui.addDetachListener(new DetachListener() {
// @Override
// public void detach(DetachEvent event) {
// writePageLoadTime();
// }
// });
ui.addComponentAttachListener(new ComponentAttachListener() {
@Override
public void componentAttachedToContainer(ComponentAttachEvent event) {
writePageLoadTime();
}
});
ui.addComponentDetachListener(new ComponentDetachListener() {
@Override
public void componentDetachedFromContainer(ComponentDetachEvent event) {
writePageLoadTime();
}
});
}
private void writePageLoadTime() {
// new PageLoadTimeWriter().write(new Date());
// validateSerializable(ConstellioUI.getCurrent());
}
private void validateSerializable(ConstellioUI ui) {
// TestSerializationUtils.validateSerializable(ui);
}
@Override
public void afterInitialize(final ConstellioUI ui) {
}
}