2018-03-02 13:50:21 +01:00
/ * *
* cemu_UI
*
2018-03-29 11:26:20 +02:00
* Copyright 2017 - 2018 < @Seil0 >
2018-03-02 13:50:21 +01:00
*
* 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 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 , write to the Free Software
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston ,
* MA 02110 - 1301 , USA .
* /
package com.cemu_UI.uiElements ;
import java.util.ResourceBundle ;
import com.jfoenix.controls.JFXButton ;
import com.jfoenix.controls.JFXDialog ;
import com.jfoenix.controls.JFXDialogLayout ;
import javafx.event.ActionEvent ;
import javafx.event.EventHandler ;
import javafx.scene.layout.AnchorPane ;
import javafx.scene.layout.Pane ;
import javafx.scene.layout.StackPane ;
import javafx.scene.text.Text ;
public class JFXOkayCancelDialog {
private String headingText ;
private String bodyText ;
private String dialogBtnStyle ;
private String okayText ;
private String cancelText ;
private int dialogWidth ;
private int dialogHeight ;
private EventHandler < ActionEvent > okayAction ;
private EventHandler < ActionEvent > cancelAction ;
private Pane pane ;
/ * *
* Creates a new JFoenix Dialog to show some information with okay and cancel option
2018-03-29 11:26:20 +02:00
* @param headingText Heading Text , just the heading
* @param bodyText body Text , all other text belongs here
* @param dialogBtnStyle Style of the okay button
* @param dialogWidth dialog width
* @param dialogHeight dialog height
* @param okayAction action which is performed if the okay button is clicked
* @param cancelAction action which is performed if the cancel button is clicked
* @param pane pane to which the dialog belongs
2018-03-02 13:50:21 +01:00
* /
public JFXOkayCancelDialog ( String headingText , String bodyText , String dialogBtnStyle , int dialogWidth ,
int dialogHeight , EventHandler < ActionEvent > okayAction , EventHandler < ActionEvent > cancelAction , Pane pane ,
ResourceBundle bundle ) {
this . headingText = headingText ;
this . bodyText = bodyText ;
this . dialogBtnStyle = dialogBtnStyle ;
this . dialogWidth = dialogWidth ;
this . dialogHeight = dialogHeight ;
this . okayAction = okayAction ;
this . cancelAction = cancelAction ;
this . pane = pane ;
okayText = bundle . getString ( " okayBtnText " ) ;
cancelText = bundle . getString ( " cancelBtnText " ) ;
}
2018-03-29 11:26:20 +02:00
public JFXOkayCancelDialog ( ) {
// Auto-generated constructor stub
}
2018-03-02 13:50:21 +01:00
public void show ( ) {
JFXDialogLayout content = new JFXDialogLayout ( ) ;
2018-03-29 11:26:20 +02:00
content . setHeading ( new Text ( headingText ) ) ;
content . setBody ( new Text ( bodyText ) ) ;
StackPane stackPane = new StackPane ( ) ;
stackPane . autosize ( ) ;
JFXDialog dialog = new JFXDialog ( stackPane , content , JFXDialog . DialogTransition . LEFT , true ) ;
JFXButton okayBtn = new JFXButton ( okayText ) ;
okayBtn . addEventHandler ( ActionEvent . ACTION , ( e ) - > {
dialog . close ( ) ;
} ) ;
okayBtn . addEventHandler ( ActionEvent . ACTION , okayAction ) ;
okayBtn . setButtonType ( com . jfoenix . controls . JFXButton . ButtonType . RAISED ) ;
okayBtn . setPrefHeight ( 32 ) ;
okayBtn . setStyle ( dialogBtnStyle ) ;
JFXButton cancelBtn = new JFXButton ( cancelText ) ;
cancelBtn . addEventHandler ( ActionEvent . ACTION , ( e ) - > {
dialog . close ( ) ;
} ) ;
cancelBtn . addEventHandler ( ActionEvent . ACTION , cancelAction ) ;
cancelBtn . setButtonType ( com . jfoenix . controls . JFXButton . ButtonType . RAISED ) ;
cancelBtn . setPrefHeight ( 32 ) ;
cancelBtn . setStyle ( dialogBtnStyle ) ;
content . setActions ( cancelBtn , okayBtn ) ;
content . setPrefSize ( dialogWidth , dialogHeight ) ;
pane . getChildren ( ) . add ( stackPane ) ;
AnchorPane . setTopAnchor ( stackPane , ( pane . getHeight ( ) - content . getPrefHeight ( ) ) / 2 ) ;
AnchorPane . setLeftAnchor ( stackPane , ( pane . getWidth ( ) - content . getPrefWidth ( ) ) / 2 ) ;
dialog . show ( ) ;
}
public String getHeadingText ( ) {
return headingText ;
}
public void setHeadingText ( String headingText ) {
this . headingText = headingText ;
}
public String getBodyText ( ) {
return bodyText ;
}
public void setBodyText ( String bodyText ) {
this . bodyText = bodyText ;
}
public String getDialogBtnStyle ( ) {
return dialogBtnStyle ;
}
public void setDialogBtnStyle ( String dialogBtnStyle ) {
this . dialogBtnStyle = dialogBtnStyle ;
2018-03-02 13:50:21 +01:00
}
public String getOkayText ( ) {
return okayText ;
}
public void setOkayText ( String okayText ) {
this . okayText = okayText ;
}
public String getCancelText ( ) {
return cancelText ;
}
public void setCancelText ( String cancelText ) {
this . cancelText = cancelText ;
}
2018-03-29 11:26:20 +02:00
public int getDialogWidth ( ) {
return dialogWidth ;
}
public void setDialogWidth ( int dialogWidth ) {
this . dialogWidth = dialogWidth ;
}
public int getDialogHeight ( ) {
return dialogHeight ;
}
public void setDialogHeight ( int dialogHeight ) {
this . dialogHeight = dialogHeight ;
}
2018-03-02 13:50:21 +01:00
public EventHandler < ActionEvent > getOkayAction ( ) {
return okayAction ;
}
public void setOkayAction ( EventHandler < ActionEvent > okayAction ) {
this . okayAction = okayAction ;
}
public EventHandler < ActionEvent > getCancelAction ( ) {
return cancelAction ;
}
public void setCancelAction ( EventHandler < ActionEvent > cancelAction ) {
this . cancelAction = cancelAction ;
}
2018-03-29 11:26:20 +02:00
public Pane getPane ( ) {
return pane ;
}
public void setPane ( Pane pane ) {
this . pane = pane ;
}
2018-03-02 13:50:21 +01:00
}