/* * Copyright (c) 2015 University of Illinois Board of Trustees, All rights reserved. * Developed at GSLIS/ the iSchool, by Dr. Jana Diesner, Amirhossein Aleyasen, * Chieh-Li Chin, Shubhanshu Mishra, Kiumars Soltani, and Liang Tao. * * 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 2 of the License, or any later version. * * This program 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 context.ui.control.codebooknetwork; import context.app.AppConfig; import context.core.entity.FileData; import context.ui.control.configuration.ConfigurationController; import context.ui.misc.FileHandler; import context.ui.misc.PropertiesUtil; import java.net.URL; import java.util.ResourceBundle; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.TextField; /** * FXML Controller class * * @author Amirhossein Aleyasen <aleyase2@illinois.edu> */ public class CodebookNetworkConfigurationController extends ConfigurationController implements Initializable { /** * */ public static String path = PropertiesUtil.getFXMLPath(CodebookNetworkConfigurationController.class); @FXML private Button browseButton; @FXML private TextField codebookFileTextField; // @FXML // private ComboBox<String> codebookMethodComboBox; // @FXML // private ComboBox<String> codebookModeComboBox; @FXML private ComboBox<String> networkTypeComboBox; @FXML private ComboBox<String> aggregationComboBox; @FXML private ComboBox<String> unitOfAnalysisComboBox; @FXML private TextField customTagTextField; @FXML private TextField distanceTextField; @FXML private Label titleLabel; /** * * @param title */ @Override public void setTitle(String title) { titleLabel.setText(title); } /** * * @param url * @param rb */ @Override public void initialize(URL url, ResourceBundle rb) { // ObservableList<String> codebookMethodOptions // = FXCollections.observableArrayList( // "Normalization", // "Entity Class Encoding" // ); // codebookMethodComboBox.getItems().addAll(codebookMethodOptions); // codebookMethodComboBox.getSelectionModel().select(0); // ObservableList<String> codebookModeOptions // = FXCollections.observableArrayList( // "Replace and Insert", //0 // "Positive Filter", //1 // "Positive Filter with Placeholder" //2 // ); // codebookModeComboBox.getItems().addAll(codebookModeOptions); // codebookModeComboBox.getSelectionModel().select(2); ObservableList<String> networkTypeOptions = FXCollections.observableArrayList( "One-mode Network", "Multi-mode Network" ); networkTypeComboBox.getItems().addAll(networkTypeOptions); networkTypeComboBox.getSelectionModel().select(0); ObservableList<String> aggregationOptions = FXCollections.observableArrayList( "Per Document", "Per Corpus" ); aggregationComboBox.getItems().addAll(aggregationOptions); aggregationComboBox.getSelectionModel().select(1); ObservableList<String> unitOfAnalysisOptions = FXCollections.observableArrayList( "Sentence", "Paragraph", "Text", "Custom Tag" ); unitOfAnalysisComboBox.getItems().addAll(unitOfAnalysisOptions); unitOfAnalysisComboBox.getSelectionModel().select(2); distanceTextField.setText(AppConfig.getProperty("task.lexisnexisparse.distance")); customTagTextField.setVisible(false); } /** * * @return */ public String getCustomTag() { return customTagTextField.textProperty().get(); } /** * * @return */ public int getUnitOfAnalysis() { // 1-sentence 2- paragraph 3-text 4-custom tag return unitOfAnalysisComboBox.getSelectionModel().getSelectedIndex() + 1; } /** * * @return */ public int getCodebookMode() { // 0- replace and Insert 1- positive filter 2- with placeholder // return codebookModeComboBox.getSelectionModel().getSelectedIndex(); return 2; } /** * * @return */ public int getCodebookMethod() { // 0 - normalization 1- entity class encoding // return codebookMethodComboBox.getSelectionModel().getSelectedIndex(); return 0; } /** * * @return */ public int getNetworkType() { // 0 - one-mode 1- multi-mode return networkTypeComboBox.getSelectionModel().getSelectedIndex(); } /** * * @return */ public int getAggregationType() { // 0 - per document 1- per corpus return aggregationComboBox.getSelectionModel().getSelectedIndex(); } /** * * @return */ public String getCodebookFile() { return codebookFileTextField.textProperty().get(); } /** * * @return */ public int getDistance() { return Integer.parseInt(distanceTextField.textProperty().get()); } @FXML private void handleBrowseButton(ActionEvent event) { FileData file = FileHandler.openFileChooser("Open Codebook File..."); if (file != null && file.getPath() != null) { codebookFileTextField.textProperty().set(file.getPath().get()); } } @FXML private void handleUnitOfAnalysisComboBox(ActionEvent event) { if (unitOfAnalysisComboBox.getSelectionModel().getSelectedIndex() == 3) { customTagTextField.setVisible(true); customTagTextField.requestFocus(); } else { customTagTextField.setVisible(false); } } }