Search in sources :

Example 1 with Field

use of name.abuchen.portfolio.datatransfer.csv.CSVImporter.Field in project portfolio by buchen.

the class CSVImportDefinitionPage method doUpdateErrorMessages.

private void doUpdateErrorMessages() {
    Set<Field> fieldsToMap = new HashSet<>(importer.getExtractor().getFields());
    for (Column column : importer.getColumns()) fieldsToMap.remove(column.getField());
    if (fieldsToMap.isEmpty()) {
        setMessage(null);
        setPageComplete(true);
    } else {
        String required = fieldsToMap.stream().filter(f -> !f.isOptional()).map(Field::getName).collect(// $NON-NLS-1$
        Collectors.joining(", "));
        String optional = fieldsToMap.stream().filter(Field::isOptional).map(Field::getName).collect(// $NON-NLS-1$
        Collectors.joining(", "));
        boolean onlyOptional = required.length() == 0;
        setPageComplete(onlyOptional);
        StringBuilder message = new StringBuilder();
        if (required.length() > 0)
            // $NON-NLS-1$
            message.append(MessageFormat.format(Messages.CSVImportErrorMissingFields, required)).append("\n");
        if (optional.length() > 0)
            message.append(MessageFormat.format(Messages.CSVImportInformationOptionalFields, optional));
        setMessage(message.toString(), onlyOptional ? IMessageProvider.INFORMATION : IMessageProvider.ERROR);
    }
}
Also used : EnumField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.EnumField) AmountField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.AmountField) DateField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.DateField) Field(name.abuchen.portfolio.datatransfer.csv.CSVImporter.Field) ISINField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.ISINField) TableColumn(org.eclipse.swt.widgets.TableColumn) TableViewerColumn(org.eclipse.jface.viewers.TableViewerColumn) Column(name.abuchen.portfolio.datatransfer.csv.CSVImporter.Column) HashSet(java.util.HashSet)

Example 2 with Field

use of name.abuchen.portfolio.datatransfer.csv.CSVImporter.Field in project portfolio by buchen.

the class CSVExtractorTestUtil method buildField2Column.

/**
 * Build column config for unit testing, e.g. expect all values exactly in
 * the order they have been configured and with the first format option
 */
/* package */
static Map<String, Column> buildField2Column(CSVExtractor extractor) {
    Map<String, Column> field2column = new HashMap<>();
    int index = 0;
    for (Field f : extractor.getFields()) {
        Column column = new Column(index++, f.getName());
        column.setField(f);
        if (f instanceof DateField)
            column.setFormat(DateField.FORMATS[0]);
        else if (f instanceof AmountField)
            column.setFormat(AmountField.FORMATS[0]);
        field2column.put(f.getName(), column);
    }
    return field2column;
}
Also used : AmountField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.AmountField) DateField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.DateField) Field(name.abuchen.portfolio.datatransfer.csv.CSVImporter.Field) Column(name.abuchen.portfolio.datatransfer.csv.CSVImporter.Column) HashMap(java.util.HashMap) AmountField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.AmountField) DateField(name.abuchen.portfolio.datatransfer.csv.CSVImporter.DateField)

Aggregations

AmountField (name.abuchen.portfolio.datatransfer.csv.CSVImporter.AmountField)2 Column (name.abuchen.portfolio.datatransfer.csv.CSVImporter.Column)2 DateField (name.abuchen.portfolio.datatransfer.csv.CSVImporter.DateField)2 Field (name.abuchen.portfolio.datatransfer.csv.CSVImporter.Field)2 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 EnumField (name.abuchen.portfolio.datatransfer.csv.CSVImporter.EnumField)1 ISINField (name.abuchen.portfolio.datatransfer.csv.CSVImporter.ISINField)1 TableViewerColumn (org.eclipse.jface.viewers.TableViewerColumn)1 TableColumn (org.eclipse.swt.widgets.TableColumn)1