-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #28 from MichalHecko/history-better-ui
HistoryCommits refactoring and UI tweaks
- Loading branch information
Showing
9 changed files
with
235 additions
and
191 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
52 changes: 52 additions & 0 deletions
52
src/main/java/com/az/gitember/module/history/factory/HistoryCommitsTableLaneCellFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
package com.az.gitember.module.history.factory; | ||
|
||
import com.az.gitember.module.history.renderer.HistoryPlotCommitRenderer; | ||
import javafx.beans.InvalidationListener; | ||
import javafx.beans.value.ChangeListener; | ||
import javafx.beans.value.ObservableValue; | ||
import javafx.scene.canvas.Canvas; | ||
import javafx.scene.canvas.GraphicsContext; | ||
import org.eclipse.jgit.revplot.PlotCommit; | ||
import org.eclipse.jgit.revplot.PlotLane; | ||
|
||
public class HistoryCommitsTableLaneCellFactory implements ObservableValue<Canvas> { | ||
|
||
private final PlotCommit<PlotLane> commit; | ||
private final HistoryPlotCommitRenderer historyPlotCommitRenderer; | ||
private final double canvasWidth; | ||
private final double canvasHeight; | ||
|
||
|
||
public HistoryCommitsTableLaneCellFactory(PlotCommit<PlotLane> commit, | ||
HistoryPlotCommitRenderer historyPlotCommitRenderer, | ||
double canvasHeight) { | ||
this.commit = commit; | ||
this.historyPlotCommitRenderer = historyPlotCommitRenderer; | ||
this.canvasWidth = 100 * canvasHeight; | ||
this.canvasHeight = canvasHeight; | ||
} | ||
|
||
@Override | ||
public Canvas getValue() { | ||
var canvas = new Canvas(canvasWidth, canvasHeight); | ||
GraphicsContext gc = canvas.getGraphicsContext2D(); | ||
historyPlotCommitRenderer.render(gc, commit, (int) canvasHeight); | ||
return canvas; | ||
} | ||
|
||
@Override | ||
public void addListener(InvalidationListener listener) { | ||
} | ||
|
||
@Override | ||
public void removeListener(InvalidationListener listener) { | ||
} | ||
|
||
@Override | ||
public void addListener(ChangeListener<? super Canvas> listener) { | ||
} | ||
|
||
@Override | ||
public void removeListener(ChangeListener<? super Canvas> listener) { | ||
} | ||
} |
46 changes: 46 additions & 0 deletions
46
src/main/java/com/az/gitember/module/history/factory/HistoryCommitsTableRowFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
package com.az.gitember.module.history.factory; | ||
|
||
import com.az.gitember.controller.LookAndFeelSet; | ||
import com.az.gitember.data.Const; | ||
import com.az.gitember.service.Context; | ||
import javafx.scene.control.TableRow; | ||
import javafx.scene.control.TextField; | ||
import org.eclipse.jgit.revplot.PlotCommit; | ||
import org.eclipse.jgit.revplot.PlotLane; | ||
|
||
import java.util.Map; | ||
import java.util.Set; | ||
|
||
public class HistoryCommitsTableRowFactory extends TableRow<PlotCommit<PlotLane>> { | ||
|
||
private final TextField searchTextField; | ||
|
||
|
||
public HistoryCommitsTableRowFactory(TextField searchTextField) { | ||
this.searchTextField = searchTextField; | ||
} | ||
|
||
@Override | ||
protected void updateItem(PlotCommit item, boolean empty) { | ||
super.updateItem(item, empty); | ||
setStyle(calculateStyle(item)); | ||
} | ||
|
||
private String calculateStyle(final PlotCommit<PlotLane> plotCommit) { | ||
String searchString = searchTextField.getText(); | ||
if (isSearchEligible(plotCommit, searchString)) { | ||
Map<String, Set<String>> map = Context.searchResult.getValue(); | ||
if (map != null && map.containsKey(plotCommit.getName()) ) { | ||
return LookAndFeelSet.FOUND_ROW; | ||
} | ||
} | ||
return ""; | ||
} | ||
|
||
private boolean isSearchEligible(PlotCommit<PlotLane> plotCommit, String searchString) { | ||
return plotCommit != null | ||
&& plotCommit.getName() != null | ||
&& searchString != null | ||
&& searchString.length() > Const.SEARCH_LIMIT_CHAR; | ||
} | ||
} |
Oops, something went wrong.