/* Copyright 2012-2017 Jose Robson Mariano Alves This file is part of bgfinancas. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package badernageral.bgfinancas.biblioteca.utilitario; import badernageral.bgfinancas.biblioteca.contrato.Controlador; import badernageral.bgfinancas.idioma.Linguagem; import badernageral.bgfinancas.modelo.Despesa; import java.time.LocalDate; import java.util.ArrayList; import javafx.beans.binding.Bindings; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.TableView; public class AreaTransferencia { private LocalDate data = LocalDate.now(); private final Linguagem idioma = Linguagem.getInstance(); private final ObservableList<Despesa> areaTransferencia = FXCollections.observableList(new ArrayList<Despesa>()); public void criarMenu(Controlador controlador, TableView<Despesa> tabela, boolean cadastrar) { ContextMenu menu = new ContextMenu(); MenuItem copiar = new MenuItem(idioma.getMensagem("copiar")); MenuItem colar = new MenuItem(idioma.getMensagem("colar")); copiar.disableProperty().bind(Bindings.isEmpty(tabela.getSelectionModel().getSelectedItems())); colar.disableProperty().bind(Bindings.isEmpty(areaTransferencia)); copiar.setOnAction(event -> { areaTransferencia.clear(); tabela.getSelectionModel().getSelectedItems().stream().forEach(d -> { areaTransferencia.add(d); }); }); colar.setOnAction(event -> { if (cadastrar) { try { areaTransferencia.stream().forEach(d -> { d.setData(Datas.toSqlData(Datas.getLocalDate(d.getData().getDayOfMonth(), data.getMonthValue(), data.getYear()))); d.cadastrar(); }); } catch (Exception e) { } controlador.acaoFiltrar(true); } else { areaTransferencia.stream().forEach(d -> { tabela.getItems().add(d.getClone()); }); controlador.acaoFiltrar(false); } }); menu.getItems().addAll(copiar, colar); tabela.setContextMenu(menu); } public void setData(LocalDate data) { this.data = data; } }