diff --git a/photon/src/main/java/org/marketcetera/ui/marketdata/view/MarketDataListView.java b/photon/src/main/java/org/marketcetera/ui/marketdata/view/MarketDataListView.java
index a197361941..cd6dc524be 100644
--- a/photon/src/main/java/org/marketcetera/ui/marketdata/view/MarketDataListView.java
+++ b/photon/src/main/java/org/marketcetera/ui/marketdata/view/MarketDataListView.java
@@ -6,7 +6,6 @@
import java.util.UUID;
import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
import org.apache.commons.lang3.StringUtils;
import org.marketcetera.core.BigDecimalUtil;
@@ -129,6 +128,8 @@ public void start()
rootLayout = new VBox(5);
initializeAddSymbol();
initializeTable();
+ marketDataTable.prefWidthProperty().bind(getParentWindow().widthProperty());
+ rootLayout.prefHeightProperty().bind(getParentWindow().heightProperty());
rootLayout.getChildren().addAll(addSymbolLayout,
marketDataTable);
rootLayout.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
@@ -138,10 +139,6 @@ public void start()
}
});
}
- @PreDestroy
- public void stop()
- {
- }
/**
* Create a new MarketDataListView instance.
*
@@ -157,6 +154,9 @@ public MarketDataListView(Region inParent,
inEvent,
inProperties);
}
+ /**
+ * Update the view properties for this view.
+ */
private void updateViewProperties()
{
synchronized(symbolsByRequestId) {
@@ -164,6 +164,9 @@ private void updateViewProperties()
String.valueOf(symbolsByRequestId.values()));
}
}
+ /**
+ * Initialize the Add Symbol controls.
+ */
private void initializeAddSymbol()
{
addSymbolLayout = new HBox(5);
@@ -202,13 +205,20 @@ private void initializeAddSymbol()
addSymbolLayout.getChildren().addAll(addSymbolTextField,
addSymbolButton);
}
+ /**
+ * Initialize the market data table.
+ */
private void initializeTable()
{
marketDataTable = new TableView<>();
marketDataTable.setPlaceholder(new Label("no market data selected"));
initializeColumns();
initializeContextMenu();
+ marketDataTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
}
+ /**
+ * Initialize the market data table columns.
+ */
private void initializeColumns()
{
symbolColumn = new TableColumn<>("Symbol");
@@ -263,6 +273,9 @@ private void initializeColumns()
marketDataTable.getColumns().add(closePriceColumn);
marketDataTable.getColumns().add(volumeColumn);
}
+ /**
+ * Initialize the market data item context menu.
+ */
private void initializeContextMenu()
{
removeMarketDataMenuItem = new MenuItem("Remove");
@@ -420,12 +433,13 @@ private String renderMarketDataItem(MarketDataItem inMarketDataItem)
PlatformServices.cellStyleRightAlign);
return table.render();
}
- private ContextMenu marketDataContextMenu;
- private MenuItem removeMarketDataMenuItem;
- private MenuItem copyMarketDataMenuItem;
- private MenuItem buyMarketDataMenuItem;
- private MenuItem sellMarketDataMenuItem;
- private MenuItem viewDetailMarketDataMenuItem;
+ /**
+ * Create a market data row listener to update a market data item.
+ *
+ * @author Colin DuPlantis
+ * @version $Id$
+ * @since $Release$
+ */
private class MarketDataRowListener
implements MarketDataListener
{
@@ -440,35 +454,128 @@ public void receiveMarketData(Event inEvent)
/**
* Create a new MarketDataRowListener instance.
*
- * @param inMarketDataItem
+ * @param inMarketDataItem a MarketDataItem
value
*/
private MarketDataRowListener(MarketDataItem inMarketDataItem)
{
marketDataItem = inMarketDataItem;
}
+ /**
+ * market data item to update for this listener
+ */
private final MarketDataItem marketDataItem;
}
+ /**
+ * market data item context menu
+ */
+ private ContextMenu marketDataContextMenu;
+ /**
+ * remove market data context menu item
+ */
+ private MenuItem removeMarketDataMenuItem;
+ /**
+ * copy market data context menu item
+ */
+ private MenuItem copyMarketDataMenuItem;
+ /**
+ * buy market data context menu item
+ */
+ private MenuItem buyMarketDataMenuItem;
+ /**
+ * sell market data context menu item
+ */
+ private MenuItem sellMarketDataMenuItem;
+ /**
+ * view detail market data menu item
+ */
+ private MenuItem viewDetailMarketDataMenuItem;
+ /**
+ * holds the requested symbols by the request id
+ */
private final Map symbolsByRequestId = Maps.newHashMap();
+ /**
+ * market data item table
+ */
private TableView marketDataTable;
+ /**
+ * provides access to market data services
+ */
private MarketDataClientService marketdataClient;
+ /**
+ * provides access to trade services
+ */
private TradeClientService tradeClient;
+ /**
+ * main layout of the view
+ */
private VBox rootLayout;
+ /**
+ * key in the view properties for the symbols list
+ */
private final String symbolsKey = "SYMBOLS";
+ /**
+ * layout of the add symbol controls
+ */
private HBox addSymbolLayout;
+ /**
+ * add symbol text field
+ */
private TextField addSymbolTextField;
+ /**
+ * add symbol button
+ */
private Button addSymbolButton;
+ /**
+ * symbol table column
+ */
private TableColumn symbolColumn;
+ /**
+ * exec price table column
+ */
private TableColumn execPriceColumn;
+ /**
+ * last qty table column
+ */
private TableColumn lastQtyColumn;
+ /**
+ * bid qty table column
+ */
private TableColumn bidQtyColumn;
+ /**
+ * bid price table column
+ */
private TableColumn bidPriceColumn;
+ /**
+ * ask qty table column
+ */
private TableColumn askQtyColumn;
+ /**
+ * ask price table column
+ */
private TableColumn askPriceColumn;
+ /**
+ * prev close table column
+ */
private TableColumn prevCloseColumn;
+ /**
+ * open price table column
+ */
private TableColumn openPriceColumn;
+ /**
+ * high price table column
+ */
private TableColumn highPriceColumn;
+ /**
+ * low price table column
+ */
private TableColumn lowPriceColumn;
+ /**
+ * close price table column
+ */
private TableColumn closePriceColumn;
+ /**
+ * volume table column
+ */
private TableColumn volumeColumn;
/**
* global name of this view