diff --git a/.classpath b/.classpath index 9bc1b29..a25dc2c 100644 --- a/.classpath +++ b/.classpath @@ -28,7 +28,6 @@ - diff --git a/pom.xml b/pom.xml index 1cf8b6f..b3e22e5 100644 --- a/pom.xml +++ b/pom.xml @@ -102,6 +102,18 @@ mysql mysql-connector-java + + com.google.gwt + gwt-elemental + 2.8.2 + + + com.google.gwt + gwt-user + 2.8.2 + provided + + commons-io diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CsvExporter.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CsvExporter.java index 5bfae4e..e71d372 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CsvExporter.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CsvExporter.java @@ -1,17 +1,55 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.business; +import java.io.IOException; +import java.io.Writer; +import java.time.format.DateTimeFormatter; +import java.time.format.FormatStyle; +import java.util.Arrays; +import java.util.List; + import org.apache.commons.csv.CSVFormat; +import org.apache.commons.csv.CSVPrinter; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; public class CsvExporter { + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM); + private static final String HEAD_DATUM = "Datum"; - private static final String HEAD_CAPTION = "Datum"; + private static final String HEAD_CAPTION = "Bezeichnung"; private static final String HEAD_ORT = "Ort"; - private static final String[] HEAD = { HEAD_DATUM, HEAD_CAPTION, HEAD_ORT }; + private static final String HEAD_TEILNEHMER = "Teilnehmer"; + + private static final String[] HEAD = { HEAD_DATUM, HEAD_CAPTION, HEAD_ORT, HEAD_TEILNEHMER }; private final CSVFormat format = CSVFormat.RFC4180.withDelimiter(',') .withHeader(HEAD); + + public void export(List items, Writer out) throws IOException { + CSVPrinter printer = format.print(out); + printer.printRecords(Arrays.asList(HEAD)); + + for (ClubEvent event : items) { + String start = FORMATTER.format(event.getStart()); + String end = FORMATTER.format(event.getEnd()); + if (start.equals(end) == false) { + start = start + "-" + end; + } + + StringBuilder competitors = new StringBuilder(); + + for (Person p : event.getPersons()) { + if (competitors.length() > 0) { + competitors.append(","); + } + competitors.append(p.getPrename()).append(" ").append(p.getSurname()); + } + printer.printRecord(start, event.getCaption(), event.getLocation(), competitors.toString()); + } + } } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java index eb92bed..eab4e09 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/data/GroupDef.java @@ -57,7 +57,6 @@ public class GroupDef extends BaseEntity implements Serializable { final int prime = 31; int result = super.hashCode(); result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((persongroups == null) ? 0 : persongroups.hashCode()); return result; } @@ -81,14 +80,6 @@ public class GroupDef extends BaseEntity implements Serializable { else if (!name.equals(other.name)) { return false; } - if (persongroups == null) { - if (other.persongroups != null) { - return false; - } - } - else if (!persongroups.equals(other.persongroups)) { - return false; - } return true; } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventGrid.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventGrid.java index cbf5c57..f835169 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventGrid.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventGrid.java @@ -3,42 +3,43 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.basilbourque.timecolumnrenderers.ZonedDateTimeRenderer; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; import com.vaadin.data.provider.ConfigurableFilterDataProvider; import com.vaadin.data.provider.DataProvider; import com.vaadin.server.SerializablePredicate; import com.vaadin.ui.Grid; import com.vaadin.ui.Label; +import com.vaadin.ui.renderers.AbstractRenderer; +import com.vaadin.ui.renderers.Renderer; import de.kreth.vaadin.clubhelper.vaadinclubhelper.business.EventBusiness; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; +import elemental.js.json.JsJsonFactory; +import elemental.json.JsonArray; +import elemental.json.JsonValue; -@Component public class EventGrid extends Grid { - private static final long serialVersionUID = -5435770187868470290L; - - private final transient DateTimeFormatter df = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM); - private ConfigurableFilterDataProvider> eventDataProvider; private transient EventBusiness business; - public EventGrid(@Autowired EventBusiness eventBusiness) { + public EventGrid(EventBusiness eventBusiness) { + this(eventBusiness, false); + } + + public EventGrid(EventBusiness eventBusiness, boolean withCompetitors) { this.business = eventBusiness; - setCaption("Veranstaltungen"); setSizeFull(); setSelectionMode(SelectionMode.NONE); - addColumn(ClubEvent::getStart, dt -> { - return dt != null ? df.format(dt) : ""; - }).setCaption("Start"); addComponentColumn(ev -> { Label l = new Label(); @@ -48,10 +49,13 @@ public class EventGrid extends Grid { return l; }).setSortable(true).setHidable(false); addColumn(ClubEvent::getStart).setCaption("Start") - .setRenderer(new ZonedDateTimeRenderer(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM))) + .setRenderer(new TestRenderer(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM))) .setSortable(true).setHidable(true); addColumn(ClubEvent::getCaption).setCaption("Bezeichnung"); addColumn(ClubEvent::getLocation).setCaption("Ort"); + if (withCompetitors) { +// addColumn(ClubEvent::getPersons).setCaption("Teilnehmer").setRenderer(createRenderer()); + } List loadEvents = business.loadEvents(); @@ -61,6 +65,46 @@ public class EventGrid extends Grid { setDataProvider(eventDataProvider); } + class TestRenderer extends ZonedDateTimeRenderer { + + protected TestRenderer(DateTimeFormatter formatter) { + super(formatter); + } + + @Override + public JsonValue encode(ZonedDateTime value) { + JsonValue encodeed = super.encode(value); + return encodeed; + } + } + + private Renderer> createRenderer() { + return new PersonSetRenderer(); + } + + private static final Set set = new HashSet<>(); + + class PersonSetRenderer extends AbstractRenderer> { + + @SuppressWarnings("unchecked") + protected PersonSetRenderer() { + super((Class>) set.getClass()); + } + + @Override + public JsonValue encode(Set value) { + JsJsonFactory jsonFactory = new JsJsonFactory(); + JsonArray personArray = jsonFactory.createArray(); + int index = 0; + for (Person p : value) { + personArray.set(index, p.getPrename() + " " + p.getSurname()); + index++; + } + return personArray; + } + + } + private boolean filter(ClubEvent ev) { return ev.getStart().isAfter(ZonedDateTime.now().minusMonths(1).withDayOfMonth(1)); } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java index ddd397b..deee4e6 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java @@ -4,7 +4,10 @@ import java.util.Stack; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; import com.vaadin.navigator.Navigator; @@ -21,10 +24,12 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.EventDetails; @Component -public class ClubhelperNavigation { +public class ClubhelperNavigation implements ApplicationContextAware { private static final Logger LOGGER = LoggerFactory.getLogger(ClubhelperNavigation.class); + private ApplicationContext context; + @Autowired PersonDao personDao; @@ -85,9 +90,10 @@ public class ClubhelperNavigation { public MainView createMain() { if (page.getBrowserWindowWidth() < 1000) { - return new MainViewMobile(personDao, groupDao, eventBusiness, securityGroupVerifier); - } else { - return new MainViewDesktop(personDao, groupDao, eventBusiness, securityGroupVerifier); + return new MainViewMobile(context, personDao, groupDao, eventBusiness, securityGroupVerifier); + } + else { + return new MainViewDesktop(context, personDao, groupDao, eventBusiness, securityGroupVerifier); } } @@ -103,6 +109,7 @@ public class ClubhelperNavigation { public class ClubNavigator extends Navigator { private static final long serialVersionUID = -6503600786209888296L; + private final Stack navigationViewNames = new Stack<>(); ClubNavigator init(UI ui) { @@ -131,7 +138,8 @@ public class ClubhelperNavigation { navigationViewNames.clear(); navigationViewNames.add(ClubhelperViews.MainView); super.navigateTo(ClubhelperViews.LoginUI.name()); - } else { + } + else { navigationViewNames.add(byState); super.navigateTo(navigationState); } @@ -143,4 +151,9 @@ public class ClubhelperNavigation { navigateTo(navigationViewNames.pop().name()); } } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.context = applicationContext; + } } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/DesktopHeadView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/DesktopHeadView.java index f8bdf84..3664e52 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/DesktopHeadView.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/DesktopHeadView.java @@ -3,6 +3,8 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; import java.time.ZonedDateTime; import java.util.function.Function; +import org.springframework.context.ApplicationContext; + import com.vaadin.ui.Component; import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; @@ -13,10 +15,11 @@ public class DesktopHeadView extends HeadView { private static final long serialVersionUID = 1596573215389558000L; - public DesktopHeadView(ClubNavigator navigator, Function startTime, + public DesktopHeadView(ApplicationContext context, ClubNavigator navigator, + Function startTime, Function endTime, ClubEventProvider dataProvider, SecurityVerifier securityVerifier) { - super(navigator, startTime, endTime, dataProvider, securityVerifier); + super(context, navigator, startTime, endTime, dataProvider, securityVerifier); } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java index 48cdac8..5ecebf9 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java @@ -1,8 +1,12 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; +import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.PipedInputStream; import java.io.PipedOutputStream; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; @@ -13,15 +17,16 @@ import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.Function; +import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; import com.vaadin.contextmenu.ContextMenu; +import com.vaadin.data.provider.Query; import com.vaadin.icons.VaadinIcons; +import com.vaadin.server.FileDownloader; import com.vaadin.server.StreamResource; import com.vaadin.ui.AbstractComponent; import com.vaadin.ui.Alignment; @@ -36,6 +41,7 @@ import com.vaadin.ui.Notification; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.business.CsvExporter; import de.kreth.vaadin.clubhelper.vaadinclubhelper.business.EventBusiness; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; @@ -49,11 +55,7 @@ import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperPrint; -public class HeadView extends HorizontalLayout implements ApplicationContextAware { - - private static final long serialVersionUID = -7915475211371903028L; - - private static ApplicationContext context; +public class HeadView extends HorizontalLayout { protected transient final Logger log = LoggerFactory.getLogger(getClass()); @@ -75,10 +77,13 @@ public class HeadView extends HorizontalLayout implements ApplicationContextAwar private final SecurityVerifier securityVerifier; - public HeadView(ClubNavigator navigator, Function startTime, + private ApplicationContext context; + + public HeadView(ApplicationContext context, ClubNavigator navigator, Function startTime, Function endTime, ClubEventProvider dataProvider, SecurityVerifier securityVerifier) { + this.context = context; this.navigator = navigator; this.securityVerifier = securityVerifier; this.startTime = startTime; @@ -163,10 +168,18 @@ public class HeadView extends HorizontalLayout implements ApplicationContextAwar private void calendarCsv(Button button, MenuItem ev1) { EventBusiness eventBusiness = context.getBean(EventBusiness.class); - EventGrid grid = new EventGrid(eventBusiness); + EventGrid grid = new EventGrid(eventBusiness, true); + + HorizontalLayout head = new HorizontalLayout(); + Button downloadButton = new Button("Download", VaadinIcons.DOWNLOAD); + + FileDownloader downloader = new FileDownloader(csvDownload(grid)); + downloader.extend(downloadButton); + + head.addComponents(new Label("Veranstaltungen"), downloadButton); VerticalLayout layout = new VerticalLayout(); - layout.addComponents(grid); + layout.addComponents(head, grid); Window window = new Window(); window.setCaption("Veranstaltungen"); @@ -178,6 +191,29 @@ public class HeadView extends HorizontalLayout implements ApplicationContextAwar button.getUI().addWindow(window); } + private StreamResource csvDownload(EventGrid grid) { + List items = grid.getDataProvider() + .fetch(new Query<>()) + .collect(Collectors.toList()); + CsvExporter exporter = new CsvExporter(); + StringWriter writer = new StringWriter(); + + try { + exporter.export(items, writer); + } + catch (IOException e) { + Notification.show("Fehler beim Erzeugen der Veranstaltungen"); + throw new RuntimeException(e); + } + + InputStream in = new ByteArrayInputStream(writer.toString().getBytes(StandardCharsets.UTF_8)); + final StreamResource resource = new StreamResource(() -> in, "Veranstaltungen.csv"); + resource.setMIMEType("application/pdf"); + + return resource; + + } + private void calendarExport(Button source, MenuItem ev1) { boolean monthOnly = ev1.getId() == monthItemId; @@ -296,9 +332,4 @@ public class HeadView extends HorizontalLayout implements ApplicationContextAwar return c; } - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - HeadView.context = applicationContext; - } - } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktop.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktop.java index c7f53a4..96b9aca 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktop.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktop.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import org.springframework.context.ApplicationContext; import org.vaadin.addon.calendar.ui.CalendarComponentEvents; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; @@ -37,9 +38,13 @@ public class MainViewDesktop extends MainView { private DesktopHeadView head; - public MainViewDesktop(PersonDao personDao, GroupDao groupDao, EventBusiness eventBusiness, + private ApplicationContext context; + + public MainViewDesktop(ApplicationContext context, PersonDao personDao, GroupDao groupDao, + EventBusiness eventBusiness, SecurityVerifier securityGroupVerifier) { super(personDao, groupDao, eventBusiness, securityGroupVerifier); + this.context = context; } @Override @@ -52,7 +57,8 @@ public class MainViewDesktop extends MainView { calendar.setId("main.calendar"); calendar.setHandler(this::onItemClick); - head = new DesktopHeadView(navigator, component -> calendar.getStartDate(), component -> calendar.getEndDate(), + head = new DesktopHeadView(context, navigator, component -> calendar.getStartDate(), + component -> calendar.getEndDate(), dataProvider, securityVerifier); head.setWidth("100%"); head.updateMonthText(calendar.getStartDate()); diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobile.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobile.java index 7656daf..2cda47c 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobile.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobile.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Optional; import org.basilbourque.timecolumnrenderers.ZonedDateTimeRenderer; +import org.springframework.context.ApplicationContext; import com.vaadin.data.provider.ConfigurableFilterDataProvider; import com.vaadin.data.provider.DataProvider; @@ -31,11 +32,6 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarCompone public class MainViewMobile extends MainView { - /** - * - */ - private static final long serialVersionUID = -3293470536470926668L; - private Grid eventGrid; private HeadView head; @@ -44,9 +40,13 @@ public class MainViewMobile extends MainView { ConfigurableFilterDataProvider> eventDataProvider; - public MainViewMobile(PersonDao personDao, GroupDao groupDao, EventBusiness eventBusiness, + private ApplicationContext context; + + public MainViewMobile(ApplicationContext context, PersonDao personDao, GroupDao groupDao, + EventBusiness eventBusiness, SecurityVerifier securityGroupVerifier) { super(personDao, groupDao, eventBusiness, securityGroupVerifier); + this.context = context; } @Override @@ -57,7 +57,7 @@ public class MainViewMobile extends MainView { return; } - head = new HeadView(navigator, component -> showDateTimeDialog(component, "Startdatum"), + head = new HeadView(context, navigator, component -> showDateTimeDialog(component, "Startdatum"), component -> showDateTimeDialog(component, "Endedatum"), new ClubEventProvider(), securityVerifier); head.setWidth("100%"); head.updateLoggedinPerson(); diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktopSmokeTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktopSmokeTest.java index 8488723..cbd6c77 100644 --- a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktopSmokeTest.java +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewDesktopSmokeTest.java @@ -15,6 +15,7 @@ import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.context.ApplicationContext; import org.springframework.test.context.junit4.SpringRunner; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; @@ -36,6 +37,9 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.SingleEventView @Tag("spring") public class MainViewDesktopSmokeTest { + @Autowired + ApplicationContext context; + @Autowired PersonDao personDao; @@ -56,7 +60,7 @@ public class MainViewDesktopSmokeTest { @BeforeEach void initUi() { MockitoAnnotations.initMocks(this); - mainView = new MainViewDesktop(personDao, groupDao, eventBusiness, securityGroupVerifier); + mainView = new MainViewDesktop(context, personDao, groupDao, eventBusiness, securityGroupVerifier); mainView.initUI(event); } diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobileSmokeTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobileSmokeTest.java index 08ef751..7726ff1 100644 --- a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobileSmokeTest.java +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainViewMobileSmokeTest.java @@ -18,6 +18,7 @@ import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Import; import org.springframework.test.context.junit4.SpringRunner; @@ -45,6 +46,9 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.tests.TestConfiguration; @Disabled public class MainViewMobileSmokeTest { + @Autowired + ApplicationContext context; + @Autowired PersonDao personDao; @@ -70,7 +74,7 @@ public class MainViewMobileSmokeTest { person.setGroups(new HashSet(Arrays.asList(g1))); securityGroupVerifier = new SecurityVerifierImpl(); assertFalse(securityGroupVerifier.isLoggedin()); - mainView = new MainViewMobile(personDao, groupDao, eventBusiness, securityGroupVerifier); + mainView = new MainViewMobile(context, personDao, groupDao, eventBusiness, securityGroupVerifier); assertNotNull(securityGroupVerifier); assertNotNull(person);