diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/Messages.java b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/Messages.java index 94fccbc259..5ef069c761 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/Messages.java +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/Messages.java @@ -129,6 +129,12 @@ public class Messages extends NLS public static String ColumnConvertedAmount; public static String ColumnCount; public static String ColumnCountByYear; + public static String ColumnDividendsNextExDate; + public static String ColumnDividendsNextExDate_MenuLabel; + public static String ColumnDividendsNextPaymentDate; + public static String ColumnDividendsNextPaymentDate_MenuLabel; + public static String ColumnDividendsNextPaymentAmount; + public static String ColumnDividendsNextPaymentAmount_MenuLabel; public static String ColumnLatest_MenuLabel; public static String ColumnLatestDate_MenuLabel; public static String ColumnLatestHistoricalDate_MenuLabel; diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages.properties index 00272a2491..725946a393 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages.properties @@ -394,6 +394,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = dividend rate of return = sum of dividend payments / purchase value based on FIFO\n\nAttention: if shares are sold after a dividend payment then dividend payment is not reduced. Therefore the rate of return might be over estimated. +ColumnDividendsNextExDate = Next Ex-Date + +ColumnDividendsNextExDate_MenuLabel = Next Dividend Ex-Date + +ColumnDividendsNextPaymentAmount = Next Paym. Amt. + +ColumnDividendsNextPaymentAmount_MenuLabel = Next Dividend Payment Amount + +ColumnDividendsNextPaymentDate = Next Paym. Date + +ColumnDividendsNextPaymentDate_MenuLabel = Next Dividend Payment Date + ColumnEarnings = Earnings ColumnEarnings_Description = Dividends + Interest Payments diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_cs.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_cs.properties index 1dab218c65..ed36d1157d 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_cs.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_cs.properties @@ -390,6 +390,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = Dividendov\u00FD v\u00FDnos = sou\u010Det v\u00FDplat dividend / n\u00E1kupn\u00ED hodnota na z\u00E1klad\u011B FIFO\n\nPozor: pokud jsou akcie prod\u00E1ny po v\u00FDplat\u011B dividendy, pak se v\u00FDplata dividendy nesni\u017Euje. Proto m\u016F\u017Ee b\u00FDt m\u00EDra v\u00FDnosnosti nadhodnocena. +ColumnDividendsNextExDate = P\u0159\u00ED\u0161t\u00ED den ex-day + +ColumnDividendsNextExDate_MenuLabel = P\u0159\u00ED\u0161t\u00ED Den Ex-Dividend + +ColumnDividendsNextPaymentAmount = P\u0159\u00ED\u0161t\u00ED V\u00FD\u0161e Dividendy + +ColumnDividendsNextPaymentAmount_MenuLabel = P\u0159\u00ED\u0161t\u00ED V\u00FD\u0161e Dividendy + +ColumnDividendsNextPaymentDate = Datum P\u0159\u00ED\u0161t\u00ED V\u00FDplaty Dividend + +ColumnDividendsNextPaymentDate_MenuLabel = Datum P\u0159\u00ED\u0161t\u00ED V\u00FDplaty Dividend + ColumnEarnings = Zisk ColumnEarnings_Description = Dividendy + \u00FAroky diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_da.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_da.properties index 0384b323a5..12548e9980 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_da.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_da.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Udb% ColumnDividendTotalRateOfReturn_Description = udbytteafkast = summen af \u200B\u200Budbyttebetalinger / k\u00F8bsv\u00E6rdi baseret p\u00E5 FIFO\n\nBem\u00E6rk: Hvis aktier s\u00E6lges efter en udbyttebetaling, reduceres udbyttebetalingen ikke. Derfor kan afkastet v\u00E6re overvurderet. +ColumnDividendsNextExDate = N\u00E6ste Ex-Dato + +ColumnDividendsNextExDate_MenuLabel = N\u00E6ste Ex-Udbyttedag + +ColumnDividendsNextPaymentAmount = N\u00E6ste Udbyttebel\u00F8b + +ColumnDividendsNextPaymentAmount_MenuLabel = N\u00E6ste Udbyttebel\u00F8b + +ColumnDividendsNextPaymentDate = Dato for N\u00E6ste Udbyttebetaling + +ColumnDividendsNextPaymentDate_MenuLabel = Dato for N\u00E6ste Udbyttebetaling + ColumnEarnings = Fortjenester ColumnEarnings_Description = Udbytter + Renteindt\u00E6gter diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_de.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_de.properties index e9f7bab8c0..a21fc46264 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_de.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_de.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = Dividendenrendite = Summe der Dividendenzahlungen / Einstand nach FIFO\n\nAchtung: Wenn Verk\u00E4ufe nach einer Dividendenzahlung vorliegen, werden die momentan nicht abgezogen. D. h. die Rendite ist eventuell zu hoch. +ColumnDividendsNextExDate = N\u00E4chst. Ex-Tag + +ColumnDividendsNextExDate_MenuLabel = N\u00E4chster Ex-Dividendentag + +ColumnDividendsNextPaymentAmount = N\u00E4chst. Div. Betrag + +ColumnDividendsNextPaymentAmount_MenuLabel = N\u00E4chster Dividendenbetrag + +ColumnDividendsNextPaymentDate = N\u00E4chst. Div. Zahltag + +ColumnDividendsNextPaymentDate_MenuLabel = N\u00E4chster Dividenden Zahltag + ColumnEarnings = Ertr\u00E4ge ColumnEarnings_Description = Dividenden + Zinsen diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_es.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_es.properties index f8a757360e..656635310b 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_es.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_es.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = Ratio de Retorno de dividendo = Suma de ingresos por dividendo / valor de compra basado en FIFO\n\nAtenci\u00F3n: Si alguna accion se ha vendido tras el pago de dividendo, este pago no se reduce. El Ratio de Retorno puede sobreestimarse. +ColumnDividendsNextExDate = Siguiente ex-d\u00EDa + +ColumnDividendsNextExDate_MenuLabel = Pr\u00F3ximo D\u00EDa Ex-Dividendo + +ColumnDividendsNextPaymentAmount = Importe del Pr\u00F3ximo Dividendo + +ColumnDividendsNextPaymentAmount_MenuLabel = Importe del Pr\u00F3ximo Dividendo + +ColumnDividendsNextPaymentDate = Pr\u00F3xima Fecha de Pago de Dividendos + +ColumnDividendsNextPaymentDate_MenuLabel = Pr\u00F3xima Fecha de Pago de Dividendos + ColumnEarnings = Ganancias ColumnEarnings_Description = Dividendo + Intereses diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_fr.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_fr.properties index 28ece5e00a..208f68cc42 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_fr.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_fr.properties @@ -388,6 +388,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = Taux de rendement du dividende = somme des dividendes per\u00E7us / valeur d'achat (FIFO)\n\nAttention : si des parts sont vendues apr\u00E8s versement d'un dividende, alors le dividende n'est pas r\u00E9duit. Dans ce cas, le taux de rendement peut \u00EAtre surestim\u00E9. +ColumnDividendsNextExDate = Prochaine Date Ex-Dividende (d\u00E9tachement) + +ColumnDividendsNextExDate_MenuLabel = Prochain Jour Ex-Dividende + +ColumnDividendsNextPaymentAmount = Montant du Prochain Dividende + +ColumnDividendsNextPaymentAmount_MenuLabel = Montant du Prochain Dividende + +ColumnDividendsNextPaymentDate = Prochaine Date de Paiement du Dividende + +ColumnDividendsNextPaymentDate_MenuLabel = Prochaine Date de Paiement du Dividende + ColumnEarnings = B\u00E9n\u00E9fices ColumnEarnings_Description = Dividendes + Int\u00E9r\u00EAts diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_it.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_it.properties index d2f647de7d..8e6b1714bd 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_it.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_it.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = tasso di rendimento dei dividendi (ROR) = somma dei pagamenti del dividendo / valore d'acquisto basato su FIFO\n\nAttenzione: se le azioni vengono vendute dopo il pagamento di un dividendo, il pagamento del dividendo non viene ridotto. Pertanto il tasso di rendimento potrebbe essere sovrastimato. +ColumnDividendsNextExDate = Prossima Ex-Date + +ColumnDividendsNextExDate_MenuLabel = Prossimo Giorno di Stacco del Dividendo + +ColumnDividendsNextPaymentAmount = Importo del Prossimo Dividendo + +ColumnDividendsNextPaymentAmount_MenuLabel = Importo del Prossimo Dividendo + +ColumnDividendsNextPaymentDate = Data di Pagamento del Prossimo Dividendo + +ColumnDividendsNextPaymentDate_MenuLabel = Data di Pagamento del Prossimo Dividendo + ColumnEarnings = Profitti ColumnEarnings_Description = Dividendi + pagamenti interessi diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_nl.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_nl.properties index ee141214ab..afcd57f5cc 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_nl.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_nl.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = Het dividendrendement = (som van Dividend) / Aankoopwaarde op basis van FIFO.\n\nLet op: als aandelen na een dividenduitkering worden verkocht, wordt het dividend niet verlaagd. Daarom kan het rendement worden overschat. +ColumnDividendsNextExDate = Volgende Ex-datum + +ColumnDividendsNextExDate_MenuLabel = Volgende Ex-Dividenddag + +ColumnDividendsNextPaymentAmount = Volgende Dividendbedrag + +ColumnDividendsNextPaymentAmount_MenuLabel = Volgende Dividendbedrag + +ColumnDividendsNextPaymentDate = Volgende Dividend Betaaldatum + +ColumnDividendsNextPaymentDate_MenuLabel = Volgende Dividend Betaaldatum + ColumnEarnings = Opbrengsten ColumnEarnings_Description = Dividenduitkeringen en Interestbetalingen diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pl.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pl.properties index 4d22a4c4c3..fec32bddf8 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pl.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pl.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = stopa zwrotu dywidendy = suma wyp\u0142at dywidendy / warto\u015B\u0107 zakupu na podstawie FIFO\n\nUwaga: je\u015Bli akcje zostan\u0105 sprzedane po wyp\u0142acie dywidendy, wyp\u0142ata dywidendy nie zostanie zmniejszona. Dlatego stopa zwrotu mo\u017Ce by\u0107 przeszacowana. +ColumnDividendsNextExDate = Nast\u0119pne Ex-Date + +ColumnDividendsNextExDate_MenuLabel = Nast\u0119pny Dzie\u0144 Ustalenia Prawa do Dywidendy + +ColumnDividendsNextPaymentAmount = Nast\u0119pna Kwota Dywidendy + +ColumnDividendsNextPaymentAmount_MenuLabel = Nast\u0119pna Kwota Dywidendy + +ColumnDividendsNextPaymentDate = Nast\u0119pny Dzie\u0144 Wyp\u0142aty Dywidendy + +ColumnDividendsNextPaymentDate_MenuLabel = Nast\u0119pny Dzie\u0144 Wyp\u0142aty Dywidendy + ColumnEarnings = Zarobki ColumnEarnings_Description = Dywidendy + P\u0142atno\u015Bci odsetek diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt.properties index de3243a791..2c1085e7ea 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = taxa de retorno de dividendos = soma dos pagamentos de dividendos / valor da compra com base no FIFO\n\nAten\u00E7\u00E3o: se as a\u00E7\u00F5es forem vendidas ap\u00F3s o pagamento de dividendos, o pagamento de dividendos n\u00E3o ser\u00E1 reduzido. Portanto, a taxa de retorno pode estar superestimada. +ColumnDividendsNextExDate = Pr\u00F3xima Data EX + +ColumnDividendsNextExDate_MenuLabel = Pr\u00F3ximo Dia Ex-Dividendo + +ColumnDividendsNextPaymentAmount = Montante do Pr\u00F3ximo Dividendo + +ColumnDividendsNextPaymentAmount_MenuLabel = Montante do Pr\u00F3ximo Dividendo + +ColumnDividendsNextPaymentDate = Pr\u00F3xima Data de Pagamento de Dividendos + +ColumnDividendsNextPaymentDate_MenuLabel = Pr\u00F3xima Data de Pagamento de Dividendos + ColumnEarnings = Lucros ColumnEarnings_Description = Dividendos + Pagamento de Juros diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt_BR.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt_BR.properties index 7a6c45999f..dc2fc9d96c 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt_BR.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_pt_BR.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = taxa de retorno de dividendos = soma dos pagamentos de dividendos / valor da compra com base no FIFO\n\nAten\u00E7\u00E3o: se as posi\u00E7\u00F5es forem vendidas ap\u00F3s o pagamento de dividendos, o pagamento de dividendos n\u00E3o ser\u00E1 reduzido. Portanto, a taxa de retorno pode estar superestimada. +ColumnDividendsNextExDate = Pr\u00F3xima Data EX + +ColumnDividendsNextExDate_MenuLabel = Pr\u00F3ximo Dia Ex-Dividendo + +ColumnDividendsNextPaymentAmount = Valor do Pr\u00F3ximo Dividendo + +ColumnDividendsNextPaymentAmount_MenuLabel = Valor do Pr\u00F3ximo Dividendo + +ColumnDividendsNextPaymentDate = Pr\u00F3xima Data de Pagamento de Dividendos + +ColumnDividendsNextPaymentDate_MenuLabel = Pr\u00F3xima Data de Pagamento de Dividendos + ColumnEarnings = Lucros ColumnEarnings_Description = Dividendos + Pagamento de Juros diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_ru.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_ru.properties index cb3a4ce746..52803f9892 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_ru.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_ru.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = \u0414\u0438\u0432% ColumnDividendTotalRateOfReturn_Description = \u0434\u043E\u0445\u043E\u0434\u043D\u043E\u0441\u0442\u044C \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u043E\u0432 = \u0441\u0443\u043C\u043C\u0430 \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u043D\u044B\u0445 \u0432\u044B\u043F\u043B\u0430\u0442 / \u043F\u043E\u043A\u0443\u043F\u043D\u0430\u044F \u0441\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 FIFO\n\n\u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435: \u0435\u0441\u043B\u0438 \u0430\u043A\u0446\u0438\u0438 \u043F\u0440\u043E\u0434\u0430\u044E\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u043F\u043B\u0430\u0442\u044B \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u043E\u0432, \u0442\u043E \u0440\u0430\u0437\u043C\u0435\u0440 \u0432\u044B\u043F\u043B\u0430\u0442\u044B \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u043E\u0432 \u043D\u0435 \u0443\u043C\u0435\u043D\u044C\u0448\u0430\u0435\u0442\u0441\u044F. \u0421\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E, \u043D\u043E\u0440\u043C\u0430 \u043F\u0440\u0438\u0431\u044B\u043B\u0438 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0437\u0430\u0432\u044B\u0448\u0435\u043D\u0430. +ColumnDividendsNextExDate = \u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u042D\u043A\u0441-\u0434\u0430\u0442\u0430 + +ColumnDividendsNextExDate_MenuLabel = \u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0434\u0435\u043D\u044C \u044D\u043A\u0441-\u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u043E\u0432 + +ColumnDividendsNextPaymentAmount = \u0421\u0443\u043C\u043C\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u0430 + +ColumnDividendsNextPaymentAmount_MenuLabel = \u0421\u0443\u043C\u043C\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0433\u043E \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u0430 + +ColumnDividendsNextPaymentDate = \u0414\u0430\u0442\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u0432\u044B\u043F\u043B\u0430\u0442\u044B \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u043E\u0432 + +ColumnDividendsNextPaymentDate_MenuLabel = \u0414\u0430\u0442\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0439 \u0432\u044B\u043F\u043B\u0430\u0442\u044B \u0434\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u043E\u0432 + ColumnEarnings = \u041F\u0440\u0438\u0431\u044B\u043B\u044C ColumnEarnings_Description = \u0414\u0438\u0432\u0438\u0434\u0435\u043D\u0434\u044B + \u043F\u0440\u043E\u0446\u0435\u043D\u0442\u043D\u044B\u0435 \u0432\u044B\u043F\u043B\u0430\u0442\u044B diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_sk.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_sk.properties index f25df8764c..2400ca6591 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_sk.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_sk.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = Div% ColumnDividendTotalRateOfReturn_Description = Miera v\u00FDnosnosti dividend = suma vyplaten\u00FDch dividend / n\u00E1kupn\u00E1 hodnota na z\u00E1klade FIFO\n\nPozor: ak sa akcie predaj\u00FA po v\u00FDplate dividend, v\u00FDplata dividend sa nezni\u017Euje. Preto m\u00F4\u017Ee by\u0165 miera v\u00FDnosnosti nadhodnoten\u00E1. +ColumnDividendsNextExDate = Nasleduj\u00FAci de\u0148 ex-day + +ColumnDividendsNextExDate_MenuLabel = Nasleduj\u00FAci de\u0148 Ex-Dividend + +ColumnDividendsNextPaymentAmount = Nasleduj\u00FAca Suma Dividend + +ColumnDividendsNextPaymentAmount_MenuLabel = Nasleduj\u00FAca Suma Dividend + +ColumnDividendsNextPaymentDate = D\u00E1tum Nasleduj\u00FAcej V\u00FDplaty Dividend + +ColumnDividendsNextPaymentDate_MenuLabel = D\u00E1tum Nasleduj\u00FAcej V\u00FDplaty Dividend + ColumnEarnings = V\u00FDnosy ColumnEarnings_Description = Dividendy + platby \u00FArokov diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh.properties index cf66ed5160..8c80c97747 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = \u80A1\u606F\u7387 % ColumnDividendTotalRateOfReturn_Description = \u80A1\u606F\u6536\u76CA\u7387 = \u603B\u80A1\u606F / \u5148\u8FDB\u5148\u51FA\u6210\u672C\n\n\u6CE8\u610F\uFF1A\u6D3E\u606F\u540E\u5356\u51FA\u7684\u80A1\u7968\u4E4B\u80A1\u606F\u4E0D\u4F1A\u88AB\u51CF\u53BB\u3002\u56E0\u6B64\uFF0C\u6B64\u6536\u76CA\u7387\u53EF\u80FD\u88AB\u9AD8\u4F30\u3002 +ColumnDividendsNextExDate = \u4E0B\u4E00\u500B\u9664\u606F\u65E5 + +ColumnDividendsNextExDate_MenuLabel = \u4E0B\u4E00\u4E2A\u9664\u606F\u65E5 + +ColumnDividendsNextPaymentAmount = \u4E0B\u4E00\u6B21\u5206\u7EA2\u91D1\u989D + +ColumnDividendsNextPaymentAmount_MenuLabel = \u4E0B\u4E00\u6B21\u5206\u7EA2\u91D1\u989D + +ColumnDividendsNextPaymentDate = \u4E0B\u4E00\u6B21\u80A1\u606F\u652F\u4ED8\u65E5\u671F + +ColumnDividendsNextPaymentDate_MenuLabel = \u4E0B\u4E00\u6B21\u80A1\u606F\u652F\u4ED8\u65E5\u671F + ColumnEarnings = \u6536\u5165 ColumnEarnings_Description = \u80A1\u606F + \u5229\u606F diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh_TW.properties b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh_TW.properties index 920e99714c..fda7bd68a2 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh_TW.properties +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/messages_zh_TW.properties @@ -387,6 +387,18 @@ ColumnDividendTotalRateOfReturn = \u80A1\u606F\u7387 ColumnDividendTotalRateOfReturn_Description = \u7D05\u5229\u56DE\u5831\u7387 = \u80A1\u606F\u652F\u4ED8\u4E4B\u548C / \u57FA\u65BCFIFO\u7684\u8CFC\u8CB7\u50F9\u503C\u4E4B\u548C\n\n\u6CE8\u610F\uFF1A\u5982\u679C\u5728\u80A1\u606F\u652F\u4ED8\u5F8C\u51FA\u552E\u80A1\u4EFD\uFF0C\u5247\u4E0D\u6703\u6E1B\u5C11\u80A1\u606F\u652F\u4ED8\u3002\u56E0\u6B64\uFF0C\u56DE\u5831\u7387\u53EF\u80FD\u88AB\u9AD8\u4F30\u3002 +ColumnDividendsNextExDate = \u4E0B\u4E00\u500B\u9664\u606F\u65E5 + +ColumnDividendsNextExDate_MenuLabel = \u4E0B\u4E00\u4E2A\u9664\u606F\u65E5 + +ColumnDividendsNextPaymentAmount = \u4E0B\u4E00\u6B21\u5206\u7EA2\u91D1\u989D + +ColumnDividendsNextPaymentAmount_MenuLabel = \u4E0B\u4E00\u6B21\u5206\u7EA2\u91D1\u989D + +ColumnDividendsNextPaymentDate = \u4E0B\u4E00\u6B21\u80A1\u606F\u652F\u4ED8\u65E5\u671F + +ColumnDividendsNextPaymentDate_MenuLabel = \u4E0B\u4E00\u6B21\u80A1\u606F\u652F\u4ED8\u65E5\u671F + ColumnEarnings = \u6536\u76CA ColumnEarnings_Description = \u80A1\u606F + \u5229\u606F\u652F\u4ED8 diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesPerformanceView.java b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesPerformanceView.java index 917385953a..1ebbeb49e1 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesPerformanceView.java +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesPerformanceView.java @@ -74,6 +74,7 @@ import name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper; import name.abuchen.portfolio.ui.util.viewers.ToolTipCustomProviderSupport; import name.abuchen.portfolio.ui.views.columns.AttributeColumn; +import name.abuchen.portfolio.ui.views.columns.DividendPaymentColumns; import name.abuchen.portfolio.ui.views.columns.IsinColumn; import name.abuchen.portfolio.ui.views.columns.NameColumn; import name.abuchen.portfolio.ui.views.columns.NoteColumn; @@ -874,6 +875,8 @@ public String getText(Object r) }); column.setSorter(ColumnViewerSorter.create(SecurityPerformanceRecord.class, "periodicitySort")); //$NON-NLS-1$ recordColumns.addColumn(column); + + DividendPaymentColumns.createFor(getClient()).forEach(recordColumns::addColumn); } private void createRiskColumns() diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesTable.java b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesTable.java index 3d1b475afc..155761ec90 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesTable.java +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/SecuritiesTable.java @@ -98,6 +98,7 @@ import name.abuchen.portfolio.ui.views.columns.AttributeColumn; import name.abuchen.portfolio.ui.views.columns.DistanceFromAllTimeHighColumn; import name.abuchen.portfolio.ui.views.columns.DistanceFromMovingAverageColumn; +import name.abuchen.portfolio.ui.views.columns.DividendPaymentColumns; import name.abuchen.portfolio.ui.views.columns.IsinColumn; import name.abuchen.portfolio.ui.views.columns.NoteColumn; import name.abuchen.portfolio.ui.views.columns.SymbolColumn; @@ -219,6 +220,7 @@ public SecuritiesTable(Composite parent, AbstractFinanceView view) } addAttributeColumns(); + addDividendColumns(); addQuoteFeedColumns(); addDataQualityColumns(); @@ -240,6 +242,11 @@ public SecuritiesTable(Composite parent, AbstractFinanceView view) hookContextMenu(); } + private void addDividendColumns() + { + DividendPaymentColumns.createFor(getClient()).forEach(support::addColumn); + } + private void addMasterDataColumns() { Column column = new Column("0", Messages.ColumnName, SWT.LEFT, 400); //$NON-NLS-1$ diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/StatementOfAssetsViewer.java b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/StatementOfAssetsViewer.java index c06dd0d6a1..e283e0ad3c 100644 --- a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/StatementOfAssetsViewer.java +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/StatementOfAssetsViewer.java @@ -108,6 +108,7 @@ import name.abuchen.portfolio.ui.views.columns.AttributeColumn; import name.abuchen.portfolio.ui.views.columns.DistanceFromAllTimeHighColumn; import name.abuchen.portfolio.ui.views.columns.DistanceFromMovingAverageColumn; +import name.abuchen.portfolio.ui.views.columns.DividendPaymentColumns; import name.abuchen.portfolio.ui.views.columns.IsinColumn; import name.abuchen.portfolio.ui.views.columns.NameColumn; import name.abuchen.portfolio.ui.views.columns.NameColumn.NameColumnLabelProvider; @@ -749,6 +750,18 @@ private void addDividendColumns(List options) column.setSorter(ColumnViewerSorter.create(new ElementComparator(labelProvider))); column.setVisible(false); support.addColumn(column); + + addDividendPaymentColumns(); + } + + private void addDividendPaymentColumns() + { + DividendPaymentColumns.createFor(client) // + .forEach(column -> { + if (column.getSorter() != null) + column.getSorter().wrap(ElementComparator::new); + support.addColumn(column); + }); } private void addAttributeColumns() diff --git a/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/columns/DividendPaymentColumns.java b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/columns/DividendPaymentColumns.java new file mode 100644 index 0000000000..0abbb95a73 --- /dev/null +++ b/name.abuchen.portfolio.ui/src/name/abuchen/portfolio/ui/views/columns/DividendPaymentColumns.java @@ -0,0 +1,150 @@ +package name.abuchen.portfolio.ui.views.columns; + +import java.time.LocalDate; +import java.util.function.Function; +import java.util.stream.Stream; + +import org.eclipse.jface.viewers.ColumnLabelProvider; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; + +import name.abuchen.portfolio.model.Adaptor; +import name.abuchen.portfolio.model.Client; +import name.abuchen.portfolio.model.Security; +import name.abuchen.portfolio.model.SecurityEvent.DividendEvent; +import name.abuchen.portfolio.money.Money; +import name.abuchen.portfolio.money.Values; +import name.abuchen.portfolio.ui.Messages; +import name.abuchen.portfolio.ui.util.Colors; +import name.abuchen.portfolio.ui.util.viewers.Column; +import name.abuchen.portfolio.ui.util.viewers.ColumnViewerSorter; +import name.abuchen.portfolio.ui.util.viewers.DateLabelProvider; + +public class DividendPaymentColumns +{ + private DividendPaymentColumns() + { + } + + static Column createNextDividendExDateColumn() + { + Column column = new Column("nextdivexdate", Messages.ColumnDividendsNextExDate, SWT.LEFT, 80); //$NON-NLS-1$ + column.setMenuLabel(Messages.ColumnDividendsNextExDate_MenuLabel); + column.setGroupLabel(Messages.GroupLabelDividends); + column.setVisible(false); + + LocalDate now = LocalDate.now(); + + Function dataProvider = element -> { + Security security = Adaptor.adapt(Security.class, element); + if (security == null) + return null; + + return security.getEvents().stream() // + .filter(DividendEvent.class::isInstance) // + .map(e -> ((DividendEvent) e).getDate()) // + .sorted(Comparable::compareTo) // + .filter(d -> !now.isAfter(d)) // + .findFirst().orElse(null); + }; + + column.setLabelProvider(new DateLabelProvider(dataProvider) + { + @Override + public Color getBackground(Object element) + { + // if ex-date is today, then use the warning background + LocalDate date = dataProvider.apply(element); + return date == null || !date.equals(LocalDate.now()) ? null : Colors.theme().warningBackground(); + } + }); + column.setSorter(ColumnViewerSorter.create(dataProvider::apply)); + return column; + } + + static Column createNextDividendPaymentDateColumn() + { + Column column = new Column("nextdivpaydate", Messages.ColumnDividendsNextPaymentDate, SWT.LEFT, 80); //$NON-NLS-1$ + column.setMenuLabel(Messages.ColumnDividendsNextPaymentDate_MenuLabel); + column.setGroupLabel(Messages.GroupLabelDividends); + column.setVisible(false); + + LocalDate now = LocalDate.now(); + + Function dataProvider = element -> { + Security security = Adaptor.adapt(Security.class, element); + if (security == null) + return null; + + return security.getEvents().stream() // + .filter(DividendEvent.class::isInstance) // + .map(e -> ((DividendEvent) e).getPaymentDate()) // + .sorted(Comparable::compareTo) // + .filter(d -> !now.isAfter(d)) // + .findFirst().orElse(null); + }; + + column.setLabelProvider(new DateLabelProvider(dataProvider) + { + @Override + public Color getBackground(Object element) + { + // if the payment date is today, then use the warning background + LocalDate date = dataProvider.apply(element); + return date == null || !date.equals(LocalDate.now()) ? null : Colors.theme().warningBackground(); + } + }); + column.setSorter(ColumnViewerSorter.create(dataProvider::apply)); + return column; + } + + static Column createNextDividendPaymentAmount(Client client) + { + Column column = new Column("nextdivpayment", Messages.ColumnDividendsNextPaymentAmount, SWT.RIGHT, 60); //$NON-NLS-1$ + column.setMenuLabel(Messages.ColumnDividendsNextPaymentAmount_MenuLabel); + column.setGroupLabel(Messages.GroupLabelDividends); + column.setVisible(false); + + LocalDate now = LocalDate.now(); + + column.setLabelProvider(new ColumnLabelProvider() + { + @Override + public String getText(Object element) + { + Security security = Adaptor.adapt(Security.class, element); + if (security == null) + return null; + + Money amount = getPaymentAmount(now, security); + if (amount == null) + return null; + + return Values.Money.formatAlwaysVisible(amount, client.getBaseCurrency()); + } + }); + column.setSorter(ColumnViewerSorter.create(element -> { + Security security = Adaptor.adapt(Security.class, element); + return security != null ? getPaymentAmount(now, security) : null; + })); + return column; + } + + private static Money getPaymentAmount(LocalDate now, Security security) + { + return security.getEvents().stream() // + .filter(DividendEvent.class::isInstance) // + .map(e -> (DividendEvent) e) // + .sorted((e1, e2) -> e1.getPaymentDate().compareTo(e2.getPaymentDate())) // + .filter(d -> !now.isAfter(d.getPaymentDate())) // + .map(DividendEvent::getAmount).findFirst().orElse(null); + } + + public static Stream createFor(Client client) + { + return Stream.of(createNextDividendExDateColumn(), // + createNextDividendPaymentDateColumn(), // + createNextDividendPaymentAmount(client)); + } + +} diff --git a/name.abuchen.portfolio/src/name/abuchen/portfolio/money/Values.java b/name.abuchen.portfolio/src/name/abuchen/portfolio/money/Values.java index 1262b2645f..d8f6652ce2 100644 --- a/name.abuchen.portfolio/src/name/abuchen/portfolio/money/Values.java +++ b/name.abuchen.portfolio/src/name/abuchen/portfolio/money/Values.java @@ -28,19 +28,34 @@ private MoneyValues() @Override public String format(Money amount) { - if (DiscreetMode.isActive()) + return format(amount, false); + } + + private String format(Money amount, boolean alwaysVisible) + { + if (!alwaysVisible && DiscreetMode.isActive()) return amount.getCurrencyCode() + " " + DiscreetMode.HIDDEN_AMOUNT; //$NON-NLS-1$ else return String.format("%s %,.2f", amount.getCurrencyCode(), amount.getAmount() / divider()); //$NON-NLS-1$ } public String format(Money amount, String skipCurrencyCode) + { + return format(amount, skipCurrencyCode, false); + } + + public String formatAlwaysVisible(Money amount, String skipCurrencyCode) + { + return format(amount, skipCurrencyCode, true); + } + + private String format(Money amount, String skipCurrencyCode, boolean alwaysVisible) { if (!FormatHelper.alwaysDisplayCurrencyCode() && skipCurrencyCode.equals(amount.getCurrencyCode())) - return DiscreetMode.isActive() ? DiscreetMode.HIDDEN_AMOUNT + return !alwaysVisible && DiscreetMode.isActive() ? DiscreetMode.HIDDEN_AMOUNT : String.format("%,.2f", amount.getAmount() / divider()); //$NON-NLS-1$ else - return format(amount); + return format(amount, alwaysVisible); } @Override