add offer type to search page
This commit is contained in:
@@ -9,6 +9,7 @@ import javafx.util.StringConverter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.trader.core.MarketFilter;
|
||||
import ru.trader.core.OFFER_TYPE;
|
||||
import ru.trader.core.SERVICE_TYPE;
|
||||
import ru.trader.model.*;
|
||||
import ru.trader.model.support.BindingsHelper;
|
||||
@@ -26,6 +27,10 @@ public class SearchController {
|
||||
@FXML
|
||||
private ComboBox<SystemModel> source;
|
||||
@FXML
|
||||
private RadioButton rbSeller;
|
||||
@FXML
|
||||
private RadioButton rbBuyer;
|
||||
@FXML
|
||||
private ComboBox<ItemModel> items;
|
||||
@FXML
|
||||
private NumberField distance;
|
||||
@@ -50,11 +55,17 @@ public class SearchController {
|
||||
|
||||
private final List<ResultEntry> results = FXCollections.observableArrayList();
|
||||
private final ObservableList<ItemModel> itemsList = FXCollections.observableArrayList();
|
||||
private final ToggleGroup offerType = new ToggleGroup();
|
||||
|
||||
private MarketModel market;
|
||||
|
||||
@FXML
|
||||
private void initialize() {
|
||||
rbBuyer.setToggleGroup(offerType);
|
||||
rbBuyer.setUserData(OFFER_TYPE.BUY);
|
||||
rbSeller.setToggleGroup(offerType);
|
||||
rbSeller.setUserData(OFFER_TYPE.SELL);
|
||||
rbSeller.setSelected(true);
|
||||
items.setCellFactory(new CustomListCell<>(ItemModel::getName));
|
||||
items.setConverter(new StringConverter<ItemModel>() {
|
||||
@Override
|
||||
@@ -108,7 +119,8 @@ public class SearchController {
|
||||
Collection<StationModel> stations = market.getStations(filter);
|
||||
fill(stations);
|
||||
} else {
|
||||
Collection<OfferModel> offers = market.getOffers(item, filter);
|
||||
OFFER_TYPE oType = (OFFER_TYPE) offerType.getSelectedToggle().getUserData();
|
||||
Collection<OfferModel> offers = market.getOffers(oType, item, filter);
|
||||
fill(offers);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,8 +123,8 @@ public class MarketModel {
|
||||
return market.getStat(type, item);
|
||||
}
|
||||
|
||||
public ObservableList<OfferModel> getOffers(ItemModel item, MarketFilter filter){
|
||||
return BindingsHelper.observableList(analyzer.getOffers(item.getItem(), filter), modeler::get);
|
||||
public ObservableList<OfferModel> getOffers(OFFER_TYPE offerType, ItemModel item, MarketFilter filter){
|
||||
return BindingsHelper.observableList(analyzer.getOffers(offerType, item.getItem(), filter), modeler::get);
|
||||
}
|
||||
|
||||
public Collection<StationModel> getStations(MarketFilter filter){
|
||||
|
||||
@@ -26,12 +26,16 @@
|
||||
</columnConstraints>
|
||||
<Label text="%search.text.from" />
|
||||
<ComboBox fx:id="source" prefWidth="150" GridPane.columnIndex="1" />
|
||||
<Label text="%search.text.item" GridPane.rowIndex="1"/>
|
||||
<ComboBox fx:id="items" prefWidth="150" GridPane.columnIndex="1" GridPane.rowIndex="1"/>
|
||||
<Label text="%search.text.distance" GridPane.rowIndex="2" />
|
||||
<NumberField fx:id="distance" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
||||
<Label text="%filter.services" GridPane.rowIndex="3" />
|
||||
<TilePane hgap="5" vgap="5" tileAlignment="BASELINE_LEFT" GridPane.columnSpan="2" GridPane.rowIndex="4" >
|
||||
<HBox GridPane.columnSpan="2" GridPane.rowIndex="1" spacing="10" alignment="BOTTOM_CENTER">
|
||||
<RadioButton fx:id="rbSeller" text="%market.order.seller"/>
|
||||
<RadioButton fx:id="rbBuyer" text="%market.order.buyer" />
|
||||
</HBox>
|
||||
<Label text="%search.text.item" GridPane.rowIndex="2"/>
|
||||
<ComboBox fx:id="items" prefWidth="150" GridPane.columnIndex="1" GridPane.rowIndex="2"/>
|
||||
<Label text="%search.text.distance" GridPane.rowIndex="3" />
|
||||
<NumberField fx:id="distance" GridPane.columnIndex="1" GridPane.rowIndex="3" />
|
||||
<Label text="%filter.services" GridPane.rowIndex="4" />
|
||||
<TilePane hgap="5" vgap="5" tileAlignment="BASELINE_LEFT" GridPane.columnSpan="2" GridPane.rowIndex="5" >
|
||||
<CheckBox fx:id="cbMarket" text="%services.MARKET"/>
|
||||
<CheckBox fx:id="cbBlackMarket" text="%services.BLACK_MARKET"/>
|
||||
<CheckBox fx:id="cbRepair" text="%services.REPAIR"/>
|
||||
@@ -41,8 +45,8 @@
|
||||
<CheckBox fx:id="cbMediumLandpad" text="%services.MEDIUM_LANDPAD"/>
|
||||
<CheckBox fx:id="cbLargeLandpad" text="%services.LARGE_LANDPAD"/>
|
||||
</TilePane>
|
||||
<Separator GridPane.columnSpan="2" GridPane.rowIndex="5" GridPane.margin="$separator_margin"/>
|
||||
<HBox GridPane.columnSpan="2" GridPane.rowIndex="6" spacing="10" alignment="CENTER">
|
||||
<Separator GridPane.columnSpan="2" GridPane.rowIndex="6" GridPane.margin="$separator_margin"/>
|
||||
<HBox GridPane.columnSpan="2" GridPane.rowIndex="7" spacing="10" alignment="CENTER">
|
||||
<Button text="%search.button.find" onAction="#searchStations" />
|
||||
</HBox>
|
||||
</GridPane>
|
||||
|
||||
Reference in New Issue
Block a user