Search in sources :

Example 46 with ObservableList

use of javafx.collections.ObservableList in project Gargoyle by callakrsos.

the class GagoyleSpreadSheetView method paste.

/**
	 * 특수문자에대한 문자열 paste에 대한 버그를 수정하기 위한 함수.
	 * @작성자 : KYJ
	 * @작성일 : 2016. 11. 23.
	 * @param items
	 * @param startRowIndex
	 * @param startColumnIndex
	 */
public void paste(List<Map<String, Object>> items, int startRowIndex, int startColumnIndex) {
    int row = startRowIndex;
    int column = startColumnIndex;
    int _column = column;
    //		String[] split = pastString.split("\n");
    Grid grid = ssv.getGrid();
    ObservableList<ObservableList<SpreadsheetCell>> rows = grid.getRows();
    for (Map<String, Object> str : items) {
        //			String[] split2 = str.split("\t");
        _column = column;
        Iterator<String> iterator = str.keySet().iterator();
        while (iterator.hasNext()) {
            String strCol = iterator.next();
            Object value = str.get(strCol);
            SpreadsheetCell spreadsheetCell = null;
            if (rows.size() > row) {
                ObservableList<SpreadsheetCell> observableList = rows.get(row);
                try {
                    spreadsheetCell = observableList.get(_column);
                } catch (IndexOutOfBoundsException e) {
                    e.printStackTrace();
                }
            } else /* 새로운 로우를 생성함. */
            {
                ObservableList<SpreadsheetCell> newCells = createNewRow();
                spreadsheetCell = newCells.get(_column);
            }
            if (value != null)
                value = value.toString();
            spreadsheetCell.setItem(value);
            _column++;
        }
        row++;
    }
}
Also used : SpreadsheetCell(org.controlsfx.control.spreadsheet.SpreadsheetCell) ObservableList(javafx.collections.ObservableList) Grid(org.controlsfx.control.spreadsheet.Grid)

Example 47 with ObservableList

use of javafx.collections.ObservableList in project Gargoyle by callakrsos.

the class DaoWizardViewController method menuToVoEditorOnAction.

/********************************
	 * 작성일 : 2016. 2. 27. 작성자 : KYJ
	 *
	 * 내용 : VO에티터로 결과내용을 전달처리한다.
	 *******************************/
public void menuToVoEditorOnAction(ActionEvent e) {
    ObservableList<TbpSysDaoColumnsDVO> items = tbMappings.getItems();
    if (items.isEmpty())
        return;
    DatabaseTypeMappingFunction typeConverter = new DatabaseTypeMappingFunction();
    try {
        FXMLLoader loader = FxUtil.createNewFxmlLoader();
        loader.setLocation(getClass().getResource("VoEditorView.fxml"));
        BorderPane root = loader.load();
        VoEditorController controller = loader.getController();
        List<TableModelDVO> resultItems = items.stream().map(m -> {
            TableModelDVO dvo = new TableModelDVO();
            dvo.setName(ValueUtil.getPrefixLowerTextMyEdit(m.getColumnName()));
            String programType = m.getProgramType();
            if (programType == null || programType.isEmpty()) {
                programType = typeConverter.apply(m.getColumnType());
            }
            dvo.setType(programType);
            return dvo;
        }).collect(Collectors.toList());
        controller.addItem(resultItems);
        SharedMemory.getSystemLayoutViewController().loadNewSystemTab("New VO", root);
    } catch (IOException e1) {
        LOGGER.error(ValueUtil.toString(e1));
    }
}
Also used : SimpleSQLResultView(com.kyj.fx.voeditor.visual.component.popup.SimpleSQLResultView) Arrays(java.util.Arrays) Menus(com.kyj.fx.voeditor.visual.component.Menus) DbUtil(com.kyj.fx.voeditor.visual.util.DbUtil) NumberingCellValueFactory(com.kyj.fx.voeditor.visual.component.NumberingCellValueFactory) LoggerFactory(org.slf4j.LoggerFactory) NullExpresion(com.kyj.fx.voeditor.visual.util.NullExpresion) MeerketAbstractVoOpenClassResourceView(com.kyj.fx.voeditor.visual.component.popup.MeerketAbstractVoOpenClassResourceView) ReadOnlyObjectWrapper(javafx.beans.property.ReadOnlyObjectWrapper) ContextMenu(javafx.scene.control.ContextMenu) Map(java.util.Map) FileUtil(com.kyj.fx.voeditor.visual.util.FileUtil) TableView(javafx.scene.control.TableView) TbpSysDaoColumnsDVO(kyj.Fx.dao.wizard.core.model.vo.TbpSysDaoColumnsDVO) Path(java.nio.file.Path) EditorUtil(com.kyj.fx.voeditor.util.EditorUtil) DatabaseTypeMappingFunction(com.kyj.fx.voeditor.visual.functions.DatabaseTypeMappingFunction) ClassTypeResourceLoader(com.kyj.fx.voeditor.visual.momory.ClassTypeResourceLoader) TableMasterDVO(kyj.Fx.dao.wizard.core.model.vo.TableMasterDVO) SqlKeywords(com.kyj.fx.voeditor.visual.component.text.SqlKeywords) TextField(javafx.scene.control.TextField) Pair(javafx.util.Pair) MenuItem(javafx.scene.control.MenuItem) QuerygenUtil(kyj.Fx.dao.wizard.core.util.QuerygenUtil) TbpSysDaoMethodsDVO(kyj.Fx.dao.wizard.core.model.vo.TbpSysDaoMethodsDVO) Set(java.util.Set) KeyEvent(javafx.scene.input.KeyEvent) DatabaseTableView(com.kyj.fx.voeditor.visual.component.popup.DatabaseTableView) FxDAOReadFunction(com.kyj.fx.voeditor.visual.functions.FxDAOReadFunction) ConfigResourceLoader(com.kyj.fx.voeditor.visual.momory.ConfigResourceLoader) TableDVO(kyj.Fx.dao.wizard.core.model.vo.TableDVO) Collectors(java.util.stream.Collectors) FXML(javafx.fxml.FXML) FxUtil(com.kyj.fx.voeditor.visual.util.FxUtil) List(java.util.List) ResourceLoader(com.kyj.fx.voeditor.visual.momory.ResourceLoader) Stream(java.util.stream.Stream) Optional(java.util.Optional) ChoiceBoxTableCell(javafx.scene.control.cell.ChoiceBoxTableCell) DateUtil(com.kyj.fx.voeditor.visual.util.DateUtil) CommonsContextMenu(com.kyj.fx.voeditor.visual.component.CommonsContextMenu) ObservableList(javafx.collections.ObservableList) BorderPane(javafx.scene.layout.BorderPane) BaseOpenClassResourceView(com.kyj.fx.voeditor.visual.component.popup.BaseOpenClassResourceView) TextArea(javafx.scene.control.TextArea) MouseEvent(javafx.scene.input.MouseEvent) CommonContextMenuEvent(com.kyj.fx.voeditor.visual.events.CommonContextMenuEvent) FXCollections(javafx.collections.FXCollections) HashMap(java.util.HashMap) TextFieldTableCell(javafx.scene.control.cell.TextFieldTableCell) DialogUtil(com.kyj.fx.voeditor.visual.util.DialogUtil) Function(java.util.function.Function) TbmSysDaoDVO(kyj.Fx.dao.wizard.core.model.vo.TbmSysDaoDVO) TableColumn(javafx.scene.control.TableColumn) Wizardtype(com.kyj.fx.voeditor.visual.framework.daowizard.GargoyleDaoWizardFactory.Wizardtype) FXMLLoader(javafx.fxml.FXMLLoader) FxCollectors(com.kyj.fx.voeditor.visual.util.FxCollectors) JavaTextView(com.kyj.fx.voeditor.visual.component.popup.JavaTextView) DaoWizard(kyj.Fx.dao.wizard.DaoWizard) LinkedHashSet(java.util.LinkedHashSet) ClassMeta(com.kyj.fx.voeditor.core.model.meta.ClassMeta) FxDAOSaveFunction(com.kyj.fx.voeditor.visual.functions.FxDAOSaveFunction) ObjectProperty(javafx.beans.property.ObjectProperty) Logger(org.slf4j.Logger) DaoWizardConverter(com.kyj.fx.voeditor.visual.util.DaoWizardConverter) Label(javafx.scene.control.Label) Iterator(java.util.Iterator) FieldMeta(com.kyj.fx.voeditor.core.model.meta.FieldMeta) DatabaseTypeMappingResourceLoader(kyj.Fx.dao.wizard.memory.DatabaseTypeMappingResourceLoader) IOException(java.io.IOException) LockImagedYnColumn(com.kyj.fx.voeditor.visual.component.LockImagedYnColumn) ValueUtil(com.kyj.fx.voeditor.visual.util.ValueUtil) TbpSysDaoFieldsDVO(kyj.Fx.dao.wizard.core.model.vo.TbpSysDaoFieldsDVO) StringConverter(javafx.util.StringConverter) File(java.io.File) ActionEvent(javafx.event.ActionEvent) SelectionMode(javafx.scene.control.SelectionMode) SimpleObjectProperty(javafx.beans.property.SimpleObjectProperty) TableModelDVO(kyj.Fx.dao.wizard.core.model.vo.TableModelDVO) ResultDialog(com.kyj.fx.voeditor.visual.component.ResultDialog) Collections(java.util.Collections) SharedMemory(com.kyj.fx.voeditor.visual.momory.SharedMemory) BorderPane(javafx.scene.layout.BorderPane) TableModelDVO(kyj.Fx.dao.wizard.core.model.vo.TableModelDVO) IOException(java.io.IOException) TbpSysDaoColumnsDVO(kyj.Fx.dao.wizard.core.model.vo.TbpSysDaoColumnsDVO) FXMLLoader(javafx.fxml.FXMLLoader) DatabaseTypeMappingFunction(com.kyj.fx.voeditor.visual.functions.DatabaseTypeMappingFunction)

Example 48 with ObservableList

use of javafx.collections.ObservableList in project Gargoyle by callakrsos.

the class SchoolMgrerSpreadSheetView method miSaveAsOnAction.

/**
	 * 파일 저장 처리.
	 * @작성자 : KYJ
	 * @작성일 : 2016. 12. 27.
	 * @param event
	 */
public void miSaveAsOnAction(ActionEvent event) {
    File saveFile = DialogUtil.showFileSaveCheckDialog(getScene().getWindow(), chooser -> {
        chooser.getExtensionFilters().add(new ExtensionFilter(GargoyleExtensionFilters.XLSX_NAME, GargoyleExtensionFilters.XLSX));
    });
    if (saveFile != null) {
        ThreadUtil.createNewThreadAndRun(() -> {
            try (Workbook workBookXlsx = ExcelUtil.createNewWorkBookXlsx()) {
                Sheet createSheet = workBookXlsx.createSheet("Sheet1");
                ObservableList<ObservableList<SpreadsheetCell>> rows = gagoyleSpreadSheetView.getRows();
                IntStream.iterate(0, r -> r + 1).limit(rows.size()).forEach(rIndex -> {
                    ObservableList<SpreadsheetCell> cellList = rows.get(rIndex);
                    IntStream.iterate(0, a -> a + 1).limit(cellList.size()).forEach(cidx -> {
                        SpreadsheetCell spreadsheetCell = cellList.get(cidx);
                        String text = spreadsheetCell.getText();
                        try {
                            ExcelUtil.createCell(createSheet, text, rIndex, cidx);
                        } catch (Exception e1) {
                            e1.printStackTrace();
                        }
                    });
                });
                workBookXlsx.write(new FileOutputStream(saveFile));
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    }
}
Also used : SpreadsheetCell(org.controlsfx.control.spreadsheet.SpreadsheetCell) ObservableList(javafx.collections.ObservableList) ExtensionFilter(javafx.stage.FileChooser.ExtensionFilter) FileOutputStream(java.io.FileOutputStream) IOException(java.io.IOException) File(java.io.File) Sheet(org.apache.poi.ss.usermodel.Sheet) Workbook(org.apache.poi.ss.usermodel.Workbook) IOException(java.io.IOException)

Example 49 with ObservableList

use of javafx.collections.ObservableList in project Gargoyle by callakrsos.

the class VoEditorController method initialize.

/**
	 * 이벤트 초기화
	 *
	 * @작성자 : KYJ
	 * @작성일 : 2015. 10. 15.
	 */
@FXML
public void initialize() {
    colType.setCellFactory(new ClassTypeCheckBoxCellFactory());
    colName.setCellFactory(TextFieldTableCell.forTableColumn());
    colSize.setCellFactory(TextFieldTableCell.forTableColumn());
    colDesc.setCellFactory(TextFieldTableCell.forTableColumn());
    CommonsContextMenu.addMenus(tbVoEditor, (Menus.useCudButtons() | Menus.UP | Menus.DOWN));
    // tbVoEditor.setContextMenu();
    tbVoEditor.addEventHandler(ActionEvent.ACTION, event -> {
        if (event instanceof CommonContextMenuEvent) {
            CommonContextMenuEvent _event = (CommonContextMenuEvent) event;
            int mode = _event.getMode();
            ObservableList<TableModelDVO> items = tbVoEditor.getItems();
            int selectedIndex = tbVoEditor.getSelectionModel().getSelectedIndex();
            int rowSize = items.size();
            boolean isMove = false;
            if (Menus.isAdd(mode)) {
                items.add(defaultTableModelDVO());
                isMove = true;
            } else if (Menus.isDelete(mode)) {
                items.remove(selectedIndex);
                isMove = true;
            } else if (Menus.isUp(mode)) {
                btnUpOnMouseClick();
            } else if (Menus.isDown(mode)) {
                btnDownOnMouseClick();
            }
            if (isMove) {
                tbVoEditor.getSelectionModel().select(rowSize - 1);
            }
        }
    });
    // 컨트롤 키를 누르면 그리드 데이터 이동처리.
    tbVoEditor.setOnKeyPressed(event -> {
        if (event.isControlDown()) {
            KeyCode code = event.getCode();
            switch(code) {
                case UP:
                    btnUpOnMouseClick();
                    break;
                case DOWN:
                    btnDownOnMouseClick();
                    break;
                default:
                    break;
            }
            event.consume();
        }
    });
    btnGenerate.addEventHandler(MouseEvent.MOUSE_CLICKED, this::btnGenerateOnMouseClick);
    btnSelect.setOnMouseClicked(this::btnSelectOnMouseClick);
    btnDatabase.setOnMouseClicked(new EventHandler<MouseEvent>() {

        @Override
        public void handle(MouseEvent event) {
            DatabaseTableView databaseTableView = new DatabaseTableView();
            TableDVO show = databaseTableView.show();
            if (show != null) {
                TableMasterDVO tableMasterDVO = show.getTableMasterDVO();
                List<TableModelDVO> tableModelDVOList = show.getTableModelDVOList();
                ObservableList<TableModelDVO> items = tbVoEditor.getItems();
                if (tableMasterDVO != null) {
                    txtClassName.setText(tableMasterDVO.getClassName());
                    txtAreaDesc.setText(tableMasterDVO.getDescription());
                }
                if (tableModelDVOList != null) {
                    items.clear();
                    items.addAll(tableModelDVOList);
                }
            }
        }
    });
}
Also used : TableMasterDVO(kyj.Fx.dao.wizard.core.model.vo.TableMasterDVO) CommonContextMenuEvent(com.kyj.fx.voeditor.visual.events.CommonContextMenuEvent) MouseEvent(javafx.scene.input.MouseEvent) TableModelDVO(kyj.Fx.dao.wizard.core.model.vo.TableModelDVO) DatabaseTableView(com.kyj.fx.voeditor.visual.component.popup.DatabaseTableView) ClassTypeCheckBoxCellFactory(com.kyj.fx.voeditor.visual.component.ClassTypeCheckBoxCellFactory) TableDVO(kyj.Fx.dao.wizard.core.model.vo.TableDVO) ObservableList(javafx.collections.ObservableList) KeyCode(javafx.scene.input.KeyCode) List(java.util.List) ObservableList(javafx.collections.ObservableList) ArrayList(java.util.ArrayList) FXML(javafx.fxml.FXML)

Example 50 with ObservableList

use of javafx.collections.ObservableList in project bitsquare by bitsquare.

the class SpreadViewModel method update.

private void update(ObservableList<OfferBookListItem> offerBookListItems) {
    Map<String, List<Offer>> offersByCurrencyMap = new HashMap<>();
    for (OfferBookListItem offerBookListItem : offerBookListItems) {
        Offer offer = offerBookListItem.getOffer();
        String currencyCode = offer.getCurrencyCode();
        if (!offersByCurrencyMap.containsKey(currencyCode))
            offersByCurrencyMap.put(currencyCode, new ArrayList<>());
        offersByCurrencyMap.get(currencyCode).add(offer);
    }
    spreadItems.clear();
    for (String currencyCode : offersByCurrencyMap.keySet()) {
        List<Offer> offers = offersByCurrencyMap.get(currencyCode);
        List<Offer> buyOffers = offers.stream().filter(e -> e.getDirection().equals(Offer.Direction.BUY)).sorted((o1, o2) -> {
            long a = o1.getPrice() != null ? o1.getPrice().value : 0;
            long b = o2.getPrice() != null ? o2.getPrice().value : 0;
            if (a != b)
                return a < b ? 1 : -1;
            return 0;
        }).collect(Collectors.toList());
        List<Offer> sellOffers = offers.stream().filter(e -> e.getDirection().equals(Offer.Direction.SELL)).sorted((o1, o2) -> {
            long a = o1.getPrice() != null ? o1.getPrice().value : 0;
            long b = o2.getPrice() != null ? o2.getPrice().value : 0;
            if (a != b)
                return a > b ? 1 : -1;
            return 0;
        }).collect(Collectors.toList());
        Fiat spread = null;
        String percentage = "";
        Fiat bestSellOfferPrice = sellOffers.isEmpty() ? null : sellOffers.get(0).getPrice();
        Fiat bestBuyOfferPrice = buyOffers.isEmpty() ? null : buyOffers.get(0).getPrice();
        if (bestBuyOfferPrice != null && bestSellOfferPrice != null) {
            MarketPrice marketPrice = priceFeedService.getMarketPrice(currencyCode);
            // happens again
            try {
                spread = bestSellOfferPrice.subtract(bestBuyOfferPrice);
                if (spread != null && marketPrice != null) {
                    double marketPriceAsDouble = marketPrice.getPrice(PriceFeedService.Type.LAST);
                    if (CurrencyUtil.isFiatCurrency(currencyCode)) {
                        double result = ((double) spread.value / 10000D) / marketPriceAsDouble;
                        percentage = " (" + formatter.formatPercentagePrice(result) + ")";
                    } else {
                        final double spreadAsDouble = spread.value != 0 ? 10000D / spread.value : 0;
                        double result = marketPriceAsDouble / spreadAsDouble;
                        percentage = " (" + formatter.formatPercentagePrice(result) + ")";
                    }
                }
            } catch (Throwable t) {
                try {
                    String msg = "An error occurred at the spread calculation.\n" + "Error msg: " + t.toString() + "\n" + "Details of offer data: \n" + "bestSellOfferPrice: " + bestSellOfferPrice.value + "\n" + "bestBuyOfferPrice: " + bestBuyOfferPrice.value + "\n" + "sellOffer getCurrencyCode: " + sellOffers.get(0).getCurrencyCode() + "\n" + "buyOffer getCurrencyCode: " + buyOffers.get(0).getCurrencyCode() + "\n\n" + "Please copy and paste this data and send it to the developers so they can investigate the issue.";
                    new Popup().error(msg).show();
                    log.error(t.toString());
                    t.printStackTrace();
                } catch (Throwable t2) {
                    log.error(t2.toString());
                    t2.printStackTrace();
                }
            }
        }
        Coin totalAmount = Coin.valueOf(offers.stream().mapToLong(offer -> offer.getAmount().getValue()).sum());
        spreadItems.add(new SpreadItem(currencyCode, buyOffers.size(), sellOffers.size(), offers.size(), spread, percentage, totalAmount));
    }
}
Also used : PriceFeedService(io.bitsquare.btc.pricefeed.PriceFeedService) Popup(io.bitsquare.gui.main.overlays.popups.Popup) MarketPrice(io.bitsquare.btc.pricefeed.MarketPrice) ActivatableViewModel(io.bitsquare.gui.common.model.ActivatableViewModel) Coin(org.bitcoinj.core.Coin) Inject(com.google.inject.Inject) FXCollections(javafx.collections.FXCollections) Fiat(org.bitcoinj.utils.Fiat) HashMap(java.util.HashMap) OfferBookListItem(io.bitsquare.gui.main.offer.offerbook.OfferBookListItem) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) Offer(io.bitsquare.trade.offer.Offer) List(java.util.List) OfferBook(io.bitsquare.gui.main.offer.offerbook.OfferBook) ListChangeListener(javafx.collections.ListChangeListener) Map(java.util.Map) ObservableList(javafx.collections.ObservableList) CurrencyUtil(io.bitsquare.locale.CurrencyUtil) BSFormatter(io.bitsquare.gui.util.BSFormatter) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Coin(org.bitcoinj.core.Coin) OfferBookListItem(io.bitsquare.gui.main.offer.offerbook.OfferBookListItem) MarketPrice(io.bitsquare.btc.pricefeed.MarketPrice) Offer(io.bitsquare.trade.offer.Offer) Fiat(org.bitcoinj.utils.Fiat) Popup(io.bitsquare.gui.main.overlays.popups.Popup) ArrayList(java.util.ArrayList) List(java.util.List) ObservableList(javafx.collections.ObservableList)

Aggregations

ObservableList (javafx.collections.ObservableList)77 List (java.util.List)46 ArrayList (java.util.ArrayList)31 Collectors (java.util.stream.Collectors)29 Map (java.util.Map)28 FXCollections (javafx.collections.FXCollections)28 HashMap (java.util.HashMap)21 Node (javafx.scene.Node)20 TableColumn (javafx.scene.control.TableColumn)20 Label (javafx.scene.control.Label)18 Optional (java.util.Optional)17 ActionEvent (javafx.event.ActionEvent)16 FXML (javafx.fxml.FXML)16 TableView (javafx.scene.control.TableView)16 MouseEvent (javafx.scene.input.MouseEvent)16 Logger (org.slf4j.Logger)16 LoggerFactory (org.slf4j.LoggerFactory)16 Button (javafx.scene.control.Button)15 BorderPane (javafx.scene.layout.BorderPane)15 File (java.io.File)14