diff --git a/src/main/java/bisq/desktop/bisq.css b/src/main/java/bisq/desktop/bisq.css
index d1485bf1e6..a01697a134 100644
--- a/src/main/java/bisq/desktop/bisq.css
+++ b/src/main/java/bisq/desktop/bisq.css
@@ -553,6 +553,20 @@ textfield */
-fx-text-fill: -bs-medium-grey;
}
+.delete-icon {
+ -fx-fill: -bs-red;
+}
+
+.delete {
+ -fx-text-fill: -bs-error-red;
+ -fx-fill: -bs-error-red;
+}
+
+.delete:hover {
+ -fx-text-fill: -bs-black;
+ -fx-fill: -bs-black;
+}
+
/*******************************************************************************
* *
* Images *
diff --git a/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.fxml b/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.fxml
index 2768248d8c..409286df49 100644
--- a/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.fxml
+++ b/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.fxml
@@ -36,8 +36,9 @@
-
-
+
+
+
diff --git a/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.java b/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.java
index eb148f186c..0630b02102 100644
--- a/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.java
+++ b/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersView.java
@@ -20,7 +20,7 @@ package bisq.desktop.main.portfolio.openoffer;
import bisq.desktop.Navigation;
import bisq.desktop.common.view.ActivatableViewAndModel;
import bisq.desktop.common.view.FxmlView;
-import bisq.desktop.components.AutoTooltipButton;
+import bisq.desktop.components.AutoTooltipCheckBox;
import bisq.desktop.components.AutoTooltipLabel;
import bisq.desktop.components.HyperlinkWithIcon;
import bisq.desktop.main.MainView;
@@ -28,6 +28,7 @@ import bisq.desktop.main.funds.FundsView;
import bisq.desktop.main.funds.withdrawal.WithdrawalView;
import bisq.desktop.main.overlays.popups.Popup;
import bisq.desktop.main.overlays.windows.OfferDetailsWindow;
+import bisq.desktop.main.portfolio.PortfolioView;
import bisq.core.locale.Res;
import bisq.core.monetary.Price;
@@ -40,6 +41,7 @@ import javax.inject.Inject;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
+import javafx.scene.control.CheckBox;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
@@ -55,6 +57,12 @@ import javafx.util.Callback;
import org.jetbrains.annotations.NotNull;
+import static bisq.desktop.util.FormBuilder.getIconButton;
+
+
+
+import de.jensd.fx.glyphs.materialdesignicons.MaterialDesignIcon;
+
@FxmlView
public class OpenOffersView extends ActivatableViewAndModel {
@@ -62,10 +70,12 @@ public class OpenOffersView extends ActivatableViewAndModel tableView;
@FXML
TableColumn priceColumn, amountColumn, volumeColumn,
- marketColumn, directionColumn, dateColumn, offerIdColumn, deactivateItemColumn, removeItemColumn;
+ marketColumn, directionColumn, dateColumn, offerIdColumn, deactivateItemColumn,
+ removeItemColumn, editItemColumn;
private final Navigation navigation;
private final OfferDetailsWindow offerDetailsWindow;
private SortedList sortedList;
+ private PortfolioView.OpenOfferActionHandler openOfferActionHandler;
@Inject
public OpenOffersView(OpenOffersViewModel model, Navigation navigation, OfferDetailsWindow offerDetailsWindow) {
@@ -83,7 +93,8 @@ public class OpenOffersView extends ActivatableViewAndModel().information(Res.get("popup.warning.notFullyConnected")).show();
+ }
+ }
+
private void setOfferIdColumnCellFactory() {
offerIdColumn.setCellValueFactory((openOfferListItem) -> new ReadOnlyObjectWrapper<>(openOfferListItem.getValue()));
offerIdColumn.setCellFactory(
@@ -270,7 +290,7 @@ public class OpenOffersView extends ActivatableViewAndModel call(TableColumn column) {
return new TableCell() {
final ImageView iconView = new ImageView();
- Button button;
+ CheckBox checkBox;
private void updateState(@NotNull OpenOffer openOffer) {
if (openOffer.isDeactivated()) {
- button.setText(Res.get("shared.activate"));
- iconView.setId("image-alert-round");
- button.setGraphic(iconView);
+ checkBox.setSelected(false);
} else {
- button.setText(Res.get("shared.deactivate"));
- iconView.setId("image-green_circle");
- button.setGraphic(iconView);
+ checkBox.setSelected(true);
}
}
@@ -413,14 +429,13 @@ public class OpenOffersView extends ActivatableViewAndModel {
+ checkBox.setOnAction(event -> {
if (item.getOpenOffer().isDeactivated()) {
onActivateOpenOffer(item.getOpenOffer());
} else {
@@ -431,9 +446,9 @@ public class OpenOffersView extends ActivatableViewAndModel call(TableColumn column) {
return new TableCell() {
- final ImageView iconView = new ImageView();
Button button;
@Override
@@ -458,10 +472,7 @@ public class OpenOffersView extends ActivatableViewAndModel onRemoveOpenOffer(item.getOpenOffer()));
@@ -477,5 +488,41 @@ public class OpenOffersView extends ActivatableViewAndModel new ReadOnlyObjectWrapper<>(offerListItem.getValue()));
+ editItemColumn.setCellFactory(
+ new Callback, TableCell>() {
+ @Override
+ public TableCell call(TableColumn column) {
+ return new TableCell() {
+ Button button;
+
+ @Override
+ public void updateItem(final OpenOfferListItem item, boolean empty) {
+ super.updateItem(item, empty);
+
+ if (item != null && !empty) {
+ if (button == null) {
+ button = getIconButton(MaterialDesignIcon.PENCIL);
+ setGraphic(button);
+ }
+ button.setOnAction(event -> onEditOpenOffer(item.getOpenOffer()));
+ } else {
+ setGraphic(null);
+ if (button != null) {
+ button.setOnAction(null);
+ button = null;
+ }
+ }
+ }
+ };
+ }
+ });
+ }
+
+ public void setOpenOfferActionHandler(PortfolioView.OpenOfferActionHandler openOfferActionHandler) {
+ this.openOfferActionHandler = openOfferActionHandler;
+ }
}