package view;
import java.util.List;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Node;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class VitrineApp extends Application{
private AnchorPane pane;
private TextField txPesquisa;
private TableView<ItensProperty> tbVitrine;
private TableColumn<ItensProperty, String> columnProduto;
private TableColumn<ItensProperty, Double> columnPreco;
private static ObservableList<ItensProperty> listItens = FXCollections.observableArrayList();
private static Carrinho carrinho;
@Override
public void start(Stage arg0) throws Exception {
}
private void initComponents(){
pane = new AnchorPane();
pane.setPrefSize(800, 600);
txPesquisa = new TextField();
txPesquisa.setPromptText("Digite o item para pesquisa");
tbVitrine = new TableView<ItensProperty>();
tbVitrine.setPrefSize(780, 550);
columnProduto = new TableColumn<ItensProperty, String>();
columnPreco = new TableColumn<ItensProperty, Double>();
tbVitrine.getColumns().addAll(columnProduto, columnPreco);
pane.getChildren().addAll(txPesquisa, tbVitrine);
carrinho = new Carrinho();
columnProduto.setCellValueFactory(new PropertyValueFactory<ItensProperty, String>("produto"));
columnPreco.setCellValueFactory(new PropertyValueFactory<ItensProperty, Double>("preco"));
}
private void initItens(){
Vitrine v = new Vitrine();
v.addProdutos(new Produto("Bola Topper", 15.00), new Produto("Luvas Umbro", 9.00), new Produto("Camisa Esportiva", 40.00),
new Produto("Chuteira Nike Mercurial", 199.00), new Produto("Caneleira Topper", 10.00));
for(Produto p : v.getProdutos())
listItens.add(new ItensProperty(p.getProduto(), p.getPreco()));
tbVitrine.setItems(listItens);
}
private ObservableList<ItensProperty> findItens(){
ObservableList<ItensProperty> itensEncontrados = FXCollections.observableArrayList();
for(ItensProperty itens: listItens){
if(itens.getProduto().contains(txPesquisa.getText())){
itensEncontrados.add(itens);
}
}
return itensEncontrados;
}
private void initListeners(){
txPesquisa.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
// TODO Auto-generated method stub
if(!txPesquisa.getText().equals("")){
tbVitrine.setItems(findItens());
}else{
tbVitrine.setItems(listItens);
}
}
});
}
public static void main(String[] args) {
launch(args);
}
}
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleStringProperty;
public class ItensProperty {
private SimpleStringProperty produto;
private SimpleDoubleProperty preco;
public ItensProperty(String produto, double preco){
this.produto = new SimpleStringProperty(produto);
this.preco = new SimpleDoubleProperty(preco);
}
public SimpleStringProperty getProduto() {
return produto;
}
public void setProduto(SimpleStringProperty produto) {
this.produto = produto;
}
public SimpleDoubleProperty getPreco() {
return preco;
}
public void setPreco(SimpleDoubleProperty preco) {
this.preco = preco;
}
}
obs: Minha duvida está aqui na classe VitrineApp está parte do código if(itens.getProduto().contains(txPesquisa.getText())) contains não está na classe SimpleStringProperty , olhei na documentação http://docs.oracle.com/javafx/2/api/javafx/beans/property/SimpleStringProperty.html e não tem nenhum método contains queria saber se essa parte está errada