Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/control-refactoring' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
trofimovaa authored and trofimovaa committed Apr 13, 2017
2 parents f83b5d7 + aec06fe commit 8392c98
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 155 deletions.
18 changes: 15 additions & 3 deletions src/com/app/MainApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,18 @@ class MainApp : Application() {
try {
val loader = FXMLLoader()
loader.location = MainApp.javaClass.getResource("/com/app/view/WorkersOverview.fxml")
rootLayout.center = loader.load<Parent?>() as AnchorPane
loader.getController<WorkersOverviewController>().mainApp = this
val pane = loader.load<Parent?>() as AnchorPane
val workerDetailsLoader = FXMLLoader()
workerDetailsLoader.location = MainApp.javaClass.getResource("/com/app/view/WorkerEditDialog.fxml")
val overViewPane = workerDetailsLoader.load<Parent?>() as AnchorPane
(pane.children[0] as SplitPane).items[1] = overViewPane
rootLayout.center = pane
val workerDetailsController = workerDetailsLoader.getController<WorkerEditDialogController>()
workerDetailsController.edited = false
val controller = loader.getController<WorkersOverviewController>()
controller.mainApp = this
controller.workerDetailsController = workerDetailsController
workerDetailsController.workerOverviewController = controller
} catch (e: Exception) {
e.printStackTrace()
}
Expand All @@ -110,13 +120,14 @@ class MainApp : Application() {
dialogStage.initOwner(primaryStage)
dialogStage.scene = Scene(loader.load())
val controller = loader.getController<WorkerEditDialogController>()
controller.edited = true
controller.dialogStage = dialogStage
dialogStage.showAndWait()
return controller.createWorker()
}

/**
* Открытие диалога реедактирования работника
* Открытие диалога редактирования работника
* @return AbstractWorker
* @see AbstractWorker
*/
Expand All @@ -129,6 +140,7 @@ class MainApp : Application() {
dialogStage.initOwner(primaryStage)
dialogStage.scene = Scene(loader.load())
val controller = loader.getController<WorkerEditDialogController>()
controller.edited = true
controller.worker = worker
controller.dialogStage = dialogStage
dialogStage.showAndWait()
Expand Down
17 changes: 7 additions & 10 deletions src/com/app/view/WorkerEditDialog.fxml
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane minHeight="-Infinity" minWidth="-Infinity" prefHeight="401.0" prefWidth="446.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.app.view.WorkerEditDialogController">
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane minHeight="-Infinity" minWidth="-Infinity" prefHeight="401.0" prefWidth="446.0" xmlns="http://javafx.com/javafx/8.0.92" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.app.view.WorkerEditDialogController">
<children>
<ComboBox fx:id="salaryTypeCombobox" layoutX="31.0" layoutY="147.0" onAction="#onSalaryTypeChanged" prefHeight="25.0" prefWidth="237.0" />
<Label layoutX="37.0" layoutY="123.0" text="Тип зарплаты" />
<Label fx:id="rateLabel" layoutX="37.0" layoutY="180.0" text="Ставка" />
<TextField fx:id="rateInput" layoutX="31.0" layoutY="197.0" prefHeight="25.0" prefWidth="187.0" />
<Label layoutX="32.0" layoutY="235.0" text="Рабочее время" />
<TextField fx:id="workTime" layoutX="31.0" layoutY="252.0" prefHeight="25.0" prefWidth="187.0" />
<Button layoutX="31.0" layoutY="354.0" mnemonicParsing="false" onAction="#handleSave" prefHeight="33.0" prefWidth="53.0" text="ОК" />
<Button layoutX="296.0" layoutY="354.0" mnemonicParsing="false" onAction="#handleCancel" prefHeight="33.0" prefWidth="103.0" text="Отмена" />
<Button fx:id="okButton" layoutX="31.0" layoutY="354.0" mnemonicParsing="false" onAction="#handleSave" prefHeight="33.0" prefWidth="53.0" text="ОК" />
<Button fx:id="cancelButton" layoutX="296.0" layoutY="354.0" mnemonicParsing="false" onAction="#handleCancel" prefHeight="33.0" prefWidth="103.0" text="Отмена" />
<Button fx:id="randomDataButton" layoutX="153.0" layoutY="354.0" mnemonicParsing="false" onAction="#handleGetRandomData" prefHeight="33.0" prefWidth="126.0" text="Random Data" />
<Label fx:id="workTimeNormLabel" layoutX="32.0" layoutY="285.0" text="Норма рабочего времени" />
<TextField fx:id="workTimeNorm" layoutX="31.0" layoutY="302.0" prefHeight="25.0" prefWidth="187.0" />
Expand All @@ -28,5 +23,7 @@
<TextField fx:id="nameInput" layoutX="31.0" layoutY="37.0" prefHeight="25.0" prefWidth="237.0" />
<Label layoutX="33.0" layoutY="70.0" text="Фамилия" />
<TextField fx:id="surnameInput" layoutX="31.0" layoutY="87.0" prefHeight="25.0" prefWidth="237.0" />
<TextField fx:id="salaryTypeInput" layoutX="30.0" layoutY="147.0" prefHeight="25.0" prefWidth="237.0" />
<Button fx:id="editButton" layoutX="142.0" layoutY="358.0" mnemonicParsing="false" onAction="#handleEditPerson" text="Редактировать" />
</children>
</AnchorPane>
63 changes: 62 additions & 1 deletion src/com/app/view/WorkerEditDialogController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ class WorkerEditDialogController {
@FXML
lateinit var salaryTypeCombobox: ComboBox<String>

/**
* Текстовое поле для отображения типа зарплат
*/
@FXML
lateinit var salaryTypeInput: TextField

/**
* Тествое поле ввода имени работника
*/
Expand Down Expand Up @@ -84,18 +90,62 @@ class WorkerEditDialogController {
@FXML
lateinit var randomDataButton: Button

/**
* Кнопка "Отмена"
*/
@FXML
lateinit var okButton: Button

/**
* Кнопка "Ок"
*/
@FXML
lateinit var cancelButton: Button

/**
* Кнопка "Редактировать"
*/
@FXML
lateinit var editButton: Button

/**
* Ссылка на контейнер
*/
lateinit var dialogStage: Stage

/**
* Ссылка на контроллер таблицы
*/
var workerOverviewController: WorkersOverviewController? = null

/**
* Показывает, какая кнопка была нажата
* @return true если была нажата кнопка "Ok"
*/
var okClicked = false
private set

/**
* Доступно ли редактирование данных
*/
var edited = false
set(value) {
salaryTypeCombobox.isVisible = value
salaryTypeInput.isVisible = !value
nameInput.isEditable = value
surnameInput.isEditable = value
rateInput.isEditable = value
workTime.isEditable = value
workTimeNorm.isEditable = value
beginDate.isEditable = value
endDate.isEditable = value
randomDataButton.isVisible = DEBUG_MODE && value
okButton.isVisible = value
cancelButton.isVisible = value
editButton.isVisible = false
field = value
}

var worker: AbstractWorker? = null
set(value) {
field = value
Expand All @@ -107,13 +157,15 @@ class WorkerEditDialogController {
salaryTypeCombobox.selectionModel.selectLast()
setVisible(true)
}
salaryTypeInput.text = worker!!.getSalaryType().toString()
nameInput.text = worker!!.name
surnameInput.text = worker!!.surname
beginDate.value = worker!!.beginDate
endDate.value = worker!!.endDate
rateInput.text = worker!!.getRate().toString()
workTime.text = worker!!.workTime.toString()
workTimeNorm.text = (worker as? WageWorker)?.workTimeNorm?.toString() ?: ""
editButton.isVisible = !edited
}
}

Expand All @@ -138,7 +190,7 @@ class WorkerEditDialogController {
@FXML
private fun initialize() {
salaryTypeCombobox.items.addAll(SalaryType.values().map { it.toString() })
randomDataButton.isVisible = DEBUG_MODE
salaryTypeInput.isEditable = false
setVisible(false)
}

Expand Down Expand Up @@ -185,6 +237,15 @@ class WorkerEditDialogController {
}
}

/**
* Редактирование работника
*/
@FXML
private fun handleEditPerson() {
worker = workerOverviewController!!.mainApp!!.showWorkerEditDialog(worker)
workerOverviewController!!.workersTable.selectionModel.select(worker)
}

@FXML
private fun onSalaryTypeChanged() {
if (salaryTypeCombobox.value == SalaryType.Hour.toString()) {
Expand Down
56 changes: 3 additions & 53 deletions src/com/app/view/WorkersOverview.fxml
Original file line number Diff line number Diff line change
@@ -1,15 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefWidth="700.0" xmlns="http://javafx.com/javafx/8.0.92" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.app.view.WorkersOverviewController">
<children>
<SplitPane dividerPositions="0.5" focusTraversable="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
Expand Down Expand Up @@ -43,49 +35,7 @@
<Button layoutX="202.0" layoutY="373.0" mnemonicParsing="false" onAction="#handleSaveAs" prefHeight="25.0" prefWidth="111.0" text="Сохранить как..." AnchorPane.bottomAnchor="5.0" AnchorPane.leftAnchor="202.0" />
</children>
</AnchorPane>
<AnchorPane prefHeight="411.0" prefWidth="300.0">
<children>
<Label layoutX="7.0" layoutY="6.0" styleClass="label-header" text="Информация о работнике" AnchorPane.leftAnchor="5.0" AnchorPane.topAnchor="5.0" />
<GridPane layoutX="14.0" layoutY="33.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="80.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="150.0" prefWidth="150.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="100.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="Имя" />
<Label fx:id="nameLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" />
<Label text="Фамилия" GridPane.rowIndex="1" />
<Label fx:id="surnameLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="Дата начала работы" GridPane.rowIndex="2" />
<Label fx:id="beginDateLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label text="Дата окончания работы" GridPane.rowIndex="3" />
<Label fx:id="endDateLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<Label text="Тип зарплаты" GridPane.rowIndex="4" />
<Label fx:id="salaryTypeLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="4" />
<Label text="Ставка" GridPane.rowIndex="5" />
<Label fx:id="rateLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="5" />
<Label text="Отработано часов" GridPane.rowIndex="6" />
<Label fx:id="workTimeLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="6" />
<Label text="Норма рабочего времени" GridPane.rowIndex="7" />
<Label fx:id="workTimeNormLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="7" />
<Label text="Зарплата" GridPane.rowIndex="8" />
<Label fx:id="salaryLabel" styleClass="label-bright" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="8" />
</children>
</GridPane>
<Button layoutX="78.0" layoutY="363.0" mnemonicParsing="false" onAction="#handleEditPerson" text="Редактировать" />
</children>
</AnchorPane>
<AnchorPane prefHeight="411.0" prefWidth="300.0"/>
</items>
</SplitPane>
</children>
Expand Down
90 changes: 2 additions & 88 deletions src/com/app/view/WorkersOverviewController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.app.view
import com.app.*
import com.app.model.*
import javafx.fxml.*
import javafx.scene.control.*
import javafx.stage.*
import java.io.*

Expand All @@ -22,59 +21,7 @@ class WorkersOverviewController : WorkersTableController() {
const val extension = ".asd"
}

/**
* Label с именем работника
*/
@FXML
private lateinit var nameLabel: Label

/**
* Label с фамилией работника
*/
@FXML
private lateinit var surnameLabel: Label

/**
* Label с датой начала работы
*/
@FXML
private lateinit var beginDateLabel: Label

/**
* Label с датой окончания работы
*/
@FXML
private lateinit var endDateLabel: Label

/**
* Label с типом зарплаты
*/
@FXML
private lateinit var salaryTypeLabel: Label

/**
* Label с размер ставки
*/
@FXML
private lateinit var rateLabel: Label

/**
* Label с отработанным времен
*/
@FXML
private lateinit var workTimeLabel: Label

/**
* Label с нормой рабочего времени
*/
@FXML
private lateinit var workTimeNormLabel: Label

/**
* Label с зарплатой
*/
@FXML
private lateinit var salaryLabel: Label
var workerDetailsController: WorkerEditDialogController? = null

/**
* Ссылка на объект основного класса
Expand All @@ -98,27 +45,7 @@ class WorkersOverviewController : WorkersTableController() {
}

private fun showWorkerDetails(worker: AbstractWorker?) {
if (worker != null) {
nameLabel.text = worker.name
surnameLabel.text = worker.surname
beginDateLabel.text = worker.beginDate.toString()
endDateLabel.text = worker.endDate?.toString() ?: ""
salaryTypeLabel.text = worker.getSalaryType().toString()
rateLabel.text = worker.getRate().toString()
workTimeLabel.text = worker.workTime.toString()
workTimeNormLabel.text = (worker as? WageWorker)?.workTimeNorm?.toString() ?: ""
salaryLabel.text = worker.getSalary().toString()
} else {
nameLabel.text = ""
surnameLabel.text = ""
beginDateLabel.text = ""
endDateLabel.text = ""
salaryTypeLabel.text = ""
rateLabel.text = ""
workTimeLabel.text = ""
workTimeNormLabel.text = ""
salaryLabel.text = ""
}
workerDetailsController?.worker = worker
}

/**
Expand Down Expand Up @@ -195,17 +122,4 @@ class WorkersOverviewController : WorkersTableController() {
mainApp?.loadPersonDataFromFile(file)
}
}

/**
* Редактирование работника
*/
@FXML
private fun handleEditPerson() {
var selectedWorker = workersTable.selectionModel.selectedItem
if (selectedWorker != null) {
selectedWorker = mainApp!!.showWorkerEditDialog(selectedWorker)
showWorkerDetails(selectedWorker)
workersTable.selectionModel.select(selectedWorker)
}
}
}

0 comments on commit 8392c98

Please sign in to comment.