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; package fi.jyu.mit.fxgui;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.ListProperty; import javafx.beans.property.ListProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleListProperty; import javafx.beans.property.SimpleListProperty;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
...@@ -14,17 +16,16 @@ import javafx.scene.input.KeyEvent; ...@@ -14,17 +16,16 @@ import javafx.scene.input.KeyEvent;
import java.util.*; import java.util.*;
/** /**
* @author konsta lahtinen
* @version 20.2.2025
* Oma versio ComboBox containerista, sisältää haun ja uuden lisäyksen tulkinnan * Oma versio ComboBox containerista, sisältää haun ja uuden lisäyksen tulkinnan
*/ */
public class DynamicComboBox extends ComboBox<java.lang.String> { public class DynamicComboBox extends ComboBox<java.lang.String> {
private final ListProperty<String> sisalto = new SimpleListProperty<>(FXCollections.observableArrayList()); 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() { public DynamicComboBox() {
super(); super();
...@@ -51,6 +52,11 @@ public class DynamicComboBox extends ComboBox<java.lang.String> { ...@@ -51,6 +52,11 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
} }
/**
* asettaa sisältöä DynamicComboBoxiin
* tarvitaan myös scenebuilderin yhteensopivuuteen
*/
@FXML @FXML
public void asetaSisalto(ObservableList<String> sisalto) { public void asetaSisalto(ObservableList<String> sisalto) {
this.getItems().setAll(sisalto); this.getItems().setAll(sisalto);
...@@ -58,8 +64,9 @@ public class DynamicComboBox extends ComboBox<java.lang.String> { ...@@ -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 @FXML
public ListProperty<String> sisaltoProperty() { public ListProperty<String> sisaltoProperty() {
return sisalto; return sisalto;
...@@ -67,30 +74,49 @@ public class DynamicComboBox extends ComboBox<java.lang.String> { ...@@ -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 @FXML
public ObservableList<String> getSisalto() { public ObservableList<String> getSisalto() {
return sisalto.get(); 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 * asettaa sisällön suodattamisen tilan
* @param v kumpi tila
*/ */
public void filterointi(boolean v){ @FXML
this.hakuPaal = v; public void setSuodattaminen(boolean s) {
this.suodattaminen.set(s);
} }
/** /**
* säätää laitetaanko uuden valinnan tutkinta päälle * palauttaa sisällön suodattamisen tilan
* @param v kumpi tila
*/ */
public void uudenValinnanTutkinta(boolean v){ @FXML
this.tutkiminen = v; public boolean getSuodattaminen() {
return suodattaminen.get();
} }
/** /**
* lisää sisältöä comboboxiin * lisää sisältöä comboboxiin
* *
...@@ -108,7 +134,7 @@ public class DynamicComboBox extends ComboBox<java.lang.String> { ...@@ -108,7 +134,7 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
* lopulliseksi tulee se tehdä itse * lopulliseksi tulee se tehdä itse
*/ */
private void tutkiValinta() { private void tutkiValinta() {
if(!this.tutkiminen){ if(!this.dynaaminenLisays.get()) {
return; return;
} }
java.lang.String valinta = this.getEditor().getText(); java.lang.String valinta = this.getEditor().getText();
...@@ -144,7 +170,7 @@ public class DynamicComboBox extends ComboBox<java.lang.String> { ...@@ -144,7 +170,7 @@ public class DynamicComboBox extends ComboBox<java.lang.String> {
* Aikavaativuus kasvaa lineaarisesti, items listan kasvaessa * Aikavaativuus kasvaa lineaarisesti, items listan kasvaessa
*/ */
private void haku(KeyEvent k) { private void haku(KeyEvent k) {
if (!hakuPaal){ if (!suodattaminen.get()){
return; return;
} }
//estetään hakeminen, jos painettu enter-nappia //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