Skip to content
Snippets Groups Projects
Commit d5bb755f authored by koallaht's avatar koallaht
Browse files

Update DynamicComboBox.java

parent 1f61d96c
No related branches found
No related tags found
No related merge requests found
package fi.jyu.mit.fxgui;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.ListProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleListProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
......@@ -14,17 +16,16 @@ import javafx.scene.input.KeyEvent;
import java.util.*;
/**
* @author konsta lahtinen
* @version 20.2.2025
* Oma versio ComboBox containerista, sisältää haun ja uuden lisäyksen tulkinnan
*/
public class DynamicComboBox extends ComboBox<java.lang.String> {
private final ListProperty<String> sisalto = new SimpleListProperty<>(FXCollections.observableArrayList());
private boolean hakuPaal = true;
private boolean tutkiminen = true;
/**
* Attribuutti sisalto sisältää kaiken comboxin sisällön
* Attribuutti items sisältää kaiken comboxin sisällön
*/
private BooleanProperty suodattaminen = new SimpleBooleanProperty(true);
private BooleanProperty dynaaminenLisays = new SimpleBooleanProperty(true);
public DynamicComboBox() {
super();
......@@ -51,6 +52,11 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
}
/**
* asettaa sisältöä DynamicComboBoxiin
* tarvitaan myös scenebuilderin yhteensopivuuteen
*/
@FXML
public void asetaSisalto(ObservableList<String> sisalto) {
this.getItems().setAll(sisalto);
......@@ -58,8 +64,9 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
}
/**
* getteri scenebuilderissa toimimista varten, palauttaa koko ListPropertyn
*/
* palauttaa sisallon ListProperty oliona
* tarivtaan myös scenebuilderiin
*/
@FXML
public ListProperty<String> sisaltoProperty() {
return sisalto;
......@@ -67,30 +74,49 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
/**
* getteri scenebuilderissa toimimista varten, palauttaa listPropertyn sisällön
*/
* palauttaa sisällön ObservableList oliona
* tarivtaan myös scenebuilderiin
*/
@FXML
public ObservableList<String> getSisalto() {
return sisalto.get();
}
/**
* asettaa dynaamisen lisäyksen tilan
*/
@FXML
public void setDynaaminenLisays(boolean t) {
this.dynaaminenLisays.set(t);
}
/**
* palauttaa dynaamisen lisäyksen tilan
*/
@FXML
public boolean getDynaaminenLisays() {
return dynaaminenLisays.get();
}
/**
* säätää laitetaanko sisällön filterointi päälle
* @param v kumpi tila
* asettaa sisällön suodattamisen tilan
*/
public void filterointi(boolean v){
this.hakuPaal = v;
@FXML
public void setSuodattaminen(boolean s) {
this.suodattaminen.set(s);
}
/**
* säätää laitetaanko uuden valinnan tutkinta päälle
* @param v kumpi tila
* palauttaa sisällön suodattamisen tilan
*/
public void uudenValinnanTutkinta(boolean v){
this.tutkiminen = v;
@FXML
public boolean getSuodattaminen() {
return suodattaminen.get();
}
/**
* lisää sisältöä comboboxiin
*
......@@ -108,7 +134,7 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
* lopulliseksi tulee se tehdä itse
*/
private void tutkiValinta() {
if(!this.tutkiminen){
if(!this.dynaaminenLisays.get()) {
return;
}
java.lang.String valinta = this.getEditor().getText();
......@@ -144,7 +170,7 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
* Aikavaativuus kasvaa lineaarisesti, items listan kasvaessa
*/
private void haku(KeyEvent k) {
if (!hakuPaal){
if (!suodattaminen.get()){
return;
}
//estetään hakeminen, jos painettu enter-nappia
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment