mirror of
https://gitlab.com/kauron/jstudy
synced 2024-12-22 16:33:33 +01:00
Added tab duplication
This commit is contained in:
parent
67df24c9dc
commit
3e41a528a5
2 changed files with 16 additions and 2 deletions
|
@ -14,6 +14,7 @@ import javafx.fxml.FXMLLoader;
|
|||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.Parent;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.input.DragEvent;
|
||||
|
@ -152,7 +153,7 @@ public class Controller implements Initializable {
|
|||
|
||||
private Tab createTableTab(String name, List<TestItem> list, File file) {
|
||||
try {
|
||||
Tab tab = new Tab(name);
|
||||
final Tab tab = new Tab(name);
|
||||
|
||||
FXMLLoader loader = new FXMLLoader(Main.class.getResource("view/table.fxml"));
|
||||
Parent tableRoot = loader.load();
|
||||
|
@ -160,7 +161,16 @@ public class Controller implements Initializable {
|
|||
((TableController) loader.getController()).setData(name, list, this, file);
|
||||
tabMap.put(tab, loader.getController());
|
||||
|
||||
MenuItem duplicate = new MenuItem("Duplicate table");
|
||||
duplicate.setOnAction(event -> {
|
||||
TableController controller = loader.getController();
|
||||
Tab newTab = createTableTab(controller.getName() + " (copy)", controller.getData(), null);
|
||||
tabPane.getTabs().add(tabPane.getTabs().indexOf(tab) + 1, newTab);
|
||||
tabPane.getSelectionModel().selectNext();
|
||||
});
|
||||
|
||||
tab.setContent(tableRoot);
|
||||
tab.setContextMenu(new ContextMenu(duplicate));
|
||||
tab.setOnCloseRequest(event -> {
|
||||
if (!((TableController) loader.getController()).saved.get()) {
|
||||
Alert dialog = new Alert(Alert.AlertType.WARNING);
|
||||
|
|
|
@ -25,6 +25,7 @@ import javafx.stage.Stage;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
|
@ -40,7 +41,7 @@ public class TableController implements Initializable {
|
|||
private Controller parent;
|
||||
private File file;
|
||||
private String name;
|
||||
protected BooleanProperty saved = new SimpleBooleanProperty();
|
||||
BooleanProperty saved = new SimpleBooleanProperty();
|
||||
|
||||
@Override
|
||||
public void initialize(URL url, ResourceBundle resourceBundle) {
|
||||
|
@ -66,6 +67,9 @@ public class TableController implements Initializable {
|
|||
saved.set(file != null);
|
||||
}
|
||||
|
||||
List<TestItem> getData() {return new ArrayList<>(data);}
|
||||
String getName() {return file == null ? name : file.getName().substring(0, file.getName().lastIndexOf('.'));}
|
||||
|
||||
@FXML
|
||||
protected void onSaveAction(ActionEvent event) {
|
||||
if (file == null) {
|
||||
|
|
Loading…
Reference in a new issue