SearchBarComponent.java

package edu.ntnu.idi.idatt.view.components.elements;

import javafx.beans.property.SimpleStringProperty;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;

/**
 * Searchbar component class.
 *
 * <p>
 * JavaFX Component for handeling repetative tasks.
 * Creates a searchbar.
 * </p>
 */
public class SearchBarComponent extends HBox {

  private final SimpleStringProperty query = new SimpleStringProperty();

  /**
   * Constructor for SearchBarComponent.
   * 
   * @param placeholder - The placeholder text for empty searchbar.
   */
  public SearchBarComponent(String placeholder) {

    this.setAlignment(Pos.CENTER);

    TextField searchBar = new TextField();
    searchBar.getStyleClass().add("searchbar-field");
    searchBar.setPromptText(placeholder);
    searchBar.textProperty().bindBidirectional(query);
    searchBar.setFocusTraversable(false);
    searchBar.setPadding(new Insets(10));
    searchBar.setMinWidth(300);

    this.getChildren().addAll(searchBar);
  }

  /**
   * Getter for query property.
   * 
   * @return SimpleStringProperty;
   */
  public SimpleStringProperty getQuery() {
    return query;
  }

}