/** * Copyright [2014] [Christian Loehnert] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.ks.idnadrev.information.view.selection; import de.ks.idnadrev.entity.information.Information; import de.ks.idnadrev.information.view.BaseInformationOverviewController; import de.ks.idnadrev.information.view.InformationPreviewItem; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.TableView; import javafx.scene.input.KeyCode; import java.net.URL; import java.util.ResourceBundle; public abstract class BaseInfoSelectionController<T extends Information<T>> extends BaseInformationOverviewController { @FXML protected Button select; @FXML protected Button close; protected Information<?> selectedItem; protected final Class<T> clazz; public BaseInfoSelectionController(Class<T> clazz) { this.clazz = clazz; } @Override public void initialize(URL location, ResourceBundle resources) { super.initialize(location, resources); TableView<InformationPreviewItem> informationList = listController.getInformationList(); informationList.setOnKeyReleased(e -> { if (e.getCode() == KeyCode.ENTER) { if (currentPreview != null) { onSelect(); } } }); informationList.setOnMouseClicked(e -> { if (e.getClickCount() > 1) { if (currentPreview != null) { onSelect(); } } }); listController.setFixedTypeFilter(clazz); } @FXML public void onSelect() { selectedItem = currentPreview.getCurrentItem(); controller.stopCurrent(); } @FXML public void onClose() { selectedItem = null; controller.stopCurrent(); } public T getSelectedItem() { return (T) selectedItem; } }