blob: f5a15afd7272cc524613d95e1a6a7f91f5be678a [file] [log] [blame]
package org.eclipse.osbp.utils.vaadin.problems;
import java.util.Locale;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent;
import org.eclipse.osbp.runtime.common.event.EventDispatcherEvent.EventDispatcherCommand;
import org.eclipse.osbp.runtime.common.event.IEventDispatcher;
import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
import com.vaadin.server.ClientConnector.DetachListener;
import com.vaadin.ui.Window;
public class ProblemsPopup extends Window implements DetachListener {
/**
*
*/
private static final long serialVersionUID = -1106131179854247707L;
private transient IEventDispatcher eventDispatcher;
private ProblemsViewContent problemsViewContent;
private String sender;
private String topic;
private transient IDSLMetadataService dslMetadataService;
public ProblemsPopup(IEclipseContext eclipseContext, Locale locale, String sender, String topic) {
super();
eventDispatcher = eclipseContext.get(IEventDispatcher.class);
dslMetadataService = eclipseContext.get(IDSLMetadataService.class);
this.sender = sender;
this.topic = topic;
super.setLocale(locale);
this.addDetachListener(this);
setClosable(true);
setModal(false);
setCaption(dslMetadataService.translate(locale.toLanguageTag(), "validationReport"));
problemsViewContent = new ProblemsViewContent();
setContent(problemsViewContent.createComponents(eclipseContext, locale, sender, topic));
setWidth("550px");
}
@Override
public void setLocale(Locale locale) {
super.setLocale(locale);
setCaption(dslMetadataService.translate(locale.toLanguageTag(), "validationReport"));
if(problemsViewContent != null) {
problemsViewContent.setLocale(locale);
}
}
@Override
public void detach(DetachEvent event) {
EventDispatcherEvent evt = new EventDispatcherEvent(EventDispatcherCommand.CLOSE, topic, sender);
eventDispatcher.sendEvent(evt);
}
}