diff --git a/pom.xml b/pom.xml index 90aba00..e2e4eae 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ org.openjfx javafx-graphics - 18 + 19 org.springframework @@ -33,7 +33,7 @@ org.apache.groovy groovy - 4.0.5 + 4.0.6 org.junit.jupiter @@ -43,7 +43,7 @@ org.springframework spring-context - 5.3.22 + 5.3.23 commons-logging @@ -54,7 +54,7 @@ org.slf4j slf4j-log4j12 - 2.0.1 + 2.0.3 org.reflections @@ -64,7 +64,7 @@ org.springframework spring-core - 5.3.22 + 5.3.23 org.springframework @@ -79,7 +79,7 @@ org.springframework.boot spring-boot-starter-mail - 2.7.3 + 2.7.4 diff --git a/src/cz/spsmb/ctvrtak/c_spring/f_resource_files/resources/META-INF/data/dictionary_cs.properties b/src/cz/spsmb/ctvrtak/c_spring/f_resource_files/resources/META-INF/data/dictionary_cs.properties new file mode 100644 index 0000000..a192167 --- /dev/null +++ b/src/cz/spsmb/ctvrtak/c_spring/f_resource_files/resources/META-INF/data/dictionary_cs.properties @@ -0,0 +1,8 @@ +main.title=Vítejte ve slu?b? Moje dokumenty +main.menu.1=Zobrazit v?echny Moje dokumenty +main.menu.2=Zobrazit v?echny typy dokument? +main.menu.3=Vyhledávání podle typu +main.menu.4=Odejít + +login.success=Tento u?ivatel je autorizovaný +login.failure=VAROVÁNÍ! Tento u?ivatel nemá oprávn?ní! \ No newline at end of file diff --git a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java index 19735d6..c6ffa2e 100644 --- a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java +++ b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java @@ -10,6 +10,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; /** diff --git a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java index 557b9f2..f1ca7d3 100644 --- a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java +++ b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java @@ -13,7 +13,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.stereotype.Repository; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -38,24 +40,22 @@ public void testScheduler() throws InterruptedException{ } @Test - @Disabled public void testEmail() throws InterruptedException{ log.debug("Testing Email..."); Assertions.assertNotNull(email); long start = new Date().getTime(); - email.send("ahoj@seznam.cz", "stemberk@spsmb.cz", "Hello World1!", "Hello There!!"); + email.send("franta@seznam.cz", "stemberk@spsmb.cz", "Hello World1!", "Hello There!!"); long end = new Date().getTime(); long time = (end - start)/1000; log.debug("Sending email done. Took: " + time + " seconds."); } @Test - @Disabled public void testAsyncEmail() throws InterruptedException{ log.debug("Testing Async Email..."); Assertions.assertNotNull(email); long start = new Date().getTime(); - email.sendAsync("ahoj@seznam.cz", "stemberk@spsmb.cz", "Hello World Async, 2. pokus!", "Hello There!!"); + email.sendAsync("franta@seznam.cz", "stemberk@spsmb.cz", "Hello World Async, 2. pokus!", "Hello There!!"); long end = new Date().getTime(); long time = (end - start)/1000; log.debug("Sending Async email done. Took: " + time + " seconds."); diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java index 9809f32..4bf2cf7 100644 --- a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java +++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java @@ -19,6 +19,7 @@ public class Board extends javafx.animation.AnimationTimer { private Image star; // private Timer timer; private int x, y; + private int x_velocity, y_velocity; private Canvas canvas; public Board() { @@ -37,12 +38,23 @@ public Canvas getCanvas() { @Override public void handle(long l) { - x += 1; - y += 1; + x += x_velocity; + y += y_velocity; if (y > B_HEIGHT) { - y = INITIAL_Y; - x = INITIAL_X; + y_velocity = -y_velocity; + } + + if(x > B_WIDTH) { + x_velocity = -x_velocity; + } + + if (y < 0) { + y_velocity = -y_velocity; + } + + if (x < 0) { + x_velocity = -x_velocity; } this.drawStar(); } @@ -59,9 +71,28 @@ private void initBoard() { loadImage(); x = INITIAL_X; y = INITIAL_Y; + + setRandomVelocity(); + } + + private void setRandomVelocity(){ + if(x_velocity < 0){ + x_velocity = (int) (Math.random() * 10); + } else { + x_velocity = (int) (Math.random() * 10) * -1; + } + + if(y_velocity < 0){ + y_velocity = (int) (Math.random() * 10); + } else { + y_velocity = (int) (Math.random() * 10) * -1; + } } private void drawStar() { GraphicsContext gc = canvas.getGraphicsContext2D(); + gc.setFill(Color.BLACK); + gc.fillRect(0,0, canvas.getWidth(), canvas.getHeight()); + gc.drawImage(star, x, y); gc.setLineWidth(2); gc.setStroke(Color.BLACK); diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java index 7168786..51e0093 100644 --- a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java +++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java @@ -52,10 +52,33 @@ public void handle(long l) { private void step() { spaceShip.move(); GraphicsContext gc = canvas.getGraphicsContext2D(); + gc.setFill(javafx.scene.paint.Color.BLACK); + gc.fillRect(0,0,canvas.getWidth(),canvas.getHeight()); + + for (Projectile p : spaceShip.getProjectiles()) { + if(p.getX() > canvas.getWidth() || p.getX() < 0 || p.getY() > canvas.getHeight() || p.getY() < 0) { + spaceShip.getProjectiles().remove(p); + continue; + } + for (Enemy e : spaceShip.getEnemies()) { + if (p.getX() + p.getHeight() >= e.getX() - e.getWidth() && p.getX() - p.getHeight() <= e.getX() + e.getWidth() && p.getY() + p.getWidth() >= e.getY() - e.getHeight() && p.getY() - p.getWidth() <= e.getY() + e.getHeight()) { + gc.drawImage(e.getExplosion(), e.getX(), e.getY()); + spaceShip.getEnemies().remove(e); + spaceShip.getProjectiles().remove(p); + } + } + p.move(); + gc.drawImage(p.getImage(), p.getX(), p.getY()); + } + + for(Enemy e : spaceShip.getEnemies()) { + gc.drawImage(e.getImage(), e.getX(), e.getY()); + } + + gc.drawImage(spaceShip.getImage(), spaceShip.getX(), spaceShip.getY()); - //repaint(spaceShip.getX()-1, spaceShip.getY()-1, - // spaceShip.getWidth()+2, spaceShip.getHeight()+2); } + /* private class TAdapter extends KeyAdapter { diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Enemy.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Enemy.java new file mode 100644 index 0000000..6ad64e9 --- /dev/null +++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Enemy.java @@ -0,0 +1,52 @@ +package cz.spsmb.ctvrtak.e_javafx.hry.a_zaklady.c_pohyb_spritu; + +import javafx.scene.image.Image; + +public class Enemy { + int x, y; + int dx, dy; + int width, height; + Image image; + Image explosion; + + public Enemy(int x, int y) { + this.x = x; + this.y = y; + this.image = new Image("alien.png"); + this.explosion = new Image("star.png"); + this.width = (int) image.getWidth(); + this.height = (int) image.getHeight(); + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public int getDx() { + return dx; + } + + public int getDy() { + return dy; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public Image getImage() { + return image; + } + + public Image getExplosion() { + return explosion; + } +} diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Projectile.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Projectile.java new file mode 100644 index 0000000..36a9540 --- /dev/null +++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Projectile.java @@ -0,0 +1,55 @@ +package cz.spsmb.ctvrtak.e_javafx.hry.a_zaklady.c_pohyb_spritu; +import javafx.scene.image.Image; + +public class Projectile { + private int x, y; + private int dx, dy; + private int width, height; + private Image image; + + public Projectile(int x, int y, int dx, int dy) { + this.x = x; + this.y = y; + this.dx = dx; + this.dy = dy; + this.image = new Image("missile.png"); + this.width = (int) image.getWidth(); + this.height = (int) image.getHeight(); + } + + public void move() { + x += dx; + y += dy; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public int getDx() { + return dx; + } + + public int getDy() { + return dy; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } + + public Image getImage() { + return image; + } +} + + + diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java index 5a37ee4..4261946 100644 --- a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java +++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java @@ -1,25 +1,32 @@ package cz.spsmb.ctvrtak.e_javafx.hry.a_zaklady.c_pohyb_spritu; - - +import javafx.scene.SnapshotParameters; +import javafx.scene.canvas.Canvas; import javafx.scene.image.Image; +import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; +import javafx.scene.paint.Color; + +import java.util.ArrayList; import static javafx.scene.input.KeyEvent.KEY_PRESSED; public class SpaceShip { - - private int dx=1; + private int dx; private int dy; private int x = 40; private int y = 60; private double w; private double h; private Image image; + private ArrayList projectiles; + private ArrayList enemies; + private KeyCode lastPressed; public SpaceShip() { - loadImage(); + enemies = new ArrayList<>(); + projectiles = new ArrayList<>(); } private void loadImage() { @@ -37,43 +44,80 @@ public void move() { } public int getX() { - return x; } public int getY() { - return y; } public Image getImage() { - return image; } public void keyPressed(KeyEvent e) { - KeyCode key = e.getCode(); - //e.getEventType() == KEY_PRESSED + if(key == KeyCode.SPACE){ + int velocityX = 0; + int velocityY = 0; + if(lastPressed == KeyCode.LEFT) { + velocityX = -1; + } + if(lastPressed == KeyCode.RIGHT) { + velocityX = 1; + } + if(lastPressed == KeyCode.UP) { + velocityY = -1; + } + if(lastPressed == KeyCode.DOWN) { + velocityY = 1; + } + + projectiles.add(new Projectile(x, y, velocityX, velocityY)); + } + if (key == KeyCode.LEFT) { - dx = -2; + dx = -1; + lastPressed = key; } if (key == KeyCode.RIGHT) { - dx = 2; + dx = 1; + lastPressed = key; } if (key == KeyCode.UP) { - dy = -2; + dy = -1; + lastPressed = key; } if (key == KeyCode.DOWN) { - dy = 2; + dy = 1; + lastPressed = key; + } + + if(key == KeyCode.ESCAPE){ + System.exit(0); + } + + if(key == KeyCode.ENTER){ + enemies.add(new Enemy((int)(Math.random() * 300), (int)(Math.random() * 300))); } } - public void keyReleased(KeyEvent e) { + public ArrayList getProjectiles() { + return projectiles; + } + public void setProjectiles(ArrayList projectiles) { + this.projectiles = projectiles; + } + + public void setEnemies(ArrayList enemies) { + this.enemies = enemies; + } + + public void keyReleased(KeyEvent e) { KeyCode key = e.getCode(); if (key == KeyCode.LEFT) { @@ -92,4 +136,12 @@ public void keyReleased(KeyEvent e) { dy = 0; } } + + public ArrayList getEnemies() { + return enemies; + } + + public KeyCode getLastPressed() { + return lastPressed; + } }