/*
* Copyright 2015 Bekwam, Inc
*
* 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 com.bekwam.examples.javafx.binding1;
import java.util.ArrayList;
import java.util.List;
import com.bekwam.examples.javafx.commons.PairStringConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleButton;
import javafx.util.Pair;
/**
* JavaFX Controller used in the single-FXML Canada / US address form demo
*
* @see Binding1App
*
* @author carlwalker
*
*/
public class AddressController {
private Logger logger = LoggerFactory.getLogger( AddressController.class );
@FXML
ToggleButton tbCanada;
@FXML
ToggleButton tbUS;
@FXML
TextField tfAddress1;
@FXML
TextField tfAddress2;
@FXML
TextField tfCity;
@FXML
Label lblCAProvince;
@FXML
ChoiceBox<Pair<String, String>> cbCAProvince;
@FXML
Label lblUSState;
@FXML
ChoiceBox<Pair<String, String>> cbUSState;
@FXML
TextField tfPostalCode;
@FXML
TextField tfPostalCodeExt;
@FXML
Label lblPostalCodeSep;
private final List<Pair<String, String>> provinces = new ArrayList<>();
private final List<Pair<String, String>> states = new ArrayList<>();
public AddressController() {
initCanadianProvinces();
initUSStates();
}
@FXML
public void initialize() {
//
// Controls specific to Canada
//
lblCAProvince.visibleProperty().bind( tbCanada.selectedProperty() );
cbCAProvince.visibleProperty().bind( tbCanada.selectedProperty() );
cbCAProvince.setItems( FXCollections.observableArrayList(provinces) );
cbCAProvince.setConverter(new PairStringConverter(provinces));
//
// Controls specific to US
//
lblUSState.visibleProperty().bind( tbUS.selectedProperty() );
cbUSState.visibleProperty().bind( tbUS.selectedProperty() );
cbUSState.setItems( FXCollections.observableArrayList(states) );
cbUSState.setConverter(new PairStringConverter(states));
tfPostalCodeExt.visibleProperty().bind(tbUS.selectedProperty());
lblPostalCodeSep.visibleProperty().bind(tbUS.selectedProperty());
}
@FXML
public void clearForm() {
tfAddress1.setText("");
tfAddress2.setText("");
tfCity.setText("");
cbCAProvince.getSelectionModel().clearSelection();
cbUSState.getSelectionModel().clearSelection();
tfPostalCode.setText("");
tfPostalCodeExt.setText("");;
}
@FXML
public void save(ActionEvent evt) {
if( logger.isDebugEnabled() ) {
logger.debug("[SAVE]");
}
if( logger.isDebugEnabled() ) {
logger.debug("[SAVE] address1={}", tfAddress1.getText());
logger.debug("[SAVE] address2={}", tfAddress2.getText());
logger.debug("[SAVE] city={}", tfCity.getText());
logger.debug("[SAVE] ca province={}", cbCAProvince.getSelectionModel().getSelectedItem());
logger.debug("[SAVE] us state={}", cbUSState.getSelectionModel().getSelectedItem());
logger.debug("[SAVE] postalCode={}", tfPostalCode.getText());
logger.debug("[SAVE] postalCodeExt={}", tfPostalCodeExt.getText());
}
((Button)evt.getSource()).getScene().getWindow().hide();
}
@FXML
public void cancel(ActionEvent evt) {
if( logger.isDebugEnabled() ) {
logger.debug("[CANCEL]");
}
((Button)evt.getSource()).getScene().getWindow().hide();
}
private void initCanadianProvinces() {
provinces.add(new Pair<String, String>("AB", "Alberta"));
provinces.add(new Pair<String, String>("BC", "British Columbia"));
provinces.add(new Pair<String, String>("MB", "Manitoba"));
provinces.add(new Pair<String, String>("NB", "New Brunswick"));
provinces.add(new Pair<String, String>("NL", "Newfoundland and Labrador"));
provinces.add(new Pair<String, String>("NS", "Nova Scotia"));
provinces.add(new Pair<String, String>("NT", "Northwest Territories"));
provinces.add(new Pair<String, String>("NU", "Nunavut"));
provinces.add(new Pair<String, String>("ON", "Ontario"));
provinces.add(new Pair<String, String>("PE", "Prince Edward Island"));
provinces.add(new Pair<String, String>("QC", "Quebec"));
provinces.add(new Pair<String, String>("SK", "Saskatchewan"));
provinces.add(new Pair<String, String>("YT", "Yukon"));
}
private void initUSStates() {
states.add(new Pair<String, String>("AL", "Alabama"));
states.add(new Pair<String, String>("AK", "Alaska"));
states.add(new Pair<String, String>("AZ", "Arizona"));
states.add(new Pair<String, String>("AR", "Arkansas"));
states.add(new Pair<String, String>("CA", "California"));
states.add(new Pair<String, String>("CO", "Colorado"));
states.add(new Pair<String, String>("CT", "Connecticut"));
states.add(new Pair<String, String>("DE", "Delaware"));
states.add(new Pair<String, String>("DC", "Dist. of Columbia"));
states.add(new Pair<String, String>("FL", "Florida"));
states.add(new Pair<String, String>("GA", "Georgia"));
states.add(new Pair<String, String>("HI", "Hawaii"));
states.add(new Pair<String, String>("ID", "Idaho"));
states.add(new Pair<String, String>("IL", "Illinois"));
states.add(new Pair<String, String>("IN", "Indiana"));
states.add(new Pair<String, String>("IA", "Iowa"));
states.add(new Pair<String, String>("KS", "Kansas"));
states.add(new Pair<String, String>("KY", "Kentucky"));
states.add(new Pair<String, String>("LA", "Louisiana"));
states.add(new Pair<String, String>("ME", "Maine"));
states.add(new Pair<String, String>("MD", "Maryland"));
states.add(new Pair<String, String>("MA", "Massachusetts"));
states.add(new Pair<String, String>("MI", "Michigan"));
states.add(new Pair<String, String>("MN", "Minnesota"));
states.add(new Pair<String, String>("MS", "Mississippi"));
states.add(new Pair<String, String>("MO", "Missouri"));
states.add(new Pair<String, String>("MT", "Montana"));
states.add(new Pair<String, String>("NE", "Nebraska"));
states.add(new Pair<String, String>("NV", "Nevada"));
states.add(new Pair<String, String>("NH", "New Hampshire"));
states.add(new Pair<String, String>("NJ", "New Jersey"));
states.add(new Pair<String, String>("NM", "New Mexico"));
states.add(new Pair<String, String>("NY", "New York"));
states.add(new Pair<String, String>("NC", "North Carolina"));
states.add(new Pair<String, String>("ND", "North Dakota"));
states.add(new Pair<String, String>("OH", "Ohio"));
states.add(new Pair<String, String>("OK", "Oklahoma"));
states.add(new Pair<String, String>("OR", "Oregon"));
states.add(new Pair<String, String>("PA", "Pennsylvania"));
states.add(new Pair<String, String>("RI", "Rhode Island"));
states.add(new Pair<String, String>("SC", "South Carolina"));
states.add(new Pair<String, String>("SD", "South Dakota"));
states.add(new Pair<String, String>("TN", "Tennessee"));
states.add(new Pair<String, String>("TX", "Texas"));
states.add(new Pair<String, String>("UT", "Utah"));
states.add(new Pair<String, String>("VT", "Vermont"));
states.add(new Pair<String, String>("VA", "Virginia"));
states.add(new Pair<String, String>("WA", "Washington"));
states.add(new Pair<String, String>("WV", "West Virginia"));
states.add(new Pair<String, String>("WI", "Wisconsin" ));
states.add(new Pair<String, String>("WY", "Wyoming"));
}
}