mirror of
https://github.com/badvision/lawless-legends.git
synced 2025-03-01 03:30:04 +00:00
Added better control over sort direction in sheet editor
This commit is contained in:
parent
a134b1cde7
commit
6637e623fa
@ -18,11 +18,7 @@ import java.util.ResourceBundle;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.scene.control.TableView;
|
||||
import javafx.scene.control.TextField;
|
||||
import org.badvision.outlaweditor.data.xml.Rows.Row;
|
||||
import org.badvision.outlaweditor.data.xml.UserType;
|
||||
import org.controlsfx.control.spreadsheet.SpreadsheetColumn;
|
||||
import org.controlsfx.control.spreadsheet.SpreadsheetView;
|
||||
|
||||
@ -38,22 +34,22 @@ public abstract class SheetEditorController implements Initializable {
|
||||
|
||||
@FXML
|
||||
protected SpreadsheetColumn addColumn;
|
||||
|
||||
|
||||
@FXML
|
||||
protected SpreadsheetView table;
|
||||
|
||||
@FXML
|
||||
protected TextField sheetNameField;
|
||||
|
||||
|
||||
@FXML
|
||||
abstract public void addColumnAction(ActionEvent event);
|
||||
|
||||
@FXML
|
||||
abstract public void addRowAction(ActionEvent event);
|
||||
|
||||
|
||||
@FXML
|
||||
abstract public void doImport(ActionEvent event);
|
||||
|
||||
|
||||
@FXML
|
||||
protected void initialize() {
|
||||
assert addColumn != null : "fx:id=\"addColumn\" was not injected: check your FXML file 'SheetEditor.fxml'.";
|
||||
|
@ -51,8 +51,14 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||
|
||||
private SheetEditor editor;
|
||||
private ObservableList<ObservableList<SpreadsheetCell>> tableData;
|
||||
private int lastEditRow = 0;
|
||||
private int lastEditCol = 0;
|
||||
|
||||
private static Object getCellFromRow(ObservableList<SpreadsheetCell> row, int sortCol) {
|
||||
if (row.size() > sortCol) {
|
||||
return row.get(sortCol).getItem();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the controller class.
|
||||
@ -66,9 +72,13 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||
createMenuItem("Insert Row", () -> insertRow(new Row(), getSelectedRow())),
|
||||
createMenuItem("Clone Row", () -> cloneRow(editor.getSheet().getRows().getRow().get(getSelectedRow()))),
|
||||
createMenuItem("Delete Row", () -> deleteRowWithConfirmation(editor.getSheet().getRows().getRow().get(getSelectedRow()))),
|
||||
createMenuItem("Sort by", () -> {
|
||||
createMenuItem("Sort ascending", () -> {
|
||||
int sortCol = table.getSelectionModel().getFocusedCell().getColumn();
|
||||
table.setComparator((a,b)->compare(a.get(sortCol).getItem(), b.get(sortCol).getItem()));
|
||||
table.setComparator((a,b)->compare(getCellFromRow(a, sortCol), getCellFromRow(b, sortCol)));
|
||||
}),
|
||||
createMenuItem("Sort descending", () -> {
|
||||
int sortCol = table.getSelectionModel().getFocusedCell().getColumn();
|
||||
table.setComparator((a,b)->compare(getCellFromRow(b, sortCol), getCellFromRow(a, sortCol)));
|
||||
})
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user