Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ object BasketModule extends DefaultModule {
(table, _) => new BasketProvider(table),
(table, _, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new BasketService(table, tableContainer, omsApi)
service = new BasketService(table, omsApi)(clock, tableContainer)
)
)
.addTable(
Expand Down Expand Up @@ -71,7 +71,7 @@ object BasketModule extends DefaultModule {
(table, vs) => new BasketTradingProvider(table, vs.tableContainer),
(table, _, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new BasketTradingService(table, tableContainer, omsApi)
service = new BasketTradingService(table, omsApi)(clock, tableContainer)
)
)
.addTable(
Expand Down Expand Up @@ -102,7 +102,7 @@ object BasketModule extends DefaultModule {
(table, vs) => new BasketTradingConstituentProvider(table, omsApi),
(table, _, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new BasketTradingConstituentService(table, tableContainer)
service = new BasketTradingConstituentService(table)(clock, tableContainer)
)
)
.addTable(
Expand Down Expand Up @@ -144,7 +144,7 @@ object BasketModule extends DefaultModule {
),
(table, _, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new BasketTradingConstituentJoinService(table, tableContainer)
service = new BasketTradingConstituentJoinService(table)(clock, tableContainer)
)
)
.asModule()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import org.finos.vuu.core.module.basket.BasketConstants.Side
import org.finos.vuu.core.module.basket.BasketModule
import org.finos.vuu.core.module.basket.BasketModule.BasketConstituentTable
import org.finos.vuu.core.module.price.PriceModule
import org.finos.vuu.core.table.{DataTable, EmptyRowData, RowData, RowWithData, TableContainer}
import org.finos.vuu.net.rpc.RpcHandler
import org.finos.vuu.core.table._
import org.finos.vuu.net.RequestContext
import org.finos.vuu.net.rpc.{DefaultRpcHandler, RpcFunctionFailure, RpcFunctionSuccess, RpcHandler, RpcParams}
import org.finos.vuu.order.oms.OmsApi
import org.finos.vuu.viewport._

Expand All @@ -28,10 +28,20 @@ trait BasketServiceIF {
def createBasket(basketId: String, name: String)(ctx: RequestContext): ViewPortAction
}

class BasketService(val table: DataTable, val tableContainer: TableContainer, val omsApi: OmsApi)(implicit clock: Clock) extends RpcHandler with BasketServiceIF with StrictLogging {
// TODO: see comment on processViewPortRpcCall for why we extends DefaultRpcHandler with RpcHandler
class BasketService(val table: DataTable, val omsApi: OmsApi)(implicit clock: Clock, val tableContainer: TableContainer) extends DefaultRpcHandler with RpcHandler with BasketServiceIF with StrictLogging {

import org.finos.vuu.core.module.basket.BasketModule.{BasketConstituentColumnNames => BC, BasketTradingColumnNames => BT, BasketTradingConstituentColumnNames => BTC}

/**
* We switched to DefaultRpcHandler instead of RpcHandler so that ViewportTypeAheadRpcHandler is enabled by default.
* This class needs the processViewPortRpcCall from RpcHandler though.
* Ideally we should switch to use DefaultRpcHandler.processViewPortRpcCall
*/
override def processViewPortRpcCall(methodName: String, rpcParams: RpcParams): ViewPortAction = {
super[RpcHandler].processViewPortRpcCall(methodName, rpcParams)
}

private def getConstituentsForSourceBasket(basketId: String): List[RowData] = {
val table = tableContainer.getTable(BasketConstituentTable)
val keys = table.primaryKeys.toList
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import org.finos.vuu.core.module.basket.BasketConstants.Side
import org.finos.vuu.core.module.basket.BasketModule
import org.finos.vuu.core.module.basket.BasketModule.{BasketConstituentColumnNames => BCColumnName, BasketTradingColumnNames => BTColumnName, BasketTradingConstituentColumnNames => ColumnName}
import org.finos.vuu.core.module.basket.result.ErrorReason
import org.finos.vuu.core.table.{DataTable, JoinTable, RowData, RowWithData, TableContainer}
import org.finos.vuu.net.rpc.{EditRpcHandler, RpcHandler}
import org.finos.vuu.core.table._
import org.finos.vuu.net.rpc.{DefaultRpcHandler, EditRpcHandler, RpcHandler, RpcParams}
import org.finos.vuu.net.{ClientSessionId, RequestContext}
import org.finos.vuu.viewport._

Expand All @@ -23,7 +23,17 @@ trait BasketTradingConstituentJoinServiceIF extends EditRpcHandler {
def addConstituent(ric: String)(ctx: RequestContext): ViewPortAction
}

class BasketTradingConstituentJoinService(val table: DataTable, val tableContainer: TableContainer)(implicit clock: Clock) extends BasketTradingConstituentJoinServiceIF with RpcHandler with StrictLogging {
// TODO: see comment on processViewPortRpcCall for why we extends DefaultRpcHandler with RpcHandler
class BasketTradingConstituentJoinService(val table: DataTable)(implicit clock: Clock, val tableContainer: TableContainer) extends DefaultRpcHandler with RpcHandler with BasketTradingConstituentJoinServiceIF with StrictLogging {

/**
* We switched to DefaultRpcHandler instead of RpcHandler so that ViewportTypeAheadRpcHandler is enabled by default.
* This class needs the processViewPortRpcCall from RpcHandler though.
* Ideally we should switch to use DefaultRpcHandler.processViewPortRpcCall
*/
override def processViewPortRpcCall(methodName: String, rpcParams: RpcParams): ViewPortAction = {
super[RpcHandler].processViewPortRpcCall(methodName, rpcParams)
}

override def menuItems(): ViewPortMenu = ViewPortMenu("Direction",
new SelectionViewPortMenuItem("Set Sell", "", this.setSell, "SET_SELECTION_SELL"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,20 @@ import org.finos.toolbox.time.Clock
import org.finos.vuu.core.module.basket.BasketModule.BasketTradingConstituentColumnNames.InstanceIdRic
import org.finos.vuu.core.table.{DataTable, RowWithData, TableContainer}
import org.finos.vuu.net.ClientSessionId
import org.finos.vuu.net.rpc.{EditRpcHandler, RpcHandler}
import org.finos.vuu.order.oms.OmsApi
import org.finos.vuu.net.rpc.{DefaultRpcHandler, EditRpcHandler, RpcHandler, RpcParams}
import org.finos.vuu.viewport._

class BasketTradingConstituentService(val table: DataTable, val tableContainer: TableContainer)(implicit clock: Clock) extends RpcHandler with EditRpcHandler with StrictLogging {
// TODO: see comment on processViewPortRpcCall for why we extends DefaultRpcHandler with RpcHandler
class BasketTradingConstituentService(val table: DataTable)(implicit clock: Clock, val tableContainer: TableContainer) extends DefaultRpcHandler with RpcHandler with EditRpcHandler with StrictLogging {

/**
* We switched to DefaultRpcHandler instead of RpcHandler so that ViewportTypeAheadRpcHandler is enabled by default.
* This class needs the processViewPortRpcCall from RpcHandler though.
* Ideally we should switch to use DefaultRpcHandler.processViewPortRpcCall
*/
override def processViewPortRpcCall(methodName: String, rpcParams: RpcParams): ViewPortAction = {
super[RpcHandler].processViewPortRpcCall(methodName, rpcParams)
}

def onDeleteRow(key: String, vp: ViewPort, session: ClientSessionId): ViewPortEditAction = {
ViewPortEditSuccess()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package org.finos.vuu.core.module.basket.service

import com.typesafe.scalalogging.StrictLogging
import org.finos.toolbox.time.Clock
import org.finos.vuu.core.module.basket.BasketModule
import org.finos.vuu.core.module.basket.BasketConstants.Side
import org.finos.vuu.core.module.basket.BasketModule.{BasketTradingConstituentTable}
import org.finos.vuu.core.table.{DataTable, RowData, RowWithData, TableContainer, ViewPortColumnCreator}
import org.finos.vuu.net.rpc.{EditRpcHandler, RpcHandler}
import org.finos.vuu.core.module.basket.BasketModule
import org.finos.vuu.core.module.basket.BasketModule.BasketTradingConstituentTable
import org.finos.vuu.core.table._
import org.finos.vuu.net.rpc.{DefaultRpcHandler, EditRpcHandler, RpcHandler, RpcParams}
import org.finos.vuu.net.{ClientSessionId, RequestContext}
import org.finos.vuu.order.oms.{CancelOrder, NewOrder, OmsApi}
import org.finos.vuu.viewport._
Expand All @@ -17,11 +17,19 @@ trait BasketTradingServiceIF extends EditRpcHandler {
def takeOffMarket(basketInstanceId: String)(ctx: RequestContext): ViewPortAction
}


class BasketTradingService(val table: DataTable, val tableContainer: TableContainer, val omsApi: OmsApi)(implicit clock: Clock) extends RpcHandler with BasketTradingServiceIF with StrictLogging {
// TODO: see comment on processViewPortRpcCall for why we extends DefaultRpcHandler with RpcHandler
class BasketTradingService(val table: DataTable, val omsApi: OmsApi)(implicit clock: Clock, val tableContainer: TableContainer) extends DefaultRpcHandler with RpcHandler with BasketTradingServiceIF with StrictLogging {

import org.finos.vuu.core.module.basket.BasketModule.{BasketTradingColumnNames => BT, BasketTradingConstituentColumnNames => BTC}

/**
* We switched to DefaultRpcHandler instead of RpcHandler so that ViewportTypeAheadRpcHandler is enabled by default.
* This class needs the processViewPortRpcCall from RpcHandler though.
* Ideally we should switch to use DefaultRpcHandler.processViewPortRpcCall
*/
override def processViewPortRpcCall(methodName: String, rpcParams: RpcParams): ViewPortAction = {
super[RpcHandler].processViewPortRpcCall(methodName, rpcParams)
}

/**
* Send basket to market rpc call
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ object EditableModule extends DefaultModule {
(table, vs) => new ProcessProvider(table),
(table, _, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new ProcessRpcService(tableContainer)
service = new ProcessRpcService()(clock, tableContainer)
)
).addSessionTable(
SessionTableDef(
name = "fixSequenceReset",
keyField = "process-id",
columns = Columns.fromNames("process-id:String", "sequenceNumber:Int")
),
(table, _, _, _) => ViewPortDef(
(table, _, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new FixSequenceRpcService()
service = new FixSequenceRpcService()(clock, tableContainer)
)
).asModule()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.finos.vuu.core.module.editable

import org.finos.toolbox.time.Clock
import org.finos.vuu.core.table.RowWithData
import org.finos.vuu.core.table.{RowWithData, TableContainer}
import org.finos.vuu.net.ClientSessionId
import org.finos.vuu.net.rpc.{EditRpcHandler, RpcHandler}
import org.finos.vuu.net.rpc.{DefaultRpcHandler, EditRpcHandler}
import org.finos.vuu.viewport._

class FixSequenceRpcService(implicit clock: Clock) extends RpcHandler with EditRpcHandler{
class FixSequenceRpcService(implicit clock: Clock, tableContainer: TableContainer) extends DefaultRpcHandler with EditRpcHandler{

def onDeleteRow(key: String, vp: ViewPort, session: ClientSessionId): ViewPortEditAction = {
ViewPortEditSuccess()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package org.finos.vuu.core.module.editable
import org.finos.toolbox.time.Clock
import org.finos.vuu.core.table.{RowWithData, TableContainer}
import org.finos.vuu.net.ClientSessionId
import org.finos.vuu.net.rpc.RpcHandler
import org.finos.vuu.net.rpc.DefaultRpcHandler
import org.finos.vuu.viewport._

class ProcessRpcService(val tableContainer: TableContainer)(implicit clock: Clock) extends RpcHandler{
class ProcessRpcService(implicit clock: Clock, val tableContainer: TableContainer) extends DefaultRpcHandler {

private final val FIX_SEQ_RESET_TABLE = "fixSequenceReset"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.finos.vuu.person;

import org.finos.vuu.core.module.typeahead.ViewportTypeAheadRpcHandler;
import org.finos.vuu.core.table.DataTable;
import org.finos.vuu.core.table.TableContainer;
import org.finos.vuu.net.rpc.*;
Expand All @@ -9,13 +8,11 @@ public class PersonRpcHandler extends DefaultRpcHandler {
private final DataTable table;

public PersonRpcHandler(DataTable table, TableContainer tableContainer) {
super(tableContainer);
this.table = table;

var typeAheadHandler = new ViewportTypeAheadRpcHandler(this, tableContainer);
typeAheadHandler.register();

registerRpc("UpdateName", (params) -> processUpdateNameRpcRequest(params));
registerRpc("GetAccountId", (params) -> processGetAccountIdRpcRequest(params));
registerRpc("UpdateName", this::processUpdateNameRpcRequest);
registerRpc("GetAccountId", this::processGetAccountIdRpcRequest);
}

public RpcFunctionResult processUpdateNameRpcRequest(RpcParams params) {
Expand Down
2 changes: 0 additions & 2 deletions example/main/src/main/scala/org/finos/vuu/SimulMain.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import org.finos.vuu.core.module.editable.EditableModule
import org.finos.vuu.core.module.metrics.MetricsModule
import org.finos.vuu.core.module.price.PriceModule
import org.finos.vuu.core.module.simul.SimulationModule
import org.finos.vuu.core.module.typeahead.TypeAheadModule
import org.finos.vuu.core.module.vui.VuiStateModule
import org.finos.vuu.example.rest.client.{HttpClient, StubbedBackend}
import org.finos.vuu.example.rest.module.RestModule
Expand Down Expand Up @@ -68,7 +67,6 @@ object SimulMain extends App with StrictLogging {
.withModule(SimulationModule())
.withModule(MetricsModule())
.withModule(VuiStateModule(store))
.withModule(TypeAheadModule())
.withModule(AuthNModule(authenticator, loginTokenValidator))
.withModule(EditableModule())
.withModule(PermissionModule())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ import org.finos.vuu.core.module.simul.provider._
import org.finos.vuu.core.module.simul.service.ParentOrdersService
import org.finos.vuu.core.module.{DefaultModule, ModuleFactory, TableDefContainer, ViewServerModule}
import org.finos.vuu.core.table.{Columns, DataTable, TableContainer}
import org.finos.vuu.net.rpc.RpcHandler
import org.finos.vuu.net.rpc.{DefaultRpcHandler, RpcHandler}
import org.finos.vuu.net.{ClientSessionId, RequestContext}
import org.finos.vuu.provider.simulation.SimulatedBigInstrumentsProvider
import org.finos.vuu.provider.{ProviderContainer, RpcProvider}
import org.finos.vuu.viewport._


class InstrumentsService(val table: DataTable, val providerContainer: ProviderContainer) extends RpcHandler with StrictLogging {
class InstrumentsService(val table: DataTable, val providerContainer: ProviderContainer)(implicit tableContainer: TableContainer) extends DefaultRpcHandler with StrictLogging {

def addRowsFromInstruments(selection: ViewPortSelection, sessionId: ClientSessionId): ViewPortAction = {
val rics = selection.rowKeyIndex.map({ case (key, _) => key }).toList
Expand Down Expand Up @@ -138,22 +138,22 @@ object SimulationModule extends DefaultModule {
name = "instruments",
keyField = "ric",
columns = Columns.fromNames("ric".string(), "description".string(), "bbg".string(), "isin".string(),
"currency".string(), "exchange".string(), "lotSize".int()),
"currency".string(), "exchange".string(), "lotSize".int()),
VisualLinks(),
joinFields = "ric"
),
(table, vs) => new SimulatedBigInstrumentsProvider(table),
(table, provider, providerContainer, _) => ViewPortDef(
(table, _, providerContainer, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new InstrumentsService(table, providerContainer)
service = new InstrumentsService(table, providerContainer)(tableContainer)
)
)
.addTable(
TableDef(
name = "orders",
keyField = "orderId",
Columns.fromNames("orderId".string(), "side".char(), "ric".string(), "ccy".string(), "quantity".double(),
"trader".string(), "filledQuantity".double(), "lastUpdate".long(), "created".long()),
"trader".string(), "filledQuantity".double(), "lastUpdate".long(), "created".long()),
VisualLinks(
Link("ric", "instruments", "ric"),
Link("ric", "prices", "ric")
Expand All @@ -167,9 +167,9 @@ object SimulationModule extends DefaultModule {
name = "parentOrders",
keyField = "id",
Columns.fromNames("id".string(), "idAsInt".int(), "ric".string(), "childCount".int(), "price".double(),
"quantity".int(), "side".string(), "account".string(), "exchange".string(),
"ccy".string(), "algo".string(), "volLimit".double(), "filledQty".int(), "openQty".int(),
"averagePrice".double(), "status".string(), "lastUpdate".long()),
"quantity".int(), "side".string(), "account".string(), "exchange".string(),
"ccy".string(), "algo".string(), "volLimit".double(), "filledQty".int(), "openQty".int(),
"averagePrice".double(), "status".string(), "lastUpdate".long()),
VisualLinks(
Link("ric", "prices", "ric")
),
Expand All @@ -179,9 +179,9 @@ object SimulationModule extends DefaultModule {
joinFields = "id", "ric"
),
(table, vs) => new ParentOrdersProvider(table, ordersModel),
(table, provider, providerContainer, _) => ViewPortDef(
(table, provider, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new ParentOrdersService(table, provider)
service = new ParentOrdersService(table, provider)(tableContainer)
)
)
.addTable(
Expand All @@ -206,9 +206,9 @@ object SimulationModule extends DefaultModule {
name = "childOrders",
keyField = "id",
Columns.fromNames("parentOrderId".int(), "id".string(), "idAsInt".int(), "ric".string(), "price".double(),
"quantity".int(), "side".string(), "account".string(), "exchange".string(), "ccy".string(),
"strategy".string(), "volLimit".double(), "filledQty".int(), "openQty".int(), "averagePrice".double(),
"status".string(), "lastUpdate".long()),
"quantity".int(), "side".string(), "account".string(), "exchange".string(), "ccy".string(),
"strategy".string(), "volLimit".double(), "filledQty".int(), "openQty".int(), "averagePrice".double(),
"status".string(), "lastUpdate".long()),
VisualLinks(
Link("parentOrderId", "parentOrders", "idAsInt")
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ package org.finos.vuu.core.module.simul.service

import com.typesafe.scalalogging.StrictLogging
import org.finos.vuu.core.module.simul.provider.ParentOrdersProvider
import org.finos.vuu.core.table.DataTable
import org.finos.vuu.core.table.{DataTable, TableContainer}
import org.finos.vuu.net.ClientSessionId
import org.finos.vuu.net.rpc.RpcHandler
import org.finos.vuu.net.rpc.DefaultRpcHandler
import org.finos.vuu.provider.Provider
import org.finos.vuu.viewport._

class ParentOrdersService(val table: DataTable, val provider: Provider) extends RpcHandler with StrictLogging {
class ParentOrdersService(val table: DataTable, val provider: Provider)(implicit tableContainer: TableContainer) extends DefaultRpcHandler with StrictLogging {

final val parentsProvider = provider.asInstanceOf[ParentOrdersProvider]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ object PermissionModule extends DefaultModule{
joinFields = User
),
(table, vs) => new PermissionsProvider(table, vs.sessionContainer),
(table, provider, providerContainer, _) => ViewPortDef(
(table, _, _, tableContainer) => ViewPortDef(
columns = table.getTableDef.columns,
service = new PermissionsRpcService(table)
service = new PermissionsRpcService(table)(clock, tableContainer)
)
).asModule()

Expand Down
Loading
Loading