mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-06-26 00:29:30 +00:00
Fixed some NPE issues in new projects and also finished wiring up spreadsheet UX to be on-parity with previous spreadsheet UX.
This commit is contained in:
parent
8fd55f6230
commit
07c57e5c1d
|
@ -96,7 +96,7 @@ public class DataUtilities {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void logScripts(Scripts scripts, PrintWriter logger) {
|
private static void logScripts(Scripts scripts, PrintWriter logger) {
|
||||||
if (scripts != null && scripts.getScript() != null || !scripts.getScript().isEmpty()) {
|
if (scripts != null && scripts.getScript() != null && !scripts.getScript().isEmpty()) {
|
||||||
scripts.getScript().forEach((script) -> {
|
scripts.getScript().forEach((script) -> {
|
||||||
if (script.getBlock() == null) {
|
if (script.getBlock() == null) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -63,23 +63,15 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
super.initialize();
|
super.initialize();
|
||||||
tableData = table.getGrid().getRows();
|
tableData = table.getGrid().getRows();
|
||||||
table.setEditable(true);
|
table.setEditable(true);
|
||||||
/*
|
table.getContextMenu().getItems().addAll(
|
||||||
table.setRowFactory(tableView -> {
|
createMenuItem("Insert Row", () -> insertRow(new Row(), getSelectedRow())),
|
||||||
final TableRow<Row> row = new TableRow<>();
|
createMenuItem("Clone Row", () -> cloneRow(editor.getSheet().getRows().getRow().get(getSelectedRow()))),
|
||||||
|
createMenuItem("Delete Row", () -> deleteRowWithConfirmation(editor.getSheet().getRows().getRow().get(getSelectedRow())))
|
||||||
final ContextMenu contextMenu = new ContextMenu(
|
);
|
||||||
createMenuItem("Insert Row", () -> tableData.add(row.getIndex(), new Row())),
|
}
|
||||||
createMenuItem("Clone Row", () -> cloneRow(row.getItem())),
|
|
||||||
createMenuItem("Delete Row", () -> deleteRowWithConfirmation(row.getItem()))
|
private int getSelectedRow() {
|
||||||
);
|
return table.getSelectionModel().getFocusedCell().getRow();
|
||||||
row.contextMenuProperty().bind(
|
|
||||||
Bindings.when(row.emptyProperty())
|
|
||||||
.then((ContextMenu) null)
|
|
||||||
.otherwise(contextMenu)
|
|
||||||
);
|
|
||||||
return row;
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -132,14 +124,14 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
if (editor.getSheet().getColumns() == null) {
|
if (editor.getSheet().getColumns() == null) {
|
||||||
editor.getSheet().setColumns(new Columns());
|
editor.getSheet().setColumns(new Columns());
|
||||||
}
|
}
|
||||||
insertViewColumn(col);
|
insertColumn(col);
|
||||||
rebuildGridUI();
|
rebuildGridUI();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addRowAction(ActionEvent event) {
|
public void addRowAction(ActionEvent event) {
|
||||||
insertViewRow(new Row());
|
insertRow(new Row(), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------
|
//--------
|
||||||
|
@ -154,11 +146,11 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertViewColumn(UserType col) {
|
private void insertColumn(UserType col) {
|
||||||
insertViewColumn(col, -1);
|
insertColumn(col, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertViewColumn(UserType col, int pos) {
|
private void insertColumn(UserType col, int pos) {
|
||||||
table.getGrid().getColumnHeaders().clear();
|
table.getGrid().getColumnHeaders().clear();
|
||||||
if (pos < 0 || pos >= editor.getSheet().getColumns().getColumn().size()) {
|
if (pos < 0 || pos >= editor.getSheet().getColumns().getColumn().size()) {
|
||||||
editor.getSheet().getColumns().getColumn().add(col);
|
editor.getSheet().getColumns().getColumn().add(col);
|
||||||
|
@ -168,8 +160,15 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
rebuildColumnHeaders();
|
rebuildColumnHeaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertViewRow(Row row) {
|
private void insertRow(Row row, int pos) {
|
||||||
editor.getSheet().getRows().getRow().add(new Row());
|
if (editor.getSheet().getRows() == null) {
|
||||||
|
editor.getSheet().setRows(new Rows());
|
||||||
|
}
|
||||||
|
if (pos < 0 || pos >= editor.getSheet().getRows().getRow().size()) {
|
||||||
|
editor.getSheet().getRows().getRow().add(row);
|
||||||
|
} else {
|
||||||
|
editor.getSheet().getRows().getRow().add(pos, row);
|
||||||
|
}
|
||||||
rebuildGridUI();
|
rebuildGridUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,25 +190,22 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
UserType newCol = new UserType();
|
UserType newCol = new UserType();
|
||||||
newCol.setName(newColName);
|
newCol.setName(newColName);
|
||||||
editor.getSheet().getColumns().getColumn().add(newCol);
|
editor.getSheet().getColumns().getColumn().add(newCol);
|
||||||
// tableData.forEach(row -> setValue(row.getOtherAttributes(), newColName, getValue(row.getOtherAttributes(), col.getName())));
|
editor.getSheet().getRows().getRow()
|
||||||
int oldPos = deleteColumn(col);
|
.forEach(row -> {
|
||||||
insertViewColumn(newCol, oldPos);
|
setValue(row.getOtherAttributes(), newColName, getValue(row.getOtherAttributes(), col.getName()));
|
||||||
|
});
|
||||||
|
deleteColumn(col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int deleteColumn(UserType col) {
|
private void deleteColumn(UserType col) {
|
||||||
// editor.getSheet().getColumns().getColumn().remove(col);
|
editor.getSheet().getColumns().getColumn().remove(col);
|
||||||
// tableData.stream()
|
editor.getSheet().getRows().getRow().stream()
|
||||||
// .map(Row::getOtherAttributes)
|
.map(Row::getOtherAttributes)
|
||||||
// .forEach(
|
.forEach(
|
||||||
// m -> m.keySet().removeIf(n -> n.getLocalPart().equals(col.getName()))
|
m -> m.keySet().removeIf(n -> n.getLocalPart().equals(col.getName()))
|
||||||
// );
|
);
|
||||||
// int colNumber = findColumn(col);
|
rebuildGridUI();
|
||||||
// if (colNumber >= 0) {
|
|
||||||
// table.getColumns().remove(colNumber);
|
|
||||||
// }
|
|
||||||
// return colNumber;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteRowWithConfirmation(Row row) {
|
private void deleteRowWithConfirmation(Row row) {
|
||||||
|
@ -222,9 +218,9 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
|
|
||||||
private void cloneRow(Row row) {
|
private void cloneRow(Row row) {
|
||||||
try {
|
try {
|
||||||
Row newRow = TransferHelper.cloneObject(row, Row.class, "row");
|
Row newRow = TransferHelper.cloneObject(row, Row.class, "row");
|
||||||
editor.getSheet().getRows().getRow().add(newRow);
|
int pos = editor.getSheet().getRows().getRow().indexOf(row);
|
||||||
rebuildGridUI();
|
insertRow(newRow, pos);
|
||||||
} catch (JAXBException ex) {
|
} catch (JAXBException ex) {
|
||||||
Logger.getLogger(SheetEditorControllerImpl.class.getName()).log(Level.SEVERE, null, ex);
|
Logger.getLogger(SheetEditorControllerImpl.class.getName()).log(Level.SEVERE, null, ex);
|
||||||
}
|
}
|
||||||
|
@ -232,28 +228,30 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
|
|
||||||
private void rebuildGridUI() {
|
private void rebuildGridUI() {
|
||||||
int numCols = editor.getSheet().getColumns().getColumn().size();
|
int numCols = editor.getSheet().getColumns().getColumn().size();
|
||||||
int numRows = editor.getSheet().getRows().getRow().size();
|
int numRows = editor.getSheet().getRows() == null ? 0 : editor.getSheet().getRows().getRow().size();
|
||||||
table.setGrid(new GridBase(numRows, numCols));
|
table.setGrid(new GridBase(numRows, numCols));
|
||||||
|
|
||||||
rebuildColumnHeaders();
|
rebuildColumnHeaders();
|
||||||
|
|
||||||
tableData = FXCollections.observableList(new ArrayList(numRows));
|
tableData = FXCollections.observableList(new ArrayList(numRows));
|
||||||
int rowNum = 0;
|
if (editor.getSheet().getRows() != null) {
|
||||||
for (Row row : editor.getSheet().getRows().getRow()) {
|
int rowNum = 0;
|
||||||
int colNum = 0;
|
for (Row row : editor.getSheet().getRows().getRow()) {
|
||||||
ObservableList<SpreadsheetCell> rowUi = FXCollections.observableList(new ArrayList<>(numCols));
|
int colNum = 0;
|
||||||
tableData.add(rowUi);
|
ObservableList<SpreadsheetCell> rowUi = FXCollections.observableList(new ArrayList<>(numCols));
|
||||||
for (UserType col : editor.getSheet().getColumns().getColumn()) {
|
tableData.add(rowUi);
|
||||||
String value = getValue(row.getOtherAttributes(), col.getName());
|
for (UserType col : editor.getSheet().getColumns().getColumn()) {
|
||||||
SpreadsheetCellBase cell = new SpreadsheetCellBase(rowNum, colNum, 1, 1);
|
String value = getValue(row.getOtherAttributes(), col.getName());
|
||||||
cell.setItem(value);
|
SpreadsheetCellBase cell = new SpreadsheetCellBase(rowNum, colNum, 1, 1);
|
||||||
cell.itemProperty().addListener((ObservableValue<? extends Object> val, Object oldVal, Object newVal) -> {
|
cell.setItem(value);
|
||||||
setValue(row.getOtherAttributes(), col.getName(), String.valueOf(newVal));
|
cell.itemProperty().addListener((ObservableValue<? extends Object> val, Object oldVal, Object newVal) -> {
|
||||||
});
|
setValue(row.getOtherAttributes(), col.getName(), String.valueOf(newVal));
|
||||||
rowUi.add(cell);
|
});
|
||||||
colNum++;
|
rowUi.add(cell);
|
||||||
|
colNum++;
|
||||||
|
}
|
||||||
|
rowNum++;
|
||||||
}
|
}
|
||||||
rowNum++;
|
|
||||||
}
|
}
|
||||||
table.getGrid().setRows(tableData);
|
table.getGrid().setRows(tableData);
|
||||||
}
|
}
|
||||||
|
@ -264,7 +262,7 @@ public class SheetEditorControllerImpl extends SheetEditorController {
|
||||||
editor.getSheet().getColumns().getColumn().stream()
|
editor.getSheet().getColumns().getColumn().stream()
|
||||||
.map(UserType::getName)
|
.map(UserType::getName)
|
||||||
.collect(Collectors.toCollection(
|
.collect(Collectors.toCollection(
|
||||||
() -> FXCollections.observableList(new ArrayList<String>(numCols))
|
() -> FXCollections.observableList(new ArrayList<>(numCols))
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user