Změna verze Javy z 8 na 11

Nedávno jsem prováděl změny verze Javy na projektu, který používá Spring Boot. Měnil jsem verzi Javy z verze 8 na verzi 11. Nebylo to až tak strašné, jak jsem čekal (spíše naopak), přesto se ale některé komplikace objevily. V tomto příspěvku budu postupovat od chyby k chybě, tak jak se u mě objevovaly.

Číst dálZměna verze Javy z 8 na 11

Instalace Open JDK na Ubuntu

V tomto příspěvku se podíváme na to, jak instalovat Open JDK na Ubuntu. To, zda již nějakou verzi Javy máte nainstalovánu zjistíte příkazem java -version.

java -version
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing)

To, zda máte více verzí Javy zjistíte příkazem update-alternatives --config java.

update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java
Nothing to configure.

Jak je vidět z výpisu mám pouze jednu verzi Javy. Defaultní JDK nainstaluje takto:

apt-get install default-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
default-jdk is already the newest version (2:1.11-68ubuntu1~18.04.1).

V tomto případě není co instalovat.

Idea IDE a česká klávesnice

Používáte vývojové prostředí Idea IDE a k tomu českou klávesnici? Je pravděpodobné, že máte problém s určitými znaky. Například se znaky [>{}. Řešením je nastavení hodnoty actionSystem.force.alt.gr v registru na true.

Postup:

V IDE stiskněte kombinaci kláves Ctrl + Shift + A a do vyhledávacího pole napište registry.

Nastavte hodnotu actionSystem.force.alt.gr na true.

Zdroj: youtrack.jetbrains.com/issue/IDEA-91975

Nový projekt v Idea IDE ze vzdáleného Git úložiště

Idea IDE má velmi dobře propracovánu spolupráci s verzovacím systémem Git. Pro vytvoření nového projektu z existujícího Git úložiště (repository) je postup následující: File -> New -> Project from Version Control -> Git

Otevře se okno, do kterého zadáte Git Repostory URL (adresa vzádleného úložiště), Parent Directory (ve Windows to bývá C:\Users\user-name\IdeaProjects) a Directory Name (většinou je to název projektu). Po vyplnění údajů klikněte na Clone. Idea naklonuje projekt ze vzdáleného úložiště do zadané složky (C:\Users\user-name\IdeaProjects\složka) a otevře jej. Je třeba ještě nastavit SDK (Idea vás na to upozorní, stačí jen kliknout na odkaz a vybrat z nabízených SDK).

Vaadin 8 a odkazy

Vaadin Link (odkaz) je klasický html odkaz <a href…> a na rozdíl od tlačítka a click listeneru jej crawler webových stránek je schopen najít a následovat na url, na kterou směřuje.

Textový odkaz

Link link = new Link("praceodnas.cz", new ExternalResource("https://www.praceodnas.cz"));
addComponent(link);

Obrázek jako odkaz

Jako obrázek je možné použít ClassResource nebo ThemeResource. Pokud používáte klasickou Maven strukturu projektu, ClassResource je zdroj ve složce src/main/resources. V příkladu uvedený new ClassResource("/images/logo.png") znamená, že soubor logo.png se nachází ve složce src/main/resources/images.

Číst dálVaadin 8 a odkazy

Dynamic Web Project a chybějící knihovna javax.servlet

Pokud si vytvoříte Dynamic Web Project v Eclipse, přidáte Tomcat a pokusíte se vytvořit vlastní servlet, může se vám stát, že knihovnu javax.servlet nelze importovat. Řešením je přidat Apache Tomcat runtime: pravým na projekt -> Properties -> v pravo záložka Runtimes -> zakliknout Apache Tomcat -> potvrdit.

Zdroj: stackoverflow.com/…/the-superclass-javax-servlet-http-httpservlet-was-not-found-on-the-java-build/30161602

Responsivní tlačítka v Vaadinu

V tomto příspěvku ukážu, jak vytvořit ve Vaadin 8 tlačítka, která se přizpůsobí velikosti prohlížeče. Pokud bude mít prohlížeč šířku větší než 500px, rozbrazí se tlačítko včetně popisku. Pokud bude šířka menší než 500px, zobrazí se pouze ikona.

VerticalLayout layout = new VerticalLayout();
layout.addStyleName("flexible-layout");
Responsive.makeResponsive(layout);

Button btnAir = new Button("Airplane", VaadinIcons.AIRPLANE);
btnAir.addStyleName("flexible-button");
Button btnBoat = new Button("Boat", VaadinIcons.BOAT);
btnBoat.addStyleName("flexible-button");
Button btnEye = new Button("Eye", VaadinIcons.EYE);
btnEye.addStyleName("flexible-button");
Button btnUser = new Button("User", VaadinIcons.USER);
btnUser.addStyleName("flexible-button");
layout.addComponents(btnAir, btnBoat, btnEye, btnUser);

Tlačítku přidávám styl flexible-button a layoutu flexible-layout. Aby to fungovalo, je ještě potřeba udělat layout responsivní pomocí statické metody Responsive.makeResponsive().

Ostylování pomocí css. Zde třídě flexible-layout přidávám range a určuji, jak má v daném rozsahu vypadat styl třídy flexible-button.

@import "../valo/valo.scss";

@mixin mytheme {
    @include valo;

    // Insert your own theme rules here
  
	.flexible-layout {
	    background: black;
	    color: white;
	
	.flexible-layout[width-range~="0-499px"] {
	    .flexible-button .v-button-caption {
	    	display: none;
	    }
	}
	
	.flexible-layout[width-range~="500px-"] {
	    .flexible-button .v-button-caption {}
	    
	}
}

A takto to vypadá