Skip to content

Commit

Permalink
Show maps and mods differently if they are installed
Browse files Browse the repository at this point in the history
Added a label containing an icon to show the installed maps and mods as such
Fixes #702
  • Loading branch information
antondelorme committed Mar 22, 2018
1 parent adf7132 commit d432039
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 3 deletions.
5 changes: 5 additions & 0 deletions src/main/java/com/faforever/client/map/MapBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@ public int compareTo(@NotNull MapBean o) {
return getDisplayName().compareTo(o.getDisplayName());
}

@Override
public boolean equals(@NotNull Object o) {
return o instanceof MapBean && ((MapBean) o).compareTo(this) == 0;
}

public String getDisplayName() {
return displayName.get();
}
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/com/faforever/client/map/MapCardController.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public class MapCardController implements Controller<Node> {
public Label numberOfPlaysLabel;
public Label sizeLabel;
public Label maxPlayersLabel;
public Label installedLabel;

private MapBean map;
private Consumer<MapBean> onOpenDetailListener;
Expand All @@ -57,13 +58,13 @@ public void initialize() {
installedMapsChangeListener = change -> {
while (change.next()) {
for (MapBean mapBean : change.getAddedSubList()) {
if (map.getId().equals(mapBean.getId())) {
if (map.getFolderName().equals(mapBean.getFolderName())) {
setInstalled(true);
return;
}
}
for (MapBean mapBean : change.getRemoved()) {
if (map.getId().equals(mapBean.getId())) {
if (map.getFolderName().equals(mapBean.getFolderName())) {
setInstalled(false);
return;
}
Expand Down Expand Up @@ -92,6 +93,7 @@ public void setMap(MapBean map) {
ObservableList<MapBean> installedMaps = mapService.getInstalledMaps();
synchronized (installedMaps) {
installedMaps.addListener(new WeakListChangeListener<>(installedMapsChangeListener));
setInstalled(installedMaps.contains(map));
}

ObservableList<Review> reviews = map.getReviews();
Expand All @@ -109,6 +111,7 @@ private void populateReviews() {

private void setInstalled(boolean installed) {
// FIXME implement
installedLabel.setVisible(installed);
}

public Node getRoot() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public class ModCardController implements Controller<Node> {
public Label createdLabel;
public Label numberOfReviewsLabel;
public Label typeLabel;
public Label installedLabel;
private ModVersion modVersion;
private Consumer<ModVersion> onOpenDetailListener;
private ListChangeListener<ModVersion> installStatusChangeListener;
Expand Down Expand Up @@ -78,7 +79,7 @@ public void initialize() {
}

private void setInstalled(boolean installed) {
//TODO:IMPLEMENT ISSUE #670
installedLabel.setVisible(installed);
}

public void setModVersion(ModVersion modVersion) {
Expand All @@ -91,6 +92,7 @@ public void setModVersion(ModVersion modVersion) {

ObservableList<ModVersion> installedModVersions = modService.getInstalledModVersions();
synchronized (installedModVersions) {
setInstalled(installedModVersions.contains(modVersion));
installedModVersions.addListener(new WeakListChangeListener<>(installStatusChangeListener));
}
ObservableList<Review> reviews = modVersion.getReviews();
Expand Down
4 changes: 4 additions & 0 deletions src/main/resources/theme/vault/map/map_card.fxml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
<Label fx:id="nameLabel" alignment="TOP_LEFT" maxWidth="1.7976931348623157E308"
text="Long text to test whether it's being wrapped" wrapText="true" GridPane.columnSpan="2147483647"
GridPane.rowIndex="1" GridPane.valignment="TOP"/>
<Label fx:id="installedLabel" alignment="TOP_RIGHT" contentDisplay="RIGHT" styleClass="icon" text=""
wrapText="true"
GridPane.columnIndex="3" GridPane.columnSpan="2147483647" GridPane.rowIndex="2"
GridPane.valignment="TOP"/>
<Label fx:id="authorLabel" maxWidth="1.7976931348623157E308" minWidth="0.0" styleClass="secondary" text="Label"
wrapText="true" GridPane.columnSpan="2147483647" GridPane.rowIndex="2" GridPane.valignment="TOP"/>
<Label fx:id="numberOfPlaysLabel" text="Label" GridPane.columnSpan="2" GridPane.rowIndex="3">
Expand Down
4 changes: 4 additions & 0 deletions src/main/resources/theme/vault/mod/mod_card.fxml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@
<Label fx:id="nameLabel" alignment="TOP_LEFT" maxWidth="1.7976931348623157E308"
text="Long text to test whether it's being wrapped" wrapText="true" GridPane.columnSpan="2147483647"
GridPane.rowIndex="1" GridPane.valignment="TOP"/>
<Label fx:id="installedLabel" alignment="TOP_RIGHT" contentDisplay="RIGHT" styleClass="icon" text=""
wrapText="true"
GridPane.columnIndex="3" GridPane.columnSpan="2147483647" GridPane.rowIndex="2"
GridPane.valignment="TOP"/>
<Label fx:id="authorLabel" maxWidth="1.7976931348623157E308" minWidth="0.0" styleClass="secondary" text="Label"
wrapText="true" GridPane.columnSpan="2147483647" GridPane.rowIndex="2" GridPane.valignment="TOP"/>
<Label fx:id="numberOfReviewsLabel" text="12345" GridPane.columnIndex="1" GridPane.columnSpan="2147483647"
Expand Down

0 comments on commit d432039

Please sign in to comment.