package com.digiarea.closure.model.controller;
import java.io.File;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.geometry.VPos;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Control;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.RowConstraints;
import javafx.scene.layout.VBox;
import javafx.scene.text.TextAlignment;
import javafx.util.Callback;
import com.digiarea.closure.model.SoyCssSchemeType;
import com.digiarea.closure.model.bind.ModelFacade;
import com.digiarea.closure.model.controller.dialogs.DialogFactory;
import com.digiarea.closure.model.controller.dialogs.FolderDialogController;
import com.digiarea.closurefx.IConstants;
import com.digiarea.closurefx.build.validation.IStatus.StatusType;
/**
* FXML Controller class
*
* @author daginno
*/
public class SOYOptionsSectionController extends ClosureController implements Initializable {
public SOYOptionsSectionController(ModelFacade modelFacade, ResourceBundle bundle) {
super(modelFacade, bundle);
}
@FXML
private ComboBox<SoyCssSchemeType> controlCssScheme;
@FXML
private CheckBox controlAllowExternalCalls;
@FXML
private CheckBox controlUsingIjData;
@FXML
private CheckBox controlGenerateJsDoc;
@FXML
private CheckBox controlProvideRequireSoyNamespaces;
@FXML
private CheckBox controlDeclareTopLevelNamespace;
@FXML
private CheckBox controlGenerateGoogMessagesDefs;
@FXML
private CheckBox controlGoogMessagesExternal;
@FXML
private CheckBox controlRightToLeftDir;
@FXML
private CheckBox controlRightToLeftDirGoog;
@FXML
private TextField controlGlobalsPath;
@FXML
private Button btnBrowse;
public Button getBtnBrowse() {
return btnBrowse;
}
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
controlCssScheme.setItems(FXCollections.observableArrayList(SoyCssSchemeType.values()));
controlCssScheme.setButtonCell(new SOYOptionsSectionController.SchemeCellFactory());
controlCssScheme.setCellFactory(new Callback<ListView<SoyCssSchemeType>, ListCell<SoyCssSchemeType>>() {
@Override
public ListCell<SoyCssSchemeType> call(ListView<SoyCssSchemeType> p) {
return new SOYOptionsSectionController.SchemeCellFactory();
}
});
}
@FXML
private void handleBrowseButtonAction(ActionEvent event) {
FolderDialogController controller = DialogFactory.getFolderDialog(bundle, IConstants.SOYOptionsSection_BrowseTitle, IConstants.SOYOptionsSection_BrowseTitle, modelFacade.getDocument().getFile().getParentFile(), false, false, (String[]) null);
if (controller != null && controller.getStatus().getSeverity() != StatusType.CANCEL) {
if (controller.getSelectedFile() != null) {
modelFacade.setSOYGlobalsPath(controller.getSelectedFile().getAbsolutePath(), false);
}
}
}
@FXML
private void handleBrowseExternalButtonAction(ActionEvent event) {
File file = UIUtils.chooseFile(bundle.getString(IConstants.SOYOptionsSection_BrowseTitle), null, (String[]) null);
if (file != null) {
modelFacade.setSOYGlobalsPath(file.getAbsolutePath(), true);
}
}
public ComboBox<SoyCssSchemeType> getControlCssScheme() {
return controlCssScheme;
}
public CheckBox getControlAllowExternalCalls() {
return controlAllowExternalCalls;
}
public CheckBox getControlUsingIjData() {
return controlUsingIjData;
}
public CheckBox getControlGenerateJsDoc() {
return controlGenerateJsDoc;
}
public CheckBox getControlProvideRequireSoyNamespaces() {
return controlProvideRequireSoyNamespaces;
}
public CheckBox getControlDeclareTopLevelNamespace() {
return controlDeclareTopLevelNamespace;
}
public CheckBox getControlGenerateGoogMessagesDefs() {
return controlGenerateGoogMessagesDefs;
}
public CheckBox getControlGoogMessagesExternal() {
return controlGoogMessagesExternal;
}
public CheckBox getControlRightToLeftDir() {
return controlRightToLeftDir;
}
public CheckBox getControlRightToLeftDirGoog() {
return controlRightToLeftDirGoog;
}
public TextField getControlGlobalsPath() {
return controlGlobalsPath;
}
private class SchemeCellFactory extends ListCell<SoyCssSchemeType> {
@Override
protected void updateItem(SoyCssSchemeType item, boolean empty) {
super.updateItem(item, empty);
if (item != null) {
if (item != null) {
setText(item.name());
}
}
}
}
public AnchorPane create() throws Exception {
AnchorPane anchorPane32 = new AnchorPane();
anchorPane32.setId("AnchorPane");
anchorPane32.setMinHeight(Control.USE_PREF_SIZE);
anchorPane32.setMinWidth(Control.USE_PREF_SIZE);
anchorPane32.setPrefHeight(Control.USE_COMPUTED_SIZE);
anchorPane32.setPrefWidth(Control.USE_COMPUTED_SIZE);
TitledPane titledPane29 = new TitledPane();
titledPane29.setAnimated(false);
titledPane29.setCollapsible(false);
titledPane29.setPrefHeight(Control.USE_COMPUTED_SIZE);
titledPane29.setPrefWidth(Control.USE_COMPUTED_SIZE);
titledPane29.setText(bundle.getString("SOYOptionsSection"));
AnchorPane.setBottomAnchor(titledPane29, 0.0);
AnchorPane.setLeftAnchor(titledPane29, 0.0);
AnchorPane.setRightAnchor(titledPane29, 0.0);
AnchorPane.setTopAnchor(titledPane29, 0.0);
VBox vBox57 = new VBox();
vBox57.setPrefHeight(200.0);
vBox57.setPrefWidth(100.0);
vBox57.setSpacing(5.0);
Label label74 = new Label();
label74.setText(bundle.getString("SOYOptionsSection_Desc"));
vBox57.getChildren().add(label74);
GridPane gridPane67 = new GridPane();
gridPane67.setAlignment(Pos.TOP_LEFT);
gridPane67.setHgap(5.0);
gridPane67.setMinHeight(Control.USE_PREF_SIZE);
gridPane67.setMinWidth(Control.USE_PREF_SIZE);
VBox.setVgrow(gridPane67, Priority.NEVER);
controlGlobalsPath = new TextField();
controlGlobalsPath.setPrefWidth(200.0);
GridPane.setColumnIndex(controlGlobalsPath, 1);
GridPane.setRowIndex(controlGlobalsPath, 0);
gridPane67.getChildren().add(controlGlobalsPath);
Label label75 = new Label();
label75.setContentDisplay(ContentDisplay.LEFT);
label75.setText(bundle.getString("SOYOptionsSection_GlobalsFile"));
label75.setTextAlignment(TextAlignment.LEFT);
GridPane.setColumnIndex(label75, 0);
GridPane.setHalignment(label75, HPos.RIGHT);
GridPane.setRowIndex(label75, 0);
gridPane67.getChildren().add(label75);
btnBrowse = new Button();
btnBrowse.setMaxWidth(1.7976931348623157E308);
btnBrowse.setMnemonicParsing(false);
btnBrowse.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
handleBrowseButtonAction(event);
}
});
btnBrowse.setText(bundle.getString("Button_Browse"));
GridPane.setColumnIndex(btnBrowse, 2);
GridPane.setRowIndex(btnBrowse, 0);
GridPane.setValignment(btnBrowse, VPos.CENTER);
Insets insets85 = new Insets(-2.0, 0.0, 0.0, 0.0);
GridPane.setMargin(btnBrowse, insets85);
gridPane67.getChildren().add(btnBrowse);
Button button65 = new Button();
button65.setMaxWidth(1.7976931348623157E308);
button65.setMnemonicParsing(false);
button65.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
handleBrowseExternalButtonAction(event);
}
});
button65.setText(bundle.getString("OutputSection_Browse_External"));
GridPane.setColumnIndex(button65, 3);
GridPane.setRowIndex(button65, 0);
GridPane.setValignment(button65, VPos.CENTER);
Insets insets86 = new Insets(-2.0, 0.0, 0.0, 0.0);
GridPane.setMargin(button65, insets86);
gridPane67.getChildren().add(button65);
ColumnConstraints columnConstraints148 = new ColumnConstraints();
columnConstraints148.setHgrow(Priority.NEVER);
columnConstraints148.setMinWidth(Control.USE_COMPUTED_SIZE);
columnConstraints148.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane67.getColumnConstraints().add(columnConstraints148);
ColumnConstraints columnConstraints149 = new ColumnConstraints();
columnConstraints149.setHgrow(Priority.SOMETIMES);
columnConstraints149.setMinWidth(10.0);
columnConstraints149.setPrefWidth(100.0);
gridPane67.getColumnConstraints().add(columnConstraints149);
ColumnConstraints columnConstraints150 = new ColumnConstraints();
columnConstraints150.setHgrow(Priority.NEVER);
columnConstraints150.setMinWidth(Control.USE_COMPUTED_SIZE);
columnConstraints150.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane67.getColumnConstraints().add(columnConstraints150);
ColumnConstraints columnConstraints151 = new ColumnConstraints();
columnConstraints151.setHgrow(Priority.NEVER);
gridPane67.getColumnConstraints().add(columnConstraints151);
RowConstraints rowConstraints134 = new RowConstraints();
rowConstraints134.setMinHeight(Control.USE_PREF_SIZE);
rowConstraints134.setPrefHeight(Control.USE_COMPUTED_SIZE);
rowConstraints134.setVgrow(Priority.NEVER);
gridPane67.getRowConstraints().add(rowConstraints134);
vBox57.getChildren().add(gridPane67);
GridPane gridPane68 = new GridPane();
gridPane68.setAlignment(Pos.TOP_LEFT);
gridPane68.setHgap(5.0);
gridPane68.setMinHeight(Control.USE_PREF_SIZE);
gridPane68.setMinWidth(Control.USE_PREF_SIZE);
VBox.setVgrow(gridPane68, Priority.NEVER);
controlCssScheme = new ComboBox();
controlCssScheme.setMaxWidth(1.7976931348623157E308);
GridPane.setColumnIndex(controlCssScheme, 1);
GridPane.setRowIndex(controlCssScheme, 0);
gridPane68.getChildren().add(controlCssScheme);
Label label76 = new Label();
label76.setText(bundle.getString("SOYOptionsSection_Css"));
GridPane.setColumnIndex(label76, 0);
GridPane.setHalignment(label76, HPos.RIGHT);
GridPane.setRowIndex(label76, 0);
gridPane68.getChildren().add(label76);
ColumnConstraints columnConstraints152 = new ColumnConstraints();
columnConstraints152.setHgrow(Priority.NEVER);
columnConstraints152.setMinWidth(Control.USE_COMPUTED_SIZE);
columnConstraints152.setPrefWidth(Control.USE_COMPUTED_SIZE);
gridPane68.getColumnConstraints().add(columnConstraints152);
ColumnConstraints columnConstraints153 = new ColumnConstraints();
columnConstraints153.setHgrow(Priority.SOMETIMES);
columnConstraints153.setMinWidth(10.0);
columnConstraints153.setPrefWidth(100.0);
gridPane68.getColumnConstraints().add(columnConstraints153);
RowConstraints rowConstraints135 = new RowConstraints();
rowConstraints135.setMinHeight(Control.USE_PREF_SIZE);
rowConstraints135.setPrefHeight(Control.USE_COMPUTED_SIZE);
rowConstraints135.setVgrow(Priority.NEVER);
gridPane68.getRowConstraints().add(rowConstraints135);
vBox57.getChildren().add(gridPane68);
controlProvideRequireSoyNamespaces = new CheckBox();
controlProvideRequireSoyNamespaces.setMnemonicParsing(false);
controlProvideRequireSoyNamespaces.setText(bundle.getString("SOYOptionsSection_Check_GoogProvide"));
controlProvideRequireSoyNamespaces.setWrapText(true);
vBox57.getChildren().add(controlProvideRequireSoyNamespaces);
controlDeclareTopLevelNamespace = new CheckBox();
controlDeclareTopLevelNamespace.setMnemonicParsing(false);
controlDeclareTopLevelNamespace.setText(bundle.getString("SOYOptionsSection_Check_Namespace"));
vBox57.getChildren().add(controlDeclareTopLevelNamespace);
controlGenerateJsDoc = new CheckBox();
controlGenerateJsDoc.setMnemonicParsing(false);
controlGenerateJsDoc.setText(bundle.getString("SOYOptionsSection_Check_Docs"));
vBox57.getChildren().add(controlGenerateJsDoc);
controlGenerateGoogMessagesDefs = new CheckBox();
controlGenerateGoogMessagesDefs.setMnemonicParsing(false);
controlGenerateGoogMessagesDefs.setText(bundle.getString("SOYOptionsSection_Check_Msg"));
Insets insets87 = new Insets(10.0, 0.0, 0.0, 0.0);
VBox.setMargin(controlGenerateGoogMessagesDefs, insets87);
vBox57.getChildren().add(controlGenerateGoogMessagesDefs);
controlGoogMessagesExternal = new CheckBox();
controlGoogMessagesExternal.setMnemonicParsing(false);
controlGoogMessagesExternal.setText(bundle.getString("SOYOptionsSection_Check_MsgExternal"));
vBox57.getChildren().add(controlGoogMessagesExternal);
controlRightToLeftDir = new CheckBox();
controlRightToLeftDir.setMnemonicParsing(false);
controlRightToLeftDir.setText(bundle.getString("SOYOptionsSection_Check_Rtl"));
vBox57.getChildren().add(controlRightToLeftDir);
controlRightToLeftDirGoog = new CheckBox();
controlRightToLeftDirGoog.setMnemonicParsing(false);
controlRightToLeftDirGoog.setText(bundle.getString("SOYOptionsSection_Check_RtlGoog"));
vBox57.getChildren().add(controlRightToLeftDirGoog);
controlUsingIjData = new CheckBox();
controlUsingIjData.setMnemonicParsing(false);
controlUsingIjData.setText(bundle.getString("SOYOptionsSection_Check_Injected"));
Insets insets88 = new Insets(10.0, 0.0, 0.0, 0.0);
VBox.setMargin(controlUsingIjData, insets88);
vBox57.getChildren().add(controlUsingIjData);
controlAllowExternalCalls = new CheckBox();
controlAllowExternalCalls.setMnemonicParsing(false);
controlAllowExternalCalls.setText(bundle.getString("SOYOptionsSection_Check_ExternalCalls"));
vBox57.getChildren().add(controlAllowExternalCalls);
Insets insets89 = new Insets(10.0, 10.0, 10.0, 10.0);
vBox57.setPadding(insets89);
titledPane29.setContent(vBox57);
anchorPane32.getChildren().add(titledPane29);
initialize(null, bundle);
return anchorPane32;
}
}