Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
xzel23 committed Jan 30, 2025
1 parent d9debfb commit 0f3a2cc
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 25 deletions.
4 changes: 2 additions & 2 deletions meja-fx/src/main/java/com/dua3/meja/ui/fx/FxSegmentView.java
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ public void updateLayout() {

@Override
public void setViewSizeOnDisplay(float widthInPoints, float heightIPoints) {
Scale2f scale = svDelegate.getScale();
setPrefSize(widthInPoints * scale.sx(), heightIPoints * scale.sy());
Scale2f scale = svDelegate.getScale();
setPrefSize(widthInPoints * scale.sx(), heightIPoints * scale.sy());
}
}
34 changes: 11 additions & 23 deletions meja-fx/src/main/java/com/dua3/meja/ui/fx/FxSheetView.java
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,9 @@ public class FxSheetView extends StackPane implements SheetView {
public FxSheetView(Sheet sheet) {
LOG.debug("FxSheetView({})", sheet);

this.delegate = new FxSheetViewDelegate(sheet, this);
this.delegate = new FxSheetViewDelegate(sheet, this, getDpi());
this.gridPane = new GridPane();

updateDelegate(sheet);

// Create quadrants
ObservableSheet observableSheet = new ObservableSheet(sheet);

Expand All @@ -71,8 +69,6 @@ public FxSheetView(Sheet sheet) {
bottomLeftQuadrant = new FxSegmentView(delegate, Quadrant.BOTTOM_LEFT, observableSheet);
bottomRightQuadrant = new FxSegmentView(delegate, Quadrant.BOTTOM_RIGHT, observableSheet);

updateContent();

// Create scrollbars
hScrollbar = new ScrollBar();
hScrollbar.setOrientation(Orientation.HORIZONTAL);
Expand Down Expand Up @@ -181,6 +177,10 @@ private <V> void entangleBinding(Property<V> visibleProperty, Property<V> contro
visibleProperty.bindBidirectional(dependentProperty);
}

static int getDpi() {
return Toolkit.getDefaultToolkit().getScreenResolution();
}

void onKeyPressed(KeyEvent event) {
LOG.trace("onKeyPressed(): event = {}, focusOwner = {}", () -> event, () -> getScene().getFocusOwner());

Expand Down Expand Up @@ -254,15 +254,15 @@ public void scrollToCurrentCell() {
Sheet sheet = delegate.getSheet();
int i = cell.getRowNumber();
int j = cell.getColumnNumber();
int splitRow = sheet.getSplitRow();
int splitRow = delegate.getSplitRow();
if (i >= splitRow) {
i -= splitRow;
// at least part of the (possibly merged) cell is below the split => scroll row into view
FxSegmentView.VirtualFlowWithHiddenScrollBars<FxRow> flow = bottomRightQuadrant.flow;
LOG.trace("scrolling row {} into view", i);
flow.scrollTo(i);
}
int splitColumn = sheet.getSplitColumn();
int splitColumn = delegate.getSplitColumn();
if (j >= splitColumn) {
// at least part of the (possibly merged) cell is to the right of the split => scroll column into view
Scale2f s = delegate.getScale();
Expand Down Expand Up @@ -336,11 +336,11 @@ private void updateLayout() {
LOG.debug("updateLayout()");
PlatformHelper.checkApplicationThread();
try (var __ = delegate.automaticWriteLock()) {
updateDelegate(getSheet());
topLeftQuadrant.updateLayout();
delegate.update(getDpi());
bottomRightQuadrant.updateLayout();
topRightQuadrant.updateLayout();
bottomLeftQuadrant.updateLayout();
bottomRightQuadrant.updateLayout();
topLeftQuadrant.updateLayout();
}
}

Expand All @@ -356,12 +356,7 @@ public void updateContent() {
try (var __ = delegate.automaticWriteLock()) {
updating = true;

updateDelegate(getSheet());

topLeftQuadrant.updateLayout();
topRightQuadrant.updateLayout();
bottomLeftQuadrant.updateLayout();
bottomRightQuadrant.updateLayout();
updateLayout();

topLeftQuadrant.refresh();
topRightQuadrant.refresh();
Expand All @@ -372,13 +367,6 @@ public void updateContent() {
}
}

private void updateDelegate(Sheet sheet) {
int dpi = Toolkit.getDefaultToolkit().getScreenResolution();
delegate.setDisplayScale(getDisplayScale());
delegate.setScale(new Scale2f(sheet.getZoom() * dpi / 72.0f));
delegate.updateLayout();
}

@Override
public void focusView() {
LOG.debug("focusView()");
Expand Down

0 comments on commit 0f3a2cc

Please sign in to comment.