Initial commit
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package at.windesign.application;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||
|
||||
/**
|
||||
* The entry point of the Spring Boot application.
|
||||
*/
|
||||
@SpringBootApplication
|
||||
public class Application extends SpringBootServletInitializer
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
SpringApplication.run(Application.class, args);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package at.windesign.application.data.entity;
|
||||
|
||||
public class Movie
|
||||
{
|
||||
private int movieID;
|
||||
private String movieTitle;
|
||||
private String originalTitle;
|
||||
private String releaseDate;
|
||||
private String overview;
|
||||
private String state;
|
||||
private String resolution;
|
||||
|
||||
public Movie(int movieID, String movieTitle, String originalTitle, String releaseDate, String overview, String state, String resolution)
|
||||
{
|
||||
super();
|
||||
this.movieID = movieID;
|
||||
this.movieTitle = movieTitle;
|
||||
this.originalTitle = originalTitle;
|
||||
this.releaseDate = releaseDate;
|
||||
this.overview = overview;
|
||||
this.state = state;
|
||||
this.resolution = resolution;
|
||||
}
|
||||
|
||||
public Movie()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public int getMovieID()
|
||||
{
|
||||
return movieID;
|
||||
}
|
||||
|
||||
public void setMovieID(int movieID)
|
||||
{
|
||||
this.movieID = movieID;
|
||||
}
|
||||
|
||||
public String getMovieTitle()
|
||||
{
|
||||
return movieTitle;
|
||||
}
|
||||
|
||||
public void setMovieTitle(String movieTitle)
|
||||
{
|
||||
this.movieTitle = movieTitle;
|
||||
}
|
||||
|
||||
public String getOriginalTitle()
|
||||
{
|
||||
return originalTitle;
|
||||
}
|
||||
|
||||
public void setOriginalTitle(String originalTitle)
|
||||
{
|
||||
this.originalTitle = originalTitle;
|
||||
}
|
||||
|
||||
public String getReleaseDate()
|
||||
{
|
||||
return releaseDate;
|
||||
}
|
||||
|
||||
public void setReleaseDate(String releaseDate)
|
||||
{
|
||||
this.releaseDate = releaseDate;
|
||||
}
|
||||
|
||||
public String getOverview()
|
||||
{
|
||||
return overview;
|
||||
}
|
||||
|
||||
public void setOverview(String overview)
|
||||
{
|
||||
this.overview = overview;
|
||||
}
|
||||
|
||||
public String getState()
|
||||
{
|
||||
return state;
|
||||
}
|
||||
|
||||
public void setState(String state)
|
||||
{
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public String getResolution()
|
||||
{
|
||||
return resolution;
|
||||
}
|
||||
|
||||
public void setResolution(String resolution)
|
||||
{
|
||||
this.resolution = resolution;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return String.valueOf(movieID);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
package at.windesign.application.data.entity;
|
||||
|
||||
/*
|
||||
$sql = " SELECT serie.seriesID seriesID," .
|
||||
" serie.seriesName seriesName," .
|
||||
" YEAR(serie.firstAired) seriesFirstAired," .
|
||||
" serie.resolution seriesResolution," .
|
||||
" serie.cliffhanger seriesCliffhanger," .
|
||||
" serie.status seriesStatus," .
|
||||
" serie.download seriesDownload," .
|
||||
" season.seasonNumber seasonNumber," .
|
||||
" episode.episodeNumber episodeNumber," .
|
||||
" episode.state episodeState" .
|
||||
" FROM serie" .
|
||||
" LEFT JOIN season ON serie.seriesID = season.seriesID" .
|
||||
" LEFT JOIN episode ON serie.seriesID = episode.seriesID AND season.seasonNumber = episode.seasonNumber" .
|
||||
" WHERE season.seasonNumber != 0 OR" .
|
||||
" serie.seriesID >= 1000000 " .
|
||||
" ORDER BY serie.seriesName," .
|
||||
" serie.firstAired," .
|
||||
" season.seasonNumber," .
|
||||
" episode.episodeNumber;";
|
||||
|
||||
*/
|
||||
public class Series
|
||||
{
|
||||
private int seriesID;
|
||||
private String seriesName;
|
||||
private int seriesFirstAired;
|
||||
private String seriesResolution;
|
||||
private boolean seriesCliffhanger;
|
||||
private String seriesStatus;
|
||||
private String seriesDownload;
|
||||
private int seasonNumber;
|
||||
private int episodeNumber;
|
||||
private String episodeState;
|
||||
|
||||
public Series(int seriesID, String seriesName, int seriesFirstAired, String seriesResolution, boolean seriesCliffhanger, String seriesStatus, String seriesDownload, int seasonNumber, int episodeNumber, String episodeState)
|
||||
{
|
||||
super();
|
||||
this.seriesID = seriesID;
|
||||
this.seriesName = seriesName;
|
||||
this.seriesFirstAired = seriesFirstAired;
|
||||
this.seriesResolution = seriesResolution;
|
||||
this.seriesCliffhanger = seriesCliffhanger;
|
||||
this.seriesStatus = seriesStatus;
|
||||
this.seriesDownload = seriesDownload;
|
||||
this.seasonNumber = seasonNumber;
|
||||
this.episodeNumber = episodeNumber;
|
||||
this.episodeState = episodeState;
|
||||
}
|
||||
|
||||
public Series()
|
||||
{
|
||||
}
|
||||
|
||||
public int getSeriesID()
|
||||
{
|
||||
return seriesID;
|
||||
}
|
||||
|
||||
public void setSeriesID(int seriesID)
|
||||
{
|
||||
this.seriesID = seriesID;
|
||||
}
|
||||
|
||||
public String getSeriesName()
|
||||
{
|
||||
return seriesName;
|
||||
}
|
||||
|
||||
public void setSeriesName(String seriesName)
|
||||
{
|
||||
this.seriesName = seriesName;
|
||||
}
|
||||
|
||||
public int getSeriesFirstAired()
|
||||
{
|
||||
return seriesFirstAired;
|
||||
}
|
||||
|
||||
public void setSeriesFirstAired(int seriesFirstAired)
|
||||
{
|
||||
this.seriesFirstAired = seriesFirstAired;
|
||||
}
|
||||
|
||||
public String getSeriesResolution()
|
||||
{
|
||||
return seriesResolution;
|
||||
}
|
||||
|
||||
public void setSeriesResolution(String seriesResolution)
|
||||
{
|
||||
this.seriesResolution = seriesResolution;
|
||||
}
|
||||
|
||||
public boolean getSeriesCliffhanger()
|
||||
{
|
||||
return seriesCliffhanger;
|
||||
}
|
||||
|
||||
public void setSeriesCliffhanger(boolean seriesCliffhanger)
|
||||
{
|
||||
this.seriesCliffhanger = seriesCliffhanger;
|
||||
}
|
||||
|
||||
public String getSeriesStatus()
|
||||
{
|
||||
return seriesStatus;
|
||||
}
|
||||
|
||||
public void setSeriesStatus(String seriesStatus)
|
||||
{
|
||||
this.seriesStatus = seriesStatus;
|
||||
}
|
||||
|
||||
public String getSeriesDownload()
|
||||
{
|
||||
return seriesDownload;
|
||||
}
|
||||
|
||||
public void setSeriesDownload(String seriesDownload)
|
||||
{
|
||||
this.seriesDownload = seriesDownload;
|
||||
}
|
||||
|
||||
public int getSeasonNumber()
|
||||
{
|
||||
return seasonNumber;
|
||||
}
|
||||
|
||||
public void setSeasonNumber(int seasonNumber)
|
||||
{
|
||||
this.seasonNumber = seasonNumber;
|
||||
}
|
||||
|
||||
public int getEpisodeNumber()
|
||||
{
|
||||
return episodeNumber;
|
||||
}
|
||||
|
||||
public void setEpisodeNumber(int episodeNumber)
|
||||
{
|
||||
this.episodeNumber = episodeNumber;
|
||||
}
|
||||
|
||||
public String getEpisodeState()
|
||||
{
|
||||
return episodeState;
|
||||
}
|
||||
|
||||
public void setEpisodeState(String episodeState)
|
||||
{
|
||||
this.episodeState = episodeState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return String.valueOf(seriesID);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package at.windesign.application.data.service;
|
||||
|
||||
import at.windesign.application.data.entity.Movie;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class MovieService
|
||||
{
|
||||
@Autowired
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
||||
public List<Movie> findAll()
|
||||
{
|
||||
try
|
||||
{
|
||||
return jdbcTemplate.query("SELECT movieID, movieTitle, originalTitle, releaseDate, overview, state, resolution FROM movie ORDER BY movieTitle",
|
||||
(rs, rowNum) -> new Movie(rs.getInt("movieID"), rs.getString("movieTitle"), rs.getString("originalTitle"), rs.getString("releaseDate"), rs.getString("overview"), rs.getString("state"), rs.getString("resolution")));
|
||||
} catch(Exception e)
|
||||
{
|
||||
return new ArrayList<Movie>();
|
||||
}
|
||||
}
|
||||
|
||||
public int saveMovie(Movie movie)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int updateMovie(Movie movie)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int insertMovie(Movie movie)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int deleteMovie(Movie movie)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package at.windesign.application.data.service;
|
||||
|
||||
import at.windesign.application.data.entity.Series;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class SerieService
|
||||
{
|
||||
@Autowired
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
||||
public List<Series> findAll()
|
||||
{
|
||||
try
|
||||
{
|
||||
return jdbcTemplate.query("SELECT serie.seriesID seriesID," +
|
||||
" serie.seriesName seriesName," +
|
||||
" YEAR(serie.firstAired) seriesFirstAired," +
|
||||
" serie.resolution seriesResolution," +
|
||||
" serie.cliffhanger seriesCliffhanger," +
|
||||
" serie.status seriesStatus," +
|
||||
" serie.download seriesDownload," +
|
||||
" season.seasonNumber seasonNumber," +
|
||||
" episode.episodeNumber episodeNumber," +
|
||||
" episode.state episodeState" +
|
||||
" FROM serie" +
|
||||
" LEFT JOIN season ON serie.seriesID = season.seriesID" +
|
||||
" LEFT JOIN episode ON serie.seriesID = episode.seriesID AND season.seasonNumber = episode.seasonNumber" +
|
||||
" WHERE season.seasonNumber != 0 OR" +
|
||||
" serie.seriesID >= 1000000 " +
|
||||
" ORDER BY serie.seriesName," +
|
||||
" serie.firstAired," +
|
||||
" season.seasonNumber," +
|
||||
" episode.episodeNumber;",
|
||||
(rs, rowNum) -> new Series(rs.getInt("seriesID"), rs.getString("seriesName"), rs.getInt("seriesFirstAired"), rs.getString("seriesResolution"), rs.getBoolean("seriesCliffhanger"), rs.getString("seriesStatus"), rs.getString("seriesDownload"), rs.getInt("seasonNumber"), rs.getInt("episodeNumber"), rs.getString("episodeState")));
|
||||
|
||||
} catch(Exception e)
|
||||
{
|
||||
return new ArrayList<Series>();
|
||||
}
|
||||
}
|
||||
|
||||
public int saveSerie(Series Series)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int updateSerie(Series Series)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
private int insertSerie(Series Series)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int deleteSerie(Series Series)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package at.windesign.application.views.Series;
|
||||
|
||||
import at.windesign.application.data.entity.Series;
|
||||
import at.windesign.application.data.service.SerieService;
|
||||
import at.windesign.application.views.main.MainView;
|
||||
import com.vaadin.flow.component.dependency.CssImport;
|
||||
import com.vaadin.flow.component.grid.Grid;
|
||||
import com.vaadin.flow.component.grid.GridVariant;
|
||||
import com.vaadin.flow.component.html.Div;
|
||||
import com.vaadin.flow.component.notification.Notification;
|
||||
import com.vaadin.flow.component.textfield.TextField;
|
||||
import com.vaadin.flow.router.AfterNavigationEvent;
|
||||
import com.vaadin.flow.router.AfterNavigationObserver;
|
||||
import com.vaadin.flow.router.PageTitle;
|
||||
import com.vaadin.flow.router.Route;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Route(value = "series", layout = MainView.class)
|
||||
@PageTitle("TV Shows")
|
||||
@CssImport("styles/views/series/series-view.css")
|
||||
public class SeriesView extends Div implements AfterNavigationObserver
|
||||
{
|
||||
@Autowired
|
||||
private SerieService serieService;
|
||||
|
||||
private Grid<Series> series;
|
||||
|
||||
private TextField seriesName = new TextField();
|
||||
private TextField seriesFirstAired = new TextField();
|
||||
|
||||
public SeriesView()
|
||||
{
|
||||
setId("series-view");
|
||||
|
||||
series = new Grid<>();
|
||||
series.addThemeVariants(GridVariant.LUMO_NO_BORDER);
|
||||
series.setHeightFull();
|
||||
series.addColumn(Series::getSeriesName).setHeader("Series Name");
|
||||
series.addColumn(Series::getSeriesFirstAired).setHeader("First Aired");
|
||||
series.addColumn(Series::getSeriesResolution).setHeader("Resolution");
|
||||
series.addColumn(Series::getSeriesCliffhanger).setHeader("Cliffhanger");
|
||||
|
||||
//when a row is selected or deselected, populate form
|
||||
series.asSingleSelect().addValueChangeListener(event -> populateForm(event.getValue()));
|
||||
|
||||
series.addItemDoubleClickListener(
|
||||
event ->
|
||||
{
|
||||
Notification.show("Clicked Item: " + event.getItem());
|
||||
});
|
||||
|
||||
add(series);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterNavigation(AfterNavigationEvent event)
|
||||
{
|
||||
List<Series> seriesList = serieService.findAll();
|
||||
List<Series> seriesList1 = new ArrayList<Series>();
|
||||
|
||||
int oldID = -1;
|
||||
|
||||
for(Series s : seriesList)
|
||||
{
|
||||
if(s.getSeriesID() != oldID)
|
||||
{
|
||||
oldID = s.getSeriesID();
|
||||
seriesList1.add(s);
|
||||
}
|
||||
};
|
||||
series.setItems(seriesList1);
|
||||
}
|
||||
|
||||
private void populateForm(Series value)
|
||||
{
|
||||
if(value == null)
|
||||
{
|
||||
value = new Series();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
package at.windesign.application.views.main;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import at.windesign.application.views.Series.SeriesView;
|
||||
import at.windesign.application.views.movies.MoviesView;
|
||||
import com.vaadin.flow.component.Component;
|
||||
import com.vaadin.flow.component.ComponentUtil;
|
||||
import com.vaadin.flow.component.applayout.DrawerToggle;
|
||||
import com.vaadin.flow.component.dependency.CssImport;
|
||||
import com.vaadin.flow.component.dependency.JsModule;
|
||||
import com.vaadin.flow.component.applayout.AppLayout;
|
||||
import com.vaadin.flow.component.html.H1;
|
||||
import com.vaadin.flow.component.html.Image;
|
||||
import com.vaadin.flow.component.orderedlayout.FlexComponent;
|
||||
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
|
||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||
import com.vaadin.flow.component.tabs.Tab;
|
||||
import com.vaadin.flow.component.tabs.Tabs;
|
||||
import com.vaadin.flow.component.tabs.TabsVariant;
|
||||
import com.vaadin.flow.router.PageTitle;
|
||||
import com.vaadin.flow.router.RouterLink;
|
||||
import com.vaadin.flow.server.PWA;
|
||||
|
||||
/**
|
||||
* The main view is a top-level placeholder for other views.
|
||||
*/
|
||||
@JsModule("./styles/shared-styles.js")
|
||||
@CssImport("./styles/views/main/main-view.css")
|
||||
@PWA(name = "multimedia", shortName = "multimedia", enableInstallPrompt = false)
|
||||
//@Theme(value = Lumo.class, variant = Lumo.LIGHT)
|
||||
public class MainView extends AppLayout
|
||||
{
|
||||
private final Tabs menu;
|
||||
private H1 viewTitle;
|
||||
|
||||
public MainView()
|
||||
{
|
||||
setPrimarySection(Section.DRAWER);
|
||||
addToNavbar(true, createHeaderContent());
|
||||
menu = createMenu();
|
||||
addToDrawer(createDrawerContent(menu));
|
||||
}
|
||||
|
||||
private Component createHeaderContent()
|
||||
{
|
||||
HorizontalLayout layout = new HorizontalLayout();
|
||||
layout.setId("header");
|
||||
layout.getThemeList().set("dark", true);
|
||||
layout.setWidthFull();
|
||||
layout.setSpacing(false);
|
||||
layout.setAlignItems(FlexComponent.Alignment.CENTER);
|
||||
layout.add(new DrawerToggle());
|
||||
viewTitle = new H1();
|
||||
layout.add(viewTitle);
|
||||
layout.add(new Image("images/user.svg", "Avatar"));
|
||||
return layout;
|
||||
}
|
||||
|
||||
private Component createDrawerContent(Tabs menu)
|
||||
{
|
||||
VerticalLayout layout = new VerticalLayout();
|
||||
layout.setSizeFull();
|
||||
layout.setPadding(false);
|
||||
layout.setSpacing(false);
|
||||
layout.getThemeList().set("spacing-s", true);
|
||||
layout.setAlignItems(FlexComponent.Alignment.STRETCH);
|
||||
HorizontalLayout logoLayout = new HorizontalLayout();
|
||||
logoLayout.setId("logo");
|
||||
logoLayout.setAlignItems(FlexComponent.Alignment.CENTER);
|
||||
logoLayout.add(new Image("images/logo.png", "multimedia logo"));
|
||||
logoLayout.add(new H1("multimedia"));
|
||||
layout.add(logoLayout, menu);
|
||||
return layout;
|
||||
}
|
||||
|
||||
private Tabs createMenu()
|
||||
{
|
||||
final Tabs tabs = new Tabs();
|
||||
tabs.setOrientation(Tabs.Orientation.VERTICAL);
|
||||
tabs.addThemeVariants(TabsVariant.LUMO_MINIMAL);
|
||||
tabs.setId("tabs");
|
||||
tabs.add(createMenuItems());
|
||||
return tabs;
|
||||
}
|
||||
|
||||
private Component[] createMenuItems()
|
||||
{
|
||||
return new Tab[]{
|
||||
createTab("TVShows", SeriesView.class),
|
||||
createTab("Movies", MoviesView.class),
|
||||
};
|
||||
}
|
||||
|
||||
private static Tab createTab(String text, Class<? extends Component> navigationTarget)
|
||||
{
|
||||
final Tab tab = new Tab();
|
||||
tab.add(new RouterLink(text, navigationTarget));
|
||||
ComponentUtil.setData(tab, Class.class, navigationTarget);
|
||||
return tab;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void afterNavigation()
|
||||
{
|
||||
super.afterNavigation();
|
||||
getTabForComponent(getContent()).ifPresent(menu::setSelectedTab);
|
||||
viewTitle.setText(getCurrentPageTitle());
|
||||
}
|
||||
|
||||
private Optional<Tab> getTabForComponent(Component component)
|
||||
{
|
||||
return menu.getChildren()
|
||||
.filter(tab -> ComponentUtil.getData(tab, Class.class)
|
||||
.equals(component.getClass()))
|
||||
.findFirst().map(Tab.class::cast);
|
||||
}
|
||||
|
||||
private String getCurrentPageTitle()
|
||||
{
|
||||
return getContent().getClass().getAnnotation(PageTitle.class).value();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package at.windesign.application.views.movies;
|
||||
|
||||
import at.windesign.application.data.entity.Movie;
|
||||
import at.windesign.application.data.service.MovieService;
|
||||
import at.windesign.application.views.main.MainView;
|
||||
import com.vaadin.flow.component.dependency.CssImport;
|
||||
import com.vaadin.flow.component.grid.Grid;
|
||||
import com.vaadin.flow.component.grid.GridVariant;
|
||||
import com.vaadin.flow.component.html.Div;
|
||||
import com.vaadin.flow.component.notification.Notification;
|
||||
import com.vaadin.flow.component.textfield.TextField;
|
||||
import com.vaadin.flow.router.AfterNavigationEvent;
|
||||
import com.vaadin.flow.router.AfterNavigationObserver;
|
||||
import com.vaadin.flow.router.PageTitle;
|
||||
import com.vaadin.flow.router.Route;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@Route(value = "movies", layout = MainView.class)
|
||||
@PageTitle("Movies")
|
||||
@CssImport("styles/views/movies/movies-view.css")
|
||||
public class MoviesView extends Div implements AfterNavigationObserver
|
||||
{
|
||||
@Autowired
|
||||
private MovieService movieService;
|
||||
|
||||
private Grid<Movie> movies;
|
||||
|
||||
private TextField movieTitle = new TextField();
|
||||
private TextField originalTitle = new TextField();
|
||||
|
||||
public MoviesView()
|
||||
{
|
||||
setId("movies-view");
|
||||
|
||||
movies = new Grid<>();
|
||||
movies.addThemeVariants(GridVariant.LUMO_NO_BORDER);
|
||||
movies.setHeightFull();
|
||||
movies.addColumn(Movie::getMovieTitle).setHeader("Movie Title");
|
||||
movies.addColumn(Movie::getOriginalTitle).setHeader("Original Title");
|
||||
movies.addColumn(Movie::getReleaseDate).setHeader("Release Date");
|
||||
movies.addColumn(Movie::getResolution).setHeader("Resolution");
|
||||
|
||||
//when a row is selected or deselected, populate form
|
||||
movies.asSingleSelect().addValueChangeListener(event -> populateForm(event.getValue()));
|
||||
|
||||
movies.addItemDoubleClickListener(
|
||||
event ->
|
||||
{
|
||||
Notification.show("Clicked Item: " + event.getItem());
|
||||
});
|
||||
|
||||
add(movies);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterNavigation(AfterNavigationEvent event)
|
||||
{
|
||||
movies.setItems(movieService.findAll());
|
||||
}
|
||||
|
||||
private void populateForm(Movie value)
|
||||
{
|
||||
if(value == null)
|
||||
{
|
||||
value = new Movie();
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,15 @@
|
||||
server.port=8080
|
||||
# Ensure application is run in Vaadin 14/npm mode
|
||||
vaadin.compatibilityMode = false
|
||||
# Workaround for https://github.com/vaadin/flow/issues/5947
|
||||
spring.devtools.restart.additional-exclude=META-INF/VAADIN/config/**
|
||||
|
||||
logging.level.org.atmosphere = warn
|
||||
|
||||
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
|
||||
spring.datasource.url = jdbc:mysql://localhost:3306/multimedia
|
||||
spring.datasource.username = multimedia
|
||||
spring.datasource.password = WeissIchNicht8
|
||||
##spring.datasource.url = jdbc:mysql://localhost:3306/dummydata
|
||||
##spring.datasource.username = dummydata
|
||||
##spring.datasource.password = dummydata
|
||||
@@ -0,0 +1,6 @@
|
||||
_ _ _ _ _
|
||||
__| | __ _ | |_ __ _ | |__ __ _ ___ ___ _ __ ___ _ _ ___ __ _ | | ___ __ __ __ _ _ __ ___ _ __ | | ___
|
||||
/ _` | / _` || __| / _` || '_ \ / _` |/ __| / _ \ _____ | '_ ` _ \ | | | |/ __| / _` || | _____ / _ \\ \/ / / _` || '_ ` _ \ | '_ \ | | / _ \
|
||||
| (_| || (_| || |_ | (_| || |_) || (_| |\__ \| __/|_____|| | | | | || |_| |\__ \| (_| || ||_____|| __/ > < | (_| || | | | | || |_) || || __/
|
||||
\__,_| \__,_| \__| \__,_||_.__/ \__,_||___/ \___| |_| |_| |_| \__, ||___/ \__, ||_| \___|/_/\_\ \__,_||_| |_| |_|| .__/ |_| \___|
|
||||
|___/ |_| |_|
|
||||
Reference in New Issue
Block a user