Renaming, cleanups

This commit is contained in:
Manfred Karrer 2018-08-06 00:52:13 +02:00
parent 85973ff50d
commit d897d5a3f3
No known key found for this signature in database
GPG key ID: 401250966A6B2C46
25 changed files with 157 additions and 250 deletions

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao;
package bisq.desktop.components;
import bisq.desktop.components.indicator.TxConfidenceIndicator;
import bisq.desktop.util.GUIUtil;

View file

@ -26,7 +26,7 @@ import bisq.desktop.common.view.View;
import bisq.desktop.common.view.ViewLoader;
import bisq.desktop.main.MainView;
import bisq.desktop.main.dao.bonding.BondingView;
import bisq.desktop.main.dao.proposal.ProposalView;
import bisq.desktop.main.dao.governance.GovernanceView;
import bisq.desktop.main.dao.wallet.BsqWalletView;
import bisq.desktop.main.dao.wallet.dashboard.BsqDashboardView;
@ -103,7 +103,7 @@ public class DaoView extends ActivatableViewAndModel<TabPane, Activatable> {
else
navigation.navigateTo(MainView.class, DaoView.class, BsqWalletView.class, selectedViewClass);
} else if (newValue == proposalsTab) {
navigation.navigateTo(MainView.class, DaoView.class, ProposalView.class);
navigation.navigateTo(MainView.class, DaoView.class, GovernanceView.class);
} else if (newValue == bondingTab) {
navigation.navigateTo(MainView.class, DaoView.class, BondingView.class);
}
@ -120,7 +120,7 @@ public class DaoView extends ActivatableViewAndModel<TabPane, Activatable> {
if (selectedItem == bsqWalletTab)
navigation.navigateTo(MainView.class, DaoView.class, BsqWalletView.class);
else if (selectedItem == proposalsTab)
navigation.navigateTo(MainView.class, DaoView.class, ProposalView.class);
navigation.navigateTo(MainView.class, DaoView.class, GovernanceView.class);
else if (selectedItem == bondingTab)
navigation.navigateTo(MainView.class, DaoView.class, BondingView.class);
}
@ -137,7 +137,7 @@ public class DaoView extends ActivatableViewAndModel<TabPane, Activatable> {
if (view instanceof BsqWalletView) {
selectedTab = bsqWalletTab;
bsqWalletView = (BsqWalletView) view;
} else if (view instanceof ProposalView) {
} else if (view instanceof GovernanceView) {
selectedTab = proposalsTab;
} else if (view instanceof BondingView) {
selectedTab = bondingTab;

View file

@ -18,8 +18,8 @@
package bisq.desktop.main.dao.bonding.unlock;
import bisq.desktop.components.AutoTooltipButton;
import bisq.desktop.components.TxConfidenceListItem;
import bisq.desktop.components.indicator.TxConfidenceIndicator;
import bisq.desktop.main.dao.TxConfidenceListItem;
import bisq.core.btc.listeners.TxConfidenceListener;
import bisq.core.btc.wallet.BsqWalletService;

View file

@ -20,7 +20,7 @@
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<AnchorPane fx:id="root" fx:controller="bisq.desktop.main.dao.proposal.ProposalView"
<AnchorPane fx:id="root" fx:controller="bisq.desktop.main.dao.governance.GovernanceView"
xmlns:fx="http://javafx.com/fxml">
<VBox fx:id="leftVBox" prefWidth="240" spacing="5" AnchorPane.bottomAnchor="20" AnchorPane.leftAnchor="15"

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal;
package bisq.desktop.main.dao.governance;
import bisq.desktop.Navigation;
import bisq.desktop.common.view.ActivatableViewAndModel;
@ -27,10 +27,10 @@ import bisq.desktop.common.view.ViewPath;
import bisq.desktop.components.MenuItem;
import bisq.desktop.main.MainView;
import bisq.desktop.main.dao.DaoView;
import bisq.desktop.main.dao.proposal.dashboard.ProposalDashboardView;
import bisq.desktop.main.dao.proposal.make.MakeProposalView;
import bisq.desktop.main.dao.proposal.open.OpenProposalsView;
import bisq.desktop.main.dao.proposal.result.VoteResultView;
import bisq.desktop.main.dao.governance.dashboard.ProposalDashboardView;
import bisq.desktop.main.dao.governance.make.MakeProposalView;
import bisq.desktop.main.dao.governance.open.OpenProposalsView;
import bisq.desktop.main.dao.governance.result.VoteResultView;
import bisq.core.dao.DaoFacade;
import bisq.core.dao.state.period.DaoPhase;
@ -52,7 +52,7 @@ import java.util.Arrays;
import java.util.List;
@FxmlView
public class ProposalView extends ActivatableViewAndModel {
public class GovernanceView extends ActivatableViewAndModel {
private final ViewLoader viewLoader;
private final Navigation navigation;
@ -70,7 +70,7 @@ public class ProposalView extends ActivatableViewAndModel {
private ChangeListener<DaoPhase.Phase> phaseChangeListener;
@Inject
private ProposalView(CachingViewLoader viewLoader, Navigation navigation, DaoFacade daoFacade) {
private GovernanceView(CachingViewLoader viewLoader, Navigation navigation, DaoFacade daoFacade) {
this.viewLoader = viewLoader;
this.navigation = navigation;
this.daoFacade = daoFacade;
@ -79,7 +79,7 @@ public class ProposalView extends ActivatableViewAndModel {
@Override
public void initialize() {
navigationListener = viewPath -> {
if (viewPath.size() != 4 || viewPath.indexOf(ProposalView.class) != 2)
if (viewPath.size() != 4 || viewPath.indexOf(GovernanceView.class) != 2)
return;
selectedViewClass = viewPath.tip();
@ -94,7 +94,7 @@ public class ProposalView extends ActivatableViewAndModel {
};
ToggleGroup toggleGroup = new ToggleGroup();
final List<Class<? extends View>> baseNavPath = Arrays.asList(MainView.class, DaoView.class, ProposalView.class);
final List<Class<? extends View>> baseNavPath = Arrays.asList(MainView.class, DaoView.class, GovernanceView.class);
dashboard = new MenuItem(navigation, toggleGroup, Res.get("shared.dashboard"),
ProposalDashboardView.class, AwesomeIcon.DASHBOARD, baseNavPath);
make = new MenuItem(navigation, toggleGroup, Res.get("dao.proposal.menuItem.make"),
@ -117,14 +117,14 @@ public class ProposalView extends ActivatableViewAndModel {
navigation.addListener(navigationListener);
ViewPath viewPath = navigation.getCurrentPath();
if (viewPath.size() == 3 && viewPath.indexOf(ProposalView.class) == 2 ||
if (viewPath.size() == 3 && viewPath.indexOf(GovernanceView.class) == 2 ||
viewPath.size() == 2 && viewPath.indexOf(DaoView.class) == 1) {
if (selectedViewClass == null)
selectedViewClass = MakeProposalView.class;
loadView(selectedViewClass);
} else if (viewPath.size() == 4 && viewPath.indexOf(ProposalView.class) == 2) {
} else if (viewPath.size() == 4 && viewPath.indexOf(GovernanceView.class) == 2) {
selectedViewClass = viewPath.get(3);
loadView(selectedViewClass);
}

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal;
package bisq.desktop.main.dao.governance;
import bisq.desktop.components.SeparatedPhaseBars;
import bisq.desktop.util.Layout;
@ -43,14 +43,14 @@ import lombok.extern.slf4j.Slf4j;
import static bisq.desktop.util.FormBuilder.addTitledGroupBg;
@Slf4j
public class CycleOverview implements BsqStateListener {
public class PhasesView implements BsqStateListener {
private final DaoFacade daoFacade;
private SeparatedPhaseBars separatedPhaseBars;
private List<SeparatedPhaseBars.SeparatedPhaseBarsItem> phaseBarsItems;
private Subscription phaseSubscription;
@Inject
private CycleOverview(DaoFacade daoFacade) {
private PhasesView(DaoFacade daoFacade) {
this.daoFacade = daoFacade;
}

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal;
package bisq.desktop.main.dao.governance;
import bisq.desktop.components.HyperlinkWithIcon;
import bisq.desktop.components.InputTextField;
@ -122,11 +122,6 @@ public class ProposalDisplay {
private final ChangeListener<Boolean> focusOutListener;
private final ChangeListener<Object> inputListener;
// TODO get that warning at closing the window...
// javafx.scene.CssStyleHelper calculateValue
// WARNING: Could not resolve '-fx-accent' while resolving lookups for '-fx-text-fill' from rule '*.hyperlink' in stylesheet file:/Users/dev/idea/bisq/desktop/out/production/resources/bisq/desktop/bisq.css
public ProposalDisplay(GridPane gridPane, BsqFormatter bsqFormatter, BsqWalletService bsqWalletService,
DaoFacade daoFacade) {
this.gridPane = gridPane;

View file

@ -20,7 +20,7 @@
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.proposal.dashboard.ProposalDashboardView"
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.governance.dashboard.ProposalDashboardView"
hgap="5.0" vgap="5.0"
AnchorPane.bottomAnchor="20.0" AnchorPane.leftAnchor="20.0"
AnchorPane.rightAnchor="25.0" AnchorPane.topAnchor="20.0"

View file

@ -15,11 +15,11 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.dashboard;
package bisq.desktop.main.dao.governance.dashboard;
import bisq.desktop.common.view.ActivatableView;
import bisq.desktop.common.view.FxmlView;
import bisq.desktop.main.dao.proposal.CycleOverview;
import bisq.desktop.main.dao.governance.PhasesView;
import bisq.desktop.util.Layout;
import bisq.core.dao.DaoFacade;
@ -46,7 +46,7 @@ import static bisq.desktop.util.FormBuilder.addTitledGroupBg;
@FxmlView
public class ProposalDashboardView extends ActivatableView<GridPane, Void> implements BsqStateListener {
private final DaoFacade daoFacade;
private final CycleOverview cycleOverview;
private final PhasesView phasesView;
private final BSFormatter formatter;
private int gridRow = 0;
@ -58,15 +58,15 @@ public class ProposalDashboardView extends ActivatableView<GridPane, Void> imple
///////////////////////////////////////////////////////////////////////////////////////////
@Inject
public ProposalDashboardView(DaoFacade daoFacade, CycleOverview cycleOverview, BSFormatter formatter) {
public ProposalDashboardView(DaoFacade daoFacade, PhasesView phasesView, BSFormatter formatter) {
this.daoFacade = daoFacade;
this.cycleOverview = cycleOverview;
this.phasesView = phasesView;
this.formatter = formatter;
}
@Override
public void initialize() {
gridRow = cycleOverview.addGroup(root, gridRow);
gridRow = phasesView.addGroup(root, gridRow);
addTitledGroupBg(root, ++gridRow, 6, Res.get("dao.cycle.overview.headline"), Layout.GROUP_DISTANCE);
currentBlockHeightTextField = addLabelTextField(root, gridRow, Res.get("dao.cycle.currentBlockHeight"),
@ -85,7 +85,7 @@ public class ProposalDashboardView extends ActivatableView<GridPane, Void> imple
protected void activate() {
super.activate();
cycleOverview.activate();
phasesView.activate();
daoFacade.addBsqStateListener(this);
@ -96,7 +96,7 @@ public class ProposalDashboardView extends ActivatableView<GridPane, Void> imple
protected void deactivate() {
super.deactivate();
cycleOverview.deactivate();
phasesView.deactivate();
daoFacade.removeBsqStateListener(this);
}

View file

@ -20,7 +20,7 @@
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.proposal.make.MakeProposalView"
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.governance.make.MakeProposalView"
hgap="5.0" vgap="5.0"
AnchorPane.bottomAnchor="20.0" AnchorPane.leftAnchor="20.0"
AnchorPane.rightAnchor="25.0" AnchorPane.topAnchor="20.0"

View file

@ -15,13 +15,13 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.make;
package bisq.desktop.main.dao.governance.make;
import bisq.desktop.common.view.ActivatableView;
import bisq.desktop.common.view.FxmlView;
import bisq.desktop.components.InputTextField;
import bisq.desktop.main.dao.proposal.CycleOverview;
import bisq.desktop.main.dao.proposal.ProposalDisplay;
import bisq.desktop.main.dao.governance.PhasesView;
import bisq.desktop.main.dao.governance.ProposalDisplay;
import bisq.desktop.main.overlays.popups.Popup;
import bisq.desktop.util.FormBuilder;
import bisq.desktop.util.GUIUtil;
@ -87,7 +87,7 @@ public class MakeProposalView extends ActivatableView<GridPane, Void> implements
private final BsqWalletService bsqWalletService;
private final WalletsSetup walletsSetup;
private final P2PService p2PService;
private final CycleOverview cycleOverview;
private final PhasesView phasesView;
private final BSFormatter btcFormatter;
private final BsqFormatter bsqFormatter;
@ -111,14 +111,14 @@ public class MakeProposalView extends ActivatableView<GridPane, Void> implements
WalletsSetup walletsSetup,
P2PService p2PService,
FeeService feeService,
CycleOverview cycleOverview,
PhasesView phasesView,
BSFormatter btcFormatter,
BsqFormatter bsqFormatter) {
this.daoFacade = daoFacade;
this.bsqWalletService = bsqWalletService;
this.walletsSetup = walletsSetup;
this.p2PService = p2PService;
this.cycleOverview = cycleOverview;
this.phasesView = phasesView;
this.btcFormatter = btcFormatter;
this.bsqFormatter = bsqFormatter;
}
@ -126,7 +126,7 @@ public class MakeProposalView extends ActivatableView<GridPane, Void> implements
@Override
public void initialize() {
gridRow = cycleOverview.addGroup(root, gridRow);
gridRow = phasesView.addGroup(root, gridRow);
addTitledGroupBg(root, ++gridRow, 1, Res.get("dao.proposal.create.selectProposalType"), Layout.GROUP_DISTANCE);
proposalTypeComboBox = FormBuilder.<ProposalType>addLabelComboBox(root, gridRow,
@ -160,7 +160,7 @@ public class MakeProposalView extends ActivatableView<GridPane, Void> implements
@Override
protected void activate() {
cycleOverview.activate();
phasesView.activate();
daoFacade.addBsqStateListener(this);
@ -173,7 +173,7 @@ public class MakeProposalView extends ActivatableView<GridPane, Void> implements
@Override
protected void deactivate() {
cycleOverview.deactivate();
phasesView.deactivate();
daoFacade.removeBsqStateListener(this);

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.open;
package bisq.desktop.main.dao.governance.open;
import bisq.desktop.components.indicator.TxConfidenceIndicator;

View file

@ -21,7 +21,7 @@
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.proposal.open.OpenProposalsView"
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.governance.open.OpenProposalsView"
hgap="5.0" vgap="5.0"
AnchorPane.bottomAnchor="20.0" AnchorPane.leftAnchor="20.0"
AnchorPane.rightAnchor="25.0" AnchorPane.topAnchor="20.0"

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.open;
package bisq.desktop.main.dao.governance.open;
import bisq.desktop.common.view.ActivatableView;
import bisq.desktop.common.view.FxmlView;
@ -27,9 +27,8 @@ import bisq.desktop.components.InputTextField;
import bisq.desktop.components.TableGroupHeadline;
import bisq.desktop.components.TitledGroupBg;
import bisq.desktop.components.TxIdTextField;
import bisq.desktop.main.dao.proposal.CycleOverview;
import bisq.desktop.main.dao.proposal.ProposalDisplay;
import bisq.desktop.main.dao.proposal.ProposalWindow;
import bisq.desktop.main.dao.governance.PhasesView;
import bisq.desktop.main.dao.governance.ProposalDisplay;
import bisq.desktop.main.overlays.popups.Popup;
import bisq.desktop.util.GUIUtil;
import bisq.desktop.util.Layout;
@ -104,39 +103,36 @@ import static bisq.desktop.util.FormBuilder.*;
public class OpenProposalsView extends ActivatableView<GridPane, Void> implements BsqBalanceListener, BsqStateListener {
private final DaoFacade daoFacade;
private final BsqWalletService bsqWalletService;
private final CycleOverview cycleOverview;
private final PhasesView phasesView;
private final VoteResultService voteResultService;
private final BsqFormatter bsqFormatter;
private final BSFormatter btcFormatter;
private final ObservableList<OpenProposalListItem> listItems = FXCollections.observableArrayList();
private final SortedList<OpenProposalListItem> sortedList = new SortedList<>(listItems);
private final List<Button> voteButtons = new ArrayList<>();
private final List<Node> voteFields = new ArrayList<>();
private TableView<OpenProposalListItem> tableView;
private Subscription selectedProposalSubscription;
private ProposalDisplay proposalDisplay;
private int gridRow = 0;
private OpenProposalListItem selectedItem;
private GridPane proposalDisplayGridPane;
private DaoPhase.Phase currentPhase;
private Subscription phaseSubscription;
private ScrollPane proposalDisplayView;
private boolean proposalDisplayInitialized;
private TitledGroupBg voteTitledGroupBg;
private Label revealTxIdLabel, blindVoteTxIdLabel, voteButtonInfoLabel;
private TxIdTextField revealTxIdTextField, blindVoteTxIdTextField;
private TextField meritTextField;
private Button removeProposalButton, acceptButton, rejectButton, ignoreButton, voteButton;
private InputTextField stakeInputTextField;
private ScrollPane proposalDisplayView;
private GridPane proposalDisplayGridPane;
private BusyAnimation voteButtonBusyAnimation;
private Label voteButtonInfoLabel;
private ProposalDisplay proposalDisplay;
private int gridRow = 0;
private boolean proposalDisplayInitialized;
private OpenProposalListItem selectedItem;
private DaoPhase.Phase currentPhase;
private ListChangeListener<Proposal> proposalListChangeListener;
private ListChangeListener<Ballot> ballotListChangeListener;
private ChangeListener<String> stakeListener;
private final List<Button> voteButtons = new ArrayList<>();
private final List<Node> voteFields = new ArrayList<>();
private TitledGroupBg voteTitledGroupBg;
private Label revealTxIdLabel;
private Label blindVoteTxIdLabel;
private TxIdTextField revealTxIdTextField, blindVoteTxIdTextField;
private TextField meritTextField;
private Subscription selectedProposalSubscription, phaseSubscription;
///////////////////////////////////////////////////////////////////////////////////////////
@ -146,14 +142,13 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
@Inject
private OpenProposalsView(DaoFacade daoFacade,
BsqWalletService bsqWalletService,
CycleOverview cycleOverview,
PhasesView phasesView,
VoteResultService voteResultService,
BsqFormatter bsqFormatter,
BSFormatter btcFormatter) {
this.daoFacade = daoFacade;
this.bsqWalletService = bsqWalletService;
this.cycleOverview = cycleOverview;
this.phasesView = phasesView;
this.voteResultService = voteResultService;
this.bsqFormatter = bsqFormatter;
this.btcFormatter = btcFormatter;
@ -165,7 +160,7 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
root.getStyleClass().add("vote-root");
gridRow = cycleOverview.addGroup(root, gridRow);
gridRow = phasesView.addGroup(root, gridRow);
proposalDisplayGridPane = new GridPane();
@ -176,13 +171,12 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
ballotListChangeListener = c -> updateListItems();
proposalListChangeListener = c -> updateListItems();
// ballot
stakeListener = (observable, oldValue, newValue) -> updateViews();
}
@Override
protected void activate() {
cycleOverview.activate();
phasesView.activate();
phaseSubscription = EasyBind.subscribe(daoFacade.phaseProperty(), this::onPhaseChanged);
selectedProposalSubscription = EasyBind.subscribe(tableView.getSelectionModel().selectedItemProperty(), this::onSelectProposal);
@ -210,7 +204,7 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
@Override
protected void deactivate() {
cycleOverview.deactivate();
phasesView.deactivate();
phaseSubscription.unsubscribe();
selectedProposalSubscription.unsubscribe();
@ -521,7 +515,6 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
});
}
private void updateStateAfterVote() {
updateViews();
tableView.refresh();
@ -712,12 +705,13 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
///////////////////////////////////////////////////////////////////////////////////////////
private void createProposalColumns() {
TableColumn<OpenProposalListItem, OpenProposalListItem> dateColumn = new AutoTooltipTableColumn<>(Res.get("shared.dateTime"));
dateColumn.setMinWidth(190);
dateColumn.setMinWidth(190);
TableColumn<OpenProposalListItem, OpenProposalListItem> column;
dateColumn.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
dateColumn.setCellFactory(
column = new AutoTooltipTableColumn<>(Res.get("shared.dateTime"));
column.setMinWidth(190);
column.setMaxWidth(column.getMinWidth());
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
column.setCellFactory(
new Callback<TableColumn<OpenProposalListItem, OpenProposalListItem>, TableCell<OpenProposalListItem,
OpenProposalListItem>>() {
@Override
@ -735,15 +729,16 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
};
}
});
dateColumn.setComparator(Comparator.comparing(o3 -> o3.getProposal().getCreationDate()));
dateColumn.setSortType(TableColumn.SortType.DESCENDING);
tableView.getColumns().add(dateColumn);
tableView.getSortOrder().add(dateColumn);
column.setComparator(Comparator.comparing(o3 -> o3.getProposal().getCreationDate()));
column.setSortType(TableColumn.SortType.DESCENDING);
tableView.getColumns().add(column);
tableView.getSortOrder().add(column);
TableColumn<OpenProposalListItem, OpenProposalListItem> nameColumn = new AutoTooltipTableColumn<>(Res.get("shared.name"));
nameColumn.setMinWidth(60);
nameColumn.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
nameColumn.setCellFactory(
column = new AutoTooltipTableColumn<>(Res.get("shared.name"));
column.setMinWidth(60);
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
column.setCellFactory(
new Callback<TableColumn<OpenProposalListItem, OpenProposalListItem>, TableCell<OpenProposalListItem,
OpenProposalListItem>>() {
@Override
@ -761,13 +756,14 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
};
}
});
nameColumn.setComparator(Comparator.comparing(o2 -> o2.getProposal().getName()));
tableView.getColumns().add(nameColumn);
column.setComparator(Comparator.comparing(o2 -> o2.getProposal().getName()));
tableView.getColumns().add(column);
TableColumn<OpenProposalListItem, OpenProposalListItem> uidColumn = new AutoTooltipTableColumn<>(Res.get("shared.id"));
uidColumn.setMinWidth(60);
uidColumn.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
uidColumn.setCellFactory(
column = new AutoTooltipTableColumn<>(Res.get("dao.proposal.table.header.link"));
column.setMinWidth(80);
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
column.setCellFactory(
new Callback<TableColumn<OpenProposalListItem, OpenProposalListItem>, TableCell<OpenProposalListItem,
OpenProposalListItem>>() {
@ -782,11 +778,9 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
super.updateItem(item, empty);
if (item != null && !empty) {
final Proposal proposal = item.getProposal();
field = new HyperlinkWithIcon(proposal.getShortId());
field.setOnAction(event -> {
new ProposalWindow(bsqFormatter, bsqWalletService, proposal, daoFacade).show();
});
field.setTooltip(new Tooltip(Res.get("tooltip.openPopupForDetails")));
field = new HyperlinkWithIcon(proposal.getLink());
field.setOnAction(event -> GUIUtil.openWebPage(Res.get("shared.openURL", proposal.getLink())));
field.setTooltip(new Tooltip(proposal.getLink()));
setGraphic(field);
} else {
setGraphic(null);
@ -797,15 +791,15 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
};
}
});
uidColumn.setComparator(Comparator.comparing(o -> o.getProposal().getUid()));
tableView.getColumns().add(uidColumn);
column.setComparator(Comparator.comparing(o -> o.getProposal().getUid()));
tableView.getColumns().add(column);
TableColumn<OpenProposalListItem, OpenProposalListItem> confidenceColumn = new TableColumn<>(Res.get("shared.confirmations"));
confidenceColumn.setMinWidth(130);
confidenceColumn.setMaxWidth(confidenceColumn.getMinWidth());
confidenceColumn.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
confidenceColumn.setCellFactory(new Callback<TableColumn<OpenProposalListItem, OpenProposalListItem>,
column = new TableColumn<>(Res.get("shared.confirmations"));
column.setMinWidth(130);
column.setMaxWidth(column.getMinWidth());
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
column.setCellFactory(new Callback<TableColumn<OpenProposalListItem, OpenProposalListItem>,
TableCell<OpenProposalListItem, OpenProposalListItem>>() {
@Override
@ -826,14 +820,14 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
};
}
});
confidenceColumn.setComparator(Comparator.comparing(OpenProposalListItem::getConfirmations));
tableView.getColumns().add(confidenceColumn);
column.setComparator(Comparator.comparing(OpenProposalListItem::getConfirmations));
tableView.getColumns().add(column);
TableColumn<OpenProposalListItem, OpenProposalListItem> actionColumn = new TableColumn<>();
actionColumn.setMinWidth(40);
actionColumn.setMaxWidth(actionColumn.getMinWidth());
actionColumn.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
actionColumn.setCellFactory(new Callback<TableColumn<OpenProposalListItem, OpenProposalListItem>,
column = new TableColumn<>();
column.setMinWidth(40);
column.setMaxWidth(column.getMinWidth());
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
column.setCellFactory(new Callback<TableColumn<OpenProposalListItem, OpenProposalListItem>,
TableCell<OpenProposalListItem, OpenProposalListItem>>() {
@Override
@ -861,6 +855,6 @@ public class OpenProposalsView extends ActivatableView<GridPane, Void> implement
};
}
});
tableView.getColumns().add(actionColumn);
tableView.getColumns().add(column);
}
}

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.result;
package bisq.desktop.main.dao.governance.result;
import bisq.core.dao.state.BsqStateService;
import bisq.core.dao.voting.proposal.compensation.CompensationProposal;
@ -37,9 +37,9 @@ public class CycleListItem {
@Getter
private ResultsOfCycle resultsOfCycle;
public CycleListItem(ResultsOfCycle resultsOfCycle,
BsqStateService bsqStateService,
BsqFormatter bsqFormatter) {
CycleListItem(ResultsOfCycle resultsOfCycle,
BsqStateService bsqStateService,
BsqFormatter bsqFormatter) {
this.resultsOfCycle = resultsOfCycle;
this.bsqStateService = bsqStateService;
this.bsqFormatter = bsqFormatter;

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.result;
package bisq.desktop.main.dao.governance.result;
import bisq.core.dao.role.BondedRole;
import bisq.core.dao.voting.proposal.Proposal;
@ -43,7 +43,7 @@ public class ProposalListItem {
@Getter
private EvaluatedProposal evaluatedProposal;
public ProposalListItem(EvaluatedProposal evaluatedProposal, BsqFormatter bsqFormatter) {
ProposalListItem(EvaluatedProposal evaluatedProposal, BsqFormatter bsqFormatter) {
this.evaluatedProposal = evaluatedProposal;
proposalVoteResult = evaluatedProposal.getProposalVoteResult();
this.bsqFormatter = bsqFormatter;

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.result;
package bisq.desktop.main.dao.governance.result;
import bisq.core.dao.state.period.Cycle;
import bisq.core.dao.voting.proposal.Proposal;
@ -30,7 +30,7 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
@Data
public class ResultsOfCycle {
class ResultsOfCycle {
private final Cycle cycle;
private final int cycleIndex;
private final int numVotes, numAcceptedVotes, numRejectedVotes;
@ -45,12 +45,12 @@ public class ResultsOfCycle {
private final List<DecryptedVote> decryptedVotesForCycle;
public ResultsOfCycle(Cycle cycle,
int cycleIndex,
long cycleStartTime,
List<Proposal> proposals,
List<EvaluatedProposal> evaluatedProposals,
List<DecryptedVote> decryptedVotesForCycle) {
ResultsOfCycle(Cycle cycle,
int cycleIndex,
long cycleStartTime,
List<Proposal> proposals,
List<EvaluatedProposal> evaluatedProposals,
List<DecryptedVote> decryptedVotesForCycle) {
this.cycle = cycle;
this.cycleIndex = cycleIndex;
this.cycleStartTime = cycleStartTime;

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.result;
package bisq.desktop.main.dao.governance.result;
import bisq.core.dao.state.BsqStateService;
import bisq.core.dao.voting.ballot.Ballot;
@ -50,10 +50,10 @@ public class VoteListItem {
@Getter
private String voteRevealTxId = "";
public VoteListItem(Proposal proposal,
DecryptedVote decryptedVote,
BsqStateService bsqStateService,
BsqFormatter bsqFormatter) {
VoteListItem(Proposal proposal,
DecryptedVote decryptedVote,
BsqStateService bsqStateService,
BsqFormatter bsqFormatter) {
this.decryptedVote = decryptedVote;
this.bsqFormatter = bsqFormatter;

View file

@ -21,7 +21,7 @@
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.proposal.result.VoteResultView"
<GridPane fx:id="root" fx:controller="bisq.desktop.main.dao.governance.result.VoteResultView"
hgap="5.0" vgap="5.0"
AnchorPane.bottomAnchor="20.0" AnchorPane.leftAnchor="20.0"
AnchorPane.rightAnchor="25.0" AnchorPane.topAnchor="20.0"

View file

@ -15,7 +15,7 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal.result;
package bisq.desktop.main.dao.governance.result;
import bisq.desktop.common.view.ActivatableView;
import bisq.desktop.common.view.FxmlView;
@ -23,8 +23,8 @@ import bisq.desktop.components.AutoTooltipLabel;
import bisq.desktop.components.AutoTooltipTableColumn;
import bisq.desktop.components.HyperlinkWithIcon;
import bisq.desktop.components.TableGroupHeadline;
import bisq.desktop.main.dao.proposal.CycleOverview;
import bisq.desktop.main.dao.proposal.ProposalDisplay;
import bisq.desktop.main.dao.governance.PhasesView;
import bisq.desktop.main.dao.governance.ProposalDisplay;
import bisq.desktop.util.GUIUtil;
import bisq.desktop.util.Layout;
@ -84,7 +84,7 @@ import java.util.stream.Collectors;
@FxmlView
public class VoteResultView extends ActivatableView<GridPane, Void> implements BsqStateListener {
private final DaoFacade daoFacade;
private final CycleOverview cycleOverview;
private final PhasesView phasesView;
private final BsqStateService bsqStateService;
private final CycleService cycleService;
private final VoteResultService voteResultService;
@ -119,7 +119,7 @@ public class VoteResultView extends ActivatableView<GridPane, Void> implements B
@Inject
public VoteResultView(DaoFacade daoFacade,
CycleOverview cycleOverview,
PhasesView phasesView,
BsqStateService bsqStateService,
CycleService cycleService,
VoteResultService voteResultService,
@ -128,7 +128,7 @@ public class VoteResultView extends ActivatableView<GridPane, Void> implements B
Preferences preferences,
BsqFormatter bsqFormatter) {
this.daoFacade = daoFacade;
this.cycleOverview = cycleOverview;
this.phasesView = phasesView;
this.bsqStateService = bsqStateService;
this.cycleService = cycleService;
this.voteResultService = voteResultService;
@ -140,7 +140,7 @@ public class VoteResultView extends ActivatableView<GridPane, Void> implements B
@Override
public void initialize() {
gridRow = cycleOverview.addGroup(root, gridRow);
gridRow = phasesView.addGroup(root, gridRow);
selectedVoteResultListItemListener = (observable, oldValue, newValue) -> onResultsListItemSelected(newValue);
createCyclesTable();
@ -151,7 +151,7 @@ public class VoteResultView extends ActivatableView<GridPane, Void> implements B
protected void activate() {
super.activate();
cycleOverview.activate();
phasesView.activate();
daoFacade.addBsqStateListener(this);
cyclesTableView.getSelectionModel().selectedItemProperty().addListener(selectedVoteResultListItemListener);
@ -165,7 +165,7 @@ public class VoteResultView extends ActivatableView<GridPane, Void> implements B
onResultsListItemSelected(null);
cycleOverview.deactivate();
phasesView.deactivate();
daoFacade.removeBsqStateListener(this);
cyclesTableView.getSelectionModel().selectedItemProperty().removeListener(selectedVoteResultListItemListener);

View file

@ -1,89 +0,0 @@
/*
* This file is part of Bisq.
*
* Bisq is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at
* your option) any later version.
*
* Bisq is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
* License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/
package bisq.desktop.main.dao.proposal;
import bisq.desktop.main.overlays.Overlay;
import bisq.desktop.util.Layout;
import bisq.core.btc.wallet.BsqWalletService;
import bisq.core.dao.DaoFacade;
import bisq.core.dao.voting.proposal.Proposal;
import bisq.core.locale.Res;
import bisq.core.util.BsqFormatter;
import javafx.geometry.Insets;
import static bisq.desktop.util.FormBuilder.addButtonAfterGroup;
public class ProposalWindow extends Overlay<ProposalWindow> {
private final BsqFormatter bsqFormatter;
private final BsqWalletService bsqWalletService;
private final Proposal proposal;
private final DaoFacade daoFacade;
private ProposalDisplay proposalDisplay;
///////////////////////////////////////////////////////////////////////////////////////////
// Public API
///////////////////////////////////////////////////////////////////////////////////////////
public ProposalWindow(BsqFormatter bsqFormatter, BsqWalletService bsqWalletService, Proposal proposal,
DaoFacade daoFacade) {
this.bsqFormatter = bsqFormatter;
this.bsqWalletService = bsqWalletService;
this.proposal = proposal;
this.daoFacade = daoFacade;
type = Type.Confirmation;
width = 950;
}
public void show() {
createGridPane();
proposalDisplay = new ProposalDisplay(gridPane, bsqFormatter, bsqWalletService, daoFacade);
proposalDisplay.createAllFields(Res.get("dao.proposal.details"), 1, Layout.GROUP_DISTANCE,
proposal.getType(), false);
proposalDisplay.setEditable(false);
proposalDisplay.applyProposalPayload(proposal);
closeButton = addButtonAfterGroup(gridPane, proposalDisplay.incrementAndGetGridRow(), Res.get("shared.close"));
closeButton.setOnAction(e -> doClose());
display();
}
///////////////////////////////////////////////////////////////////////////////////////////
// Protected
///////////////////////////////////////////////////////////////////////////////////////////
@Override
protected void cleanup() {
proposalDisplay.clearForm();
}
@Override
protected void createGridPane() {
super.createGridPane();
gridPane.setPadding(new Insets(-10, 40, 30, 40));
gridPane.getStyleClass().add("grid-pane");
}
}

View file

@ -57,40 +57,47 @@ public class BsqBalanceUtil implements BsqBalanceListener {
public int addGroup(GridPane gridPane, int gridRow) {
addTitledGroupBg(gridPane, gridRow, 6, Res.get("shared.balance"));
availableBalanceTextField = addLabelTextField(gridPane, gridRow, Res.getWithCol("shared.availableBsqBalance"),
availableBalanceTextField = addLabelTextField(gridPane, gridRow,
Res.getWithCol("dao.availableBsqBalance"),
Layout.FIRST_ROW_DISTANCE).second;
availableBalanceTextField.setMouseTransparent(false);
availableNonBsqBalanceTextField = addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.availableNonBsqBalance")).second;
availableNonBsqBalanceTextField = addLabelTextField(gridPane, ++gridRow,
Res.getWithCol("dao.availableNonBsqBalance")).second;
availableNonBsqBalanceTextField.setMouseTransparent(false);
unverifiedBalanceTextField = addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.unverifiedBsqBalance")).second;
unverifiedBalanceTextField = addLabelTextField(gridPane, ++gridRow,
Res.getWithCol("dao.unverifiedBsqBalance")).second;
unverifiedBalanceTextField.setMouseTransparent(false);
lockedForVoteBalanceTextField = addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared" +
".lockedForVoteBalance")).second;
lockedForVoteBalanceTextField = addLabelTextField(gridPane, ++gridRow,
Res.getWithCol("dao.lockedForVoteBalance")).second;
lockedForVoteBalanceTextField.setMouseTransparent(false);
lockedInBondsBalanceTextField = addLabelTextField(gridPane, ++gridRow, Res.getWithCol(
"shared.lockedInBonds")).second;
"dao.lockedInBonds")).second;
lockedInBondsBalanceTextField.setMouseTransparent(false);
// TODO add unlockingBondsBalanceTextField
totalBalanceTextField = addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.totalBsqBalance")).second;
totalBalanceTextField = addLabelTextField(gridPane, ++gridRow,
Res.getWithCol("dao.totalBsqBalance")).second;
totalBalanceTextField.setMouseTransparent(false);
return gridRow;
}
public int addBondBalanceGroup(GridPane gridPane, int gridRow) {
addTitledGroupBg(gridPane, ++gridRow, 2, Res.get("dao.bonding.dashboard.bondsHeadline"), Layout.GROUP_DISTANCE);
addTitledGroupBg(gridPane, ++gridRow, 2,
Res.get("dao.bonding.dashboard.bondsHeadline"), Layout.GROUP_DISTANCE);
lockupAmountTextField = addLabelTextField(gridPane, gridRow, Res.get("dao.bonding.dashboard.lockupAmount"),
lockupAmountTextField = addLabelTextField(gridPane, gridRow,
Res.get("dao.bonding.dashboard.lockupAmount"),
Layout.FIRST_ROW_DISTANCE + Layout.GROUP_DISTANCE).second;
lockupAmountTextField.setMouseTransparent(false);
unlockingAmountTextField = addLabelTextField(gridPane, ++gridRow, Res.get("dao.bonding.dashboard.unlockingAmount")).second;
unlockingAmountTextField = addLabelTextField(gridPane, ++gridRow,
Res.get("dao.bonding.dashboard.unlockingAmount")).second;
unlockingAmountTextField.setMouseTransparent(false);
return gridRow;

View file

@ -17,7 +17,7 @@
package bisq.desktop.main.dao.wallet.tx;
import bisq.desktop.main.dao.TxConfidenceListItem;
import bisq.desktop.components.TxConfidenceListItem;
import bisq.core.btc.wallet.BsqWalletService;
import bisq.core.btc.wallet.BtcWalletService;

View file

@ -873,7 +873,7 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
if (dataModel.isCurrencyForMakerFeeBtc())
return GUIUtil.getPercentage(makerFeeAsCoin, dataModel.getAmount().get(), btcFormatter);
else
return Res.get("shared.paidWithBsq");
return Res.get("dao.paidWithBsq");
}
public String getTotalToPayInfo() {

View file

@ -609,7 +609,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
if (dataModel.isCurrencyForTakerFeeBtc())
return GUIUtil.getPercentage(makerFeeAsCoin, dataModel.getAmount().get(), btcFormatter);
else
return Res.get("shared.paidWithBsq");
return Res.get("dao.paidWithBsq");
}
public String getTotalToPayInfo() {