Skip to content
Snippets Groups Projects

Namedquery search

Merged Stian Fjæran Mogen requested to merge namedquery_search into dev
Files
5
package NTNU.IDATT1002.controllers;
import NTNU.IDATT1002.App;
import NTNU.IDATT1002.models.Image;
import NTNU.IDATT1002.models.Tag;
import NTNU.IDATT1002.service.ImageService;
import NTNU.IDATT1002.service.TagService;
import NTNU.IDATT1002.utils.ImageUtil;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.Initializable;
@@ -10,7 +15,6 @@ import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
@@ -19,10 +23,17 @@ import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javax.persistence.*;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaDelete;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.metamodel.Metamodel;
import java.io.IOException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.stream.Collectors;
@@ -48,6 +59,7 @@ public class Search implements Initializable {
public VBox vBox;
/**
* Method that writes the word that is searched for.
* Also generates HBoxes with image title, tags...
@@ -55,28 +67,30 @@ public class Search implements Initializable {
* @param resources
*/
public void initialize(URL location, ResourceBundle resources) {
if (!App.ex.getSearchField().isEmpty()){
if (!App.ex.getSearchField().isEmpty()){
search_result.setText(App.ex.getSearchField());
}
List<String> urls = Arrays.asList("@../../Images/placeholder-1920x1080.png", "@../../Images/party.jpg", "@../../Images/placeholderLogo.png", "@../../Images/placeholder-1920x1080.png", "@../../Images/placeholder-1920x1080.png");
for(int i = 0; i < urls.size(); i++) {
HBox h = new HBox();
h.setPrefHeight(300);
h.setPrefWidth(1920);
h.setAlignment(Pos.CENTER);
h.setStyle("-fx-background-color: #999999;");
Pane p = new Pane();
p.setPrefWidth(1400);
p.setPrefHeight(300);
ImageView iV = new ImageView();
iV.setImage(new Image(urls.get(i)));
iV.setFitHeight(300);
iV.setFitWidth(500);
iV.pickOnBoundsProperty().setValue(true);
iV.setPreserveRatio(true);
iV.setOnMouseClicked(new EventHandler<MouseEvent>() {
List<NTNU.IDATT1002.models.Image> images = new ImageService(App.ex.getEntityManager()).searchResult(App.ex.getSearchField());
for(int i = 0; i < images.size(); i++) {
HBox hBox = new HBox();
hBox.setPrefHeight(300);
hBox.setPrefWidth(1920);
hBox.setAlignment(Pos.CENTER);
hBox.setStyle("-fx-background-color: #999999;");
Pane pane = new Pane();
pane.setPrefWidth(1400);
pane.setPrefHeight(300);
ImageView imageView = new ImageView();
imageView.setImage(ImageUtil.convertToFXImage(images.get(i)));
imageView.setFitHeight(300);
imageView.setFitWidth(500);
imageView.pickOnBoundsProperty().setValue(true);
imageView.setPreserveRatio(true);
imageView.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent e) {
try{
switchToPicture(e);
@@ -89,31 +103,53 @@ public class Search implements Initializable {
Text title = setText("TITLE:", 550, 66, 153, "System Bold", 48);
Text tag = setText("TAG:", 550, 97, 70, "System Bold", 24);
Text desc = setText("DESCRIPTION:", 550, 126, 129, "System Bold", 18);
Text title_Field = setText(urls.get(i), 700, 66, "System Bold", 48);
Text tag_Field = setText("####", 700, 97, "System Bold", 24);
Text desc_Field = setText("####", 700, 126, "System Bold", 18);
p.getChildren().addAll(iV, title, tag, desc, title_Field, tag_Field, desc_Field);
h.getChildren().add(p);
vBox.getChildren().add(h);
Text title_Field = setText("SKAL BILDENE HA TITTEL?", 700, 66, "System Bold", 48);
String tagsString = TagService.getTagsAsString(images.get(i).getTags());
Text tag_Field = setText(tagsString, 700, 97, "System Bold", 24);
Text metadata_Field = setText(images.get(i).getMetadata().toString(), 700, 126, "System Bold", 18);
pane.getChildren().addAll(imageView, title, tag, desc, title_Field, tag_Field, metadata_Field);
hBox.getChildren().add(pane);
vBox.getChildren().add(hBox);
}
}
public Text setText(String text, int layoutX, int layoutY, double wrappingWidth, String fontName, double fontSize){
Text t = new Text(text);
t.setLayoutX(layoutX);
t.setLayoutY(layoutY);
t.setWrappingWidth(wrappingWidth);
t.setFont(Font.font(fontName, fontSize));
return t;
/**
* Method that takes in a string of text and returns a text object
* @param textIn
* @param layoutX
* @param layoutY
* @param wrappingWidth
* @param fontName
* @param fontSize
* @return
*/
public Text setText(String textIn, int layoutX, int layoutY, double wrappingWidth, String fontName, double fontSize){
Text text = new Text(textIn);
text.setLayoutX(layoutX);
text.setLayoutY(layoutY);
text.setWrappingWidth(wrappingWidth);
text.setFont(Font.font(fontName, fontSize));
return text;
}
public Text setText(String text, int layoutX, int layoutY, String fontName, double fontSize){
Text t = new Text(text);
t.setLayoutX(layoutX);
t.setLayoutY(layoutY);
t.setFont(Font.font(fontName, fontSize));
return t;
/**
* Alternative setText method without wrappingWidth
* @param textIn
* @param layoutX
* @param layoutY
* @param fontName
* @param fontSize
* @return
*/
public Text setText(String textIn, int layoutX, int layoutY, String fontName, double fontSize){
Text text = new Text(textIn);
text.setLayoutX(layoutX);
text.setLayoutY(layoutY);
text.setFont(Font.font(fontName, fontSize));
return text;
}
/**
Loading