Move Enum to Navigation, renamings

This commit is contained in:
Manfred Karrer 2014-09-15 23:17:39 +02:00
parent 33e8a8f921
commit f0f5ddd4ec
25 changed files with 440 additions and 463 deletions

View file

@ -20,7 +20,7 @@ package io.bitsquare;
import io.bitsquare.btc.WalletFacade; import io.bitsquare.btc.WalletFacade;
import io.bitsquare.di.BitSquareModule; import io.bitsquare.di.BitSquareModule;
import io.bitsquare.gui.AWTSystemTray; import io.bitsquare.gui.AWTSystemTray;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
import io.bitsquare.gui.util.Profiler; import io.bitsquare.gui.util.Profiler;
import io.bitsquare.msg.MessageFacade; import io.bitsquare.msg.MessageFacade;
@ -114,7 +114,7 @@ public class BitSquare extends Application {
ViewLoader.setInjector(injector); ViewLoader.setInjector(injector);
final ViewLoader loader = final ViewLoader loader =
new ViewLoader(getClass().getResource(NavigationItem.MAIN.getFxmlUrl()), false); new ViewLoader(getClass().getResource(Navigation.Item.MAIN.getFxmlUrl()), false);
try { try {
final Parent view = loader.load(); final Parent view = loader.load();

View file

@ -22,7 +22,7 @@ import io.bitsquare.btc.BlockChainFacade;
import io.bitsquare.btc.FeePolicy; import io.bitsquare.btc.FeePolicy;
import io.bitsquare.btc.WalletFacade; import io.bitsquare.btc.WalletFacade;
import io.bitsquare.crypto.CryptoFacade; import io.bitsquare.crypto.CryptoFacade;
import io.bitsquare.gui.NavigationManager; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.OverlayManager;
import io.bitsquare.gui.main.trade.orderbook.OrderBook; import io.bitsquare.gui.main.trade.orderbook.OrderBook;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
@ -71,7 +71,7 @@ public class BitSquareModule extends AbstractModule {
bind(TradeManager.class).asEagerSingleton(); bind(TradeManager.class).asEagerSingleton();
bind(OrderBook.class).asEagerSingleton(); bind(OrderBook.class).asEagerSingleton();
bind(NavigationManager.class).asEagerSingleton(); bind(Navigation.class).asEagerSingleton();
bind(OverlayManager.class).asEagerSingleton(); bind(OverlayManager.class).asEagerSingleton();
bind(BSFormatter.class).asEagerSingleton(); bind(BSFormatter.class).asEagerSingleton();

View file

@ -0,0 +1,248 @@
/*
* This file is part of Bitsquare.
*
* Bitsquare 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.
*
* Bitsquare 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 Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/
package io.bitsquare.gui;
import io.bitsquare.gui.util.ImageUtil;
import io.bitsquare.persistence.Persistence;
import com.google.inject.Inject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Navigation {
private static final Logger log = LoggerFactory.getLogger(Navigation.class);
// New listeners can be added during iteration so we use CopyOnWriteArrayList to prevent invalid array
// modification
private List<Listener> listeners = new CopyOnWriteArrayList<>();
private Persistence persistence;
private Item[] currentItems;
// Used for returning to the last important view
// After setup is done we want to return to the last opened view (e.g. sell/buy)
private Item[] itemsForReturning;
///////////////////////////////////////////////////////////////////////////////////////////
// Constructor
///////////////////////////////////////////////////////////////////////////////////////////
@Inject
public Navigation(Persistence persistence) {
this.persistence = persistence;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Public methods
///////////////////////////////////////////////////////////////////////////////////////////
public void navigationTo(Item... items) {
log.trace("navigationTo " + Arrays.asList(items).toString());
List<Item> temp = new ArrayList<>();
for (int i = 0; i < items.length; i++) {
Item item = items[i];
temp.add(item);
if (currentItems == null ||
(currentItems != null &&
currentItems.length > i &&
item != currentItems[i] &&
i != items.length - 1)) {
List<Item> temp2 = new ArrayList<>(temp);
for (int n = i + 1; n < items.length; n++) {
Item[] newTemp = new Item[i + 1];
currentItems = temp2.toArray(newTemp);
navigationTo(currentItems);
item = items[n];
temp2.add(item);
}
}
}
currentItems = items;
persistence.write(this, "navigationItems", items);
log.trace("navigationTo notify listeners " + Arrays.asList(items).toString() + " / " + listeners
.size());
listeners.stream().forEach((e) -> e.onNavigationRequested(items));
}
public void navigateToLastStoredItem() {
Item[] items = (Item[]) persistence.read(this, "navigationItems");
if (items == null || items.length == 0)
items = new Item[]{Item.MAIN, Item.HOME};
navigationTo(items);
}
///////////////////////////////////////////////////////////////////////////////////////////
// Listeners
///////////////////////////////////////////////////////////////////////////////////////////
public void addListener(Listener listener) {
listeners.add(listener);
}
public void removeListener(Listener listener) {
listeners.remove(listener);
}
///////////////////////////////////////////////////////////////////////////////////////////
// Getters
///////////////////////////////////////////////////////////////////////////////////////////
public Item[] getItemsForReturning() {
return itemsForReturning;
}
public Item[] getCurrentItems() {
return currentItems;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Setters
///////////////////////////////////////////////////////////////////////////////////////////
public void setItemsForReturning(Item[] itemsForReturning) {
this.itemsForReturning = itemsForReturning;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Interface
///////////////////////////////////////////////////////////////////////////////////////////
public static interface Listener {
void onNavigationRequested(Item... items);
}
///////////////////////////////////////////////////////////////////////////////////////////
// Enum
///////////////////////////////////////////////////////////////////////////////////////////
public static enum Item {
///////////////////////////////////////////////////////////////////////////////////////////
// Application
///////////////////////////////////////////////////////////////////////////////////////////
MAIN("/io/bitsquare/gui/main/MainView.fxml"),
///////////////////////////////////////////////////////////////////////////////////////////
// Main menu screens
///////////////////////////////////////////////////////////////////////////////////////////
HOME("/io/bitsquare/gui/main/home/HomeView.fxml", ImageUtil.HOME, ImageUtil.HOME_ACTIVE),
BUY("/io/bitsquare/gui/main/trade/BuyView.fxml", ImageUtil.BUY, ImageUtil.BUY_ACTIVE),
SELL("/io/bitsquare/gui/main/trade/SellView.fxml", ImageUtil.SELL, ImageUtil.SELL_ACTIVE),
ORDERS("/io/bitsquare/gui/main/orders/OrdersView.fxml", ImageUtil.ORDERS, ImageUtil.ORDERS_ACTIVE),
FUNDS("/io/bitsquare/gui/main/funds/FundsView.fxml", ImageUtil.FUNDS, ImageUtil.FUNDS_ACTIVE),
MSG("/io/bitsquare/gui/main/msg/MsgView.fxml", ImageUtil.MSG, ImageUtil.MSG_ACTIVE),
SETTINGS("/io/bitsquare/gui/main/settings/SettingsView.fxml", ImageUtil.SETTINGS, ImageUtil.SETTINGS_ACTIVE),
ACCOUNT("/io/bitsquare/gui/main/account/AccountView.fxml", ImageUtil.ACCOUNT, ImageUtil.ACCOUNT_ACTIVE),
///////////////////////////////////////////////////////////////////////////////////////////
// Sub menus
///////////////////////////////////////////////////////////////////////////////////////////
// buy/sell (trade)
ORDER_BOOK("/io/bitsquare/gui/main/trade/orderbook/OrderBookView.fxml"),
CREATE_OFFER("/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml"),
TAKE_OFFER("/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml"),
// orders
OFFER("/io/bitsquare/gui/main/orders/offer/OfferView.fxml"),
PENDING_TRADE("/io/bitsquare/gui/main/orders/pending/PendingTradeView.fxml"),
CLOSED_TRADE("/io/bitsquare/gui/main/orders/closed/ClosedTradeView.fxml"),
// funds
DEPOSIT("/io/bitsquare/gui/main/funds/deposit/DepositView.fxml"),
WITHDRAWAL("/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml"),
TRANSACTIONS("/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml"),
// account
ACCOUNT_SETUP("/io/bitsquare/gui/main/account/setup/AccountSetupView.fxml"),
ACCOUNT_SETTINGS("/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml"),
///////////////////////////////////////////////////////////////////////////////////////////
// Content in sub menus
///////////////////////////////////////////////////////////////////////////////////////////
// account content
SEED_WORDS("/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml"),
ADD_PASSWORD("/io/bitsquare/gui/main/account/content/password/PasswordView.fxml"),
CHANGE_PASSWORD("/io/bitsquare/gui/main/account/content/password/PasswordView.fxml"),
RESTRICTIONS("/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml"),
REGISTRATION("/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml"),
FIAT_ACCOUNT("/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml"),
///////////////////////////////////////////////////////////////////////////////////////////
// Popups
///////////////////////////////////////////////////////////////////////////////////////////
// arbitrator
ARBITRATOR_PROFILE("/io/bitsquare/gui/main/arbitrators/profile/ArbitratorProfileView.fxml"),
ARBITRATOR_BROWSER("/io/bitsquare/gui/main/arbitrators/browser/ArbitratorBrowserView.fxml"),
ARBITRATOR_REGISTRATION("/io/bitsquare/gui/main/arbitrators/registration/ArbitratorRegistrationView.fxml");
private final String fxmlUrl;
private String icon;
private String activeIcon;
/**
* @param fxmlUrl
* @param icon
* @param activeIcon
*/
Item(String fxmlUrl, String icon, String activeIcon) {
this.fxmlUrl = fxmlUrl;
this.icon = icon;
this.activeIcon = activeIcon;
}
Item(String fxmlUrl) {
this.fxmlUrl = fxmlUrl;
}
public String getFxmlUrl() {
return fxmlUrl;
}
public String getIcon() {
return icon;
}
public String getActiveIcon() {
return activeIcon;
}
}
}

View file

@ -1,122 +0,0 @@
/*
* This file is part of Bitsquare.
*
* Bitsquare 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.
*
* Bitsquare 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 Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/
package io.bitsquare.gui;
import io.bitsquare.gui.util.ImageUtil;
public enum NavigationItem {
///////////////////////////////////////////////////////////////////////////////////////////
// Application
///////////////////////////////////////////////////////////////////////////////////////////
MAIN("/io/bitsquare/gui/main/MainView.fxml"),
///////////////////////////////////////////////////////////////////////////////////////////
// Main menu screens
///////////////////////////////////////////////////////////////////////////////////////////
HOME("/io/bitsquare/gui/main/home/HomeView.fxml", ImageUtil.HOME, ImageUtil.HOME_ACTIVE),
BUY("/io/bitsquare/gui/main/trade/BuyView.fxml", ImageUtil.BUY, ImageUtil.BUY_ACTIVE),
SELL("/io/bitsquare/gui/main/trade/SellView.fxml", ImageUtil.SELL, ImageUtil.SELL_ACTIVE),
ORDERS("/io/bitsquare/gui/main/orders/OrdersView.fxml", ImageUtil.ORDERS, ImageUtil.ORDERS_ACTIVE),
FUNDS("/io/bitsquare/gui/main/funds/FundsView.fxml", ImageUtil.FUNDS, ImageUtil.FUNDS_ACTIVE),
MSG("/io/bitsquare/gui/main/msg/MsgView.fxml", ImageUtil.MSG, ImageUtil.MSG_ACTIVE),
SETTINGS("/io/bitsquare/gui/main/settings/SettingsView.fxml", ImageUtil.SETTINGS, ImageUtil.SETTINGS_ACTIVE),
ACCOUNT("/io/bitsquare/gui/main/account/AccountView.fxml", ImageUtil.ACCOUNT, ImageUtil.ACCOUNT_ACTIVE),
///////////////////////////////////////////////////////////////////////////////////////////
// Sub menus
///////////////////////////////////////////////////////////////////////////////////////////
// buy/sell (trade)
ORDER_BOOK("/io/bitsquare/gui/main/trade/orderbook/OrderBookView.fxml"),
CREATE_OFFER("/io/bitsquare/gui/main/trade/createoffer/CreateOfferView.fxml"),
TAKE_OFFER("/io/bitsquare/gui/main/trade/takeoffer/TakeOfferView.fxml"),
// orders
OFFER("/io/bitsquare/gui/main/orders/offer/OfferView.fxml"),
PENDING_TRADE("/io/bitsquare/gui/main/orders/pending/PendingTradeView.fxml"),
CLOSED_TRADE("/io/bitsquare/gui/main/orders/closed/ClosedTradeView.fxml"),
// funds
DEPOSIT("/io/bitsquare/gui/main/funds/deposit/DepositView.fxml"),
WITHDRAWAL("/io/bitsquare/gui/main/funds/withdrawal/WithdrawalView.fxml"),
TRANSACTIONS("/io/bitsquare/gui/main/funds/transactions/TransactionsView.fxml"),
// account
ACCOUNT_SETUP("/io/bitsquare/gui/main/account/setup/AccountSetupView.fxml"),
ACCOUNT_SETTINGS("/io/bitsquare/gui/main/account/settings/AccountSettingsView.fxml"),
///////////////////////////////////////////////////////////////////////////////////////////
// Content in sub menus
///////////////////////////////////////////////////////////////////////////////////////////
// account content
SEED_WORDS("/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.fxml"),
ADD_PASSWORD("/io/bitsquare/gui/main/account/content/password/PasswordView.fxml"),
CHANGE_PASSWORD("/io/bitsquare/gui/main/account/content/password/PasswordView.fxml"),
RESTRICTIONS("/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.fxml"),
REGISTRATION("/io/bitsquare/gui/main/account/content/registration/RegistrationView.fxml"),
FIAT_ACCOUNT("/io/bitsquare/gui/main/account/content/fiat/FiatAccountView.fxml"),
///////////////////////////////////////////////////////////////////////////////////////////
// Popups
///////////////////////////////////////////////////////////////////////////////////////////
// arbitrator
ARBITRATOR_PROFILE("/io/bitsquare/gui/main/arbitrators/profile/ArbitratorProfileView.fxml"),
ARBITRATOR_BROWSER("/io/bitsquare/gui/main/arbitrators/browser/ArbitratorBrowserView.fxml"),
ARBITRATOR_REGISTRATION("/io/bitsquare/gui/main/arbitrators/registration/ArbitratorRegistrationView.fxml");
private final String fxmlUrl;
private String icon;
private String activeIcon;
/**
* @param fxmlUrl
* @param icon
* @param activeIcon
*/
NavigationItem(String fxmlUrl, String icon, String activeIcon) {
this.fxmlUrl = fxmlUrl;
this.icon = icon;
this.activeIcon = activeIcon;
}
NavigationItem(String fxmlUrl) {
this.fxmlUrl = fxmlUrl;
}
public String getFxmlUrl() {
return fxmlUrl;
}
public String getIcon() {
return icon;
}
public String getActiveIcon() {
return activeIcon;
}
}

View file

@ -1,137 +0,0 @@
/*
* This file is part of Bitsquare.
*
* Bitsquare 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.
*
* Bitsquare 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 Bitsquare. If not, see <http://www.gnu.org/licenses/>.
*/
package io.bitsquare.gui;
import io.bitsquare.persistence.Persistence;
import com.google.inject.Inject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class NavigationManager {
private static final Logger log = LoggerFactory.getLogger(NavigationManager.class);
///////////////////////////////////////////////////////////////////////////////////////////
// Interface
///////////////////////////////////////////////////////////////////////////////////////////
public interface Listener {
void onNavigationRequested(NavigationItem... navigationItems);
}
// New listeners can be added during iteration so we use CopyOnWriteArrayList to prevent invalid array
// modification
private List<Listener> listeners = new CopyOnWriteArrayList<>();
private Persistence persistence;
private NavigationItem[] currentNavigationItems;
// Used for returning to the last important view
// After setup is done we want to return to the last opened view (e.g. sell/buy)
private NavigationItem[] navigationItemsForReturning;
///////////////////////////////////////////////////////////////////////////////////////////
// Constructor
///////////////////////////////////////////////////////////////////////////////////////////
@Inject
public NavigationManager(Persistence persistence) {
this.persistence = persistence;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Public methods
///////////////////////////////////////////////////////////////////////////////////////////
public void navigationTo(NavigationItem... navigationItems) {
log.trace("navigationTo " + Arrays.asList(navigationItems).toString());
List<NavigationItem> temp = new ArrayList<>();
for (int i = 0; i < navigationItems.length; i++) {
NavigationItem item = navigationItems[i];
temp.add(item);
if (currentNavigationItems == null ||
(currentNavigationItems != null &&
currentNavigationItems.length > i &&
item != currentNavigationItems[i] &&
i != navigationItems.length - 1)) {
List<NavigationItem> temp2 = new ArrayList<>(temp);
for (int n = i + 1; n < navigationItems.length; n++) {
NavigationItem[] newTemp = new NavigationItem[i + 1];
currentNavigationItems = temp2.toArray(newTemp);
navigationTo(currentNavigationItems);
item = navigationItems[n];
temp2.add(item);
}
}
}
currentNavigationItems = navigationItems;
persistence.write(this, "navigationItems", navigationItems);
log.trace("navigationTo notify listeners " + Arrays.asList(navigationItems).toString() + " / " + listeners
.size());
listeners.stream().forEach((e) -> e.onNavigationRequested(navigationItems));
}
public void navigateToLastStoredItem() {
NavigationItem[] navigationItems = (NavigationItem[]) persistence.read(this, "navigationItems");
if (navigationItems == null || navigationItems.length == 0)
navigationItems = new NavigationItem[]{NavigationItem.MAIN, NavigationItem.HOME};
navigationTo(navigationItems);
}
///////////////////////////////////////////////////////////////////////////////////////////
// Listeners
///////////////////////////////////////////////////////////////////////////////////////////
public void addListener(Listener listener) {
listeners.add(listener);
}
public void removeListener(Listener listener) {
listeners.remove(listener);
}
///////////////////////////////////////////////////////////////////////////////////////////
// Getters
///////////////////////////////////////////////////////////////////////////////////////////
public NavigationItem[] getNavigationItemsForReturning() {
return navigationItemsForReturning;
}
public NavigationItem[] getCurrentNavigationItems() {
return currentNavigationItems;
}
///////////////////////////////////////////////////////////////////////////////////////////
// Setters
///////////////////////////////////////////////////////////////////////////////////////////
public void setNavigationItemsForReturning(NavigationItem[] navigationItemsForReturning) {
this.navigationItemsForReturning = navigationItemsForReturning;
}
}

View file

@ -83,7 +83,7 @@ public class ViewCB<T extends PresentationModel> implements Initializable {
* @param navigationItem NavigationItem to be loaded. * @param navigationItem NavigationItem to be loaded.
* @return The ViewController of the loaded view. * @return The ViewController of the loaded view.
*/ */
protected Initializable loadView(NavigationItem navigationItem) { protected Initializable loadView(Navigation.Item navigationItem) {
log.trace("Lifecycle: loadViewAndGetChildController " + this.getClass().getSimpleName() + " / navigationItem " + log.trace("Lifecycle: loadViewAndGetChildController " + this.getClass().getSimpleName() + " / navigationItem " +
"= " + navigationItem); "= " + navigationItem);
return null; return null;

View file

@ -84,12 +84,12 @@ public abstract class ViewController implements Initializable {
} }
/** /**
* @param navigationItem NavigationItem to be loaded. * @param item NavigationItem to be loaded.
* @return The ViewController of the loaded view. * @return The ViewController of the loaded view.
*/ */
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
log.trace("Lifecycle: loadViewAndGetChildController " + this.getClass().getSimpleName() + " / navigationItem " + log.trace("Lifecycle: loadViewAndGetChildController " + this.getClass().getSimpleName() + " / navigationItem " +
"= " + navigationItem); "= " + item);
return null; return null;
} }

View file

@ -19,8 +19,7 @@ package io.bitsquare.gui.main;
import io.bitsquare.bank.BankAccount; import io.bitsquare.bank.BankAccount;
import io.bitsquare.gui.AWTSystemTray; import io.bitsquare.gui.AWTSystemTray;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.NavigationManager;
import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.OverlayManager;
import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.ViewCB;
import io.bitsquare.gui.components.NetworkSyncPane; import io.bitsquare.gui.components.NetworkSyncPane;
@ -53,7 +52,7 @@ import org.slf4j.LoggerFactory;
public class MainViewCB extends ViewCB<MainPM> { public class MainViewCB extends ViewCB<MainPM> {
private static final Logger log = LoggerFactory.getLogger(MainViewCB.class); private static final Logger log = LoggerFactory.getLogger(MainViewCB.class);
private final NavigationManager navigationManager; private final Navigation navigation;
private final OverlayManager overlayManager; private final OverlayManager overlayManager;
private final ToggleGroup navButtonsGroup = new ToggleGroup(); private final ToggleGroup navButtonsGroup = new ToggleGroup();
@ -73,11 +72,11 @@ public class MainViewCB extends ViewCB<MainPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Inject @Inject
private MainViewCB(MainPM presentationModel, NavigationManager navigationManager, private MainViewCB(MainPM presentationModel, Navigation navigation,
OverlayManager overlayManager) { OverlayManager overlayManager) {
super(presentationModel); super(presentationModel);
this.navigationManager = navigationManager; this.navigation = navigation;
this.overlayManager = overlayManager; this.overlayManager = overlayManager;
} }
@ -95,9 +94,9 @@ public class MainViewCB extends ViewCB<MainPM> {
// just temp. ugly hack... Popups will be removed // just temp. ugly hack... Popups will be removed
Popups.setOverlayManager(overlayManager); Popups.setOverlayManager(overlayManager);
navigationManager.addListener(navigationItems -> { navigation.addListener(navigationItems -> {
if (navigationItems != null && navigationItems.length == 2) { if (navigationItems != null && navigationItems.length == 2) {
if (navigationItems[0] == NavigationItem.MAIN) { if (navigationItems[0] == Navigation.Item.MAIN) {
loadView(navigationItems[1]); loadView(navigationItems[1]);
selectMainMenuButton(navigationItems[1]); selectMainMenuButton(navigationItems[1]);
} }
@ -131,7 +130,7 @@ public class MainViewCB extends ViewCB<MainPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
protected Initializable loadView(NavigationItem navigationItem) { protected Initializable loadView(Navigation.Item navigationItem) {
super.loadView((navigationItem)); super.loadView((navigationItem));
final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl())); final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()));
try { try {
@ -193,16 +192,16 @@ public class MainViewCB extends ViewCB<MainPM> {
alertButton.setId("nav-alert-button"); alertButton.setId("nav-alert-button");
alertButton.relocate(36, 19); alertButton.relocate(36, 19);
alertButton.setOnAction((e) -> alertButton.setOnAction((e) ->
navigationManager.navigationTo(NavigationItem.MAIN, navigation.navigationTo(Navigation.Item.MAIN,
NavigationItem.ORDERS, Navigation.Item.ORDERS,
NavigationItem.PENDING_TRADE)); Navigation.Item.PENDING_TRADE));
Tooltip.install(alertButton, new Tooltip("Your offer has been accepted")); Tooltip.install(alertButton, new Tooltip("Your offer has been accepted"));
ordersButtonButtonPane.getChildren().add(alertButton); ordersButtonButtonPane.getChildren().add(alertButton);
AWTSystemTray.setAlert(); AWTSystemTray.setAlert();
}); });
navigationManager.navigateToLastStoredItem(); navigation.navigateToLastStoredItem();
onContentAdded(); onContentAdded();
} }
@ -216,8 +215,8 @@ public class MainViewCB extends ViewCB<MainPM> {
// Private // Private
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
private void selectMainMenuButton(NavigationItem navigationItem) { private void selectMainMenuButton(Navigation.Item item) {
switch (navigationItem) { switch (item) {
case HOME: case HOME:
homeButton.setSelected(true); homeButton.setSelected(true);
break; break;
@ -243,7 +242,7 @@ public class MainViewCB extends ViewCB<MainPM> {
accountButton.setSelected(true); accountButton.setSelected(true);
break; break;
default: default:
log.error(navigationItem.getFxmlUrl() + " is no main navigation item"); log.error(item.getFxmlUrl() + " is no main navigation item");
break; break;
} }
} }
@ -338,32 +337,32 @@ public class MainViewCB extends ViewCB<MainPM> {
} }
private void addMainNavigation() { private void addMainNavigation() {
homeButton = addNavButton(leftNavPane, "Overview", NavigationItem.HOME); homeButton = addNavButton(leftNavPane, "Overview", Navigation.Item.HOME);
buyButton = addNavButton(leftNavPane, "Buy BTC", NavigationItem.BUY); buyButton = addNavButton(leftNavPane, "Buy BTC", Navigation.Item.BUY);
sellButton = addNavButton(leftNavPane, "Sell BTC", NavigationItem.SELL); sellButton = addNavButton(leftNavPane, "Sell BTC", Navigation.Item.SELL);
ordersButtonButtonPane = new Pane(); ordersButtonButtonPane = new Pane();
ordersButton = addNavButton(ordersButtonButtonPane, "Orders", NavigationItem.ORDERS); ordersButton = addNavButton(ordersButtonButtonPane, "Orders", Navigation.Item.ORDERS);
leftNavPane.getChildren().add(ordersButtonButtonPane); leftNavPane.getChildren().add(ordersButtonButtonPane);
fundsButton = addNavButton(leftNavPane, "Funds", NavigationItem.FUNDS); fundsButton = addNavButton(leftNavPane, "Funds", Navigation.Item.FUNDS);
final Pane msgButtonHolder = new Pane(); final Pane msgButtonHolder = new Pane();
msgButton = addNavButton(msgButtonHolder, "Message", NavigationItem.MSG); msgButton = addNavButton(msgButtonHolder, "Message", Navigation.Item.MSG);
leftNavPane.getChildren().add(msgButtonHolder); leftNavPane.getChildren().add(msgButtonHolder);
addBalanceInfo(rightNavPane); addBalanceInfo(rightNavPane);
addBankAccountComboBox(rightNavPane); addBankAccountComboBox(rightNavPane);
settingsButton = addNavButton(rightNavPane, "Settings", NavigationItem.SETTINGS); settingsButton = addNavButton(rightNavPane, "Settings", Navigation.Item.SETTINGS);
accountButton = addNavButton(rightNavPane, "Account", NavigationItem.ACCOUNT); accountButton = addNavButton(rightNavPane, "Account", Navigation.Item.ACCOUNT);
onMainNavigationAdded(); onMainNavigationAdded();
} }
private ToggleButton addNavButton(Pane parent, String title, NavigationItem navigationItem) { private ToggleButton addNavButton(Pane parent, String title, Navigation.Item item) {
ImageView icon = ImageUtil.getIconImageView(navigationItem.getIcon()); ImageView icon = ImageUtil.getIconImageView(item.getIcon());
icon.setFitWidth(32); icon.setFitWidth(32);
icon.setFitHeight(32); icon.setFitHeight(32);
@ -382,16 +381,16 @@ public class MainViewCB extends ViewCB<MainPM> {
toggleButton.setMaxSize(50, 50); toggleButton.setMaxSize(50, 50);
toggleButton.setGraphicTextGap(newValue ? -1 : 0); toggleButton.setGraphicTextGap(newValue ? -1 : 0);
if (newValue) { if (newValue) {
Image activeIcon = ImageUtil.getIconImage(navigationItem.getActiveIcon()); Image activeIcon = ImageUtil.getIconImage(item.getActiveIcon());
((ImageView) toggleButton.getGraphic()).setImage(activeIcon); ((ImageView) toggleButton.getGraphic()).setImage(activeIcon);
} }
else { else {
Image activeIcon = ImageUtil.getIconImage(navigationItem.getIcon()); Image activeIcon = ImageUtil.getIconImage(item.getIcon());
((ImageView) toggleButton.getGraphic()).setImage(activeIcon); ((ImageView) toggleButton.getGraphic()).setImage(activeIcon);
} }
}); });
toggleButton.setOnAction(e -> navigationManager.navigationTo(NavigationItem.MAIN, navigationItem)); toggleButton.setOnAction(e -> navigation.navigationTo(Navigation.Item.MAIN, item));
parent.getChildren().add(toggleButton); parent.getChildren().add(toggleButton);
return toggleButton; return toggleButton;

View file

@ -18,8 +18,7 @@
package io.bitsquare.gui.main.account; package io.bitsquare.gui.main.account;
import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.CachedViewCB;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.NavigationManager;
import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.ViewCB;
import io.bitsquare.util.ViewLoader; import io.bitsquare.util.ViewLoader;
@ -43,8 +42,8 @@ public class AccountViewCB extends CachedViewCB<AccountPM> {
private static final Logger log = LoggerFactory.getLogger(AccountViewCB.class); private static final Logger log = LoggerFactory.getLogger(AccountViewCB.class);
public Tab tab; public Tab tab;
private NavigationManager navigationManager; private Navigation navigation;
private NavigationManager.Listener listener; private Navigation.Listener listener;
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -52,10 +51,10 @@ public class AccountViewCB extends CachedViewCB<AccountPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Inject @Inject
private AccountViewCB(AccountPM presentationModel, NavigationManager navigationManager) { private AccountViewCB(AccountPM presentationModel, Navigation navigation) {
super(presentationModel); super(presentationModel);
this.navigationManager = navigationManager; this.navigation = navigation;
} }
@ -69,7 +68,7 @@ public class AccountViewCB extends CachedViewCB<AccountPM> {
listener = navigationItems -> { listener = navigationItems -> {
if (navigationItems != null && if (navigationItems != null &&
navigationItems.length == 3 && navigationItems.length == 3 &&
navigationItems[1] == NavigationItem.ACCOUNT) navigationItems[1] == Navigation.Item.ACCOUNT)
loadView(navigationItems[2]); loadView(navigationItems[2]);
}; };
@ -80,16 +79,16 @@ public class AccountViewCB extends CachedViewCB<AccountPM> {
public void activate() { public void activate() {
super.activate(); super.activate();
navigationManager.addListener(listener); navigation.addListener(listener);
if (navigationManager.getCurrentNavigationItems().length == 2 && if (navigation.getCurrentItems().length == 2 &&
navigationManager.getCurrentNavigationItems()[1] == NavigationItem.ACCOUNT) { navigation.getCurrentItems()[1] == Navigation.Item.ACCOUNT) {
if (presentationModel.getNeedRegistration()) if (presentationModel.getNeedRegistration())
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.ACCOUNT, navigation.navigationTo(Navigation.Item.MAIN, Navigation.Item.ACCOUNT,
NavigationItem.ACCOUNT_SETUP); Navigation.Item.ACCOUNT_SETUP);
else else
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.ACCOUNT, navigation.navigationTo(Navigation.Item.MAIN, Navigation.Item.ACCOUNT,
NavigationItem.ACCOUNT_SETTINGS); Navigation.Item.ACCOUNT_SETTINGS);
} }
} }
@ -97,7 +96,7 @@ public class AccountViewCB extends CachedViewCB<AccountPM> {
public void deactivate() { public void deactivate() {
super.deactivate(); super.deactivate();
navigationManager.removeListener(listener); navigation.removeListener(listener);
} }
@SuppressWarnings("EmptyMethod") @SuppressWarnings("EmptyMethod")
@ -112,10 +111,10 @@ public class AccountViewCB extends CachedViewCB<AccountPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
protected Initializable loadView(NavigationItem navigationItem) { protected Initializable loadView(Navigation.Item navigationItem) {
super.loadView(navigationItem); super.loadView(navigationItem);
tab.setText((navigationItem == NavigationItem.ACCOUNT_SETUP) ? "Account setup" : "Account settings"); tab.setText((navigationItem == Navigation.Item.ACCOUNT_SETUP) ? "Account setup" : "Account settings");
final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl())); final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()));
try { try {
AnchorPane view = loader.load(); AnchorPane view = loader.load();
@ -124,7 +123,7 @@ public class AccountViewCB extends CachedViewCB<AccountPM> {
((ViewCB) childController).setParent(this); ((ViewCB) childController).setParent(this);
} catch (IOException e) { } catch (IOException e) {
log.error("Loading view failed. FxmlUrl = " + NavigationItem.ACCOUNT_SETUP.getFxmlUrl()); log.error("Loading view failed. FxmlUrl = " + Navigation.Item.ACCOUNT_SETUP.getFxmlUrl());
e.getStackTrace(); e.getStackTrace();
} }
return childController; return childController;

View file

@ -20,7 +20,7 @@ package io.bitsquare.gui.main.account.content.restrictions;
import io.bitsquare.BitSquare; import io.bitsquare.BitSquare;
import io.bitsquare.arbitrator.Arbitrator; import io.bitsquare.arbitrator.Arbitrator;
import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.CachedViewCB;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.account.MultiStepNavigation; import io.bitsquare.gui.main.account.MultiStepNavigation;
import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.gui.main.account.content.ContextAware;
import io.bitsquare.gui.main.help.Help; import io.bitsquare.gui.main.help.Help;
@ -154,7 +154,7 @@ public class RestrictionsViewCB extends CachedViewCB<RestrictionsPM> implements
@FXML @FXML
private void onOpenArbitratorScreen() { private void onOpenArbitratorScreen() {
loadView(NavigationItem.ARBITRATOR_BROWSER); loadView(Navigation.Item.ARBITRATOR_BROWSER);
} }
@ -185,7 +185,7 @@ public class RestrictionsViewCB extends CachedViewCB<RestrictionsPM> implements
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
protected Initializable loadView(NavigationItem navigationItem) { protected Initializable loadView(Navigation.Item navigationItem) {
// TODO caching causes exception // TODO caching causes exception
final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false); final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false);
try { try {
@ -208,7 +208,7 @@ public class RestrictionsViewCB extends CachedViewCB<RestrictionsPM> implements
Scene scene = new Scene((Parent) view, 800, 600); Scene scene = new Scene((Parent) view, 800, 600);
stage.setScene(scene); stage.setScene(scene);
stage.setOnHidden(windowEvent -> { stage.setOnHidden(windowEvent -> {
if (navigationItem == NavigationItem.ARBITRATOR_BROWSER) if (navigationItem == Navigation.Item.ARBITRATOR_BROWSER)
updateArbitratorList(); updateArbitratorList();
}); });
stage.show(); stage.show();

View file

@ -18,8 +18,7 @@
package io.bitsquare.gui.main.account.settings; package io.bitsquare.gui.main.account.settings;
import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.CachedViewCB;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.NavigationManager;
import io.bitsquare.gui.PresentationModel; import io.bitsquare.gui.PresentationModel;
import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.ViewCB;
import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.gui.main.account.content.ContextAware;
@ -51,8 +50,8 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
private static final Logger log = LoggerFactory.getLogger(AccountSettingsViewCB.class); private static final Logger log = LoggerFactory.getLogger(AccountSettingsViewCB.class);
private MenuItem seedWords, password, restrictions, fiatAccount, registration; private MenuItem seedWords, password, restrictions, fiatAccount, registration;
private NavigationManager navigationManager; private Navigation navigation;
private NavigationManager.Listener listener; private Navigation.Listener listener;
@FXML VBox leftVBox; @FXML VBox leftVBox;
@FXML AnchorPane content; @FXML AnchorPane content;
@ -63,10 +62,10 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Inject @Inject
private AccountSettingsViewCB(AccountSettingsPM presentationModel, NavigationManager navigationManager) { private AccountSettingsViewCB(AccountSettingsPM presentationModel, Navigation navigation) {
super(presentationModel); super(presentationModel);
this.navigationManager = navigationManager; this.navigation = navigation;
} }
@ -79,23 +78,23 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
listener = navigationItems -> { listener = navigationItems -> {
if (navigationItems != null && if (navigationItems != null &&
navigationItems.length == 4 && navigationItems.length == 4 &&
navigationItems[2] == NavigationItem.ACCOUNT_SETTINGS) { navigationItems[2] == Navigation.Item.ACCOUNT_SETTINGS) {
loadView(navigationItems[3]); loadView(navigationItems[3]);
selectMainMenuButton(navigationItems[3]); selectMainMenuButton(navigationItems[3]);
} }
}; };
ToggleGroup toggleGroup = new ToggleGroup(); ToggleGroup toggleGroup = new ToggleGroup();
seedWords = new MenuItem(navigationManager, "Wallet seed", seedWords = new MenuItem(navigation, "Wallet seed",
NavigationItem.SEED_WORDS, toggleGroup); Navigation.Item.SEED_WORDS, toggleGroup);
password = new MenuItem(navigationManager, "Wallet password", password = new MenuItem(navigation, "Wallet password",
NavigationItem.CHANGE_PASSWORD, toggleGroup); Navigation.Item.CHANGE_PASSWORD, toggleGroup);
restrictions = new MenuItem(navigationManager, "Trading restrictions", restrictions = new MenuItem(navigation, "Trading restrictions",
NavigationItem.RESTRICTIONS, toggleGroup); Navigation.Item.RESTRICTIONS, toggleGroup);
fiatAccount = new MenuItem(navigationManager, "Payments account(s)", fiatAccount = new MenuItem(navigation, "Payments account(s)",
NavigationItem.FIAT_ACCOUNT, toggleGroup); Navigation.Item.FIAT_ACCOUNT, toggleGroup);
registration = new MenuItem(navigationManager, "Renew your account", registration = new MenuItem(navigation, "Renew your account",
NavigationItem.REGISTRATION, toggleGroup); Navigation.Item.REGISTRATION, toggleGroup);
registration.setDisable(true); registration.setDisable(true);
@ -109,17 +108,17 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
public void activate() { public void activate() {
super.activate(); super.activate();
navigationManager.addListener(listener); navigation.addListener(listener);
NavigationItem[] items = navigationManager.getCurrentNavigationItems(); Navigation.Item[] items = navigation.getCurrentItems();
if (items.length == 3 && if (items.length == 3 &&
items[2] == NavigationItem.ACCOUNT_SETTINGS) { items[2] == Navigation.Item.ACCOUNT_SETTINGS) {
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.ACCOUNT, navigation.navigationTo(Navigation.Item.MAIN, Navigation.Item.ACCOUNT,
NavigationItem.ACCOUNT_SETTINGS, NavigationItem.SEED_WORDS); Navigation.Item.ACCOUNT_SETTINGS, Navigation.Item.SEED_WORDS);
} }
else { else {
if (items != null && if (items != null &&
items.length == 4 && items.length == 4 &&
items[2] == NavigationItem.ACCOUNT_SETTINGS) { items[2] == Navigation.Item.ACCOUNT_SETTINGS) {
loadView(items[3]); loadView(items[3]);
selectMainMenuButton(items[3]); selectMainMenuButton(items[3]);
} }
@ -130,7 +129,7 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
public void deactivate() { public void deactivate() {
super.deactivate(); super.deactivate();
navigationManager.removeListener(listener); navigation.removeListener(listener);
} }
@SuppressWarnings("EmptyMethod") @SuppressWarnings("EmptyMethod")
@ -145,7 +144,7 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
protected Initializable loadView(NavigationItem navigationItem) { protected Initializable loadView(Navigation.Item navigationItem) {
final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl())); final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()));
try { try {
final Pane view = loader.load(); final Pane view = loader.load();
@ -166,8 +165,8 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
// Private // Private
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
private void selectMainMenuButton(NavigationItem navigationItem) { private void selectMainMenuButton(Navigation.Item item) {
switch (navigationItem) { switch (item) {
case SEED_WORDS: case SEED_WORDS:
seedWords.setSelected(true); seedWords.setSelected(true);
break; break;
@ -184,7 +183,7 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
registration.setSelected(true); registration.setSelected(true);
break; break;
default: default:
log.error(navigationItem.getFxmlUrl() + " is invalid"); log.error(item.getFxmlUrl() + " is invalid");
break; break;
} }
} }
@ -193,7 +192,7 @@ public class AccountSettingsViewCB extends CachedViewCB<AccountSettingsPM> {
class MenuItem extends ToggleButton { class MenuItem extends ToggleButton {
private static final Logger log = LoggerFactory.getLogger(MenuItem.class); private static final Logger log = LoggerFactory.getLogger(MenuItem.class);
MenuItem(NavigationManager navigationManager, String title, NavigationItem navigationItem, MenuItem(Navigation navigation, String title, Navigation.Item navigationItem,
ToggleGroup toggleGroup) { ToggleGroup toggleGroup) {
setToggleGroup(toggleGroup); setToggleGroup(toggleGroup);
@ -205,17 +204,17 @@ class MenuItem extends ToggleButton {
Label icon = new Label(); Label icon = new Label();
icon.setTextFill(Paint.valueOf("#999")); icon.setTextFill(Paint.valueOf("#999"));
if (navigationItem.equals(NavigationItem.SEED_WORDS)) if (navigationItem.equals(Navigation.Item.SEED_WORDS))
AwesomeDude.setIcon(icon, AwesomeIcon.INFO_SIGN); AwesomeDude.setIcon(icon, AwesomeIcon.INFO_SIGN);
else if (navigationItem.equals(NavigationItem.REGISTRATION)) else if (navigationItem.equals(Navigation.Item.REGISTRATION))
AwesomeDude.setIcon(icon, AwesomeIcon.BRIEFCASE); AwesomeDude.setIcon(icon, AwesomeIcon.BRIEFCASE);
else else
AwesomeDude.setIcon(icon, AwesomeIcon.EDIT_SIGN); AwesomeDude.setIcon(icon, AwesomeIcon.EDIT_SIGN);
setGraphic(icon); setGraphic(icon);
setOnAction((event) -> navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.ACCOUNT, setOnAction((event) -> navigation.navigationTo(Navigation.Item.MAIN, Navigation.Item.ACCOUNT,
NavigationItem.ACCOUNT_SETTINGS, navigationItem)); Navigation.Item.ACCOUNT_SETTINGS, navigationItem));
selectedProperty().addListener((ov, oldValue, newValue) -> { selectedProperty().addListener((ov, oldValue, newValue) -> {
if (newValue) { if (newValue) {

View file

@ -18,8 +18,7 @@
package io.bitsquare.gui.main.account.setup; package io.bitsquare.gui.main.account.setup;
import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.CachedViewCB;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.NavigationManager;
import io.bitsquare.gui.PresentationModel; import io.bitsquare.gui.PresentationModel;
import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.ViewCB;
import io.bitsquare.gui.main.account.MultiStepNavigation; import io.bitsquare.gui.main.account.MultiStepNavigation;
@ -55,8 +54,8 @@ public class AccountSetupViewCB extends CachedViewCB<AccountSetupPM> implements
private static final Logger log = LoggerFactory.getLogger(AccountSetupViewCB.class); private static final Logger log = LoggerFactory.getLogger(AccountSetupViewCB.class);
private WizardItem seedWords, password, fiatAccount, restrictions, registration; private WizardItem seedWords, password, fiatAccount, restrictions, registration;
private NavigationManager navigationManager; private Navigation navigation;
private NavigationManager.Listener listener; private Navigation.Listener listener;
@FXML VBox leftVBox; @FXML VBox leftVBox;
@FXML AnchorPane content; @FXML AnchorPane content;
@ -67,9 +66,9 @@ public class AccountSetupViewCB extends CachedViewCB<AccountSetupPM> implements
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Inject @Inject
private AccountSetupViewCB(AccountSetupPM presentationModel, NavigationManager navigationManager) { private AccountSetupViewCB(AccountSetupPM presentationModel, Navigation navigation) {
super(presentationModel); super(presentationModel);
this.navigationManager = navigationManager; this.navigation = navigation;
} }
@ -82,24 +81,24 @@ public class AccountSetupViewCB extends CachedViewCB<AccountSetupPM> implements
listener = navigationItems -> { listener = navigationItems -> {
if (navigationItems != null && if (navigationItems != null &&
navigationItems.length == 4 && navigationItems.length == 4 &&
navigationItems[2] == NavigationItem.ACCOUNT_SETUP) { navigationItems[2] == Navigation.Item.ACCOUNT_SETUP) {
loadView(navigationItems[3]); loadView(navigationItems[3]);
} }
}; };
seedWords = new WizardItem(navigationManager, "Backup wallet seed", "Write down the seed word for your wallet", seedWords = new WizardItem(navigation, "Backup wallet seed", "Write down the seed word for your wallet",
NavigationItem.SEED_WORDS); Navigation.Item.SEED_WORDS);
password = new WizardItem(navigationManager, "Setup password", "Protect your wallet with a password", password = new WizardItem(navigation, "Setup password", "Protect your wallet with a password",
NavigationItem.ADD_PASSWORD); Navigation.Item.ADD_PASSWORD);
restrictions = new WizardItem(navigationManager, "Setup your preferences", restrictions = new WizardItem(navigation, "Setup your preferences",
"Define your preferences with whom you want to trade", "Define your preferences with whom you want to trade",
NavigationItem.RESTRICTIONS); Navigation.Item.RESTRICTIONS);
fiatAccount = new WizardItem(navigationManager, " Setup Payments account(s)", fiatAccount = new WizardItem(navigation, " Setup Payments account(s)",
"You need to add a payments account to your trading account", "You need to add a payments account to your trading account",
NavigationItem.FIAT_ACCOUNT); Navigation.Item.FIAT_ACCOUNT);
registration = new WizardItem(navigationManager, "Register your account", registration = new WizardItem(navigation, "Register your account",
"Pay in the registration fee of 0.0002 BTC and store your account in the BTC block chain", "Pay in the registration fee of 0.0002 BTC and store your account in the BTC block chain",
NavigationItem.REGISTRATION); Navigation.Item.REGISTRATION);
leftVBox.getChildren().addAll(seedWords, password, restrictions, fiatAccount, registration); leftVBox.getChildren().addAll(seedWords, password, restrictions, fiatAccount, registration);
@ -111,7 +110,7 @@ public class AccountSetupViewCB extends CachedViewCB<AccountSetupPM> implements
public void activate() { public void activate() {
super.activate(); super.activate();
navigationManager.addListener(listener); navigation.addListener(listener);
// triggers navigationTo // triggers navigationTo
childController = seedWords.show(); childController = seedWords.show();
@ -121,7 +120,7 @@ public class AccountSetupViewCB extends CachedViewCB<AccountSetupPM> implements
public void deactivate() { public void deactivate() {
super.deactivate(); super.deactivate();
navigationManager.removeListener(listener); navigation.removeListener(listener);
} }
@SuppressWarnings("EmptyMethod") @SuppressWarnings("EmptyMethod")
@ -156,7 +155,7 @@ public class AccountSetupViewCB extends CachedViewCB<AccountSetupPM> implements
registration.onCompleted(); registration.onCompleted();
childController = null; childController = null;
navigationManager.navigationTo(navigationManager.getNavigationItemsForReturning()); navigation.navigationTo(navigation.getItemsForReturning());
} }
} }
@ -166,7 +165,7 @@ public class AccountSetupViewCB extends CachedViewCB<AccountSetupPM> implements
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
protected Initializable loadView(NavigationItem navigationItem) { protected Initializable loadView(Navigation.Item navigationItem) {
final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl())); final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()));
try { try {
final Pane view = loader.load(); final Pane view = loader.load();
@ -191,12 +190,12 @@ class WizardItem extends HBox {
private final ImageView imageView; private final ImageView imageView;
private final Label titleLabel; private final Label titleLabel;
private final Label subTitleLabel; private final Label subTitleLabel;
private final NavigationItem navigationItem; private final Navigation.Item navigationItem;
private final NavigationManager navigationManager; private final Navigation navigation;
WizardItem(NavigationManager navigationManager, String title, String subTitle, WizardItem(Navigation navigation, String title, String subTitle,
NavigationItem navigationItem) { Navigation.Item navigationItem) {
this.navigationManager = navigationManager; this.navigation = navigation;
this.navigationItem = navigationItem; this.navigationItem = navigationItem;
setId("wizard-item-background-deactivated"); setId("wizard-item-background-deactivated");
@ -233,7 +232,8 @@ class WizardItem extends HBox {
} }
ViewCB<? extends PresentationModel> show() { ViewCB<? extends PresentationModel> show() {
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.ACCOUNT, NavigationItem.ACCOUNT_SETUP, navigation.navigationTo(Navigation.Item.MAIN, Navigation.Item.ACCOUNT, Navigation
.Item.ACCOUNT_SETUP,
navigationItem); navigationItem);
setId("wizard-item-background-active"); setId("wizard-item-background-active");

View file

@ -19,7 +19,7 @@ package io.bitsquare.gui.main.arbitrators.browser;
import io.bitsquare.arbitrator.Arbitrator; import io.bitsquare.arbitrator.Arbitrator;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.arbitrators.profile.ArbitratorProfileController; import io.bitsquare.gui.main.arbitrators.profile.ArbitratorProfileController;
import io.bitsquare.locale.LanguageUtil; import io.bitsquare.locale.LanguageUtil;
import io.bitsquare.msg.MessageFacade; import io.bitsquare.msg.MessageFacade;
@ -91,7 +91,7 @@ public class ArbitratorBrowserController extends CachedViewController implements
public void initialize(URL url, ResourceBundle rb) { public void initialize(URL url, ResourceBundle rb) {
super.initialize(url, rb); super.initialize(url, rb);
loadViewAndGetChildController(NavigationItem.ARBITRATOR_PROFILE); loadViewAndGetChildController(Navigation.Item.ARBITRATOR_PROFILE);
checkButtonState(); checkButtonState();
} }
@ -121,8 +121,8 @@ public class ArbitratorBrowserController extends CachedViewController implements
} }
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl())); final ViewLoader loader = new ViewLoader(getClass().getResource(item.getFxmlUrl()));
try { try {
final Node view = loader.load(); final Node view = loader.load();
arbitratorProfileController = loader.getController(); arbitratorProfileController = loader.getController();

View file

@ -19,7 +19,7 @@ package io.bitsquare.gui.main.arbitrators.profile;
import io.bitsquare.arbitrator.Arbitrator; import io.bitsquare.arbitrator.Arbitrator;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.BSFormatter;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
import io.bitsquare.settings.Settings; import io.bitsquare.settings.Settings;
@ -99,7 +99,7 @@ public class ArbitratorProfileController extends CachedViewController {
} }
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
return null; return null;
} }

View file

@ -21,7 +21,7 @@ import io.bitsquare.arbitrator.Arbitrator;
import io.bitsquare.arbitrator.Reputation; import io.bitsquare.arbitrator.Reputation;
import io.bitsquare.btc.WalletFacade; import io.bitsquare.btc.WalletFacade;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.components.ConfidenceDisplay; import io.bitsquare.gui.components.ConfidenceDisplay;
import io.bitsquare.gui.components.confidence.ConfidenceProgressIndicator; import io.bitsquare.gui.components.confidence.ConfidenceProgressIndicator;
import io.bitsquare.gui.main.arbitrators.profile.ArbitratorProfileController; import io.bitsquare.gui.main.arbitrators.profile.ArbitratorProfileController;
@ -224,7 +224,7 @@ public class ArbitratorRegistrationController extends CachedViewController {
} }
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
return null; return null;
} }

View file

@ -18,7 +18,7 @@
package io.bitsquare.gui.main.funds; package io.bitsquare.gui.main.funds;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.ViewController; import io.bitsquare.gui.ViewController;
import io.bitsquare.gui.components.CachingTabPane; import io.bitsquare.gui.components.CachingTabPane;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
@ -59,8 +59,8 @@ public class FundsController extends CachedViewController {
super.initialize(url, rb); super.initialize(url, rb);
((CachingTabPane) root).initialize( ((CachingTabPane) root).initialize(
this, persistence, NavigationItem.DEPOSIT.getFxmlUrl(), NavigationItem.WITHDRAWAL.getFxmlUrl(), this, persistence, Navigation.Item.DEPOSIT.getFxmlUrl(), Navigation.Item.WITHDRAWAL.getFxmlUrl(),
NavigationItem.TRANSACTIONS.getFxmlUrl()); Navigation.Item.TRANSACTIONS.getFxmlUrl());
} }
@Override @Override
@ -79,8 +79,8 @@ public class FundsController extends CachedViewController {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
childController = ((CachingTabPane) root).loadViewAndGetChildController(navigationItem.getFxmlUrl()); childController = ((CachingTabPane) root).loadViewAndGetChildController(item.getFxmlUrl());
return childController; return childController;
} }

View file

@ -19,7 +19,7 @@ package io.bitsquare.gui.main.home;
import io.bitsquare.BitSquare; import io.bitsquare.BitSquare;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.main.arbitrators.registration.ArbitratorRegistrationController; import io.bitsquare.gui.main.arbitrators.registration.ArbitratorRegistrationController;
import io.bitsquare.util.ViewLoader; import io.bitsquare.util.ViewLoader;
@ -70,9 +70,9 @@ public class HomeController extends CachedViewController {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
// don't use caching here, cause exc. -> need to investigate and is rarely called so no caching is better // don't use caching here, cause exc. -> need to investigate and is rarely called so no caching is better
final ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false); final ViewLoader loader = new ViewLoader(getClass().getResource(item.getFxmlUrl()), false);
try { try {
final Parent view = loader.load(); final Parent view = loader.load();
arbitratorRegistrationController = loader.getController(); arbitratorRegistrationController = loader.getController();
@ -107,12 +107,12 @@ public class HomeController extends CachedViewController {
@FXML @FXML
public void onArbitratorRegistration() { public void onArbitratorRegistration() {
loadViewAndGetChildController(NavigationItem.ARBITRATOR_REGISTRATION); loadViewAndGetChildController(Navigation.Item.ARBITRATOR_REGISTRATION);
} }
@FXML @FXML
public void onArbitratorEdit() { public void onArbitratorEdit() {
loadViewAndGetChildController(NavigationItem.ARBITRATOR_REGISTRATION); loadViewAndGetChildController(Navigation.Item.ARBITRATOR_REGISTRATION);
arbitratorRegistrationController.setEditMode(true); arbitratorRegistrationController.setEditMode(true);
} }

View file

@ -18,7 +18,7 @@
package io.bitsquare.gui.main.msg; package io.bitsquare.gui.main.msg;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import java.net.URL; import java.net.URL;
@ -76,7 +76,7 @@ public class MsgController extends CachedViewController {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
return null; return null;
} }

View file

@ -18,7 +18,7 @@
package io.bitsquare.gui.main.orders; package io.bitsquare.gui.main.orders;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.components.CachingTabPane; import io.bitsquare.gui.components.CachingTabPane;
import io.bitsquare.persistence.Persistence; import io.bitsquare.persistence.Persistence;
@ -61,8 +61,8 @@ public class OrdersController extends CachedViewController {
public void initialize(URL url, ResourceBundle rb) { public void initialize(URL url, ResourceBundle rb) {
super.initialize(url, rb); super.initialize(url, rb);
((CachingTabPane) root).initialize(this, persistence, NavigationItem.OFFER.getFxmlUrl(), ((CachingTabPane) root).initialize(this, persistence, Navigation.Item.OFFER.getFxmlUrl(),
NavigationItem.PENDING_TRADE.getFxmlUrl(), NavigationItem.CLOSED_TRADE.getFxmlUrl()); Navigation.Item.PENDING_TRADE.getFxmlUrl(), Navigation.Item.CLOSED_TRADE.getFxmlUrl());
} }
@Override @Override
@ -81,8 +81,8 @@ public class OrdersController extends CachedViewController {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
childController = ((CachingTabPane) root).loadViewAndGetChildController(navigationItem.getFxmlUrl()); childController = ((CachingTabPane) root).loadViewAndGetChildController(item.getFxmlUrl());
return childController; return childController;
} }

View file

@ -18,7 +18,7 @@
package io.bitsquare.gui.main.settings; package io.bitsquare.gui.main.settings;
import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.CachedViewController;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import java.net.URL; import java.net.URL;
@ -68,8 +68,8 @@ public class SettingsController extends CachedViewController {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Override @Override
public Initializable loadViewAndGetChildController(NavigationItem navigationItem) { public Initializable loadViewAndGetChildController(Navigation.Item item) {
return super.loadViewAndGetChildController(navigationItem); return super.loadViewAndGetChildController(item);
} }

View file

@ -17,15 +17,15 @@
package io.bitsquare.gui.main.trade; package io.bitsquare.gui.main.trade;
import io.bitsquare.gui.NavigationManager; import io.bitsquare.gui.Navigation;
import javax.inject.Inject; import javax.inject.Inject;
public class BuyViewCB extends TradeViewCB { public class BuyViewCB extends TradeViewCB {
@Inject @Inject
public BuyViewCB(NavigationManager navigationManager) { public BuyViewCB(Navigation navigation) {
super(navigationManager); super(navigation);
} }
} }

View file

@ -17,15 +17,15 @@
package io.bitsquare.gui.main.trade; package io.bitsquare.gui.main.trade;
import io.bitsquare.gui.NavigationManager; import io.bitsquare.gui.Navigation;
import javax.inject.Inject; import javax.inject.Inject;
public class SellViewCB extends TradeViewCB { public class SellViewCB extends TradeViewCB {
@Inject @Inject
public SellViewCB(NavigationManager navigationManager) { public SellViewCB(Navigation navigation) {
super(navigationManager); super(navigation);
} }
} }

View file

@ -18,8 +18,7 @@
package io.bitsquare.gui.main.trade; package io.bitsquare.gui.main.trade;
import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.CachedViewCB;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.NavigationManager;
import io.bitsquare.gui.components.InputTextField; import io.bitsquare.gui.components.InputTextField;
import io.bitsquare.gui.main.trade.createoffer.CreateOfferViewCB; import io.bitsquare.gui.main.trade.createoffer.CreateOfferViewCB;
import io.bitsquare.gui.main.trade.orderbook.OrderBookViewCB; import io.bitsquare.gui.main.trade.orderbook.OrderBookViewCB;
@ -51,19 +50,19 @@ public class TradeViewCB extends CachedViewCB {
private CreateOfferViewCB createOfferViewCB; private CreateOfferViewCB createOfferViewCB;
private TakeOfferController takeOfferController; private TakeOfferController takeOfferController;
private Node createOfferView; private Node createOfferView;
private NavigationManager navigationManager; private Navigation navigation;
private NavigationManager.Listener listener; private Navigation.Listener listener;
private NavigationItem tradeNavigationItem; private Navigation.Item navigationItem;
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Constructor // Constructor
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
protected TradeViewCB(NavigationManager navigationManager) { protected TradeViewCB(Navigation navigation) {
super(); super();
this.navigationManager = navigationManager; this.navigation = navigation;
} }
@ -74,14 +73,14 @@ public class TradeViewCB extends CachedViewCB {
@Override @Override
public void initialize(URL url, ResourceBundle rb) { public void initialize(URL url, ResourceBundle rb) {
listener = navigationItems -> { listener = navigationItems -> {
if (navigationItems != null && navigationItems.length == 3 && navigationItems[1] == tradeNavigationItem) { if (navigationItems != null && navigationItems.length == 3 && navigationItems[1] == navigationItem) {
loadView(navigationItems[2]); loadView(navigationItems[2]);
} }
}; };
Direction direction = (this instanceof BuyViewCB) ? Direction.BUY : Direction.SELL; Direction direction = (this instanceof BuyViewCB) ? Direction.BUY : Direction.SELL;
orderBookInfo.setDirection(direction); orderBookInfo.setDirection(direction);
tradeNavigationItem = (direction == Direction.BUY) ? NavigationItem.BUY : NavigationItem.SELL; navigationItem = (direction == Direction.BUY) ? Navigation.Item.BUY : Navigation.Item.SELL;
super.initialize(url, rb); super.initialize(url, rb);
} }
@ -108,8 +107,8 @@ public class TradeViewCB extends CachedViewCB {
} }
}); });
navigationManager.addListener(listener); navigation.addListener(listener);
navigationManager.navigationTo(NavigationItem.MAIN, tradeNavigationItem, NavigationItem.ORDER_BOOK); navigation.navigationTo(Navigation.Item.MAIN, navigationItem, Navigation.Item.ORDER_BOOK);
} }
@SuppressWarnings("EmptyMethod") @SuppressWarnings("EmptyMethod")
@ -131,11 +130,11 @@ public class TradeViewCB extends CachedViewCB {
// @Override // @Override
protected Initializable loadView(NavigationItem navigationItem) { protected Initializable loadView(Navigation.Item navigationItem) {
super.loadView(navigationItem); super.loadView(navigationItem);
TabPane tabPane = (TabPane) root; TabPane tabPane = (TabPane) root;
if (navigationItem == NavigationItem.ORDER_BOOK && orderBookViewCB == null) { if (navigationItem == Navigation.Item.ORDER_BOOK && orderBookViewCB == null) {
// Orderbook must not be cached by GuiceFXMLLoader as we use 2 instances for sell and buy screens. // Orderbook must not be cached by ViewLoader as we use 2 instances for sell and buy screens.
ViewLoader orderBookLoader = ViewLoader orderBookLoader =
new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false); new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false);
try { try {
@ -154,8 +153,8 @@ public class TradeViewCB extends CachedViewCB {
log.error(e.getMessage()); log.error(e.getMessage());
} }
} }
else if (navigationItem == NavigationItem.CREATE_OFFER && createOfferViewCB == null) { else if (navigationItem == Navigation.Item.CREATE_OFFER && createOfferViewCB == null) {
// CreateOffer and TakeOffer must not be cached by GuiceFXMLLoader as we cannot use a view multiple times // CreateOffer and TakeOffer must not be cached by ViewLoader as we cannot use a view multiple times
// in different graphs // in different graphs
ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false); ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false);
try { try {
@ -173,8 +172,8 @@ public class TradeViewCB extends CachedViewCB {
log.error(e.getMessage()); log.error(e.getMessage());
} }
} }
else if (navigationItem == NavigationItem.TAKE_OFFER && takeOfferController == null) { else if (navigationItem == Navigation.Item.TAKE_OFFER && takeOfferController == null) {
// CreateOffer and TakeOffer must not be cached by GuiceFXMLLoader as we cannot use a view multiple times // CreateOffer and TakeOffer must not be cached by ViewLoader as we cannot use a view multiple times
// in different graphs // in different graphs
ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false); ViewLoader loader = new ViewLoader(getClass().getResource(navigationItem.getFxmlUrl()), false);
try { try {
@ -219,7 +218,7 @@ public class TradeViewCB extends CachedViewCB {
orderBookViewCB.enableCreateOfferButton(); orderBookViewCB.enableCreateOfferButton();
// update the navigation state // update the navigation state
navigationManager.navigationTo(NavigationItem.MAIN, tradeNavigationItem, NavigationItem.ORDER_BOOK); navigation.navigationTo(Navigation.Item.MAIN, navigationItem, Navigation.Item.ORDER_BOOK);
} }
} }

View file

@ -19,8 +19,7 @@ package io.bitsquare.gui.main.trade.createoffer;
import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.CachedViewCB;
import io.bitsquare.gui.CloseListener; import io.bitsquare.gui.CloseListener;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.NavigationManager;
import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.OverlayManager;
import io.bitsquare.gui.components.InfoDisplay; import io.bitsquare.gui.components.InfoDisplay;
import io.bitsquare.gui.components.InputTextField; import io.bitsquare.gui.components.InputTextField;
@ -74,7 +73,7 @@ import static javafx.beans.binding.Bindings.createStringBinding;
public class CreateOfferViewCB extends CachedViewCB<CreateOfferPM> { public class CreateOfferViewCB extends CachedViewCB<CreateOfferPM> {
private static final Logger log = LoggerFactory.getLogger(CreateOfferViewCB.class); private static final Logger log = LoggerFactory.getLogger(CreateOfferViewCB.class);
private NavigationManager navigationManager; private Navigation navigation;
private OverlayManager overlayManager; private OverlayManager overlayManager;
private CloseListener closeListener; private CloseListener closeListener;
@ -109,10 +108,10 @@ public class CreateOfferViewCB extends CachedViewCB<CreateOfferPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@Inject @Inject
private CreateOfferViewCB(CreateOfferPM presentationModel, NavigationManager navigationManager, private CreateOfferViewCB(CreateOfferPM presentationModel, Navigation navigation,
OverlayManager overlayManager) { OverlayManager overlayManager) {
super(presentationModel); super(presentationModel);
this.navigationManager = navigationManager; this.navigation = navigation;
this.overlayManager = overlayManager; this.overlayManager = overlayManager;
} }
@ -237,10 +236,10 @@ public class CreateOfferViewCB extends CachedViewCB<CreateOfferPM> {
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
private void openAccountSettings() { private void openAccountSettings() {
navigationManager.navigationTo(NavigationItem.MAIN, navigation.navigationTo(Navigation.Item.MAIN,
NavigationItem.ACCOUNT, Navigation.Item.ACCOUNT,
NavigationItem.ACCOUNT_SETTINGS, Navigation.Item.ACCOUNT_SETTINGS,
NavigationItem.RESTRICTIONS); Navigation.Item.RESTRICTIONS);
} }
private void close() { private void close() {

View file

@ -18,8 +18,7 @@
package io.bitsquare.gui.main.trade.orderbook; package io.bitsquare.gui.main.trade.orderbook;
import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.CachedViewCB;
import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.NavigationManager;
import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.OverlayManager;
import io.bitsquare.gui.components.InputTextField; import io.bitsquare.gui.components.InputTextField;
import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.Popups;
@ -62,8 +61,8 @@ import static javafx.beans.binding.Bindings.createStringBinding;
public class OrderBookViewCB extends CachedViewCB<OrderBookPM> { public class OrderBookViewCB extends CachedViewCB<OrderBookPM> {
private static final Logger log = LoggerFactory.getLogger(OrderBookViewCB.class); private static final Logger log = LoggerFactory.getLogger(OrderBookViewCB.class);
private NavigationManager navigationManager; private Navigation navigation;
private NavigationItem tradeNavigationItem; private Navigation.Item navigationItem;
private OverlayManager overlayManager; private OverlayManager overlayManager;
private OptionalBtcValidator optionalBtcValidator; private OptionalBtcValidator optionalBtcValidator;
private OptionalFiatValidator optionalFiatValidator; private OptionalFiatValidator optionalFiatValidator;
@ -92,13 +91,13 @@ public class OrderBookViewCB extends CachedViewCB<OrderBookPM> {
@Inject @Inject
private OrderBookViewCB(OrderBookPM presentationModel, private OrderBookViewCB(OrderBookPM presentationModel,
NavigationManager navigationManager, Navigation navigation,
OverlayManager overlayManager, OverlayManager overlayManager,
OptionalBtcValidator optionalBtcValidator, OptionalBtcValidator optionalBtcValidator,
OptionalFiatValidator optionalFiatValidator) { OptionalFiatValidator optionalFiatValidator) {
super(presentationModel); super(presentationModel);
this.navigationManager = navigationManager; this.navigation = navigation;
this.overlayManager = overlayManager; this.overlayManager = overlayManager;
this.optionalBtcValidator = optionalBtcValidator; this.optionalBtcValidator = optionalBtcValidator;
this.optionalFiatValidator = optionalFiatValidator; this.optionalFiatValidator = optionalFiatValidator;
@ -177,8 +176,8 @@ public class OrderBookViewCB extends CachedViewCB<OrderBookPM> {
public void setOrderBookInfo(OrderBookInfo orderBookInfo) { public void setOrderBookInfo(OrderBookInfo orderBookInfo) {
presentationModel.setOrderBookInfo(orderBookInfo); presentationModel.setOrderBookInfo(orderBookInfo);
tradeNavigationItem = (orderBookInfo.getDirection() == Direction.BUY) ? NavigationItem.BUY : NavigationItem navigationItem = (orderBookInfo.getDirection() == Direction.BUY) ?
.SELL; Navigation.Item.BUY : Navigation.Item.SELL;
} }
@ -191,11 +190,8 @@ public class OrderBookViewCB extends CachedViewCB<OrderBookPM> {
void createOffer() { void createOffer() {
if (presentationModel.isRegistered()) { if (presentationModel.isRegistered()) {
createOfferButton.setDisable(true); createOfferButton.setDisable(true);
if (presentationModel.getOrderBookInfo().getDirection() == Direction.BUY) navigation.navigationTo(Navigation.Item.MAIN, navigationItem,
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.BUY, NavigationItem.CREATE_OFFER); Navigation.Item.CREATE_OFFER);
else
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.SELL, NavigationItem.CREATE_OFFER);
} }
else { else {
openSetupScreen(); openSetupScreen();
@ -231,9 +227,9 @@ public class OrderBookViewCB extends CachedViewCB<OrderBookPM> {
public void handle(ActionEvent actionEvent) { public void handle(ActionEvent actionEvent) {
Dialog.Actions.OK.handle(actionEvent); Dialog.Actions.OK.handle(actionEvent);
overlayManager.removeBlurContent(); overlayManager.removeBlurContent();
navigationManager.setNavigationItemsForReturning(navigationManager.getCurrentNavigationItems()); navigation.setItemsForReturning(navigation.getCurrentItems());
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.ACCOUNT, navigation.navigationTo(Navigation.Item.MAIN, Navigation.Item.ACCOUNT,
NavigationItem.ACCOUNT_SETUP); Navigation.Item.ACCOUNT_SETUP);
} }
}); });
Popups.openInfo("You need to setup your trading account before you can trade.", Popups.openInfo("You need to setup your trading account before you can trade.",
@ -243,13 +239,9 @@ public class OrderBookViewCB extends CachedViewCB<OrderBookPM> {
//TODO not updated yet //TODO not updated yet
private void takeOffer(Offer offer) { private void takeOffer(Offer offer) {
if (presentationModel.isRegistered()) { if (presentationModel.isRegistered()) {
presentationModel.getOrderBookInfo().setOffer(offer); presentationModel.getOrderBookInfo().setOffer(offer);
navigation.navigationTo(Navigation.Item.MAIN, navigationItem,
if (presentationModel.getOrderBookInfo().getDirection() == Direction.BUY) Navigation.Item.TAKE_OFFER);
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.BUY, NavigationItem.TAKE_OFFER);
else
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.SELL, NavigationItem.TAKE_OFFER);
} }
else { else {
openSetupScreen(); openSetupScreen();
@ -267,8 +259,9 @@ public class OrderBookViewCB extends CachedViewCB<OrderBookPM> {
actions); actions);
if (response == Dialog.Actions.YES) if (response == Dialog.Actions.YES)
navigationManager.navigationTo(NavigationItem.MAIN, NavigationItem.ACCOUNT, NavigationItem.ACCOUNT_SETTINGS, navigation.navigationTo(Navigation.Item.MAIN, Navigation.Item.ACCOUNT,
NavigationItem.RESTRICTIONS); Navigation.Item.ACCOUNT_SETTINGS,
Navigation.Item.RESTRICTIONS);
else else
orderBookTable.getSelectionModel().clearSelection(); orderBookTable.getSelectionModel().clearSelection();
} }