commit b771298280ad6bd0650b69ce23a2309fc9ffecef Author: cbu615 Date: Mon Nov 24 09:39:46 2025 +0100 Picker includes Order Mode now. Several Changes diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..bbabb9a --- /dev/null +++ b/.classpath @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..8105e1a --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + reiheAPicker_v2 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..1db2692 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,15 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=11 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/data.sqlite b/data.sqlite new file mode 100644 index 0000000..e69de29 diff --git a/help.properties b/help.properties new file mode 100644 index 0000000..8c97ba2 --- /dev/null +++ b/help.properties @@ -0,0 +1,10 @@ +#Properties +#Fri Jan 28 09:12:14 CET 2022 +PropertiesApiKey= +PropertiesFileImportColumnDefintion= +PropertiesCallApiViaTitleIfIssnMissing= +PropertiesShowDetailsIfJsonTagMissing= +PropertiesFileImportFileTypDefintion= +PropertiesExportDataInSeparateColumns= +MultiApiCallChooseFile= +PropertiesWhitelistExport= diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..f91c577 --- /dev/null +++ b/pom.xml @@ -0,0 +1,110 @@ + + 4.0.0 + reiheAPicker + reiheAPicker + 0.0.1-SNAPSHOT + + src + + + maven-compiler-plugin + 3.8.1 + + 11 + + + + + + + + org.xerial + sqlite-jdbc + 3.41.2.1 + + + + org.swinglabs + pdf-renderer + 1.0.5 + + + + org.python + jython + 2.7.0 + + + + + org.openjfx + javafx + 11 + pom + + + + com.squareup.okhttp3 + okhttp + 4.11.0 + + + + com.logaritex.ai + assistant-api + 0.3.0 + + + + org.apache.cassandra + cassandra-all + 0.8.1 + + + + org.slf4j + slf4j-log4j12 + + + log4j + log4j + + + + + + + + org.apache.poi + poi + 4.1.2 + + + + org.apache.poi + poi-ooxml + 4.1.2 + + + + + commons-io + commons-io + 2.6 + + + + + org.json + json + 20190722 + + + + + org.jsoup + jsoup + 1.13.1 + + + \ No newline at end of file diff --git a/reiheAconfig.properties b/reiheAconfig.properties new file mode 100644 index 0000000..67a2114 --- /dev/null +++ b/reiheAconfig.properties @@ -0,0 +1,42 @@ +#Properties +#Wed Nov 12 09:36:03 CET 2025 +settings_RemoveDuplicates=true +settings_f4searchCtrl= +settings_f3search=https\://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?type0%5B%5D\=allfields&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=au&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ti&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ct&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=isn&lookfor0%5B%5D\=[{[isbn]}]&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ta&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=co&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=py&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=pp&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=pu&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=si&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=zr&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=cc&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND +settings_API_RemoveOA=true +settings_RemoveSchoolBooks=true +settings_PickerName=CB +settings_PublisherBlacklist=swiboo.ch;OSIRIS Verlag;Verlag Der Islam;Merano Verlag;Kampenwand Verlag;Fontis;Literareon;Happy Science;Goldmann;Heliakon;Jeremia Verlag;Reclam;Darulkitab;frommann-holzboog;Marie Steiner Verlag;Info3;Leuchtstruktur Verlag;Frank & Frei;Verlag Goldenes Zeitalter;Herzprojekt;Hirnkost;Goetheanum;Daniel Verlag;Samenkorn;Bibellesebund Verlag;glaubwürdig;Parvis-Verlag;Gut-Nawo;Nawo-Verlag;Residenz Verlag;Verlag Edition Geheimes Wissen;Ares Verlag;Info 3 Verlag;Gabriele Publishing House;Gabriele-Verlag Das Wort;Golden Shore;Eulogia;Dreifalter;Esoterische Philosophie;August von Goethe Literaturverlag;GloryWorld-Medien;Wort im Bild;FinanzBuch;Verlag Freies Geistesleben;Kopp;Info3 Verlag;Lichtbewusstsein;Rediroma-Verlag;Advent-Verlag;Christliche Verlagsgesellschaft;Nymphenburger;Lichtzeichen Verlag;Siebenten-Tags-Adventisten;Spirit Rainbow Verlag;Voice of Hope;Advent Verlag;Rudolf Steiner;Novalis;Greuthof;rigatio Stiftung GmbH;Ares Verlag;Info 3 Verlag;Gabriele Publishing House;Gabriele-Verlag Das Wort;Golden Shore;Eulogia;Dreifalter;Esoterische Philosophie;August von Goethe Literaturverlag;GloryWorld-Medien;Wort im Bild;FinanzBuch;Verlag Freies Geistesleben;Kopp;Info3 Verlag;Lichtbewusstsein;Rediroma-Verlag;Advent-Verlag;Christliche Verlagsgesellschaft;Nymphenburger;Lichtzeichen Verlag;Siebenten-Tags-Adventisten;Spirit Rainbow Verlag;Voice of Hope;Advent Verlag;Rudolf Steiner;Novalis;Greuthof;rigatio Stiftung GmbH;Urachhaus;Anthroposophie;Amadeus Verlag +settings_API_sigil=DE-Frei129 +settings_f2searchCtrl= +settings_RemoveTitlesWithoutISBNsInQueue=true +settings_FontSize=20 +settings_f1searchShift=https\://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske\=kvk-redesign&lang\=de&title\=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css\=none&input-charset\=utf-8&ALL\=&TI\=[{[title]}]&AU\=&CI\=&ST\=&PY\=&SB\=&SS\=&PU\=&kataloge\=K10PLUS&kataloge\=BVB&kataloge\=NRW&kataloge\=HEBIS&kataloge\=HEBIS_RETRO&kataloge\=KOBV_SOLR&kataloge\=DDB&kataloge\=STABI_BERLIN&ref\=direct&client-js\=yes +settings_API_CheckApiAfterImport=true +settings_RemoveJuvenileLiterature=true +settings_f1search=https\://www.google.com/search?&q\=[{[author]}] +settings_BlockBelletristik=true +settings_SaveFileFolder=C\:\\ReiheA\\Save\\ +settings_stichwortmarkierungGruen=Unterricht;Kind,Schule;Päd;Erziehung;Datenträger\:Band;Freiburg +settings_stichwortmarkierungRot=vertrag;law;Verfassung;Recht;Ansicht;Gesetz;Datenträger\:Blatt;Dissertation;Auflage\:Unver;Rudolf Steiner;Anthroposo;schaman;Masterarbeit;Auflage +settings_QueueBoxWidth=626.0 +settings_ExportFileFolder=Y\:\\Gruppen\\Bibliothek-Oeffentliches\\7. Erwerbung\\7.16 Rückstau Reihe-A\\PickerExport\\ +settings_f4searchShift=https\://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske\=kvk-redesign&lang\=de&title\=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css\=none&input-charset\=utf-8&ALL\=&TI\=&AU\=&CI\=&ST\=&PY\=&SB\=&SS\=&PU\=[{[publisher]}]&kataloge\=K10PLUS&kataloge\=BVB&kataloge\=NRW&kataloge\=HEBIS&kataloge\=HEBIS_RETRO&kataloge\=KOBV_SOLR&kataloge\=DDB&kataloge\=STABI_BERLIN&ref\=direct&client-js\=yes +settings_API_isbnSeparator=+or+pica.isb%3D +settings_API_RemoveHoldings=true +settings_FieldDisplaySettings=>FieldName>TitelFieldAlias>TITEL FieldContent>cr<\n>FieldName>HinweisFieldAlias>Hinweis FieldContent>FieldName>VerlagFieldAlias>VERLAG FieldContent>FieldName>ErscheinungsjahrFieldAlias>ERJAHR FieldContent>FieldName>AuflageFieldAlias>AUFL FieldContent>FieldName>VerfasserFieldAlias>AUTOR FieldContent>FieldName>PreisFieldAlias>PREIS FieldContent>FieldName>SchlagworteFieldAlias>SW FieldContent>FieldName>HochschulschriftenvermerkFieldAlias>DISHAB FieldContent>cr<\nTitel\nDateipfad\nHinweis\nBestand\nGewaehltVon\nBearbeitetVon\nStatus\nWerktitel\nVerfasser\nVerlag\nVerlagsort\nErscheinungsjahr\nErscheinungstermin\nISBN\nAuflage\nPreis\nSeiten\nMaß\nBegleitmaterial\nReihe\nFußnote\nParalleleAusgabe\nHochschulschriftenvermerk\nDatenträger\nWochenverzeichnisnummer\nDDC-Sachgruppe\nSchlagworte\nVollständigeDDC-Notation\nInhaltsverzeichnis\nInhaltstext\nLinks\nDesiderat\n>cr<\nKommentar\nZeitschrift\n>cr<\nE-Mail\nVorname\nNachname\nOrcid\nTelefon\nEingereicht am\nErscheint am\nAPC\nWaehrung\nKostenstelle\nStatus\nHaushaltsBVM\nHinweis\n +settings_f4search=https\://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?type0%5B%5D\=allfields&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=au&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ti&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ct&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=isn&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ta&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=co&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=py&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=pp&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=pu&lookfor0%5B%5D\=[{[publisher]}]&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=si&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=zr&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=cc&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND +settings_API_link=https\://sru.bsz-bw.de/swb?version\=1.1&query\=pica.isb%3D[{[isbn]}]&operation\=searchRetrieve&maximumRecords\=10&recordSchema\=marcxmlk10os +settings_DDCWhitelist= +settings_f3searchCtrl= +settings_Order_ImportVerzeichnisNameTextField=Y\:\\Gruppen\\Bibliothek-Oeffentliches\\7. Erwerbung\\7.16 Rückstau Reihe-A\\PickerExport\\ +settings_f3searchShift=https\://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske\=kvk-redesign&lang\=de&title\=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css\=none&input-charset\=utf-8&ALL\=&TI\=&AU\=&CI\=&ST\=&PY\=&SB\=[{[isbn]}]&SS\=&PU\=&kataloge\=K10PLUS&kataloge\=BVB&kataloge\=NRW&kataloge\=HEBIS&kataloge\=HEBIS_RETRO&kataloge\=KOBV_SOLR&kataloge\=DDB&kataloge\=STABI_BERLIN&ref\=direct&client-js\=yes +settings_Order_DoneVerzeichnisNameTextField=Y\:\\Gruppen\\Bibliothek-Oeffentliches\\7. Erwerbung\\7.16 Rückstau Reihe-A\\PickerDone\\ +settings_OtherOrdererNames=TestCB2 +settings_API_markOA=true +settings_f1searchCtrl= +settings_RemoveDuplicatesByTitle=true +settings_DDCBlacklist= +settings_f2searchShift=https\://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske\=kvk-redesign&lang\=de&title\=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer\=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css\=none&input-charset\=utf-8&ALL\=&TI\=[{[title]}]&AU\=[{[author]}]&CI\=&ST\=&PY\=&SB\=&SS\=&PU\=&kataloge\=K10PLUS&kataloge\=BVB&kataloge\=NRW&kataloge\=HEBIS&kataloge\=HEBIS_RETRO&kataloge\=KOBV_SOLR&kataloge\=DDB&kataloge\=STABI_BERLIN&ref\=direct&client-js\=yes +settings_f2search=https\://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?type0%5B%5D\=allfields&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=au&lookfor0%5B%5D\=[{[author]}]&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ti&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ct&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=isn&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=ta&lookfor0%5B%5D\=[{[title]}]&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=co&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=py&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=pp&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=pu&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=si&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=zr&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND&type0%5B%5D\=cc&lookfor0%5B%5D\=&join\=AND&bool0%5B%5D\=AND +settings_QueueBoxHeight=492.0 diff --git a/res/IHT.bmp b/res/IHT.bmp new file mode 100644 index 0000000..9632fce Binary files /dev/null and b/res/IHT.bmp differ diff --git a/res/IHV.bmp b/res/IHV.bmp new file mode 100644 index 0000000..333d157 Binary files /dev/null and b/res/IHV.bmp differ diff --git a/res/Reihe-A-Logo.png b/res/Reihe-A-Logo.png new file mode 100644 index 0000000..a4d723b Binary files /dev/null and b/res/Reihe-A-Logo.png differ diff --git a/res/admin_variante.png b/res/admin_variante.png new file mode 100644 index 0000000..0c0123a Binary files /dev/null and b/res/admin_variante.png differ diff --git a/res/alt-button.png b/res/alt-button.png new file mode 100644 index 0000000..6d38687 Binary files /dev/null and b/res/alt-button.png differ diff --git a/res/backspace.png b/res/backspace.png new file mode 100644 index 0000000..6bbcb63 Binary files /dev/null and b/res/backspace.png differ diff --git a/res/broken-link.png b/res/broken-link.png new file mode 100644 index 0000000..5f80da8 Binary files /dev/null and b/res/broken-link.png differ diff --git a/res/chat.png b/res/chat.png new file mode 100644 index 0000000..66b793d Binary files /dev/null and b/res/chat.png differ diff --git a/res/closed-eye.png b/res/closed-eye.png new file mode 100644 index 0000000..2539851 Binary files /dev/null and b/res/closed-eye.png differ diff --git a/res/ctrl-control-button.png b/res/ctrl-control-button.png new file mode 100644 index 0000000..b777a03 Binary files /dev/null and b/res/ctrl-control-button.png differ diff --git a/res/down-arrow-button.png b/res/down-arrow-button.png new file mode 100644 index 0000000..3f8103d Binary files /dev/null and b/res/down-arrow-button.png differ diff --git a/res/enter-button.png b/res/enter-button.png new file mode 100644 index 0000000..c0805ca Binary files /dev/null and b/res/enter-button.png differ diff --git a/res/enter.png b/res/enter.png new file mode 100644 index 0000000..4fcc00e Binary files /dev/null and b/res/enter.png differ diff --git a/res/excel_tsv_example.bmp b/res/excel_tsv_example.bmp new file mode 100644 index 0000000..dae1406 Binary files /dev/null and b/res/excel_tsv_example.bmp differ diff --git a/res/f1-button.png b/res/f1-button.png new file mode 100644 index 0000000..58cb2c5 Binary files /dev/null and b/res/f1-button.png differ diff --git a/res/f2-button.png b/res/f2-button.png new file mode 100644 index 0000000..b56e398 Binary files /dev/null and b/res/f2-button.png differ diff --git a/res/f3-button.png b/res/f3-button.png new file mode 100644 index 0000000..f6dea59 Binary files /dev/null and b/res/f3-button.png differ diff --git a/res/f4-button.png b/res/f4-button.png new file mode 100644 index 0000000..6b34fe3 Binary files /dev/null and b/res/f4-button.png differ diff --git a/res/f5-button.png b/res/f5-button.png new file mode 100644 index 0000000..59ee2ea Binary files /dev/null and b/res/f5-button.png differ diff --git a/res/f6-button.png b/res/f6-button.png new file mode 100644 index 0000000..01f309b Binary files /dev/null and b/res/f6-button.png differ diff --git a/res/f7-button.png b/res/f7-button.png new file mode 100644 index 0000000..5218cc3 Binary files /dev/null and b/res/f7-button.png differ diff --git a/res/folder-search-icon.png b/res/folder-search-icon.png new file mode 100644 index 0000000..3c500c4 Binary files /dev/null and b/res/folder-search-icon.png differ diff --git a/res/fontSmaller.png b/res/fontSmaller.png new file mode 100644 index 0000000..99bf1de Binary files /dev/null and b/res/fontSmaller.png differ diff --git a/res/fontTaller.png b/res/fontTaller.png new file mode 100644 index 0000000..bb0a7f9 Binary files /dev/null and b/res/fontTaller.png differ diff --git a/res/helpExamples/CatSearch.bmp b/res/helpExamples/CatSearch.bmp new file mode 100644 index 0000000..0fe6c3f Binary files /dev/null and b/res/helpExamples/CatSearch.bmp differ diff --git a/res/helpExamples/CatSearch_1.bmp b/res/helpExamples/CatSearch_1.bmp new file mode 100644 index 0000000..b047d7b Binary files /dev/null and b/res/helpExamples/CatSearch_1.bmp differ diff --git a/res/helpExamples/CatSearch_2.bmp b/res/helpExamples/CatSearch_2.bmp new file mode 100644 index 0000000..01e554c Binary files /dev/null and b/res/helpExamples/CatSearch_2.bmp differ diff --git a/res/helpExamples/CatSearch_3.bmp b/res/helpExamples/CatSearch_3.bmp new file mode 100644 index 0000000..175aaef Binary files /dev/null and b/res/helpExamples/CatSearch_3.bmp differ diff --git a/res/helpExamples/DDCWhitelist.bmp b/res/helpExamples/DDCWhitelist.bmp new file mode 100644 index 0000000..439fcd4 Binary files /dev/null and b/res/helpExamples/DDCWhitelist.bmp differ diff --git a/res/helpExamples/PublisherBlacklist.bmp b/res/helpExamples/PublisherBlacklist.bmp new file mode 100644 index 0000000..01f93a0 Binary files /dev/null and b/res/helpExamples/PublisherBlacklist.bmp differ diff --git a/res/helpExamples/bestandsliteratur.bmp b/res/helpExamples/bestandsliteratur.bmp new file mode 100644 index 0000000..e03d0e0 Binary files /dev/null and b/res/helpExamples/bestandsliteratur.bmp differ diff --git a/res/helpExamples/fieldSettings.bmp b/res/helpExamples/fieldSettings.bmp new file mode 100644 index 0000000..90e4c16 Binary files /dev/null and b/res/helpExamples/fieldSettings.bmp differ diff --git a/res/helpExamples/markings.bmp b/res/helpExamples/markings.bmp new file mode 100644 index 0000000..8f5af03 Binary files /dev/null and b/res/helpExamples/markings.bmp differ diff --git a/res/helpExamples/openAccess.bmp b/res/helpExamples/openAccess.bmp new file mode 100644 index 0000000..383b456 Binary files /dev/null and b/res/helpExamples/openAccess.bmp differ diff --git a/res/helpExamples/progress.bmp b/res/helpExamples/progress.bmp new file mode 100644 index 0000000..36eaf8a Binary files /dev/null and b/res/helpExamples/progress.bmp differ diff --git a/res/import.png b/res/import.png new file mode 100644 index 0000000..ed36e4e Binary files /dev/null and b/res/import.png differ diff --git a/res/info-small.png b/res/info-small.png new file mode 100644 index 0000000..cc5ffdc Binary files /dev/null and b/res/info-small.png differ diff --git a/res/info.png b/res/info.png new file mode 100644 index 0000000..19af2c7 Binary files /dev/null and b/res/info.png differ diff --git a/res/interesting-facts.png b/res/interesting-facts.png new file mode 100644 index 0000000..e8650f4 Binary files /dev/null and b/res/interesting-facts.png differ diff --git a/res/left-arrow-button.png b/res/left-arrow-button.png new file mode 100644 index 0000000..6ae5294 Binary files /dev/null and b/res/left-arrow-button.png differ diff --git a/res/legal-info.png b/res/legal-info.png new file mode 100644 index 0000000..789c308 Binary files /dev/null and b/res/legal-info.png differ diff --git a/res/logo_big.png b/res/logo_big.png new file mode 100644 index 0000000..3975d02 Binary files /dev/null and b/res/logo_big.png differ diff --git a/res/logo_square.png b/res/logo_square.png new file mode 100644 index 0000000..db6036c Binary files /dev/null and b/res/logo_square.png differ diff --git a/res/lupe.png b/res/lupe.png new file mode 100644 index 0000000..df68ffd Binary files /dev/null and b/res/lupe.png differ diff --git a/res/planet-saturn-space.png b/res/planet-saturn-space.png new file mode 100644 index 0000000..d319e1b Binary files /dev/null and b/res/planet-saturn-space.png differ diff --git a/res/query-what-how-why.png b/res/query-what-how-why.png new file mode 100644 index 0000000..ef08119 Binary files /dev/null and b/res/query-what-how-why.png differ diff --git a/res/question-inquiry-icon.png b/res/question-inquiry-icon.png new file mode 100644 index 0000000..d4546e0 Binary files /dev/null and b/res/question-inquiry-icon.png differ diff --git a/res/question-mark-round-line.png b/res/question-mark-round-line.png new file mode 100644 index 0000000..cacb375 Binary files /dev/null and b/res/question-mark-round-line.png differ diff --git a/res/question.png b/res/question.png new file mode 100644 index 0000000..0d9ba21 Binary files /dev/null and b/res/question.png differ diff --git a/res/refresh.png b/res/refresh.png new file mode 100644 index 0000000..59ceb36 Binary files /dev/null and b/res/refresh.png differ diff --git a/res/regulations.png b/res/regulations.png new file mode 100644 index 0000000..c35ab68 Binary files /dev/null and b/res/regulations.png differ diff --git a/res/remote-control.png b/res/remote-control.png new file mode 100644 index 0000000..6ea8c76 Binary files /dev/null and b/res/remote-control.png differ diff --git a/res/reservation-completed.png b/res/reservation-completed.png new file mode 100644 index 0000000..53847e5 Binary files /dev/null and b/res/reservation-completed.png differ diff --git a/res/resize_narrower.png b/res/resize_narrower.png new file mode 100644 index 0000000..0be1220 Binary files /dev/null and b/res/resize_narrower.png differ diff --git a/res/resize_smaller.png b/res/resize_smaller.png new file mode 100644 index 0000000..7d2e58e Binary files /dev/null and b/res/resize_smaller.png differ diff --git a/res/resize_taller.png b/res/resize_taller.png new file mode 100644 index 0000000..1dfabd1 Binary files /dev/null and b/res/resize_taller.png differ diff --git a/res/resize_wider.png b/res/resize_wider.png new file mode 100644 index 0000000..39e4289 Binary files /dev/null and b/res/resize_wider.png differ diff --git a/res/right-arrow-button.png b/res/right-arrow-button.png new file mode 100644 index 0000000..f6beb03 Binary files /dev/null and b/res/right-arrow-button.png differ diff --git a/res/rocks-falling-sign.png b/res/rocks-falling-sign.png new file mode 100644 index 0000000..21e8bda Binary files /dev/null and b/res/rocks-falling-sign.png differ diff --git a/res/save-all-files-icon.png b/res/save-all-files-icon.png new file mode 100644 index 0000000..8a974fc Binary files /dev/null and b/res/save-all-files-icon.png differ diff --git a/res/shift-button.png b/res/shift-button.png new file mode 100644 index 0000000..ad51044 Binary files /dev/null and b/res/shift-button.png differ diff --git a/res/singleCallShowDetails.png b/res/singleCallShowDetails.png new file mode 100644 index 0000000..a548a5c Binary files /dev/null and b/res/singleCallShowDetails.png differ diff --git a/res/snake.png b/res/snake.png new file mode 100644 index 0000000..bc4e7ef Binary files /dev/null and b/res/snake.png differ diff --git a/res/space-button.png b/res/space-button.png new file mode 100644 index 0000000..848aed0 Binary files /dev/null and b/res/space-button.png differ diff --git a/res/transmission.png b/res/transmission.png new file mode 100644 index 0000000..0dbae68 Binary files /dev/null and b/res/transmission.png differ diff --git a/res/up-arrow-button.png b/res/up-arrow-button.png new file mode 100644 index 0000000..913cba9 Binary files /dev/null and b/res/up-arrow-button.png differ diff --git a/res/vertical-line.png b/res/vertical-line.png new file mode 100644 index 0000000..50a550e Binary files /dev/null and b/res/vertical-line.png differ diff --git a/res/whiteListFilter.png b/res/whiteListFilter.png new file mode 100644 index 0000000..9bee696 Binary files /dev/null and b/res/whiteListFilter.png differ diff --git a/res/wos_export_1.png b/res/wos_export_1.png new file mode 100644 index 0000000..6fc9c2f Binary files /dev/null and b/res/wos_export_1.png differ diff --git a/src/launcher/MainWindow.java b/src/launcher/MainWindow.java new file mode 100644 index 0000000..556d86c --- /dev/null +++ b/src/launcher/MainWindow.java @@ -0,0 +1,961 @@ +package launcher; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +import javafx.application.Application; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.geometry.Rectangle2D; +import javafx.scene.Scene; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressIndicator; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextInputDialog; +import javafx.scene.control.Tooltip; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Priority; +import javafx.scene.layout.Region; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.stage.Screen; +import javafx.stage.Stage; +import javafx.stage.StageStyle; +import logic_reiheAPicker.GetButtonPics; +import logic_reiheAPicker.PropertyFileHandler; +import models_reiheAPicker.FondsManager_applicationModel; +import models_reiheAPicker.ListEnum; +import userInterface_reiheAPicker.Database_OpenOrdersTab; +import userInterface_reiheAPicker.FondsManagerFundingTab; +import userInterface_reiheAPicker.FondsManagerSettingsTab; +import userInterface_reiheAPicker.FondsManagerTab; +import userInterface_reiheAPicker.ISBNCheckerTab; +import userInterface_reiheAPicker.ImportSettingsTab; +import userInterface_reiheAPicker.LegalInformationScene; +import userInterface_reiheAPicker.OrderSettingsTab; +import userInterface_reiheAPicker.OrderTab; +import userInterface_reiheAPicker.PickerTab; +import var_reiheAPicker.Constants; + +public class MainWindow extends Application{ + + private Scene reiheAPickerScene = null; + private Scene isbnCheckerScene = null; + private Scene viviScene = null; + private Scene toolChooserScene = null; + private int shiftPressed = 0; + public boolean modePickerTruemodeOrderFalse = false; + + private OrderTab orderTab; + private Database_OpenOrdersTab database_OpenOrdersTab; + private PickerTab pickerTab; + private FondsManagerTab fondsManagerTab; + private FondsManagerFundingTab fondsManagerFundingTab; + + boolean gridOrFontChanged = false; + + Image gridIImageI = null; + Image gridIImageII = null; + Image gridIImageIII = null; + Image gridIImageIV = null; + Image fontTallerImage = null; + Image fontSmallerImage = null; + Image saveGridFontSettingsImage = null; + + Button importButton = null; + Button legalInformationButton = null; + Button gridIButton = null; + Button gridIIButton = null; + Button gridIIIButton = null; + Button gridIVButton = null; + Button fontTallerButton = null; + Button fontSmallerButton = null; + + Button saveGridFontSettingsButton = null; + private PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + + + + public static void startWindow(String[] args) + { + launch(args); + } + + @Override + public void start(Stage primaryStage) throws IOException { + + + + + + Image tooltipIcon = GetButtonPics.getButtonImage_TooltipIcon(); + if (tooltipIcon != null) + { + primaryStage.getIcons().add(tooltipIcon); + } + + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 0) + { primaryStage.setTitle(var_reiheAPicker.Constants.ProgramName); + initiateReiheAPicker(primaryStage); + } else if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + primaryStage.setTitle(var_reiheAPicker.Constants.ProgramName_orderMode); + initiateReiheAOrder(primaryStage); + } else if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 2) + { primaryStage.setTitle(var_reiheAPicker.Constants.ProgramName_fondsManager); + initiateFondsManager(primaryStage); + } + + + + + + primaryStage.setMaximized(true); + + primaryStage.show(); + + primaryStage.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + if (keyEvent.getCode() == KeyCode.ESCAPE) + { + primaryStage.setScene(reiheAPickerScene); + } + + if (keyEvent.getCode() == KeyCode.SHIFT) + { + this.shiftPressed ++; + if (this.shiftPressed > 4) + { + initiateISBNChecker(primaryStage); + this.shiftPressed = 0; + } + + } else + { + this.shiftPressed = 0; + } + + + + }); + } + + private void initiateISBNChecker(Stage primaryStage) + { + if (this.isbnCheckerScene == null) + { + ISBNCheckerTab isbnChecker = new ISBNCheckerTab(); + TabPane mainTabPane = new TabPane(); + mainTabPane.getTabs().add(isbnChecker.isbnCheckerTab); + + + VBox vBoxMenu = new VBox(mainTabPane); + this.isbnCheckerScene = new Scene(vBoxMenu); + + } + + Stage isbnCheckerStage = new Stage(); + isbnCheckerStage.setScene(isbnCheckerScene); + isbnCheckerStage.show(); + + + } + + private void setChangeFontGridSettingsButtonSetVisibleInvisible(boolean setChangedFlagTrue) + { + this.gridOrFontChanged = setChangedFlagTrue; + if (setChangedFlagTrue) + { + this.saveGridFontSettingsButton.setVisible(true); + } else + { + this.saveGridFontSettingsButton.setVisible(false); + } + } + + private void saveFontGridSizeSettings(String fontSize, String boxWith, String boxHeight) throws IOException + { + this.propertyFileHandler.propertyFileModel.set_settings_FontSize(fontSize); + this.propertyFileHandler.propertyFileModel.set_settings_QueueBoxWidth(boxWith); + this.propertyFileHandler.propertyFileModel.set_settings_QueueBoxHeight(boxHeight); + this.propertyFileHandler.setConfigDetail(); + + } + + + + private void initiateFondsManager(Stage primaryStage) throws IOException + { + this.importButton = new Button(); + this.legalInformationButton = new Button(); + this.gridIButton = new Button(); + this.gridIIButton = new Button(); + this.gridIIIButton = new Button(); + this.gridIVButton = new Button(); + this.fontTallerButton = new Button(); + this.fontSmallerButton = new Button(); + this.saveGridFontSettingsButton = new Button(); + this.gridIButton.setVisible(false); + this.gridIIButton.setVisible(false); + this.gridIIIButton.setVisible(false); + this.gridIVButton.setVisible(false); + this.fontTallerButton.setVisible(false); + this.fontSmallerButton.setVisible(false); + this.saveGridFontSettingsButton.setVisible(false); + + this.gridIImageI = GetButtonPics.getButtonImage_Narrower(); + if (gridIImageI != null) + { + gridIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageI)); + } + + this.gridIImageII = GetButtonPics.getButtonImage_Smaller(); + if (gridIImageII != null) + { + gridIIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageII)); + } + + this.gridIImageIII = GetButtonPics.getButtonImage_Taller(); + if (gridIImageIII != null) + { + gridIIIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageIII)); + } + + this.gridIImageIV = GetButtonPics.getButtonImage_Wider(); + if (gridIImageIV != null) + { + gridIVButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageIV)); + } + + + this.fontTallerImage = GetButtonPics.getButtonImage_FontTaller(); + if (fontTallerImage != null) + { + fontTallerButton.setGraphic(GetButtonPics.turnPicIntoImageView(fontTallerImage)); + } + + + this.fontSmallerImage = GetButtonPics.getButtonImage_FontSmaller(); + if (fontSmallerImage != null) + { + fontSmallerButton.setGraphic(GetButtonPics.turnPicIntoImageView(fontSmallerImage)); + } + + this.saveGridFontSettingsImage = GetButtonPics.getButtonImage_saveButton(); + if (saveGridFontSettingsImage != null) + { + this.saveGridFontSettingsButton.setGraphic(GetButtonPics.turnPicIntoImageView(saveGridFontSettingsImage)); + + } + Tooltip saveGridFontTooltip = new Tooltip(); + saveGridFontTooltip.setText("Schriftgröße und Layout speichern"); + saveGridFontSettingsButton.setTooltip(saveGridFontTooltip); + + Image legalInfoButtonImage = GetButtonPics.getButtonImage_LegalInfo(); + if (legalInfoButtonImage != null) + { + legalInformationButton.setGraphic(GetButtonPics.turnPicIntoImageView(legalInfoButtonImage)); + } + Tooltip legalTooltip = new Tooltip(); + legalTooltip.setText("Impressum und Lizeninformationen"); + legalInformationButton.setTooltip(legalTooltip); + + + Image importButtonImage = GetButtonPics.getButtonImage_importButton(); + if (importButtonImage != null) + { + importButton.setGraphic(GetButtonPics.turnPicIntoImageView(importButtonImage)); + } + Tooltip importTooltip = new Tooltip(); + importTooltip.setText("Datensätze aktualisieren"); + importButton.setTooltip(importTooltip); + + Region region = new Region(); + + HBox.setHgrow(region, Priority.ALWAYS); + + HBox controlsHBox = new HBox(importButton, region, this.saveGridFontSettingsButton, fontTallerButton, fontSmallerButton, new Label(" "), gridIButton, gridIIButton, gridIIIButton, gridIVButton, new Label(" "), legalInformationButton); + controlsHBox.setMinHeight(35); + HBox.setMargin(importButton, new Insets(5,5,5,5)); + HBox.setMargin(legalInformationButton, new Insets(5,5,5,5)); + controlsHBox.setAlignment(Pos.CENTER_LEFT); + + this.fondsManagerTab = new FondsManagerTab(primaryStage); + this.fondsManagerFundingTab = new FondsManagerFundingTab(primaryStage); + + TabPane mainTabPane = new TabPane(); + FondsManagerSettingsTab fondsManagerSettingsTab = new FondsManagerSettingsTab(primaryStage, fondsManagerTab); + + legalInformationButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + openLegalInformationScene(); + } + }); + + + + importButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + List publicationModels = null; + mainTabPane.getTabs().remove(fondsManagerTab.oaTab); + mainTabPane.getTabs().remove(fondsManagerFundingTab.oaTab); + try { + publicationModels = fondsManagerSettingsTab.openFileAndLoad(); + + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + + try { + if (publicationModels != null) + { + fondsManagerTab.rebuild(publicationModels); + fondsManagerFundingTab.rebuild(publicationModels); + } + + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + mainTabPane.getTabs().add(fondsManagerTab.oaTab); + mainTabPane.getTabs().add(fondsManagerFundingTab.oaTab); + setFondsManagerTabActive(mainTabPane, fondsManagerTab, fondsManagerSettingsTab); + fontTallerButton.setVisible(true); + fontSmallerButton.setVisible(true); + gridIButton.setVisible(true); + gridIIButton.setVisible(true); + gridIIIButton.setVisible(true); + gridIVButton.setVisible(true); + + + }}); + + + mainTabPane.getTabs().add(fondsManagerSettingsTab.importSettingsTab); + VBox vBoxMenu = new VBox(controlsHBox, mainTabPane); + this.reiheAPickerScene = new Scene(vBoxMenu); + + fontTallerButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + fondsManagerTab.adjustFontSizeTaller(); + + } + }); + fontSmallerButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + fondsManagerTab.adjustFontSizeSmaller(); + + } + }); + gridIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + fondsManagerTab.changeGridI(); + + } + }); + gridIIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + fondsManagerTab.changeGridII(); + } + }); + gridIIIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + fondsManagerTab.changeGridIII(); + } + }); + gridIVButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + fondsManagerTab.changeGridIV(); + } + }); + + this.saveGridFontSettingsButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(false); + try { + saveFontGridSizeSettings(fondsManagerTab.getFontsize(), fondsManagerTab.getGridWidth(), fondsManagerTab.getGridHeight()); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + //do the saving + } + }); + + + primaryStage.setScene(this.reiheAPickerScene); + + + + } + + private void initiateReiheAOrder(Stage primaryStage) throws IOException + { + this.importButton = new Button(); + this.legalInformationButton = new Button(); + this.gridIButton = new Button(); + this.gridIIButton = new Button(); + this.gridIIIButton = new Button(); + this.gridIVButton = new Button(); + this.fontTallerButton = new Button(); + this.fontSmallerButton = new Button(); + this.saveGridFontSettingsButton = new Button(); + this.gridIButton.setVisible(false); + this.gridIIButton.setVisible(false); + this.gridIIIButton.setVisible(false); + this.gridIVButton.setVisible(false); + this.fontTallerButton.setVisible(false); + this.fontSmallerButton.setVisible(false); + this.saveGridFontSettingsButton.setVisible(false); + + this.gridIImageI = GetButtonPics.getButtonImage_Narrower(); + if (gridIImageI != null) + { + gridIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageI)); + } + + this.gridIImageII = GetButtonPics.getButtonImage_Smaller(); + if (gridIImageII != null) + { + gridIIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageII)); + } + + this.gridIImageIII = GetButtonPics.getButtonImage_Taller(); + if (gridIImageIII != null) + { + gridIIIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageIII)); + } + + this.gridIImageIV = GetButtonPics.getButtonImage_Wider(); + if (gridIImageIV != null) + { + gridIVButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageIV)); + } + + + this.fontTallerImage = GetButtonPics.getButtonImage_FontTaller(); + if (fontTallerImage != null) + { + fontTallerButton.setGraphic(GetButtonPics.turnPicIntoImageView(fontTallerImage)); + } + + + this.fontSmallerImage = GetButtonPics.getButtonImage_FontSmaller(); + if (fontSmallerImage != null) + { + fontSmallerButton.setGraphic(GetButtonPics.turnPicIntoImageView(fontSmallerImage)); + } + + this.saveGridFontSettingsImage = GetButtonPics.getButtonImage_saveButton(); + if (saveGridFontSettingsImage != null) + { + this.saveGridFontSettingsButton.setGraphic(GetButtonPics.turnPicIntoImageView(saveGridFontSettingsImage)); + + } + Tooltip saveGridFontTooltip = new Tooltip(); + saveGridFontTooltip.setText("Schriftgröße und Layout speichern"); + saveGridFontSettingsButton.setTooltip(saveGridFontTooltip); + + Image legalInfoButtonImage = GetButtonPics.getButtonImage_LegalInfo(); + if (legalInfoButtonImage != null) + { + legalInformationButton.setGraphic(GetButtonPics.turnPicIntoImageView(legalInfoButtonImage)); + } + Tooltip legalTooltip = new Tooltip(); + legalTooltip.setText("Impressum und Lizeninformationen"); + legalInformationButton.setTooltip(legalTooltip); + + + Image importButtonImage = GetButtonPics.getButtonImage_importButton(); + if (importButtonImage != null) + { + importButton.setGraphic(GetButtonPics.turnPicIntoImageView(importButtonImage)); + } + Tooltip importTooltip = new Tooltip(); + importTooltip.setText("Datensätze aktualisieren"); + importButton.setTooltip(importTooltip); + + Region region = new Region(); + + HBox.setHgrow(region, Priority.ALWAYS); + + HBox controlsHBox = new HBox(importButton, region, this.saveGridFontSettingsButton, fontTallerButton, fontSmallerButton, new Label(" "), gridIButton, gridIIButton, gridIIIButton, gridIVButton, new Label(" "), legalInformationButton); + controlsHBox.setMinHeight(35); + HBox.setMargin(importButton, new Insets(5,5,5,5)); + HBox.setMargin(legalInformationButton, new Insets(5,5,5,5)); + controlsHBox.setAlignment(Pos.CENTER_LEFT); + + this.orderTab = new OrderTab(primaryStage); + this.database_OpenOrdersTab = new Database_OpenOrdersTab(); + + TabPane mainTabPane = new TabPane(); + OrderSettingsTab orderSettingsTab = new OrderSettingsTab(primaryStage, orderTab); + + legalInformationButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + openLegalInformationScene(); + } + }); + + + + importButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + mainTabPane.getTabs().remove(orderTab.orderTab); + try { + orderSettingsTab.openFileAndLoad(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + List columns = orderSettingsTab.titles.get(0); + orderSettingsTab.titles.remove(0); + + try { + orderTab.rebuild(columns, + orderSettingsTab.titles + ); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + mainTabPane.getTabs().add(orderTab.orderTab); + mainTabPane.getTabs().add(database_OpenOrdersTab.database_OpenOrdersTab); + + setOrderTabActive(mainTabPane, orderTab, orderSettingsTab); + fontTallerButton.setVisible(true); + fontSmallerButton.setVisible(true); + gridIButton.setVisible(true); + gridIIButton.setVisible(true); + gridIIIButton.setVisible(true); + gridIVButton.setVisible(true); + + + }}); + + + mainTabPane.getTabs().add(orderSettingsTab.importSettingsTab); + VBox vBoxMenu = new VBox(controlsHBox, mainTabPane); + this.reiheAPickerScene = new Scene(vBoxMenu); + + fontTallerButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + orderTab.adjustFontSizeTaller(); + + } + }); + fontSmallerButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + orderTab.adjustFontSizeSmaller(); + + } + }); + gridIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + orderTab.changeGridI(); + + } + }); + gridIIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + orderTab.changeGridII(); + } + }); + gridIIIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + orderTab.changeGridIII(); + } + }); + gridIVButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + orderTab.changeGridIV(); + } + }); + + this.saveGridFontSettingsButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(false); + try { + saveFontGridSizeSettings(orderTab.getFontsize(), orderTab.getGridWidth(), orderTab.getGridHeight()); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + //do the saving + } + }); + + + primaryStage.setScene(this.reiheAPickerScene); + + + + } + + + + private void initiateReiheAPicker(Stage primaryStage) throws IOException + { + if (this.reiheAPickerScene == null) + { + this.importButton = new Button(); + this.legalInformationButton = new Button(); + this.gridIButton = new Button(); + this.gridIIButton = new Button(); + this.gridIIIButton = new Button(); + this.gridIVButton = new Button(); + this.fontTallerButton = new Button(); + this.fontSmallerButton = new Button(); + this.saveGridFontSettingsButton = new Button(); + this.gridIButton.setVisible(false); + this.gridIIButton.setVisible(false); + this.gridIIIButton.setVisible(false); + this.gridIVButton.setVisible(false); + this.fontTallerButton.setVisible(false); + this.fontSmallerButton.setVisible(false); + this.saveGridFontSettingsButton.setVisible(false); + + Label progressLabel = new Label(""); + ProgressIndicator progressIndicator = new ProgressIndicator(0); + Tooltip tooltip = new Tooltip(); + tooltip.setText("Prüfe Titel auf Bestand und Open-Access-Status. Bitte warten!"); + progressIndicator.setTooltip(tooltip); + this.orderTab = new OrderTab(primaryStage); + this.database_OpenOrdersTab = new Database_OpenOrdersTab(); + + this.gridIImageI = GetButtonPics.getButtonImage_Narrower(); + if (gridIImageI != null) + { + gridIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageI)); + } + + this.gridIImageII = GetButtonPics.getButtonImage_Smaller(); + if (gridIImageII != null) + { + gridIIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageII)); + } + + this.gridIImageIII = GetButtonPics.getButtonImage_Taller(); + if (gridIImageIII != null) + { + gridIIIButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageIII)); + } + + this.gridIImageIV = GetButtonPics.getButtonImage_Wider(); + if (gridIImageIV != null) + { + gridIVButton.setGraphic(GetButtonPics.turnPicIntoImageView(gridIImageIV)); + } + + + this.fontTallerImage = GetButtonPics.getButtonImage_FontTaller(); + if (fontTallerImage != null) + { + fontTallerButton.setGraphic(GetButtonPics.turnPicIntoImageView(fontTallerImage)); + } + + + fontSmallerImage = GetButtonPics.getButtonImage_FontSmaller(); + if (fontSmallerImage != null) + { + fontSmallerButton.setGraphic(GetButtonPics.turnPicIntoImageView(fontSmallerImage)); + } + + this.saveGridFontSettingsImage = GetButtonPics.getButtonImage_saveButton(); + if (saveGridFontSettingsImage != null) + { + this.saveGridFontSettingsButton.setGraphic(GetButtonPics.turnPicIntoImageView(saveGridFontSettingsImage)); + } + Tooltip saveGridFontTooltip = new Tooltip(); + saveGridFontTooltip.setText("Schriftgröße und Layout speichern"); + saveGridFontSettingsButton.setTooltip(saveGridFontTooltip); + + + Image legalInfoButtonImage = GetButtonPics.getButtonImage_LegalInfo(); + if (legalInfoButtonImage != null) + { + legalInformationButton.setGraphic(GetButtonPics.turnPicIntoImageView(legalInfoButtonImage)); + } + Tooltip legalTooltip = new Tooltip(); + legalTooltip.setText("Impressum und Lizeninformationen"); + legalInformationButton.setTooltip(legalTooltip); + + + Image importButtonImage = GetButtonPics.getButtonImage_importButton(); + if (importButtonImage != null) + { + importButton.setGraphic(GetButtonPics.turnPicIntoImageView(importButtonImage)); + } + Tooltip importTooltip = new Tooltip(); + importTooltip.setText("Import (CSV/TSV oder PSF-Dateien)"); + importButton.setTooltip(importTooltip); + + + + //Button tutorialButton = new Button(); + //tutorialButton.setText("Tutorial"); + //Button exportButton = new Button(); + //exportButton.setText("Export"); + + Region region = new Region(); + + HBox.setHgrow(region, Priority.ALWAYS); + + HBox controlsHBox = new HBox(importButton, region, progressLabel, progressIndicator, this.saveGridFontSettingsButton, fontTallerButton, fontSmallerButton, new Label(" "), gridIButton, gridIIButton, gridIIIButton, gridIVButton, new Label(" "), legalInformationButton); + controlsHBox.setMinHeight(35); + HBox.setMargin(importButton, new Insets(5,5,5,5)); + HBox.setMargin(legalInformationButton, new Insets(5,5,5,5)); + controlsHBox.setAlignment(Pos.CENTER_LEFT); + + + + this.pickerTab = new PickerTab(primaryStage); + + TabPane mainTabPane = new TabPane(); + ImportSettingsTab importSettingsTab = new ImportSettingsTab(primaryStage, pickerTab); + mainTabPane.getTabs().add(database_OpenOrdersTab.database_OpenOrdersTab); + progressIndicator.setVisible(false); + + legalInformationButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + openLegalInformationScene(); + } + }); + + importButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + + + if (mainTabPane.getTabs().contains(pickerTab.pickerTab)) + { + Alert alert = + new Alert(AlertType.WARNING, + "Daten erneut importieren? Aktueller Fortschritt geht verloren!", + ButtonType.OK, + ButtonType.CANCEL); + alert.setTitle("Aktuellen Fortschritt überschreiben?"); + Optional result = alert.showAndWait(); + + if (result.get() == ButtonType.OK) { + mainTabPane.getTabs().remove(pickerTab.pickerTab); + importSettingsTab.openFileAndLoad(); + if (importSettingsTab.isSaveFileLoad) + { + pickerTab.rebuild(importSettingsTab.ColumnNamesFromSaveFile, + importSettingsTab.nopeTitlesFromSaveFile, + importSettingsTab.queueTitlesFromSaveFile, + importSettingsTab.pickTitlesFromSaveFile); + mainTabPane.getTabs().add(pickerTab.pickerTab); + + setPickerTabActive(mainTabPane, pickerTab, importSettingsTab); + fontTallerButton.setVisible(true); + fontSmallerButton.setVisible(true); + gridIButton.setVisible(true); + gridIIButton.setVisible(true); + gridIIIButton.setVisible(true); + gridIVButton.setVisible(true); + } else + { + pickerTab.rebuild(importSettingsTab.titles, progressIndicator, progressLabel); + mainTabPane.getTabs().add(pickerTab.pickerTab); + setPickerTabActive(mainTabPane, pickerTab, importSettingsTab); + fontTallerButton.setVisible(true); + fontSmallerButton.setVisible(true); + gridIButton.setVisible(true); + gridIIButton.setVisible(true); + gridIIIButton.setVisible(true); + gridIVButton.setVisible(true); + } + } + } + else + { + importSettingsTab.openFileAndLoad(); + if (importSettingsTab.isSaveFileLoad) + { + pickerTab.rebuild(importSettingsTab.ColumnNamesFromSaveFile, + importSettingsTab.nopeTitlesFromSaveFile, + importSettingsTab.queueTitlesFromSaveFile, + importSettingsTab.pickTitlesFromSaveFile); + mainTabPane.getTabs().add(pickerTab.pickerTab); + setPickerTabActive(mainTabPane, pickerTab, importSettingsTab); + fontTallerButton.setVisible(true); + fontSmallerButton.setVisible(true); + gridIButton.setVisible(true); + gridIIButton.setVisible(true); + gridIIIButton.setVisible(true); + gridIVButton.setVisible(true); + } else + { + pickerTab.rebuild(importSettingsTab.titles, progressIndicator, progressLabel); + mainTabPane.getTabs().add(pickerTab.pickerTab); + setPickerTabActive(mainTabPane, pickerTab, importSettingsTab); + fontTallerButton.setVisible(true); + fontSmallerButton.setVisible(true); + gridIButton.setVisible(true); + gridIIButton.setVisible(true); + gridIIIButton.setVisible(true); + gridIVButton.setVisible(true); + } + + mainTabPane.getTabs().add(database_OpenOrdersTab.database_OpenOrdersTab); + + } + + + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + fontTallerButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + pickerTab.adjustFontSizeTaller(); + + } + }); + fontSmallerButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + pickerTab.adjustFontSizeSmaller(); + + } + }); + gridIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + pickerTab.changeGridI(); + + } + }); + gridIIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + pickerTab.changeGridII(); + } + }); + gridIIIButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + pickerTab.changeGridIII(); + } + }); + gridIVButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(true); + pickerTab.changeGridIV(); + } + }); + + this.saveGridFontSettingsButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + setChangeFontGridSettingsButtonSetVisibleInvisible(false); + try { + saveFontGridSizeSettings(pickerTab.getFontsize(), pickerTab.getGridWidth(), pickerTab.getGridHeight()); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + + mainTabPane.getTabs().add(importSettingsTab.importSettingsTab); + VBox vBoxMenu = new VBox(controlsHBox, mainTabPane); + this.reiheAPickerScene = new Scene(vBoxMenu); + + } + primaryStage.setScene(this.reiheAPickerScene); + + } + + private void openLegalInformationScene() + { + new LegalInformationScene(); + } + + public void setFondsManagerTabActive(TabPane mainTabPane, FondsManagerTab fondsManagerTab, FondsManagerSettingsTab fondsManagerSettingsTab) + { + + + // if active tab in importSettingsTab == 4 (field settings): dont change tabs. User is obviously making changes. + + if (fondsManagerSettingsTab.importSettingsTabSubSettingsTabPane.getSelectionModel().getSelectedIndex() != 4) + { + mainTabPane.getSelectionModel().select(mainTabPane.getTabs().indexOf(fondsManagerTab.oaTab)); + } + //load Field Settings in fieldSettingsTab + fondsManagerSettingsTab.setCurrentColumns(); + + } + + public void setOrderTabActive(TabPane mainTabPane, OrderTab orderTab, OrderSettingsTab orderSettingsTab) + { + + + // if active tab in importSettingsTab == 4 (field settings): dont change tabs. User is obviously making changes. + + if (orderSettingsTab.importSettingsTabSubSettingsTabPane.getSelectionModel().getSelectedIndex() != 4) + { + mainTabPane.getSelectionModel().select(mainTabPane.getTabs().indexOf(orderTab.orderTab)); + } + //load Field Settings in fieldSettingsTab + orderSettingsTab.setCurrentColumns(); + + } + + public void setPickerTabActive(TabPane mainTabPane, PickerTab pickerTab, ImportSettingsTab importSettingsTab) + { + + + // if active tab in importSettingsTab == 4 (field settings): dont change tabs. User is obviously making changes. + + if (importSettingsTab.importSettingsTabSubSettingsTabPane.getSelectionModel().getSelectedIndex() != 4) + { + mainTabPane.getSelectionModel().select(mainTabPane.getTabs().indexOf(pickerTab.pickerTab)); + } + //load Field Settings in fieldSettingsTab + importSettingsTab.setCurrentColumns(); + + } + +} diff --git a/src/launcher/Startup.java b/src/launcher/Startup.java new file mode 100644 index 0000000..1dc5c95 --- /dev/null +++ b/src/launcher/Startup.java @@ -0,0 +1,25 @@ +package launcher; + +import logic_reiheAPicker.PropertyFileHandler; + +public class Startup { + + public static void main(String[] args) { + // TODO Auto-generated method stub + PropertyFileHandler propertyFilehandler = PropertyFileHandler.getInstance(); + if (args != null && args.length > 0) + { + if (args[0].contains("OrderMode")) + { + propertyFilehandler.propertyFileModel.set_settingsOrderLaunchMode(); + } else if (args[0].contains("PubFundMode")) + { + propertyFilehandler.propertyFileModel.set_settingsPubFundMode(); + } + } + MainWindow.startWindow(args); + } + + //xyz + +} diff --git a/src/logic_reiheAPicker/ApiCallerClass.java b/src/logic_reiheAPicker/ApiCallerClass.java new file mode 100644 index 0000000..661544e --- /dev/null +++ b/src/logic_reiheAPicker/ApiCallerClass.java @@ -0,0 +1,119 @@ +package logic_reiheAPicker; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.CookieHandler; +import java.net.CookieManager; +import java.net.CookiePolicy; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.time.Duration; +import java.time.LocalDateTime; + +/* + * Class containing all functions related to API-Interaction + */ +public class ApiCallerClass { + + //execute Post + private LocalDateTime timeStamp; + + public ApiCallerClass() + { + this.timeStamp = LocalDateTime.now(); + } + + public String callUrlLimitedWaitTime(URL targetURL) throws InterruptedException { + + HttpURLConnection connection = null; + + if (timeStamp != null && Duration.between(timeStamp, LocalDateTime.now()).getSeconds() < 0.100) + { + Thread.sleep(100); + } + this.timeStamp = LocalDateTime.now(); + + + try { + + + + + + + CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL)); + + connection = (HttpURLConnection) targetURL.openConnection(); + connection.setRequestMethod("GET"); + connection.setRequestProperty("Accept-Charset", StandardCharsets.UTF_8.name()); + + InputStream is = connection.getInputStream(); + + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + StringBuilder response = new StringBuilder(); + String line; + while ((line = rd.readLine()) != null) { + response.append(line); + response.append(System.lineSeparator()); + } + rd.close(); + return response.toString(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + if (connection != null) { + //connection.disconnect(); + } + } + } + + public String callUrl(URL targetURL) throws InterruptedException { + + HttpURLConnection connection = null; + + if (timeStamp != null && Duration.between(timeStamp, LocalDateTime.now()).getSeconds() < .5) + { + Thread.sleep(500); + } + this.timeStamp = LocalDateTime.now(); + + + try { + + + + + + + CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL)); + + connection = (HttpURLConnection) targetURL.openConnection(); + connection.setRequestMethod("GET"); + connection.setRequestProperty("Accept-Charset", StandardCharsets.UTF_8.name()); + + InputStream is = connection.getInputStream(); + + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + StringBuilder response = new StringBuilder(); + String line; + while ((line = rd.readLine()) != null) { + response.append(line); + response.append(System.lineSeparator()); + } + rd.close(); + return response.toString(); + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + if (connection != null) { + //connection.disconnect(); + } + } + } +} \ No newline at end of file diff --git a/src/logic_reiheAPicker/ChatGPTApiCallerClass.java b/src/logic_reiheAPicker/ChatGPTApiCallerClass.java new file mode 100644 index 0000000..ac26cf8 --- /dev/null +++ b/src/logic_reiheAPicker/ChatGPTApiCallerClass.java @@ -0,0 +1,104 @@ +package logic_reiheAPicker; + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; + +public class ChatGPTApiCallerClass { + + public static String chatGPT(String prompt) { + + String url = "https://api.openai.com/v1/chat/completions"; + String apiKey = var_reiheAPicker.Constants.ChatGPTApiKey; + String model = "gpt-4o"; + prompt = "You are assessing the relevance of books for a school-focused educational library. " + + "The target audience includes students and educators in all school-related disciplines (such as mathematics, science, languages, history, geography, social studies, arts, physical education, computer science, etc.). " + + "Your task is to rate each book's relevance using this fixed output format: " + + "'87; highly relevant but in English.' " + + "Format rules: " + + "- First, a number from 0 to 100 indicating the relevance. " + + "- Then, a short explanation in plain language. " + + "- Only use German or English titles. " + + "- German books are preferred. " + + "- English books are acceptable only if highly relevant. " + + "- Ignore books in other languages (output: '0; not in German or English.') " + + "Always follow this format. Don’t include anything else. " + + "Now evaluate the following title: " + prompt; try { + Thread.sleep(3000); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + HttpURLConnection connection = null; + + try { + URL obj = new URL(url); + connection = (HttpURLConnection) obj.openConnection(); + connection.setRequestMethod("POST"); + connection.setRequestProperty("Authorization", "Bearer " + apiKey); + connection.setRequestProperty("Content-Type", "application/json"); + + // The request body + String body = "{\"model\": \"" + model + "\", \"messages\": [{\"role\": \"user\", \"content\": \"" + prompt + "\"}]}"; + + connection.setDoOutput(true); + OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); + writer.write(body); + writer.flush(); + writer.close(); + + // Response from ChatGPT + BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String line; + StringBuilder response = new StringBuilder(); + + while ((line = br.readLine()) != null) { + response.append(line); + } + br.close(); + + // Call the method to extract the message + return extractMessageFromJSONResponse(response.toString()); + + } catch (IOException e) { + // Handle errors and print the API response if available + if (connection != null) { + try { + InputStream errorStream = connection.getErrorStream(); + if (errorStream != null) { + BufferedReader errorReader = new BufferedReader(new InputStreamReader(errorStream)); + StringBuilder errorResponse = new StringBuilder(); + String line; + while ((line = errorReader.readLine()) != null) { + errorResponse.append(line); + } + errorReader.close(); + System.err.println("Error response from OpenAI API: " + errorResponse.toString()); + // Log and continue without throwing + return "skipped due to error"; // Or handle it gracefully based on your program's needs + } + } catch (IOException ex) { + System.err.println("Failed to read error stream from OpenAI API"); + ex.printStackTrace(); + // Log and continue without throwing + return "skipped due to error"; // Or handle it gracefully + } + } + System.err.println("Error occurred while connecting to OpenAI API: " + e.getMessage()); + e.printStackTrace(); + // Log and continue without throwing + return "skipped due to error"; // Or handle it gracefully + } + } + + public static String extractMessageFromJSONResponse(String response) { + int start = response.indexOf("content")+ 11; + + int end = response.indexOf("\"", start); + + return response.substring(start, end); + + } + +} \ No newline at end of file diff --git a/src/logic_reiheAPicker/DataBaseHandler.java b/src/logic_reiheAPicker/DataBaseHandler.java new file mode 100644 index 0000000..bd2c4ce --- /dev/null +++ b/src/logic_reiheAPicker/DataBaseHandler.java @@ -0,0 +1,567 @@ +package logic_reiheAPicker; + +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javafx.scene.control.Alert; +import models_reiheAPicker.FondsManager_applicationModel; +import var_reiheAPicker.Constants; + +public class DataBaseHandler { + + public void fetchDataFromMailAndSave(String mailtext) throws SQLException + { + String x = mailtext; + FondsManager_applicationModel applicationModel = new FondsManager_applicationModel(mailtext); + + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.dbLocation ); + if ( connection != null ){ + + String queryPublicationAlreadyExists = "Select count() from publication where title = '" + applicationModel.publicationModel.title + "'"; + Statement stmtPublication = connection.createStatement(); + ResultSet resultSet = stmtPublication.executeQuery(queryPublicationAlreadyExists); + if (resultSet.getInt(1) == 0) + { + + + + String queryPublication = String.format(Constants.baseQueryInsertPublication, "'" + applicationModel.publicationModel.title + "'", + "'" + applicationModel.publicationModel.publisher + "'", "'" + applicationModel.publicationModel.journalTitle + "'", + "'" + applicationModel.publicationModel.submitDate + "'", + "'" + applicationModel.publicationModel.releaseDate + "'", "'" + applicationModel.publicationModel.costPrognosed + "'", + "'" + applicationModel.publicationModel.currency + "'", "'" + applicationModel.publicationModel.costLoc + "'", + "'" + applicationModel.publicationModel.correspondingAuthorIsPhMember + "'", + "'" + applicationModel.publicationModel.partialFeesAccepted + "'", "'" + applicationModel.publicationModel.fundingAcknowledgemetAccepted + "'", + "'" + applicationModel.publicationModel.oaGreenAccepted + "'", "'" + applicationModel.publicationModel.applicationStage + "'", + "'" + applicationModel.publicationModel.initialEmail + "'", "'" + applicationModel.publicationModel.notes + "'", + "'" + applicationModel.publicationModel.emailCostPersonResponsible + "'", "DATE('now')" + ");"); + stmtPublication = connection.createStatement(); + stmtPublication.execute(queryPublication); + + Statement getLastID = connection.createStatement(); + resultSet = getLastID.executeQuery("select last_insert_rowid()"); + while (resultSet.next()) { + applicationModel.publicationModel.id = resultSet.getInt(1); + } + + Statement checkIfAuthorNew = connection.createStatement(); + resultSet = getLastID.executeQuery(String.format("Select rowid from authors where email = '%s';", applicationModel.authorModel.email)); + while (resultSet.next()) { + applicationModel.authorModel.id = resultSet.getInt(1); + } + + if (applicationModel.authorModel.id > 0) + { + //do nothing + } else + { + String queryAuthor = String.format(Constants.baseQueryInsertAuthor, "'" + applicationModel.authorModel.email + "'", + "'" + applicationModel.authorModel.firstname + "'","'" + applicationModel.authorModel.lastname + "'", + "'" + "'","'" + applicationModel.authorModel.orcid + "'", + "'" + applicationModel.authorModel.isPhMember + "'", "'" + applicationModel.authorModel.phone + "'" + ");"); + Statement stmtAuthor = connection.createStatement(); + stmtAuthor.execute(queryAuthor); + + getLastID = connection.createStatement(); + resultSet = getLastID.executeQuery("select last_insert_rowid()"); + while (resultSet.next()) { + applicationModel.authorModel.id = resultSet.getInt(1); + } + } + + + String query_publicationAuthors = String.format(Constants.baseQuery_publicationAuthors, + "'" + applicationModel.publicationModel.id + "'","'" + applicationModel.authorModel.id + "'" + ");"); + + Statement stmt_publicationAuthors = connection.createStatement(); + stmt_publicationAuthors.execute(query_publicationAuthors); + } else + { + System.out.println("Datensatz mit diesem Titel existiert bereits! Eintrag in Datenbank wurde nicht vorgenommen."); + } + + } + + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + + + + } + + public String getFilePathForBillByPublicationId(String id) throws SQLException + { + + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.dbLocation ); + if ( connection != null ){ + + String getFilePathQuery = String.format(Constants.baseQuery_getBillPathByPublicationID, id); + Statement stmt = connection.createStatement(); + ResultSet resultset = stmt.executeQuery(getFilePathQuery); + while (resultset.next()) { + return resultset.getString("path"); + } + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + return ""; + } + + public void saveBill_basic(String pubId, String path) throws SQLException + { + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.dbLocation ); + if ( connection != null ){ + + //publicationID, path, amountTotal, amountTotalCurrency, amountTotalEuro, paidTotal, paidTotalBooked, deptInstitue, deptInstituteBooked + String insertBillData = String.format(Constants.baseQuery_insertBill_basic, pubId, path); + + Statement stmtPublication = connection.createStatement(); + stmtPublication.execute(insertBillData); + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + } + + public void saveBill(String pubId, String path, String amountTotal, String amountTotalCurrency, String amountTotalEuro, String paidTotal, String paidTotalBookedDate, String deptInstitue, String deptInstituteBookedDate) throws SQLException + { + + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.dbLocation ); + if ( connection != null ){ + + //publicationID, path, amountTotal, amountTotalCurrency, amountTotalEuro, paidTotal, paidTotalBooked, deptInstitue, deptInstituteBooked + String insertBillData = String.format(Constants.baseQuery_insertBill, pubId, path, amountTotal, amountTotalCurrency, amountTotalEuro, amountTotalEuro, paidTotal, paidTotalBookedDate, deptInstitue, deptInstituteBookedDate); + + Statement stmtPublication = connection.createStatement(); + stmtPublication.execute(insertBillData); + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + } + + + + + public String pickerSafetyDBgetAmountOfOpenOrders() throws SQLException + { + + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText(null); + alert.showAndWait(); + return ""; + } + + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.safetyDBPath); + if ( connection != null ){ + + String getOpenOrders = Constants.getAmountOpenOrdersFromOrderInc; + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + ResultSet resultset = stmt_baseQuery_getAllDatasets.executeQuery(getOpenOrders); + while (resultset.next()) { + { + return resultset.getString("anz"); + } + } + + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + + return "0"; + } + + + public void pickerSafetyDBSaveExportAndClose(String created, String title,String chosenBy,String Data, String hinweis) throws SQLException + { + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText(null); + alert.showAndWait(); + return; + } + + + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.safetyDBPath); + if ( connection != null ){ + + String insertIntoSafetyDB = String.format(Constants.insertIntoOrder_inc, created, title, chosenBy, Data.replaceAll("'", "").replaceAll(",", "").replaceAll("\r\n", " ").replaceAll("\n", " "), hinweis); + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + stmt_baseQuery_getAllDatasets.execute(insertIntoSafetyDB); + + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + } + + public void pickerSafetyDBUpdate(String updatedDate, String orderedBy, String title, String hinweis) throws SQLException + { + + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText(null); + alert.showAndWait(); + return; + } + + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.safetyDBPath); + if ( connection != null ){ + + String updateSafetyDB = String.format(Constants.updateOrderInc, updatedDate, orderedBy, hinweis, title); + + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + stmt_baseQuery_getAllDatasets.execute(updateSafetyDB); + + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + } + + public void pickerSafetyDBUpdate_onlyComment(String title, String hinweis) throws SQLException + { + + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText(null); + alert.showAndWait(); + return; + } + + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.safetyDBPath); + if ( connection != null ){ + + String updateSafetyDB = String.format(Constants.updateOrderInc_commentOnly, hinweis, title); + + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + stmt_baseQuery_getAllDatasets.execute(updateSafetyDB); + + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + } + + public List> pickerSafetyDB_getAllDatasets(String person) throws SQLException + { + + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText(null); + alert.showAndWait(); + return null; + } + + + + List> data = new ArrayList>(); + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.safetyDBPath ); + if ( connection != null ){ + + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + ResultSet resultset = null; + if (person.isBlank()) + { + resultset = stmt_baseQuery_getAllDatasets.executeQuery(Constants.getAllDataFromOrderSafetyDB_all); + + } else + { + resultset = stmt_baseQuery_getAllDatasets.executeQuery(Constants.getAllDataFromOrderSafetyDB_chosenBy.replace("[chosenBy]", person)); + + } + while (resultset.next()) { + List dataset = new ArrayList(); + dataset.add(resultset.getString("created")); + dataset.add(resultset.getString("ordered")); + dataset.add(resultset.getString("title")); + dataset.add(resultset.getString("chosenBy")); + dataset.add(resultset.getString("orderedBy")); + dataset.add(resultset.getString("Data")); + dataset.add(resultset.getString("hinweis")); + data.add(dataset); + } + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + + return data; + + } + + public List> pickerSafetyDB_getAllDatasetsByTitle(String title) throws SQLException + { + File f = new File(Constants.safetyDBPath); + System.out.println("a"); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText(null); + alert.showAndWait(); + return null; + } + + List> data = new ArrayList>(); + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.safetyDBPath ); + if ( connection != null ){ + + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + ResultSet resultset = stmt_baseQuery_getAllDatasets.executeQuery(Constants.getAllDataByTitleFromOrderSafetyDB.replace("[title]", title)); + while (resultset.next()) { + List dataset = new ArrayList(); + dataset.add(resultset.getString("created")); + dataset.add(resultset.getString("ordered")); + dataset.add(resultset.getString("title")); + dataset.add(resultset.getString("chosenBy")); + dataset.add(resultset.getString("orderedBy")); + dataset.add(resultset.getString("Data")); + dataset.add(resultset.getString("hinweis")); + data.add(dataset); + } + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + + return data; + + } + + public List loadDatabaseData() throws SQLException + { + List applicationModels = new ArrayList(); + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.dbLocation ); + if ( connection != null ){ + + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + ResultSet resultset = stmt_baseQuery_getAllDatasets.executeQuery(Constants.baseQuery_getAllDatasets); + while (resultset.next()) { + + + applicationModels.add(new FondsManager_applicationModel( + resultset.getInt("applicationID"), + resultset.getString("initialEmail"), + resultset.getString("notes"), + resultset.getString("title"), + resultset.getString("publisher"), + resultset.getString("journalTitle"), + resultset.getString("submitDate"), + resultset.getString("releaseDate"), + resultset.getString("costPrognosed"), + resultset.getString("currency"), + resultset.getString("costLoc"), + resultset.getString("correspondingAuthorIsPhMember"), + resultset.getString("partialFeesAccepted"), + resultset.getString("fundingAcknowledgemetAccepted"), + resultset.getString("oaGreenAccepted"), + resultset.getString("applicationStage"), + resultset.getString("emailCostPersonResponsible"), + resultset.getString("comment_intern"), + resultset.getInt("authorID"), + resultset.getString("email"), + resultset.getString("firstname"), + resultset.getString("lastname"), + resultset.getString("orcid"), + resultset.getString("phone") + )); + } + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + connection.close(); + } + + return applicationModels; + + } + + + + public void updateComment_Intern(String id, String comment) + { + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.dbLocation ); + if ( connection != null ){ + + + String query = String.format(Constants.updateComment_Intern, comment, id); + + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + stmt_baseQuery_getAllDatasets.execute(query); + + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + try { + connection.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + + + public void updateApplicationStage(String id, String stage) + { + Connection connection = null; + try{ + connection = DriverManager.getConnection( "jdbc:sqlite:" + Constants.dbLocation ); + if ( connection != null ){ + + + String query = String.format(Constants.updateApplicationStage, stage, id); + + Statement stmt_baseQuery_getAllDatasets = connection.createStatement(); + stmt_baseQuery_getAllDatasets.execute(query); + + } + } + catch ( Exception ex ) { + System.err.println( ex.getClass().getName() + ": " + ex.getMessage() ); + System.out.println("y"); + } finally + { + try { + connection.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + /* + + Statement stmt = connection.createStatement(); + stmt.execute("create table IF NOT EXISTS test(id integer, value text);"); + Statement stmt1 = connection.createStatement(); + stmt1.execute("insert into test values (2, 'xyz');"); + Statement stmt2 = connection.createStatement(); + ResultSet resultset = stmt2.executeQuery("select * from test;"); + + while (resultset.next()) { + System.out.println(resultset.getInt("id") + "\t" + + resultset.getString("value") + "\t"); + } + + + */ + +} diff --git a/src/logic_reiheAPicker/FondsManager_getDataFromEmail.java b/src/logic_reiheAPicker/FondsManager_getDataFromEmail.java new file mode 100644 index 0000000..a4a9c69 --- /dev/null +++ b/src/logic_reiheAPicker/FondsManager_getDataFromEmail.java @@ -0,0 +1,573 @@ +package logic_reiheAPicker; + +import java.util.Date; + +public class FondsManager_getDataFromEmail { + + private static String[] splitEmailText(String text) + { + return text.split("\r\n"); + } + + private static String convertDate(String mailDate) + { + return mailDate.substring(6)+"-"+mailDate.substring(3,5)+"-"+mailDate.substring(0,2); + } + + public static String get_notes(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Anmerkungen:"; + boolean isOneLineField = false; + String endMarker = "This email was sent by"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + + } else if (line.contains(endMarker)) + { + return returnString; + } + } + return returnString; + } + + + public static String get_publisher(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Verlag:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + + public static String get_journalTitle(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Zeitschrift:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + + public static String get_submitDate(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Datum der Einreichung:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return convertDate(returnString); + } + public static String get_releaseDate(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "(Voraussichtliches) Erscheinungsdatum:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return convertDate(returnString); + } + public static String get_costPrognosed(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Erwartete Kosten:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_currency(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Währung:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + + public static String get_costLoc(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Kostenstelle:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_correspondingAuthorIsPhMember(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Corresponding/Submitting Author ist Mitglied der Pädagogischen Hochschule Freiburg:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_partialFeesAccepted(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Die Übernahme der anteiligen Publikationskosten ist gewährleistet:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_fundingAcknowledgemetAccepted(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Im Falle einer Förderung werde ich der Publikation ein Funding Acknowledgement beifügen:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_oaGreenAccepted(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Mit der Zweitveröffentlichung auf OPUS erkläre ich mich einverstanden:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_applicationStage(String text) + { + return "0"; + } + + public static String get_email(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Ihre PH-E-Mail-Adresse:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_firstname(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Vorname:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_lastname(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Nachname:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_title(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "Titel des Aufsatzes:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + public static String get_orcid(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "ORCID:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } + + public static String get_emailCostResponsiblePerson(String text) + { + String[] textArray = splitEmailText(text); + String startMarker = "E-Mail Adresse des Haushaltsbevollmächtigten bzw. des Projektleiters der angegebenen Kostenstelle:"; + boolean isOneLineField = true; + String endMarker = "This email was sent by Pädagogische Hochschule Freiburg from URL:"; + + + String returnString = ""; + boolean startMakerDetected = false; + + for (String line : textArray) + { + if (line.contains(startMarker)) + { + if (isOneLineField) + { + return line.substring(startMarker.length()+1); + } else + { + returnString = line.substring(startMarker.length()+1); + startMakerDetected = true; + } + } else if (startMakerDetected && !isOneLineField && !line.contains(endMarker)) + { + returnString += "\r\n" + line; + } + } + return returnString; + } +} diff --git a/src/logic_reiheAPicker/GetButtonPics.java b/src/logic_reiheAPicker/GetButtonPics.java new file mode 100644 index 0000000..e1d2a38 --- /dev/null +++ b/src/logic_reiheAPicker/GetButtonPics.java @@ -0,0 +1,304 @@ +package logic_reiheAPicker; + +import java.io.File; +import java.io.FileInputStream; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import var_reiheAPicker.Constants; + +public class GetButtonPics { + + private static Image getImage(String resName) + { + File f = new File(resName); + if(f.exists() && !f.isDirectory()) { + + FileInputStream inputStream; + Image image = null; + try + { + inputStream = new FileInputStream(resName); + image = new Image(inputStream); + } + catch (Exception e) + { + return null; + } + return image; + } + return null; + } + + public static Image getButtonImage_ctrl() + { + if (Constants.ShowPicsInsteadOfButton) + { + return getImage(Constants.ResFolder+Constants.ResImageNamectrlPic); + } else + { + return getImage(Constants.ResFolder+Constants.ResImageNamectrlButton); + } + } + + + public static Image getButtonImage_Regulations() + { + return getImage(Constants.ResFolder+Constants.ResImageNameRegulations); + + } + + public static Image getButtonImage_SearchFolderOrFile() + { + return getImage(Constants.ResFolder+Constants.ResImageSearchFolderFile); + + } + + public static Image getButtonImage_LegalInfo() + { + return getImage(Constants.ResFolder+Constants.ResImageNameLegalInfo); + } + + public static Image getButtonImage_arrowDown() + { + return getImage(Constants.ResFolder+Constants.ResImageNamearrowDown); + } + + public static Image getButtonImage_arrowUp() + { + return getImage(Constants.ResFolder+Constants.ResImageNamearrowUp); + } + + public static Image getButtonImage_arrowLeft() + { + return getImage(Constants.ResFolder+Constants.ResImageNamearrowLeft); + } + + public static Image getButtonImage_arrowRight() + { + return getImage(Constants.ResFolder+Constants.ResImageNamearrowRight); + } + + public static Image getButtonImage_F1() + { + return getImage(Constants.ResFolder+Constants.ResImageNamef1); + } + + public static Image getButtonImage_F2() + { + return getImage(Constants.ResFolder+Constants.ResImageNamef2); + } + + public static Image getButtonImage_F3() + { + return getImage(Constants.ResFolder+Constants.ResImageNamef3); + } + + public static Image getButtonImage_F4() + { + return getImage(Constants.ResFolder+Constants.ResImageNamef4); + } + + public static Image getButtonImage_F5() + { + return getImage(Constants.ResFolder+Constants.ResImageNamef5); + } + + public static Image getButtonImage_F6() + { + return getImage(Constants.ResFolder+Constants.ResImageNamef6); + } + + public static Image getButtonImage_F7() + { + return getImage(Constants.ResFolder+Constants.ResImageNamef7); + } + + public static Image getButtonImage_refresh() + { + return getImage(Constants.ResFolder+Constants.ResImageRefresh); + } + + + + + public static Image getButtonImage_importButton() + { + return getImage(Constants.ResFolder+Constants.ResImageNameimport); + } + + public static Image getButtonImage_backspace() + { + return getImage(Constants.ResFolder+Constants.ResImageNameBackspace); + } + + public static Image getButtonImage_verticalLine() + { + return getImage(Constants.ResFolder+Constants.ResImageVerticalLine); + } + + public static Image getButtonImage_closedEye() + { + return getImage(Constants.ResFolder+Constants.ResImageclosedEye); + } + + public static Image getButtonImage_TooltipIcon() + { + return getImage(Constants.ResFolder+Constants.ResImageTooltipIcon); + } + + + + public static Image getButtonImage_Narrower() { + return getImage(Constants.ResFolder+Constants.ResImageNarrower); + } + public static Image getButtonImage_Smaller() { + return getImage(Constants.ResFolder+Constants.ResImageSmaller); + } + public static Image getButtonImage_Taller() { + return getImage(Constants.ResFolder+Constants.ResImageTaller); + } + public static Image getButtonImage_Wider() { + return getImage(Constants.ResFolder+Constants.ResImageWider); + } + public static Image getButtonImage_FontTaller() { + return getImage(Constants.ResFolder+Constants.ResImageFontTaller); + } + public static Image getButtonImage_FontSmaller() { + return getImage(Constants.ResFolder+Constants.ResImageFontSmaller); + } + + + public static Image getButtonImage_ResImageHelpbestandsliteratur() { + return getImage(Constants.ResFolder+Constants.ResImageHelpbestandsliteratur); + } + public static Image getButtonImage_ResImageHelpCatSearch1() { + return getImage(Constants.ResFolder+Constants.ResImageHelpCatSearch1); + } + + public static Image getButtonImage_ResImageHelpDDCWhitelist() { + return getImage(Constants.ResFolder+Constants.ResImageHelpDDCWhitelist); + } + public static Image getButtonImage_ResImageHelpmarkings() { + return getImage(Constants.ResFolder+Constants.ResImageHelpmarkings); + } + public static Image getButtonImage_ResImageHelpOpenAccess() { + return getImage(Constants.ResFolder+Constants.ResImageHelpOpenAccess); + } + public static Image getButtonImage_ResImageHelpprogress() { + return getImage(Constants.ResFolder+Constants.ResImageHelpprogress); + } + public static Image getButtonImage_ResImageHelpPublisherBlacklist() { + return getImage(Constants.ResFolder+Constants.ResImageHelpPublisherBlacklist); + } + public static Image getButtonImage_ResImageHelpFieldSettings() { + return getImage(Constants.ResFolder+Constants.ResImageHelpFieldSettings); + } + + + public static Image getButtonImage_QuestionMark_importSettings() + { + return getImage(Constants.ResFolder+Constants.ResImageQuestionMarkImportSettings); + } + + public static Image getButtonImage_QuestionMark_general() + { + return getImage(Constants.ResFolder+Constants.ResImageQuestionMarkgeneral); + } + + public static Image getButtonImage_IHV() + { + return getImage(Constants.ResFolder+Constants.ResImageIHV); + } + + public static Image getButtonImage_IHT() + { + return getImage(Constants.ResFolder+Constants.ResImageIHT); + } + + public static Image getButtonImage_QuestionMark() + { + return getImage(Constants.ResFolder+Constants.ResImageQuestionMark); + } + public static Image getButtonImage_Alt() + { + return getImage(Constants.ResFolder+Constants.ResImageAlt); + } + + public static Image getButtonImage_reiheAPicker() + { + return getImage(Constants.ResFolder+Constants.ResImageReiheAPicker); + } + + public static Image getButtonImage_saveButton() + { + return getImage(Constants.ResFolder+Constants.ResImageSaveButton); + } + + public static Image getButtonImage_isbnChecker() + { + return getImage(Constants.ResFolder+Constants.ResImageIsbnChecker); + } + public static Image getButtonImage_viviButton() + { + return getImage(Constants.ResFolder+Constants.ResImageViviButton); + } + public static Image getButtonImage_snakeButton() + { + return getImage(Constants.ResFolder+Constants.ResImageSnakeButton); + } + + public static Image getButtonImage_enter() + { + if (Constants.ShowPicsInsteadOfButton) + { + return getImage(Constants.ResFolder+Constants.ResImageNameenterPic); + } else + { + return getImage(Constants.ResFolder+Constants.ResImageNameenterButton); + } + } + + public static Image getButtonImage_space() + { + if (Constants.ShowPicsInsteadOfButton) + { + return getImage(Constants.ResFolder+Constants.ResImageNamespacePic); + } else + { + return getImage(Constants.ResFolder+Constants.ResImageNamespaceButton); + } + } + + public static Image getButtonImage_shift() + { + if (Constants.ShowPicsInsteadOfButton) + { + return getImage(Constants.ResFolder+Constants.ResImageNameshiftPic); + } else + { + return getImage(Constants.ResFolder+Constants.ResImageNameshiftButton); + } + } + + + + + + + public static ImageView turnPicIntoImageView(Image image, int height) + { + if (image != null) + { ImageView view = new ImageView(image); + view.setFitHeight(height); + view.setPreserveRatio(true); + return view; + } + return null; + } + + public static ImageView turnPicIntoImageView(Image image) + { + return turnPicIntoImageView(image, Constants.TooltipDefaultHeight); + } + +} diff --git a/src/logic_reiheAPicker/ImportExportFileHandler.java b/src/logic_reiheAPicker/ImportExportFileHandler.java new file mode 100644 index 0000000..ed8b526 --- /dev/null +++ b/src/logic_reiheAPicker/ImportExportFileHandler.java @@ -0,0 +1,514 @@ +package logic_reiheAPicker; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.nio.charset.StandardCharsets; +import java.nio.file.CopyOption; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.apache.commons.io.ByteOrderMark; +import org.apache.commons.io.input.BOMInputStream; +import org.apache.commons.lang.StringUtils; +import org.json.JSONArray; +import org.json.JSONObject; + +import javafx.stage.DirectoryChooser; +import javafx.stage.FileChooser; +import javafx.stage.FileChooser.ExtensionFilter; +import var_reiheAPicker.Constants; +import javafx.stage.Stage; + + + +//handles imports and exports for multipApiCall: Excel/csv/tsv import and Excel export +public class ImportExportFileHandler { + + public static List> importCsvOrTsvOrPsf() throws IOException + { + File file = getFileOrFolder(true); + return(getFileStringListFromFile(file)); + } + + public String copyFileToLocationReturnPath(File from, String toPathNoFileName) throws IOException + { + Path fromFile = Paths.get(from.getAbsolutePath()); + Path toFile = Paths.get(toPathNoFileName + from.getName()); + Files.copy(fromFile, toFile); + return toPathNoFileName + from.getName(); + } + + public static void exportFile(String contentString, String location) + { + + try{ + + /* + javafx.stage.FileChooser fileChooser = new javafx.stage.FileChooser(); + fileChooser.getExtensionFilters().addAll(new ExtensionFilter("All Files", "*.*")); + File userSelection = fileChooser.showSaveDialog(new Stage()); + */ + File file = new File(location); + Writer fstream = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8); + BufferedWriter out = new BufferedWriter(fstream); + out.write(contentString); + //Close the output stream + out.close(); + }catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + } + } + + public static void saveFileList(List list, String location) + { + + try{ + + File file = new File(location); + Writer fstream = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8); + BufferedWriter out = new BufferedWriter(fstream); + + + //FileWriter fstream = new FileWriter(location); + //BufferedWriter out = new BufferedWriter(fstream); + + String saveString = ""; + + for(String column : list) + { + saveString += column; + saveString += "\t"; + } + + + + out.write(saveString); + + //Close the output stream + out.close(); + }catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + } + } + + public static void saveFileListList(List> list, String location) + { + + try{ + + File file = new File(location); + Writer fstream = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8); + BufferedWriter out = new BufferedWriter(fstream); + + String saveString = ""; + for (List line : list) + { + for(String column : line) + { + saveString += column; + saveString += "\t"; + } + saveString += "\n"; + } + + out.write(saveString); + //Close the output stream + out.close(); + }catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + } + } + + public void openExportFileFolder() throws IOException + { + PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + Runtime.getRuntime().exec("explorer " + propertyFileHandler.propertyFileModel.get_settings_ExportFileFolder()); + } + + public static void openSaveFileFolder() throws IOException + { + PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + Runtime.getRuntime().exec("explorer " + propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder()); + } + + public static String getTimeStamp() + { + SimpleDateFormat formatter= new SimpleDateFormat("yyyyMMdd_HHmmss"); + String date = formatter.format(System.currentTimeMillis()); + return date; + } + + public static File getFileOrFolder(boolean folderFalseFileTrue) + { + //text: User input; + File fileChosen = null; + + + + if (folderFalseFileTrue) + { + FileChooser chooser = new javafx.stage.FileChooser(); + chooser.getExtensionFilters().addAll(new ExtensionFilter("Alle Dateien", "*.*"), + new ExtensionFilter("CSV", "*.csv*"), + new ExtensionFilter("TSV", "*.tsv*"), + new ExtensionFilter("Picker Save Files", "*.psv*")); + + chooser.setTitle("Bitte Zieldatei auswählen"); + fileChosen = chooser.showOpenDialog(new Stage()); + + + } else + { + DirectoryChooser directoryChooser = new javafx.stage.DirectoryChooser(); + directoryChooser.setTitle("Bitte Zielordner auswählen"); + fileChosen = directoryChooser.showDialog(new Stage()); + } + + + if (fileChosen == null) + { + System.out.println("Vorgang abgebrochen oder Datei nicht gefunden."); + return null; + } + + return fileChosen; + } + + //global import method, will handle csv/tsv + //will create and return a list (lines) of a List (columns) + //the subsequent mechanism all handle that specific file. + /* + public static String getFileStringListFromFile(String fileString) throws IOException + { + List> rows = new ArrayList>(); + InputStream inputStream = new FileInputStream(new File(fileString)); + + String defaultEncoding = "UTF-8"; + String separator = ""; + + BOMInputStream bOMInputStream = new BOMInputStream(inputStream); + ByteOrderMark bom = bOMInputStream.getBOM(); + String charsetName = bom == null ? defaultEncoding : bom.getCharsetName(); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new BufferedInputStream(bOMInputStream), charsetName)); + String line; + String file = ""; + while ((line = bufferedReader.readLine()) != null) { + file += line; + + } + inputStream.close(); + bufferedReader.close(); + + + return file; + } + */ + + public static void importFondsManagerFilesFromImportLocation() throws IOException + { + PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + List importFiles; + String defaultEncoding = "UTF-8"; + List> rows = new ArrayList>(); + + try (Stream walk = Files.walk(Paths.get(Constants.importLocation), 2)) { + importFiles = walk + .filter(p -> !Files.isDirectory(p)) // not a directory + .map(p -> p.toString().toLowerCase()) // convert path to string + .filter(f -> f.endsWith("eml")) // check end with + .collect(Collectors.toList()); // collect all matched to a List + } + + boolean columnsAreSet = false; + + for (String file : importFiles) + { + File currentFile = new File(file); + InputStream inputStream = new FileInputStream(currentFile.getAbsolutePath()); + BOMInputStream bOMInputStream = new BOMInputStream(inputStream); + ByteOrderMark bom = bOMInputStream.getBOM(); + String charsetName = bom == null ? defaultEncoding : bom.getCharsetName(); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new BufferedInputStream(bOMInputStream), charsetName)); + String line; + boolean filePathSet = false; + String mailtext = ""; + + while ((line = bufferedReader.readLine()) != null) { + mailtext+= line + "\r\n"; + } + inputStream.close(); + DataBaseHandler dataBaseHandler = new DataBaseHandler(); + try { + dataBaseHandler.fetchDataFromMailAndSave(mailtext); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + inputStream.close(); + System.out.println(currentFile.toPath()); + System.out.println(Constants.importLocation + currentFile.getName()); + File destFile = new File(Constants.importDoneLocation + currentFile.getName()); + if (destFile.exists()) + { + destFile = new File(Constants.importDoneLocation + currentFile.getName() + "_copy"); + Files.move(currentFile.toPath(), destFile.toPath()); + } else + { + Files.move(currentFile.toPath(), destFile.toPath()); + } + + } + + } + + public static List> importOrderFilesFromImportLocation() throws IOException + { + PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + List importFiles; + String defaultEncoding = "UTF-8"; + List> rows = new ArrayList>(); + + try (Stream walk = Files.walk(Paths.get(propertyFileHandler.propertyFileModel.get_settings_Order_ImportVerzeichnisNameTextField()), 2)) { + importFiles = walk + .filter(p -> !Files.isDirectory(p)) // not a directory + .map(p -> p.toString().toLowerCase()) // convert path to string + .filter(f -> f.endsWith("ptf")) // check end with + .collect(Collectors.toList()); // collect all matched to a List + } + + ArrayList columns = new ArrayList(); + ArrayList values = new ArrayList(); + boolean columnsAreSet = false; + + for (String file : importFiles) + { + File currentFile = new File(file); + InputStream inputStream = new FileInputStream(currentFile.getAbsolutePath()); + BOMInputStream bOMInputStream = new BOMInputStream(inputStream); + ByteOrderMark bom = bOMInputStream.getBOM(); + String charsetName = bom == null ? defaultEncoding : bom.getCharsetName(); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new BufferedInputStream(bOMInputStream), charsetName)); + String line; + boolean filePathSet = false; + while ((line = bufferedReader.readLine()) != null) { + + if (columnsAreSet == false && line!= null && line.contains(": ")) + { + columns.add(line.split(": ", 2)[0].replaceAll("\\s+","")); + if (!filePathSet) + { + columns.add("Dateipfad"); + } + } + if (line!= null && !line.isBlank() && line.length()>2 && line.contains(": ")) + { + System.out.println(line); + values.add(line.split(": ", 2)[1]); + if (!filePathSet) + { + values.add(file); + filePathSet = true; + } + } + } + inputStream.close(); + + if (rows.size() < 1) + { + rows.add(columns); + columnsAreSet = true; + } + rows.add(values); + values = new ArrayList(); + } + return rows; + + } + + public static String getOrdererFromSingleTitleFromFile(String filepath, int index, String ordererColumnName) throws IOException + { + + + String defaultEncoding = "UTF-8"; + File currentFile = new File(filepath); + + if(!currentFile.exists() || currentFile.isDirectory()) { + return "Fehler: Datei konnte nicht gefunden werden! Zwischenzeitliche Bearbeitung möglich."; + } + + InputStream inputStream = new FileInputStream(currentFile.getAbsolutePath()); + BOMInputStream bOMInputStream = new BOMInputStream(inputStream); + ByteOrderMark bom = bOMInputStream.getBOM(); + String charsetName = bom == null ? defaultEncoding : bom.getCharsetName(); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new BufferedInputStream(bOMInputStream), charsetName)); + String line; + + while ((line = bufferedReader.readLine()) != null) { + + if (line!= null && !line.isBlank() && line.length()>2 && line.contains(": ") && line.contains(ordererColumnName)) + { + bufferedReader.close(); + return(line.split(": ", 2)[1]); + } + } + bufferedReader.close(); + return "Fehler: Aktuelle Zuweisung konnte nicht abgerufen werden"; + + } + + public static void deleteFile(String filepath) + { + File file = new File(filepath); + if (file.delete()) { + System.out.println("Deleted the file: " + file.getName()); + } else { + System.out.println("Failed to delete the file."); + } + } + + + + + //global import method, will handle csv/tsv + //will create and return a list (lines) of a List (columns) + //the subsequent mechanism all handle that specific file. + public static List> getFileStringListFromFile(File fileChosen) throws IOException + { + List> rows = new ArrayList>(); + if (fileChosen.exists()) + { + + + InputStream inputStream = new FileInputStream(fileChosen.getAbsolutePath()); + + String defaultEncoding = "UTF-8"; + String separator = ""; + + BOMInputStream bOMInputStream = new BOMInputStream(inputStream); + ByteOrderMark bom = bOMInputStream.getBOM(); + String charsetName = bom == null ? defaultEncoding : bom.getCharsetName(); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new BufferedInputStream(bOMInputStream), charsetName)); + String line; + while ((line = bufferedReader.readLine()) != null) { + + int commaCounter = 0; + int tabCounter = 0; + int semicolonCounter = 0; + int seperatorCounter = 0; + if (separator.isEmpty()) + { + //count Commas and Tabs in the first line (headings) and use that as a separator + //using comma as separator is a bit weird: Authors often use commas as separators for their names + //might still be useful if people only want to enrich very reduced file (issn/titel/...) + for (char character : line.toCharArray()) + { + if (character == ',') + { + commaCounter ++; + } else if (character == '\t') + { + tabCounter ++; + } else if (character == ';') + { + semicolonCounter ++; + } + } + + if (commaCounter > tabCounter && commaCounter > semicolonCounter) + { + separator = ","; + seperatorCounter = commaCounter; + } + if (tabCounter > commaCounter && tabCounter > semicolonCounter) + { + separator = "\t"; + seperatorCounter = tabCounter; + } + if (semicolonCounter > tabCounter && semicolonCounter > commaCounter) + { + separator = ";"; + seperatorCounter = semicolonCounter; + } + + //separator = (commaCounter > tabCounter) ? "," : "\t"; + } + + if (separator.isEmpty()) + { + //no separator? maybe its a file with only one issn per line... + ArrayList columns = new ArrayList(); + columns.add(line.toString()); + rows.add(columns); + } else + { + + + String[] array = line.split(separator); + ArrayList columns = new ArrayList(); + for (String string : array) + { + columns.add(string); + } + rows.add(columns); + } + + } + inputStream.close(); + bufferedReader.close(); + + } + return rows; + + } + + + //lineformatter: UI uses monospace font. + //so we need to count the chars in order to display the data properly + // i.e.: + //column A: Value 1 + //col. B: Value 2 + public static String lineFormatter(String heading, String data) + { + if (heading.toCharArray().length > 25) + { + heading = heading.substring(0,20); + heading += " (..): "; + } else + { + heading += ":"; + int counter = 29 - heading.toCharArray().length; + for (;counter > 0; counter --) + { + heading += " "; + } + + } + return heading + data + "\n"; + + } + + + + + +} \ No newline at end of file diff --git a/src/logic_reiheAPicker/JarWinkler.java b/src/logic_reiheAPicker/JarWinkler.java new file mode 100644 index 0000000..6fab05e --- /dev/null +++ b/src/logic_reiheAPicker/JarWinkler.java @@ -0,0 +1,65 @@ +package logic_reiheAPicker; + +public class JarWinkler { + + public static double compute(final String s1, final String s2) { + // lowest score on empty strings + if (s1 == null || s2 == null || s1.isEmpty() || s2.isEmpty()) { + return 0; + } + // highest score on equal strings + if (s1.equals(s2)) { + return 1; + } + // some score on different strings + int prefixMatch = 0; // exact prefix matches + int matches = 0; // matches (including prefix and ones requiring transpostion) + int transpositions = 0; // matching characters that are not aligned but close together + int maxLength = Math.max(s1.length(), s2.length()); + int maxMatchDistance = Math.max((int) Math.floor(maxLength / 2.0) - 1, 0); // look-ahead/-behind to limit transposed matches + // comparison + final String shorter = s1.length() < s2.length() ? s1 : s2; + final String longer = s1.length() >= s2.length() ? s1 : s2; + for (int i = 0; i < shorter.length(); i++) { + // check for exact matches + boolean match = shorter.charAt(i) == longer.charAt(i); + if (match) { + if (i < 4) { + // prefix match (of at most 4 characters, as described by the algorithm) + prefixMatch++; + } + matches++; + continue; + } + // check fro transposed matches + for (int j = Math.max(i - maxMatchDistance, 0); j < Math.min(i + maxMatchDistance, longer.length()); j++) { + if (i == j) { + // case already covered + continue; + } + // transposition required to match? + match = shorter.charAt(i) == longer.charAt(j); + if (match) { + transpositions++; + break; + } + } + } + // any matching characters? + if (matches == 0) { + return 0; + } + // modify transpositions (according to the algorithm) + transpositions = (int) (transpositions / 2.0); + // non prefix-boosted score + double score = 0.3334 * (matches / (double) longer.length() + matches / (double) shorter.length() + (matches - transpositions) + / (double) matches); + if (score < 0.7) { + return score; + } + // we already have a good match, hence we boost the score proportional to the common prefix + double boostedScore = score + prefixMatch * 0.1 * (1.0 - score); + return boostedScore; + } + +} diff --git a/src/logic_reiheAPicker/PropertyFileHandler.java b/src/logic_reiheAPicker/PropertyFileHandler.java new file mode 100644 index 0000000..e3817d2 --- /dev/null +++ b/src/logic_reiheAPicker/PropertyFileHandler.java @@ -0,0 +1,92 @@ +package logic_reiheAPicker; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.nio.charset.StandardCharsets; +import java.util.Properties; + +import models_reiheAPicker.PropertiesFileModel; + +public class PropertyFileHandler { + + private static final PropertyFileHandler propertyFileHandler = new PropertyFileHandler(); + //propertiesFile Location + private String propertiesFileString = "./reiheAconfig.properties"; + //addition 7.9.20; + public PropertiesFileModel propertyFileModel; + + PropertyFileHandler() + { + try { + initConfigFile(); + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static PropertyFileHandler getInstance() { + return propertyFileHandler; + } + + //Opens config file and loads config details + //If config file cannot be found: Create default Config file + private void initConfigFile() throws IOException + { + File configFile = new File(this.propertiesFileString); + + if (!configFile.exists()) + { + configFile.createNewFile(); + this.propertyFileModel = new PropertiesFileModel(); + savePropertiesFile(propertyFileModel.getProperties(), this.propertiesFileString); + + } else if (this.propertyFileModel == null) + { + this.propertyFileModel = new PropertiesFileModel(); + InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(configFile), StandardCharsets.UTF_8); + Properties properties = new Properties(); + properties.load(inputStreamReader); + this.propertyFileModel.setProperties(properties); + + } else + { + InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(configFile), StandardCharsets.UTF_8); + Properties properties = new Properties(); + properties.load(inputStreamReader); + this.propertyFileModel.setProperties(properties); + } + } + + + //Saves Changes in "Options" Tab to config file + public void setConfigDetailGeneral(String settings_ExportFileFolder) throws IOException + { + this.propertyFileModel.setGeneralProperties(settings_ExportFileFolder); + savePropertiesFile(this.propertyFileModel.getProperties(), this.propertiesFileString); + return; + } + + public void setConfigDetail() throws IOException + { + savePropertiesFile(this.propertyFileModel.getProperties(), this.propertiesFileString); + return; + } + + + //Save Properties File + private static void savePropertiesFile(Properties properties, String location) throws IOException + { + File helpTextFile = new File(location); + + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(helpTextFile), StandardCharsets.UTF_8); + properties.store(outputStreamWriter, "Properties"); + outputStreamWriter.close(); + } + +} \ No newline at end of file diff --git a/src/logic_reiheAPicker/QueueManager.java b/src/logic_reiheAPicker/QueueManager.java new file mode 100644 index 0000000..086825e --- /dev/null +++ b/src/logic_reiheAPicker/QueueManager.java @@ -0,0 +1,2416 @@ +package logic_reiheAPicker; + +import java.awt.Desktop; +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.ChoiceDialog; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressIndicator; +import javafx.scene.control.TextInputDialog; +import javafx.stage.StageStyle; +import models_reiheAPicker.DdcWhiteListModel; +import models_reiheAPicker.ListEnum; +import models_reiheAPicker.PublisherAmountBooksModel; +import var_reiheAPicker.Constants; +import var_reiheAPicker.Publishers; + +public class QueueManager { + + PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + + private List> queueTitles = null; + private List> nopeTitles = new ArrayList>(); + private List> pickTitles = new ArrayList>(); + + private List ddcWhitelistModels; + private String[] publisherBlacklist; + + public int pickTitlescurrentIteration; + public int nopeTitlescurrentIteration; + public int queueTitlescurrentIteration; + + private int contentsTextIndex = -1; + private int contentsIndex = -1; + private int ddcIndex = -1; + private int isbnIndex = -1; + private int publisherIndex = -1; + private int authorIndex = -1; + private int pathIndex = -1; + private int statusIndex = -1; + private int noteIndex = -1; + private int holdingsIndex = -1; + private int caseHandledByIndex = -1; + private int titleIndexOAModeOnly = -1; + private int idIndex = -1; + private int journalIndex = -1; + private int orcidIndex = -1; + Label progressLabel; + + private ApiCallerClass apiCaller; + + public List ColumnNames; + public double initialSizeQueueTitles = -1; + + public int getISBNIndex() + { + setIsbnIndex(); + return this.isbnIndex; + } + + public void setNopeIteratorToLast() + { + this.nopeTitlescurrentIteration = this.nopeTitles.size() - 1; + } + + public void saveProgress() + { + String dateTimeFileString = ImportExportFileHandler.getTimeStamp(); + + if (!this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder().isBlank()) + { + new File(this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + + dateTimeFileString).mkdirs(); + + + + String cFile = propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + + dateTimeFileString + "\\" + "c" + ".txt"; + String nFile = propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + + dateTimeFileString + "\\" + "n" + ".txt"; + String qFile = this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + + dateTimeFileString + "\\" + "q" + ".txt"; + String pFile = this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + + dateTimeFileString + "\\" + "p" + ".txt"; + String saveLoadFile = this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + + dateTimeFileString + "\\" + dateTimeFileString + ".psf"; + + String saveLoadFileContent = "[Picker Save File]" + "\n" + cFile + "\n" + nFile + "\n" + qFile + "\n" + pFile; + + + + + + + ImportExportFileHandler.exportFile(saveLoadFileContent, saveLoadFile); + + if (this.ColumnNames != null && this.ColumnNames.size() > 0) + { + ImportExportFileHandler.saveFileList(this.ColumnNames, cFile); + } else + { + ImportExportFileHandler.saveFileList(null, cFile); + } + + if (this.nopeTitles != null && this.nopeTitles.size() > 0) + { + // ImportExportFileHandler.saveFileListList(this.nopeTitles, nFile); + // dont export nopeFiles. Not needed! + } else + { + ImportExportFileHandler.saveFileListList(null, nFile); + } + + if (this.queueTitles != null && this.queueTitles.size() > 0) + { + ImportExportFileHandler.saveFileListList(this.queueTitles, qFile); + } else + { + ImportExportFileHandler.saveFileListList(null, qFile); + } + + if (this.pickTitles != null && this.pickTitles.size() > 0) + { + ImportExportFileHandler.saveFileListList(this.pickTitles, pFile); + } else + { + ImportExportFileHandler.saveFileListList(null, pFile); + } + try { + ImportExportFileHandler.openSaveFileFolder(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + + public QueueManager(List columnNames, List> ntitles, List> qtitles, List> ptitles) + { + this.apiCaller = new ApiCallerClass(); + this.ColumnNames = columnNames; + this.nopeTitles = ntitles; + this.queueTitles = qtitles; + this.pickTitles = ptitles; + double titleCount = 0; + if (this.nopeTitles != null) + { + titleCount += this.nopeTitles.size(); + } + if (this.queueTitles != null) + { + titleCount += this.queueTitles.size(); + } + if (this.pickTitles != null) + { + titleCount += this.pickTitles.size(); + } + this.initialSizeQueueTitles = titleCount; + setIndizes(); + + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + orderModeOnly_moveTitlesIfStatusIsInProgressToRight(); + } + + } + + private void setIndizes() + { + setDdcIndex(); + setIsbnIndex(); + setPublisherIndex(); + setAuthorIndex(); + setContentsIndex(); + setOrderModeIndizes(); + setNoteIndex(); + setHoldingsIndex(); + setCaseHandledByIndex(); + setTitleIndexOAModeOnly(); + setIdIndex(); + setjournalIndex(); + setorcidIndex(); + } + + public String getAmountByPublisherList(ListEnum listEnum) + { + return "";/* + setIndizes(); + int booknumbersfound = 0; + Publishers publishers = new Publishers(); + for (PublisherAmountBooksModel publisher : publishers.publishersList) + { + //if (this.getCurrentTitle(listEnum).get(this.publisherIndex).toLowerCase().contains(publisher.publisher.toLowerCase())) + if (this.getCurrentTitle(listEnum) != null && (this.getCurrentTitle(listEnum).get(this.publisherIndex).toLowerCase().contains(publisher.publisher.toLowerCase()) || JarWinkler.compute(this.getCurrentTitle(ListEnum.QUEUE).get(this.publisherIndex).toLowerCase(), publisher.publisher.toLowerCase())>0.95)) + { + if (booknumbersfound < publisher.numberOfBooks) + { + booknumbersfound = publisher.numberOfBooks; + } + } + } + return String.valueOf(booknumbersfound); + */ + } + + public QueueManager(List> titles, ProgressIndicator progressIndicator, Label progressLabel) + { + this.apiCaller = new ApiCallerClass(); + this.progressLabel = progressLabel; + + titles.get(0).add(1, Constants.ColumnNote); + titles.get(0).add(2, Constants.BestandLabel); + titles.get(0).add(3, Constants.ChosenBy); + titles.get(0).add(4, Constants.CaseHandledBy); + titles.get(0).add(5, Constants.Status); + + for (int counter = 1; counter <= titles.size()-1; counter ++) + { + titles.get(counter).add(1, Constants.emptyField); + titles.get(counter).add(2, Constants.emptyField); + if (this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName().isBlank()) + { + titles.get(counter).add(3, Constants.emptyField); + } else + { + titles.get(counter).add(3, this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName()); + } + titles.get(counter).add(4, Constants.emptyField); + titles.get(counter).add(5, Constants.statusPicker); + } + + + if (!this.propertyFileHandler.propertyFileModel.get_settings_API_link().isBlank() && + this.propertyFileHandler.propertyFileModel.get_settings_API_CheckApiAfterImport().equals("true")) + { + setIsbnIndex(titles); + progressIndicator.setVisible(true); + + UpdateDataApiRunable updateDataApiRunable = new UpdateDataApiRunable(titles, this.isbnIndex, progressIndicator, progressLabel); + Thread newThread = new Thread(updateDataApiRunable); + newThread.start(); + + progressIndicator.progressProperty().addListener((observable, oldValue, newValue) -> { + if ((double) newValue >= (double) 1) + { + updateLists(titles); + } + }); + + } else + { + updateLists(titles); + } + } + + public boolean listNullOrEmpty(ListEnum listEnum) + { + List> list = getList(listEnum); + if (list == null || list.size() == 0 || list.isEmpty()) + { + return true; + } + return false; + } + + public boolean titleIsOwnedOrOpenAccess(ListEnum listEnum) + { + List title = getCurrentTitle(listEnum); + if (title != null) + { + if (title.get(Constants.holdingsIndex).contains(Constants.bestandvorhanden) || title.get(Constants.holdingsIndex).contains(Constants.oaMarker)) + { + return true; + } + } + return false; + } + + public String getCurrentIsbn(ListEnum listEnum, boolean onlyGetFirstIsbn) + { + String returnString = ""; + if (listEnum == ListEnum.QUEUE) + { + returnString = this.queueTitles.get(queueTitlescurrentIteration).get(isbnIndex); + } + if (listEnum == ListEnum.PICKS) + { + returnString = this.pickTitles.get(pickTitlescurrentIteration).get(isbnIndex); + } + if (listEnum == ListEnum.NOPES) + { + returnString = this.nopeTitles.get(nopeTitlescurrentIteration).get(isbnIndex); + } + + if (onlyGetFirstIsbn) + { + if (returnString.contains(";")) + { + returnString = returnString.split(";")[0]; + } + } + + return returnString; + } + + public boolean titleIsOwned(ListEnum listEnum) + { + List title = getCurrentTitle(listEnum); + if (title != null) + { + if (title.get(Constants.holdingsIndex).contains(Constants.bestandvorhanden)) + { + return true; + } + } + return false; + } + + public boolean titleIsOpenAccess(ListEnum listEnum) + { + List title = getCurrentTitle(listEnum); + if (title != null) + { + if (title.get(Constants.holdingsIndex).contains(Constants.oaMarker)) + { + return true; + } + } + return false; + } + + public boolean titleApiHasNotYetRun(ListEnum listEnum) + { + List title = getCurrentTitle(listEnum); + if (title != null) + { + if (title.get(Constants.holdingsIndex).contains(Constants.emptyField)) + { + return true; + } + } + return false; + } + + public boolean titleApiCouldNotBeAccessed(ListEnum listEnum) + { + List title = getCurrentTitle(listEnum); + if (title != null) + { + if (title.get(Constants.holdingsIndex).contains(Constants.apiCouldNotBeAccessed)) + { + return true; + } + } + return false; + } + + public void openBill(ListEnum listEnum) throws SQLException + { + DataBaseHandler dataBaseHandler = new DataBaseHandler(); + String file = dataBaseHandler.getFilePathForBillByPublicationId(this.getCurrentID(listEnum)); + try { + Desktop.getDesktop().open(new File(file)); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + public String getCurrentID(ListEnum listEnum) + { + this.setIndizes(); + switch (listEnum) + { + case NOPES: + { + + if (this.nopeTitles.size()>0 && this.nopeTitles.size()-1 >= this.nopeTitlescurrentIteration) + { + return this.nopeTitles.get(this.nopeTitlescurrentIteration).get(this.idIndex); + } + return null; + } + case QUEUE: + { + if (this.queueTitles.size()>0 && this.queueTitles.size()-1 >= this.queueTitlescurrentIteration) + { + return this.queueTitles.get(this.queueTitlescurrentIteration).get(this.idIndex); + } + return null; + + } + case PICKS: + { + if (this.pickTitles.size()>0 && this.pickTitles.size()-1 >= this.pickTitlescurrentIteration) + { + return this.pickTitles.get(this.pickTitlescurrentIteration).get(this.idIndex); + } + return null; + } + } + return null; + } + + + public List getCurrentTitle(ListEnum listEnum) + { + switch (listEnum) + { + case NOPES: + { + + if (this.nopeTitles.size()>0 && this.nopeTitles.size()-1 >= this.nopeTitlescurrentIteration) + { + return this.nopeTitles.get(this.nopeTitlescurrentIteration); + } + return null; + } + case QUEUE: + { + if (this.queueTitles.size()>0 && this.queueTitles.size()-1 >= this.queueTitlescurrentIteration) + { + return this.queueTitles.get(this.queueTitlescurrentIteration); + } + return null; + + } + case PICKS: + { + if (this.pickTitles.size()>0 && this.pickTitles.size()-1 >= this.pickTitlescurrentIteration) + { + return this.pickTitles.get(this.pickTitlescurrentIteration); + } + return null; + } + } + return null; + } + + public List> getList(ListEnum listEnum) + { + switch (listEnum) + { + case NOPES: + { + return this.nopeTitles; + } + case QUEUE: + { + return this.queueTitles; + } + case PICKS: + { + return this.pickTitles; + } + } + return null; + } + + public int getIterator(ListEnum listEnum) + { + switch (listEnum) + { + case NOPES: + { + return this.nopeTitlescurrentIteration; + } + case QUEUE: + { + return this.queueTitlescurrentIteration; + } + case PICKS: + { + return this.pickTitlescurrentIteration; + } + } + return -99; + } + + public void updateLists(List> titles) + { + this.queueTitles = titles.subList(1, titles.size()); + this.ColumnNames = titles.get(0); + this.queueTitlescurrentIteration = 0; + + if (this.initialSizeQueueTitles == -1) + { + this.initialSizeQueueTitles = this.queueTitles.size(); + } + + if (this.propertyFileHandler.propertyFileModel.get_settings_API_CheckApiAfterImport().equals("true") && this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveHoldings().equals("true") && !this.propertyFileHandler.propertyFileModel.get_settings_API_link().isBlank()) + { + removeHoldings(); + } + + if (this.propertyFileHandler.propertyFileModel.get_settings_API_CheckApiAfterImport().equals("true") && this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveOA().equals("true") && !this.propertyFileHandler.propertyFileModel.get_settings_API_link().isBlank()) + { + removeOA(); + } + + if (!this.propertyFileHandler.propertyFileModel.get_settings_DDCWhitelist().isBlank() && !this.propertyFileHandler.propertyFileModel.get_settings_DDCWhitelist().isEmpty()) + { + initiateDdcWhitelist(); + removeUnwantedDDCs(); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_RemoveTitlesWithoutISBNsInQueue().equals("true")) + { + removeTitlesWithoutISBNsInQueue(); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_RemoveDuplicates().equals("true")) + { + removeDuplicatesInQueue(); + } + if (!this.propertyFileHandler.propertyFileModel.get_settings_PublisherBlacklist().isBlank() && !this.propertyFileHandler.propertyFileModel.get_settings_PublisherBlacklist().isEmpty()) + { + initiatePublisherBlacklist(); + removeBadPublishers(); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_BlockBelletristik().equals("true")) + { + removeShortDDCs(); + } + //ChatGPT API GetChatGPT Recommendation + if (var_reiheAPicker.Constants.useChatGPTToCheck) + { + useChatGPTApiGetRecommendation(); + } + + + } + + private static int parseToInt(String input) { + try { + // Attempt to parse the integer + return Integer.parseInt(input.trim()); + } catch (NumberFormatException e) { + // Handle invalid numbers by returning a default value (e.g., 0) + System.err.println("Invalid number format: " + input); + return 0; // Or any other fallback value + } + } + + public void useChatGPTApiGetRecommendation() + { + setIndizes(); + System.out.println(this.queueTitles.size()-1); + for (int counter = 0; counter <= this.queueTitles.size()-1; counter ++) + { + System.out.println(this.queueTitles.size()-1); + System.out.println(counter); + + System.out.println("GPTInquirey: " + this.queueTitles.get(counter).toString()); + + String gptResponse = logic_reiheAPicker.ChatGPTApiCallerClass.chatGPT("title: " + this.queueTitles.get(counter).get(0).replace("\"", "").replace("'", "").replace(":", "").replace("{", "").replace("}", "")); + System.out.println(gptResponse); + try { + String[] parts = gptResponse.split(";"); + // Ensure the split resulted in at least two parts + if (parts.length < 2) { + return; + } + int percentage = parseToInt(parts[0].replace("%", "").replace("'", "")); + String justification = parts[1]; + + if (percentage < 35) + { + System.out.println("moving title to nopes"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + counter --; + } else if (percentage > 90) + { + System.out.println("moving title to picks"); + this.pickTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + counter --; + } + + + } catch (Exception e) { + return; + } + + /* + if (!this.queueTitles.get(counter).get(this.ddcIndex).equals(Constants.emptyField) && !this.queueTitles.get(counter).get(this.ddcIndex).isEmpty()) + { + + + if ((this.queueTitles.get(counter).get(this.ddcIndex).contains("B") && this.propertyFileHandler.propertyFileModel.get_settings_BlockBelletristik().equals("true")) + ||(this.queueTitles.get(counter).get(this.ddcIndex).contains("K") && this.propertyFileHandler.propertyFileModel.get_settings_RemoveJuvenileLiterature().equals("true")) + ||(this.queueTitles.get(counter).get(this.ddcIndex).contains("S") && this.propertyFileHandler.propertyFileModel.get_settings_RemoveSchoolBooks().equals("true"))) + { + System.out.println("removed belletristic book: " + this.queueTitles.get(counter).get(0)); + this.queueTitles.get(counter).set(this.noteIndex, "Aufgrund DDC aussortiert! (K/S/B)"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + counter --; + } + + + } + */ + } + System.out.println("done"); + } + + public void initIterators() + { + if (this.nopeTitlescurrentIteration == -1 && this.nopeTitles != null && this.nopeTitles.size() > 0) + { + this.nopeTitlescurrentIteration = 0; + } + if (this.queueTitlescurrentIteration == -1 && this.queueTitles != null && this.queueTitles.size() > 0) + { + this.queueTitlescurrentIteration = 0; + } + if (this.pickTitlescurrentIteration == -1 && this.pickTitles != null && this.pickTitles.size() > 0) + { + this.pickTitlescurrentIteration = 0; + } + } + + public List> get10Formers(ListEnum listEnum) + { + initIterators(); + + List> titles = getList(listEnum); + int iteration = getIterator(listEnum); + + if (iteration >= 10) + { + return titles.subList(iteration - 10, iteration); + } else if (iteration != 0 && !titles.isEmpty()) + { + return titles.subList(0, iteration); + } + return null; + } + + public List> get10Nexts(ListEnum listEnum) + { + List> titles = getList(listEnum); + int iteration = getIterator(listEnum); + + if (iteration <= titles.size()-11) + { + return titles.subList(iteration + 1, iteration + 10); + } else if (iteration <= titles.size()-1 && !titles.isEmpty()) + { + return titles.subList(iteration + 1, titles.size()); + } + return null; + } + + public String getProgressText() + { + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + int numberToDo = 0; + int numberTotal = (int) this.initialSizeQueueTitles; + for (List title : this.queueTitles) + { + if (title.get(this.caseHandledByIndex).equals(this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName()) || title.get(this.caseHandledByIndex).equals(Constants.emptyField)) + { + numberToDo ++; + } + } + for (List title : this.nopeTitles) + { + if (title.get(this.caseHandledByIndex).equals(this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName()) || title.get(this.caseHandledByIndex).equals(Constants.emptyField)) + { + numberToDo ++; + } + } + return numberToDo + "/" + numberTotal; + + } else + { + return this.queueTitles.size() + "/" + (int) this.initialSizeQueueTitles; + } + + } + + public boolean isExportFolderValid() + { + if (this.propertyFileHandler.propertyFileModel.get_settings_ExportFileFolder().isBlank()) + { + return false; + } + if (this.propertyFileHandler.propertyFileModel.get_settings_ExportFileFolder().isEmpty()) + { + return false; + } + if (this.propertyFileHandler.propertyFileModel.get_settings_ExportFileFolder() == null) + { + return false; + } + return true; + } + + + public double getProgress() + { + + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + int numberToDo = 0; + int numberTotal = (int) this.initialSizeQueueTitles; + for (List title : this.queueTitles) + { + if (title.get(this.caseHandledByIndex).equals(this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName()) || title.get(this.caseHandledByIndex).equals(Constants.emptyField)) + { + numberToDo ++; + } + } + for (List title : this.nopeTitles) + { + if (title.get(this.caseHandledByIndex).equals(this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName()) || title.get(this.caseHandledByIndex).equals(Constants.emptyField)) + { + numberToDo ++; + } + } + double currentProgress = (double) numberToDo / (double) numberTotal; + return currentProgress; + + } else + { + double initialSize = this.initialSizeQueueTitles; + double queueSize = this.queueTitles.size()-1; + double currentProgress = (initialSize - queueSize) / initialSize; + + return (currentProgress); + } + } + + private void removeShortDDCs() + { + setIndizes(); + for (int counter = 0; counter <= this.queueTitles.size()-1; counter ++) + { + if (!this.queueTitles.get(counter).get(this.ddcIndex).equals(Constants.emptyField) && !this.queueTitles.get(counter).get(this.ddcIndex).isEmpty()) + { + + + if ((this.queueTitles.get(counter).get(this.ddcIndex).contains("B") && this.propertyFileHandler.propertyFileModel.get_settings_BlockBelletristik().equals("true")) + ||(this.queueTitles.get(counter).get(this.ddcIndex).contains("K") && this.propertyFileHandler.propertyFileModel.get_settings_RemoveJuvenileLiterature().equals("true")) + ||(this.queueTitles.get(counter).get(this.ddcIndex).contains("S") && this.propertyFileHandler.propertyFileModel.get_settings_RemoveSchoolBooks().equals("true"))) + { + System.out.println("removed belletristic book: " + this.queueTitles.get(counter).get(0)); + this.queueTitles.get(counter).set(this.noteIndex, "Aufgrund DDC aussortiert! (K/S/B)"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + counter --; + } + + + } + } + } + + // + + public boolean checkIfOrdererChangedInTheMeantime(ListEnum listEnum) + { + setIndizes(); + String currentOrderer = this.getCurrentTitle(listEnum).get(this.caseHandledByIndex); + String filePath = this.getCurrentTitle(listEnum).get(this.pathIndex); + { + ImportExportFileHandler importExportFileHandler = new ImportExportFileHandler(); + try { + String result = importExportFileHandler.getOrdererFromSingleTitleFromFile(filePath, this.caseHandledByIndex, Constants.CaseHandledBy); + if (result.contains(currentOrderer)) + { + return true; + } else if (result.contains("Fehler:")) + { + // set alert type + Alert alert = new Alert(AlertType.WARNING); + alert.setTitle("Vorgang abgebrochen!"); + alert.setContentText(result); + alert.show(); + return false; + + } else + { + changeOrderer(listEnum, result); + Alert alert = new Alert(AlertType.WARNING); + alert.setTitle("Vorgang abgebrochen!"); + alert.setContentText("Datensatz wurde zwischenzeitlich von " + result + " bearbeitet. Datensatz wurde aktualsiert, aber nicht verschoben."); + alert.show(); + return false; + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + return true; + } + + public void changeOrderer(ListEnum listEnum, String ordererName) + { + setIndizes(); + switch (listEnum) + { + case NOPES: + { + this.nopeTitles.get(this.nopeTitlescurrentIteration).set(this.caseHandledByIndex, ordererName); + rewriteFile(listEnum); + break; + } + case QUEUE: + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.caseHandledByIndex, ordererName); + rewriteFile(listEnum); + break; + } + case PICKS: + { + this.pickTitles.get(this.pickTitlescurrentIteration).set(this.caseHandledByIndex, ordererName); + rewriteFile(listEnum); + break; + } + } + } + + private void orderModeOnly_moveTitlesIfStatusIsInProgressToRight() + { + setIndizes(); + + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1 && this.statusIndex != -1) + { + for (float counter = 0; counter < this.nopeTitles.size(); counter ++) + { + if (this.nopeTitles.get((int) counter).get(this.statusIndex).equals(Constants.statusOrderInProgress)) + { + System.out.println("Title moved to 'in progress'"); + this.queueTitles.add(this.nopeTitles.get((int) counter)); + this.nopeTitles.remove(this.nopeTitles.get((int) counter)); + if (counter >= 0) + { + counter --; + } + } + + } + } + + } + + private void removeBadPublishers() + { + setIndizes(); + + for (int counter = 0; counter <= this.queueTitles.size()-1; counter ++) + { + if (!this.queueTitles.get(counter).get(this.publisherIndex).equals(Constants.emptyField) && !this.queueTitles.get(counter).get(this.publisherIndex).isEmpty()) + { + for (String publisher : this.publisherBlacklist) + { + + if (this.queueTitles.get(counter).get(this.publisherIndex).toLowerCase().contains(publisher.toLowerCase())) + { + System.out.println("removed publisher: " + publisher + " in: " + this.queueTitles.get(counter).get(0)); + this.queueTitles.get(counter).set(this.noteIndex, "Publisher unerwünscht!"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + if (counter > 0) + { + counter --; + } + } + } + } + } + } + + private void initiatePublisherBlacklist() + { + setIndizes(); + this.publisherBlacklist = this.propertyFileHandler.propertyFileModel.get_settings_PublisherBlacklist().split(";"); + } + + + private void removeTitlesWithoutISBNsInQueue() + { + setIndizes(); + + if (this.propertyFileHandler.propertyFileModel.get_settings_RemoveTitlesWithoutISBNsInQueue().equals("true")) + { + for (int counter = 0; counter <= this.queueTitles.size()-1; counter ++) + { + if (this.queueTitles.get(counter).get(this.isbnIndex) == null || this.queueTitles.get(counter).get(this.isbnIndex).isBlank() || this.queueTitles.get(counter).get(this.isbnIndex).replaceAll("\\s+","").equals(Constants.emptyField)) + { + System.out.println("Title Removed Due to ISBN being null or blank"); + this.queueTitles.get(counter).set(this.noteIndex, "Aufgrund fehlender ISBN aussortiert!"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + if (counter > 0) + { + counter --; + } + } + } + } + return; + } + + + private void removeDuplicatesInQueue() + { + setIndizes(); + + if (this.propertyFileHandler.propertyFileModel.get_settings_RemoveDuplicates().equals("true")) + { + for (int outerCounter = 0; outerCounter <= this.queueTitles.size()-1; outerCounter ++) + { + for (int innerCounter = 0; innerCounter <= this.queueTitles.size()-1; innerCounter ++) + { + if (!this.queueTitles.get(innerCounter).get(this.isbnIndex).equals(Constants.emptyField) && !this.queueTitles.get(innerCounter).get(this.isbnIndex).isEmpty()) + { + if (innerCounter != outerCounter && this.queueTitles.get(outerCounter).get(this.isbnIndex).equals(this.queueTitles.get(innerCounter).get(isbnIndex))) + { + System.out.println("removed duplicate: " + this.queueTitles.get(innerCounter).get(0) + " <---|---> " + this.queueTitles.get(outerCounter).get(0)); + this.queueTitles.get(innerCounter).set(this.noteIndex, "Als Duplikat aussortiert!"); + this.nopeTitles.add(this.queueTitles.get(innerCounter)); + this.queueTitles.remove(this.queueTitles.get(innerCounter)); + if (innerCounter > 0) + innerCounter --; + if (outerCounter > 0) + outerCounter --; + } + } + } + } + } + + if (this.propertyFileHandler.propertyFileModel.get_settings_RemoveDuplicatesByTitle().equals("true")) + { + for (int outerCounter = 0; outerCounter <= this.queueTitles.size()-1; outerCounter ++) + { + for (int innerCounter = 0; innerCounter <= this.queueTitles.size()-1; innerCounter ++) + { + if (innerCounter != outerCounter && this.queueTitles.get(outerCounter).get(0).equals(this.queueTitles.get(innerCounter).get(0))) + { + System.out.println("removed duplicate (byTitle): " + this.queueTitles.get(innerCounter).get(0) + " <---|---> " + this.queueTitles.get(outerCounter).get(0)); + this.queueTitles.get(innerCounter).set(this.noteIndex, "Als Duplikat anhand des Titels aussortiert!"); + this.nopeTitles.add(this.queueTitles.get(innerCounter)); + this.queueTitles.remove(this.queueTitles.get(innerCounter)); + if (innerCounter > 0) + innerCounter --; + if (outerCounter > 0) + outerCounter --; + } + + } + } + } + + } + + private void removeUnwantedDDCs() + { + + setIndizes(); + + if (this.ddcIndex != -1) + { + //iterate through all queue titels + + + + for (int counter = 0; counter <= this.queueTitles.size()-1; counter ++) + { + + + boolean discard = true; + + { + String[] ddcListTitle = this.queueTitles.get(counter).get(this.ddcIndex).replace(" ", "").split(";"); + // and for each queue title, iterate through all ddcs attached + for (String currentddc: ddcListTitle) + { + // and for all ddcs attached, iterate through all ddc whiteListModels + for (DdcWhiteListModel ddcWhitelistModel: this.ddcWhitelistModels) + { + //tryparse, skip if it cant. + + double ddcNumber = tryParseDouble(currentddc); + + //if current ddc whitelist matches + if (ddcWhitelistModel.getCovers0to100() && discard) + { + // case: ddc 450 + + // 450/100 = 4,5 (int) -> = 4; + // 4+1 = 5; + // 5 * 100 = 500 + // ergo: DDC of titel must be smaller than 500 (= [450-500[) + int ddcMaxRange = (((int) (ddcWhitelistModel.getDdcNumber() / 100)) + 1) * 100; + + + if (ddcNumber >= ddcWhitelistModel.getDdcNumber() && ddcNumber < ddcMaxRange) + { + discard = false; + } + } else if (ddcNumber == ddcWhitelistModel.getDdcNumber() && discard) + { + discard = false; + } + } + } + } + + + if (discard) + { + System.out.println("removed title due to DDC: " + this.queueTitles.get(counter).get(this.ddcIndex)); + this.queueTitles.get(counter).set(this.noteIndex, "Anhand DDC aussortiert!"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + counter --; + } + } + + } + } + + public double tryParseDouble(String value) { + try { + + return Double.parseDouble(value); + + } catch (NumberFormatException e) { + if (!value.equals("B") && !value.equals("K") && !value.equals("S")) + { + System.out.println("cannot parse DDC: " + value); + } + return -1; + } + } + + private void removeHoldings() + { + setIndizes(); + for (int counter = 0; counter <= this.queueTitles.size()-1; counter ++) + { + if (this.queueTitles.get(counter).get(this.holdingsIndex).contains(Constants.bestandvorhanden)) + { + System.out.println("removed book that we already own: " + this.queueTitles.get(counter).get(0)); + this.queueTitles.get(counter).set(this.noteIndex, "Aufgrund Bestandsnachweis aussortiert!"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + counter--; + + + } + + } + } + + private void removeOA() + { + for (int counter = 0; counter <= this.queueTitles.size()-1; counter ++) + { + if (this.queueTitles.get(counter).get(this.holdingsIndex).contains(Constants.oaMarker)) + { + System.out.println("removed OA book: " + this.queueTitles.get(counter).get(0)); + this.queueTitles.get(counter).set(this.noteIndex, "Aufgrund OA aussortiert!"); + this.nopeTitles.add(this.queueTitles.get(counter)); + this.queueTitles.remove(this.queueTitles.get(counter)); + counter--; + + + } + + } + } + + private void initiateDdcWhitelist() + { + setIndizes(); + + String[] ddcWhitelistSettings = this.propertyFileHandler.propertyFileModel.get_settings_DDCWhitelist().split(";"); + + this.ddcWhitelistModels = new ArrayList(); + + + for (String ddcWhitelistSetting: ddcWhitelistSettings) + { + { + if (ddcWhitelistSetting.contains("+")) + { + ddcWhitelistSetting = ddcWhitelistSetting.replace("+", ""); + this.ddcWhitelistModels.add(new DdcWhiteListModel(Double.parseDouble(ddcWhitelistSetting), true)); + } + else + { + this.ddcWhitelistModels.add(new DdcWhiteListModel(Double.parseDouble(ddcWhitelistSetting), false)); + + } + } + } + } + + public void apiShortcut(ListEnum listEnum) + { + try { + callApiOnCurrentData(listEnum); + + + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public void nextTitle(ListEnum listEnum) + { + + switch (listEnum) + { + case NOPES: + { + if (this.nopeTitlescurrentIteration < this.nopeTitles.size()-1) + { + this.nopeTitlescurrentIteration ++; + } + return; + } + case QUEUE: + { if (this.queueTitlescurrentIteration < this.queueTitles.size()-1) + { + this.queueTitlescurrentIteration ++; + + } + return; + } + case PICKS: + { + if (this.pickTitlescurrentIteration < this.pickTitles.size()-1) + { + this.pickTitlescurrentIteration ++; + } + return; + } + } + } + + public void formerTitle(ListEnum listEnum) + { + + switch (listEnum) + { + case NOPES: + { + if (this.nopeTitlescurrentIteration >= 1) + { + this.nopeTitlescurrentIteration --; + } + return; + } + case QUEUE: + { + if (this.queueTitlescurrentIteration >= 1) + { + this.queueTitlescurrentIteration --; + } + return; + } + case PICKS: + { + if (this.pickTitlescurrentIteration >= 1) + { + this.pickTitlescurrentIteration --; + } + return; + } + } + } + + public void setIterator(ListEnum listEnum, int iterator) + { + switch (listEnum) + { + case NOPES: + { + this.nopeTitlescurrentIteration = iterator; + return; + } + case QUEUE: + { + this.queueTitlescurrentIteration = iterator; + return; + } + case PICKS: + { + this.pickTitlescurrentIteration = iterator; + return; + } + } + } + + public void moveTitle(ListEnum from, boolean setFromToLastIndex, ListEnum to, boolean setToToLastIndex, boolean moveToCurrentIndex, String status, boolean setOrderer) + { + setIndizes(); + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() != 1 || (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1 && checkIfOrdererChangedInTheMeantime(from))) + { + + boolean setNoteWhenMoveToLeft_orderMode = this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1; + List> fromlist = getList(from); + List> tolist = getList(to); + int fromIterator = getIterator(from); + int toIterator = getIterator(to); + if (fromlist.size() > 0) + { + if (this.statusIndex != -1) + { + fromlist.get(fromIterator).set(this.statusIndex, status); + } + if (moveToCurrentIndex && toIterator >= 0) + { + tolist.add(toIterator, fromlist.get(fromIterator)); + } else if (toIterator >= 0) + { + tolist.add(fromlist.get(fromIterator)); + } else + { + tolist.add(fromlist.get(fromIterator)); + this.setIterator(to, tolist.size()-1); + } + + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + if (setOrderer) + { + changeOrderer(from, this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName()); + } + if (this.pathIndex != -1 && !fromlist.get(fromIterator).get(this.pathIndex).isEmpty() && !fromlist.get(fromIterator).get(this.pathIndex).isBlank()) + { + rewriteFile(from, status); + if (to == ListEnum.PICKS) + { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); + String tsNow = sdf.format(timestamp); + + DataBaseHandler databaseHandler = new DataBaseHandler(); + try { + databaseHandler.pickerSafetyDBUpdate(tsNow, this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName(), fromlist.get(fromIterator).get(0), fromlist.get(fromIterator).get(this.noteIndex)); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + } + + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 2) + { + this.getCurrentTitle(to).set(this.statusIndex, status); + DataBaseHandler databaseHandler = new DataBaseHandler(); + databaseHandler.updateApplicationStage(this.getCurrentTitle(to).get(this.idIndex), status); + } + + fromlist.remove(fromIterator); + setIterator(from, getNextIterator(from, setFromToLastIndex)); + setIterator(to, getNextIterator(to, setToToLastIndex)); + } + } + + } + + public boolean titleHasNoOrderer(ListEnum listEnum) + { + this.setIndizes(); + if (this.caseHandledByIndex != -1) + { + if (this.getCurrentTitle(listEnum).get(this.caseHandledByIndex).isBlank()) + { + return true; + } + } + return false; + } + public boolean titleOrdererIsCurrentOrderer(ListEnum listEnum) + { + this.setIndizes(); + if (this.caseHandledByIndex != -1) + { + if (this.getCurrentTitle(listEnum).get(this.caseHandledByIndex).equals(this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName())) + { + return true; + } + } + return false; + } + public boolean titleOrdererIsNotSet(ListEnum listEnum) + { + this.setIndizes(); + if (this.caseHandledByIndex != -1) + { + if (this.getCurrentTitle(listEnum).get(this.caseHandledByIndex).contains(Constants.emptyField)) + { + return true; + } + } + + return false; + } + + private String getStatus(ListEnum from) + { + this.setIndizes(); + return this.getCurrentTitle(from).get(this.statusIndex); + } + + private void rewriteFile(ListEnum from) + { + rewriteFile(from, getStatus(from)); + } + + private void rewriteFile(ListEnum from, String status) + { + List> fromlist = getList(from); + int fromIterator = getIterator(from); + String exportString = fetchFormattedTitleExport(fromlist.get(fromIterator)); + + + String path = fromlist.get(fromIterator).get(this.pathIndex); + String origFileName = path.substring(path.lastIndexOf("\\") +1, path.lastIndexOf(".")); + + String filePath = this.propertyFileHandler.propertyFileModel.get_settings_Order_ImportVerzeichnisNameTextField(); + if (status.equals(Constants.statusOrderDone)) + { + filePath = this.propertyFileHandler.propertyFileModel.get_settings_Order_DoneVerzeichnisNameTextField(); + } + + ImportExportFileHandler.deleteFile(fromlist.get(fromIterator).get(this.pathIndex)); + fromlist.get(fromIterator).set(this.pathIndex, filePath + origFileName + ".ptf"); + ImportExportFileHandler.exportFile(exportString, filePath + origFileName + ".ptf"); + } + + public void setOrderModeIndizes() + { + if (this.pathIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals("Dateipfad")) + { + this.pathIndex = counter; + } + } + } + if (this.statusIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals("Status")) + { + this.statusIndex = counter; + } + } + } + } + + + public void setCaseHandledByIndex() + { + if (this.caseHandledByIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(Constants.CaseHandledBy)) + { + this.caseHandledByIndex = counter; + } + } + } + } + + public void setHoldingsIndex() + { + if (this.holdingsIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(Constants.BestandLabel)) + { + this.holdingsIndex = counter; + } + } + } + + } + + public void setIdIndex() + { + if (this.idIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(Constants.idLabelOAOnly)) + { + this.idIndex = counter; + } + } + } + + } + + public void setjournalIndex() + { + if (this.journalIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(Constants.journalTitleLabelOaOnly)) + { + this.journalIndex = counter; + } + } + } + + } + + public void setorcidIndex() + { + if (this.orcidIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(Constants.orcidLabelOaOnly)) + { + this.orcidIndex = counter; + } + } + } + + } + + + public void setTitleIndexOAModeOnly() + { + if (this.titleIndexOAModeOnly == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(Constants.TitleLabelOAOnly)) + { + this.titleIndexOAModeOnly = counter; + } + } + } + + } + + public void setNoteIndex() + { + if (this.noteIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(Constants.ColumnNote)) + { + this.noteIndex = counter; + } + } + } + } + + public int getNextIterator(ListEnum listEnum, boolean setToLastIndex) + { + if (setToLastIndex) + { + return getList(listEnum).size()-1; + } + + List> list = getList(listEnum); + int iterator = getIterator(listEnum); + + if (iterator <= list.size()-1) + { + return iterator; + } + return list.size()-1; + } + + public String fetchFormattedTitle(ListEnum listEnum, boolean updateApi, String formatSettings) + { + List title = getCurrentTitle(listEnum); + + if (title != null) + { + if (updateApi) + { + apiShortcut(listEnum); + } + return fetchFormattedTitle(title, formatSettings); + } + else return ""; + } + + private String fetchFormattedTitleExport(List currentTitle) + { + String returnString = new String(); + boolean containsHinweis = false; + + for (int counter = 0; counter < currentTitle.size(); counter++) + { + if (counter == this.pathIndex) + { + // YOOUUUU SHALL NOT PAAATHHH! + } else + { + if (returnString.isBlank()) + { + returnString = this.ColumnNames.get(counter) + ": " + currentTitle.get(counter); + } else + { + returnString = returnString + "\r\n" + this.ColumnNames.get(counter) + ": " + currentTitle.get(counter); + } + } + + } + return returnString; + } + + private String fetchFormattedTitle(List currentTitle, String formatSettings) + { + String returnString = new String(); + if (formatSettings.isBlank()) + { + for (int counter = 0; counter < currentTitle.size(); counter++) + { + if (currentTitle.get(counter) == null || currentTitle.get(counter).equals(Constants.emptyField) || currentTitle.get(counter).isBlank() || currentTitle.get(counter).isEmpty()) + { + //dont show empty columns? + } + else + { + if (returnString.isBlank()) + { + returnString = this.ColumnNames.get(counter) + ": " + currentTitle.get(counter); + } else + { + returnString = returnString + "\r\n" + this.ColumnNames.get(counter) + ": " + currentTitle.get(counter); + } + } + } + } else + { + String[] fieldDefList; + fieldDefList = formatSettings.split("\n"); + + for (String field : fieldDefList) + { + String fieldName = field; + String fieldContent = ""; + String fieldAlias = field; + String[] split; + + if (field.contains(">FieldName>") && field.contains("FieldName>") + ">FieldName>".length(), field.indexOf("FieldAlias>") && field.contains("FieldAlias>") + ">FieldAlias>".length(), field.indexOf("FieldContent>") && field.contains("FieldContent>") + ">FieldContent>".length(), field.indexOf("cr<") && crSet == false) + { + crSet = true; + returnString = returnString + "\n"; + }else if (currentTitle.get(counter) == null || currentTitle.get(counter).equals("-") || currentTitle.get(counter).isBlank() || currentTitle.get(counter).isEmpty() || !this.ColumnNames.get(counter).equals(fieldName)) + { + //dont show empty columns? + //also dont display if current field doesnt match field definition. + } + else + { + if (returnString.isBlank()) + { + if (fieldContent.isBlank()) + { + returnString = fieldAlias + ": " + currentTitle.get(counter); + } else + { + returnString = fieldAlias + ": " + fieldContent; + } + + } else + { + if (fieldContent.isBlank()) + { + returnString = returnString + "\r\n" + fieldAlias + ": " + currentTitle.get(counter); + } else + { + returnString = returnString + "\r\n" + fieldAlias + ": " + fieldContent; + + } + } + } + } + } + } + + return returnString; + } + + + public void openLink(int searchMethod, boolean shift, boolean ctrl, ListEnum listEnum) throws IOException + { + if (shift) + { + searchMethod += 4; + } else if (ctrl) + { + searchMethod += 8; + } + openUrlContents(replaceVariablesInLink(getLink(searchMethod), listEnum)); + } + + private String getLink(int searchMethod) + { + String link = ""; + + switch (searchMethod) { + case 1: + link = this.propertyFileHandler.propertyFileModel.get_settings_f1search(); + break; + case 2: + link = this.propertyFileHandler.propertyFileModel.get_settings_f2search(); + break; + case 3: + link = this.propertyFileHandler.propertyFileModel.get_settings_f3search(); + break; + case 4: + link = this.propertyFileHandler.propertyFileModel.get_settings_f4search(); + break; + case 5: + link = this.propertyFileHandler.propertyFileModel.get_settings_f1searchShift(); + break; + case 6: + link = this.propertyFileHandler.propertyFileModel.get_settings_f2searchShift(); + break; + case 7: + link = this.propertyFileHandler.propertyFileModel.get_settings_f3searchShift(); + break; + case 8: + link = this.propertyFileHandler.propertyFileModel.get_settings_f4searchShift(); + break; + case 9: + link = this.propertyFileHandler.propertyFileModel.get_settings_f1searchCtrl(); + break; + case 10: + link = this.propertyFileHandler.propertyFileModel.get_settings_f2searchCtrl(); + break; + case 11: + link = this.propertyFileHandler.propertyFileModel.get_settings_f3searchCtrl(); + break; + case 12: + link = this.propertyFileHandler.propertyFileModel.get_settings_f4searchCtrl(); + break; + default: + System.out.println("Keine Suchmethode gewählt"); + break; + } + return link; + } + + private String replaceVariablesInLink(String link, ListEnum listEnum) + { + if (link.contains("[{[title]}]") && this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() != 2) + { + + link = link.replace("[{[title]}]", getCurrentTitle(listEnum).get(0).split(" : ")[0].replace("\"", "")); + } else if (link.contains("[{[title]}]") && this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 2) + { + setIndizes(); + link = link.replace("[{[title]}]", getCurrentTitle(listEnum).get(this.titleIndexOAModeOnly).split(" : ")[0].replace("\"", "")); + } + + if (link.contains("[{[author]}]")) + { + setIndizes(); + + String authorContentRaw = getCurrentTitle(listEnum).get(this.authorIndex); + authorContentRaw = authorContentRaw.replace("by", ""); + authorContentRaw = authorContentRaw.replace("edited", ""); + authorContentRaw = authorContentRaw.replace("and", ""); + authorContentRaw = authorContentRaw.replace("(Hrsg.)", ""); + authorContentRaw = authorContentRaw.replace("tranlation", ""); + authorContentRaw = authorContentRaw.replace("(Hg.)", ""); + authorContentRaw = authorContentRaw.replace(",", ""); + authorContentRaw = authorContentRaw.replace(";", ""); + authorContentRaw = authorContentRaw.replace("erzählt und illustriert von", ""); + + String[] authorContent = authorContentRaw.split(" "); + String authorSearchTerm = ""; + int maxParts = 2; + for (int counter = 0; counter < maxParts && counter < authorContent.length; counter ++) + { + if (authorContent[counter].isBlank() || authorContent[counter].isEmpty()) + { + maxParts ++; + } else + { + if (!authorSearchTerm.isBlank()) + { + authorSearchTerm += " " + authorContent[counter]; + } else + { + authorSearchTerm = authorContent[counter]; + } + } + + } + link = link.replace("[{[author]}]", authorSearchTerm); + } + + if (link.contains("[{[isbn]}]")) + { + + link = link.replace("[{[isbn]}]", getCurrentTitle(listEnum).get(this.isbnIndex).split(";")[0]); + } + + if (link.contains("[{[publisher]}]")) + { + + link = link.replace("[{[publisher]}]", getCurrentTitle(listEnum).get(this.publisherIndex)); + } + if (link.contains("[{[journalTitle]}]")) + { + + link = link.replace("[{[journalTitle]}]", getCurrentTitle(listEnum).get(this.journalIndex)); + } + if (link.contains("[{[orcid]}]")) + { + + link = link.replace("[{[orcid]}]", getCurrentTitle(listEnum).get(this.orcidIndex)); + } + return link; + } + + public int getPublicationStage(ListEnum listEnum) + { + setIndizes(); + if (getCurrentTitle(listEnum) != null) + { + return Integer.parseInt(getCurrentTitle(listEnum).get(this.statusIndex)); + } + return 0; + + } + + public void openLinkContentList(ListEnum listEnum) throws IOException + { + setIndizes(); + List title = getCurrentTitle(listEnum); + + if (title!= null && this.contentsIndex != -1 && title.size()-1 >= this.contentsIndex) + { + openUrlContents(title.get(this.contentsIndex)); + } + } + + public void openLinkContentText(ListEnum listEnum) throws IOException + { + setIndizes(); + List title = getCurrentTitle(listEnum); + + if (this.contentsTextIndex != -1 && title.size()-1 >= this.contentsTextIndex) + { + openUrlContents(title.get(this.contentsTextIndex)); + } + } + + private void setContentsIndex() + { + if (this.contentsTextIndex == -1 || this.contentsIndex == -1) + { + { + for(int counter = 0; counter < this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals("Inhaltstext")) + { + this.contentsTextIndex = counter; + } else if (this.ColumnNames.get(counter).equals("Inhaltsverzeichnis")) + { + this.contentsIndex = counter; + } + } + } + } + } + + private void setIsbnIndex() + { + setIsbnIndex(null); + } + + private void setIsbnIndex(List> titles) + { + if (this.isbnIndex == -1) + { + if (titles != null) + { + for (int counter = 0; counter <= titles.get(0).size()-1; counter ++) + { + if (titles.get(0).get(counter).equals("ISBN")) + { + this.isbnIndex = counter; + } + } + } else { + for (int counter = 0; counter < this.ColumnNames.size()-1; counter ++) + { + + if (this.ColumnNames.get(counter).equals("ISBN")) + { + this.isbnIndex = counter; + } + } + } + + } + } + + private void setDdcIndex() + { + if (this.ddcIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals("DDC-Sachgruppe")) + { + this.ddcIndex = counter; + } + } + } + } + + private void setPublisherIndex() + { + if (this.publisherIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals("Verlag")) + { + this.publisherIndex = counter; + } + } + } + } + + private void setAuthorIndex() + { + if (this.authorIndex == -1) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals("Verfasser")) + { + this.authorIndex = counter; + } + } + } + } + + + private void openUrlContents(String link) throws IOException + { + Runtime rt = Runtime.getRuntime(); + String url = link; + rt.exec("rundll32 url.dll,FileProtocolHandler " + url); + } + + /* + public void exportPicks() + { + String exportString = new String(); + + for(int counter = 0; counter <= this.pickTitles.size()-1; counter++) + { + exportString += fetchFormattedTitleExport(this.pickTitles.get(counter)) + "\r\n"; + } + ImportExportFileHandler.exportFile(exportString, this.propertyFileHandler.propertyFileModel.get_settings_ExportFileFolder() + "/" + ImportExportFileHandler.getTimeStamp() + ".txt"); + } */ + + public void exportPicks() + { + String exportString = new String(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); + String tsNow = sdf.format(timestamp); + + //pickerSafetyDBUpdate(String title, String orderedBy) + + for(int counter = 0; counter <= this.pickTitles.size()-1; counter++) + { + DataBaseHandler databaseHandler = new DataBaseHandler(); + try { + databaseHandler.pickerSafetyDBSaveExportAndClose(tsNow, this.pickTitles.get(counter).get(0), this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName(), fetchFormattedTitleExport(this.pickTitles.get(counter)), this.pickTitles.get(counter).get(this.noteIndex)); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + exportString += fetchFormattedTitleExport(this.pickTitles.get(counter)); + ImportExportFileHandler.exportFile(exportString, this.propertyFileHandler.propertyFileModel.get_settings_ExportFileFolder() + "/" + ImportExportFileHandler.getTimeStamp() + counter + ".ptf"); + exportString = ""; + + } + } + + public void setZAFlag() + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, "Bitte zur Ansicht"); + } + + public void setSwitchFlag() + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, "Bitte Auflage Tauschen"); + } + + + public void startDialogueForAltFlag(ListEnum listEnum) + { + TextInputDialog dialog = new TextInputDialog(""); + dialog.setTitle(null); + dialog.setHeaderText(null); + dialog.setContentText("Hinweis: "); + dialog.initStyle(StageStyle.UTILITY); + Optional result = dialog.showAndWait(); + result.ifPresent(answer -> setAltFlag(answer, listEnum)); + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + DataBaseHandler dataBaseHandler = new DataBaseHandler(); + try { + dataBaseHandler.pickerSafetyDBUpdate_onlyComment(this.getCurrentTitle(listEnum).get(0), this.getCurrentTitle(listEnum).get(this.noteIndex)); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + rewriteFile(listEnum); + } + if (this.propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 2) + { + DataBaseHandler databaseHandler = new DataBaseHandler(); + databaseHandler.updateComment_Intern(this.getRowId(listEnum), this.getAltFlag(listEnum)); + } + } + + public void startDialogueForKeyWordMover() + { + TextInputDialog dialog = new TextInputDialog(""); + dialog.setTitle("KeyWord-Mover (tm)"); + dialog.setHeaderText("Titel mit folgendem Stichwort in die Auswahl verschieben:"); + dialog.setContentText("Stichwort: "); + dialog.initStyle(StageStyle.UTILITY); + Optional result = dialog.showAndWait(); + result.ifPresent(answer -> moveFromQueueToPicksByKeyword(answer)); + + } + + public void startDialoguePublisherAmountMover() + { + TextInputDialog dialog = new TextInputDialog(""); + dialog.setTitle("Move by Publisher Relevance (tm)"); + dialog.setHeaderText("Schwellenwert: Anzahl Titel der Verlage in den letzten drei Jahren im Bestand:"); + dialog.setContentText("Anzahl: "); + dialog.initStyle(StageStyle.UTILITY); + Optional result = dialog.showAndWait(); + result.ifPresent(answer -> moveFromQueueToPicksByPublisherAmount(answer)); + + } + + + + public void moveFromQueueToPicksByKeyword(String keyword) + { + this.queueTitlescurrentIteration = 1; + for(this.queueTitlescurrentIteration = 0; this.queueTitlescurrentIteration < this.queueTitles.size(); this.queueTitlescurrentIteration++) + { + for (String value : this.getCurrentTitle(ListEnum.QUEUE)) + { + if (value.toLowerCase().contains(keyword.toLowerCase())) + { + this.moveTitle(ListEnum.QUEUE, false, ListEnum.PICKS, true, false, Constants.statusOrder, false); + this.queueTitlescurrentIteration --; + } + } + } + this.queueTitlescurrentIteration = 0; + } + + public void moveFromQueueToPicksByPublisherAmount(String keyword) + { + this.setIndizes(); + int minNumber = Integer.valueOf(keyword); + Publishers publishers = new Publishers(); + int booknumbersfound = 0; + boolean bookfound = false; + + for(this.queueTitlescurrentIteration = 1; this.queueTitlescurrentIteration < this.queueTitles.size(); this.queueTitlescurrentIteration++) + { + for (PublisherAmountBooksModel publisher : publishers.publishersList) + { + //if (this.getCurrentTitle(ListEnum.QUEUE).get(this.publisherIndex).toLowerCase().contains(publisher.publisher.toLowerCase())) + if (this.getCurrentTitle(ListEnum.QUEUE).get(this.publisherIndex).toLowerCase().contains(publisher.publisher.toLowerCase())|| JarWinkler.compute(this.getCurrentTitle(ListEnum.QUEUE).get(this.publisherIndex).toLowerCase(), publisher.publisher.toLowerCase())>0.95) + { + bookfound = true; + if (publisher.numberOfBooks > booknumbersfound) + { + booknumbersfound = publisher.numberOfBooks; + } + } + } + if (!bookfound || booknumbersfound < minNumber) + { + this.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, true, false, Constants.statusOrder, false); + this.queueTitlescurrentIteration --; + } else + { + bookfound = false; + booknumbersfound = 0; + } + } + this.queueTitlescurrentIteration = 0; + } + + + public String getRowId(ListEnum listEnum) + { + this.setIndizes(); + + if (this.idIndex != -1) + { + List x = this.getCurrentTitle(listEnum); + return this.getCurrentTitle(listEnum).get(this.idIndex); + } + return ""; + + } + + public String getAltFlag(ListEnum listEnum) + { + this.setIndizes(); + + if (this.noteIndex != -1) + { + return this.getCurrentTitle(listEnum).get(this.noteIndex); + } + return ""; + + } + + + public String startDialogueForOrdererList() + { + String[] optionsOther; + String[] otpionsAll; + String returnString = ""; + + + if (!this.propertyFileHandler.propertyFileModel.get_settings_OtherOrdererNames().isBlank()) + { + optionsOther = this.propertyFileHandler.propertyFileModel.get_settings_OtherOrdererNames().split(";"); + otpionsAll = new String[optionsOther.length+1]; + otpionsAll[0] = this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName(); + for (int counter = 0; counter < optionsOther.length; counter ++) + { + otpionsAll[counter+1] = optionsOther[counter]; + } + + ChoiceDialog choiceDialog = new ChoiceDialog(otpionsAll[0], otpionsAll); + choiceDialog.setTitle(null); + choiceDialog.setHeaderText(null); + choiceDialog.setContentText(null); + + Optional result = choiceDialog.showAndWait(); + if (result.isPresent()) { + returnString = choiceDialog.getSelectedItem().toString(); + } else { + returnString = ""; + } + + return returnString; + + } else + { + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle(""); + alert.setHeaderText("Keine bestellende Personen in den Einstellungen angegeben!"); + alert.setContentText("Bitte geben Sie eine Liste weiterer bestellenden Personen an."); + alert.showAndWait(); + } + return null; + } + + + + public void setAltFlag(String text, ListEnum listEnum) + { + setIndizes(); + switch (listEnum) + { + case NOPES: + { + if (this.nopeTitles.get(this.nopeTitlescurrentIteration).get(this.noteIndex) == null || this.nopeTitles.get(this.nopeTitlescurrentIteration).get(this.noteIndex).replaceAll("\\s+","").equals(Constants.emptyField)) + { + this.nopeTitles.get(this.nopeTitlescurrentIteration).set(this.noteIndex, text); + } else + { + this.nopeTitles.get(this.nopeTitlescurrentIteration).set(this.noteIndex, this.nopeTitles.get(this.nopeTitlescurrentIteration).get(this.noteIndex) + " / " + text); + } + break; + } + case QUEUE: + { + if (this.queueTitles.get(this.queueTitlescurrentIteration).get(this.noteIndex) == null || this.queueTitles.get(this.queueTitlescurrentIteration).get(this.noteIndex).replaceAll("\\s+","").equals(Constants.emptyField)) + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, text); + } else + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, this.queueTitles.get(this.queueTitlescurrentIteration).get(this.noteIndex) + " / " + text); + } + break; + } + case PICKS: + { + if (this.pickTitles.get(this.pickTitlescurrentIteration).get(this.noteIndex) == null || this.pickTitles.get(this.pickTitlescurrentIteration).get(this.noteIndex).replaceAll("\\s+","").equals(Constants.emptyField)) + { + this.pickTitles.get(this.pickTitlescurrentIteration).set(this.noteIndex, text); + } else + { + this.pickTitles.get(this.pickTitlescurrentIteration).set(this.noteIndex, this.pickTitles.get(this.pickTitlescurrentIteration).get(this.noteIndex) + " / " + text); + } + break; + } + default: + { + if (this.queueTitles.get(this.queueTitlescurrentIteration).get(this.noteIndex) == null || this.queueTitles.get(this.queueTitlescurrentIteration).get(this.noteIndex).replaceAll("\\s+","").equals(Constants.emptyField)) + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, text); + } else + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, this.queueTitles.get(this.queueTitlescurrentIteration).get(this.noteIndex) + " / " + text); + } + break; + } + + } + } + + + public void resetFlag() + { + if (this.queueTitlescurrentIteration >= 0) + { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, "-"); + } + else if (this.queueTitlescurrentIteration < 0 && this.queueTitles.size()>0) + { + this.queueTitlescurrentIteration = this.queueTitles.size() -1; + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.noteIndex, "-"); + } + } + + public String getCurrentOAKeyWord(ListEnum listEnum, String marker, String display) + { + if (this.propertyFileHandler.propertyFileModel.get_settings_API_markOA().equals("true")) + { + List title = getCurrentTitle(listEnum); + if (title != null && !title.isEmpty() && title.get(Constants.holdingsIndex).contains(marker)) + { + return display; + } + } + return ""; + } + + public boolean getCurrentLinkStatus(ListEnum listEnum, boolean ivzTrueivtFalse) + { + setIndizes(); + if (contentsIndex >= 0) + { + if (ivzTrueivtFalse) + { + if (this.getCurrentTitle(listEnum) != null && !this.getCurrentTitle(listEnum).get(this.contentsIndex).isBlank() && !this.getCurrentTitle(listEnum).get(this.contentsIndex).equals("-")) + { + return true; + } + } else + { + if (this.getCurrentTitle(listEnum) != null && !this.getCurrentTitle(listEnum).get(this.contentsTextIndex).isBlank() && !this.getCurrentTitle(listEnum).get(this.contentsTextIndex).equals("-")) + { + return true; + } + } + } + + return false; + + } + + public String getCurrentKeyWords(ListEnum listEnum, boolean greenTrueRedFalse) + { + String[] listOfKeyWords = greenTrueRedFalse ? this.propertyFileHandler.propertyFileModel.get_settings_stichwortmarkierungGruen().split(";") : this.propertyFileHandler.propertyFileModel.get_settings_stichwortmarkierungRot().split(";"); + String currentKeyWords = ""; + + List title = getCurrentTitle(listEnum); + + if (title != null && !title.isEmpty()) + { + + for (String keyWord : listOfKeyWords) + { + if (keyWord.contains(":") && !title.isEmpty()) + { + String[] comboKeyWord = keyWord.split(":"); + if (comboKeyWord.length == 2) + { + for (int counter = 0; counter <= this.ColumnNames.size()-1; counter ++) + { + if (this.ColumnNames.get(counter).equals(comboKeyWord[0])) + { + if (title.get(counter).toLowerCase().contains(comboKeyWord[1].toLowerCase())) + { + currentKeyWords = currentKeyWords.isBlank() ? comboKeyWord[1] : currentKeyWords + ", " + comboKeyWord[1]; + } + } + } + } + + + } else if (title.toString().toLowerCase().contains(keyWord.toLowerCase()) && !title.isEmpty()) + { + currentKeyWords = currentKeyWords.isBlank() ? keyWord : currentKeyWords + ", " + keyWord; + } + + } + + } + return currentKeyWords; + } + + + public void callApiOnCurrentData(ListEnum listEnum) throws MalformedURLException + { + setIndizes(); + + if (this.holdingsIndex != -1 || this.isbnIndex != -1) + { + switch (listEnum) + { + case QUEUE: + { + if (this.queueTitles.get(queueTitlescurrentIteration).get(this.holdingsIndex).equals("-")) + { + + try { + this.queueTitles.get(this.queueTitlescurrentIteration).set(this.holdingsIndex, callApi(this.queueTitles.get(this.queueTitlescurrentIteration).get(isbnIndex))); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + break; + } + + case PICKS: + { + if (this.pickTitles.get(this.pickTitlescurrentIteration).get(this.holdingsIndex).equals("-")) + { + try { + this.pickTitles.get(this.pickTitlescurrentIteration).set(this.holdingsIndex, callApi(this.pickTitles.get(this.pickTitlescurrentIteration).get(isbnIndex))); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + break; + } + case NOPES: + { + if (this.nopeTitles.get(this.nopeTitlescurrentIteration).get(this.holdingsIndex).equals("-")) + { + try { + this.nopeTitles.get(this.nopeTitlescurrentIteration).set(this.holdingsIndex, callApi(this.nopeTitles.get(this.nopeTitlescurrentIteration).get(isbnIndex))); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + break; + } + } + } + } + + private String callApi(String isbnsField) throws MalformedURLException, InterruptedException + { + URL apiLink; + String[] isbns = isbnsField.replace(" ", "").split(";"); + + + + if (!this.propertyFileHandler.propertyFileModel.get_settings_API_link().isBlank() && isbns.length >= 1) + { + if (isbns != null && isbns.length > 0 && !isbns[0].equals("-")) + { + String isbnSearchTerm = ""; + + for (String isbn : isbns) + { + if (isbnSearchTerm.isBlank()) + { + isbnSearchTerm = isbn; + } else + { + isbnSearchTerm = isbnSearchTerm + this.propertyFileHandler.propertyFileModel.get_settings_API_isbnSeparator() + isbn; + } + } + + if (!isbnSearchTerm.isBlank()) + { + + apiLink = new URL(this.propertyFileHandler.propertyFileModel.get_settings_API_link().replace(Constants.isbnWildcard, isbnSearchTerm)); + String response = this.apiCaller.callUrlLimitedWaitTime(apiLink); + String returnString = ""; + if (!response.isBlank()) + { + + if (response.contains(Constants.oaSearchTerm)) + { + returnString = Constants.oaMarker; + } + if (response.contains(propertyFileHandler.propertyFileModel.get_settings_API_sigil())) + { + if (returnString.isBlank()) + { + returnString = Constants.bestandvorhanden; + } else + { + returnString = Constants.bestandvorhanden + ", " + returnString; + } + + } else + { + if (returnString.isBlank()) + { + returnString = Constants.bestandnichtvorhanden; + } else + { + returnString = Constants.bestandnichtvorhanden + ", " + returnString; + } + } + return returnString; + } + + } + } + } + return(Constants.apiCouldNotBeAccessed); + } + + public void engageCurrentPickTitleIntoFinalFundingStage(ListEnum listEnum) + { + this.setIndizes(); + this.pickTitles.get(this.pickTitlescurrentIteration).set(this.statusIndex, "3"); + DataBaseHandler databaseHandler = new DataBaseHandler(); + databaseHandler.updateApplicationStage(this.getRowId(listEnum) ,"3"); + } + + +} diff --git a/src/logic_reiheAPicker/UpdateDataApiRunable.java b/src/logic_reiheAPicker/UpdateDataApiRunable.java new file mode 100644 index 0000000..90d566b --- /dev/null +++ b/src/logic_reiheAPicker/UpdateDataApiRunable.java @@ -0,0 +1,161 @@ +package logic_reiheAPicker; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.List; + +import javafx.application.Platform; +import javafx.scene.Scene; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressIndicator; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.text.Font; +import javafx.stage.Stage; +import var_reiheAPicker.Constants; + +public class UpdateDataApiRunable extends Thread { + + List> titles; + int isbnIndex; + public float currentProgress = 0; + PropertyFileHandler propertyFileHandler; + ProgressIndicator progressIndicator; + Label progressLabel; + Stage progressStage; + private ApiCallerClass apiCaller; + private int flag = 0; + + public UpdateDataApiRunable(List> titles, int isbnIndex, ProgressIndicator progressIndicator, Label progressLabel) + { + + this.apiCaller = new ApiCallerClass(); + this.titles = titles; + this.isbnIndex = isbnIndex; + this.progressIndicator = progressIndicator; + this.propertyFileHandler = PropertyFileHandler.getInstance(); + this.progressLabel = progressLabel; + + } + + public void setCurrentProgress(int max, int current, String feedbackApiString) + { + currentProgress = (float) ((float)current / (float) max); + int flag = this.flag; + Platform.runLater(new Runnable() { + @Override + public void run() { + progressIndicator.setProgress(currentProgress); + progressLabel.setText(feedbackApiString); + + } + }); + System.out.println(current + " of " + max + "; " + currentProgress * 100 + "%"); + if (this.flag == 0) + { + this.flag = 1; + } else + { + this.flag = 0; + } + } + + public void run() + { + updateTitles(); + } + + private List> updateTitles() + { + String feedbackApiString = ""; + for(int counter = 1; counter <= titles.size()-1; counter ++) + { + try { + titles.get(counter).set(2, callApi(titles.get(counter).get(isbnIndex))); + float secondsRemaining = (float) ((titles.size()-1 - counter) * 0.11); + int minutesRemaining = (int) (secondsRemaining / 60); + int AfterMinutessecondsRemaining = (int) (secondsRemaining % 60); + feedbackApiString = "Prüfe Titel " + counter + "/" + titles.size() + ". ~" + minutesRemaining + ":" + AfterMinutessecondsRemaining + " verbleibend."; + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + setCurrentProgress(titles.size()-1, counter, feedbackApiString); + } + setCurrentProgress(1,1, "Done!"); + + + return titles; + } + + + private String callApi(String isbnsField) throws MalformedURLException, InterruptedException + { + + URL apiLink; + String[] isbns = isbnsField.replace(" ", "").split(";"); + if (!propertyFileHandler.propertyFileModel.get_settings_API_link().isBlank() && isbns.length >= 1) + { + if (isbns != null && isbns.length > 0 && !isbns[0].equals("-")) + { + String isbnSearchTerm = ""; + int counter = 0; + + for (String isbn : isbns) + { + if (isbnSearchTerm.isBlank()) + { + isbnSearchTerm = isbn; + + } else + { + isbnSearchTerm = isbnSearchTerm + this.propertyFileHandler.propertyFileModel.get_settings_API_isbnSeparator() + isbn; + } + } + + if (!isbnSearchTerm.isBlank()) + { + apiLink = new URL(propertyFileHandler.propertyFileModel.get_settings_API_link().replace(Constants.isbnWildcard, isbnSearchTerm)); + String response = this.apiCaller.callUrlLimitedWaitTime(apiLink); + String returnString = ""; + if (!response.isBlank()) + { + + if (response.contains(Constants.oaSearchTerm)) + { + returnString = Constants.oaMarker; + } + if (response.contains(propertyFileHandler.propertyFileModel.get_settings_API_sigil())) + { + if (returnString.isBlank()) + { + returnString = Constants.bestandvorhanden; + } else + { + returnString = Constants.bestandvorhanden + ", " + returnString; + } + + } else + { + if (returnString.isBlank()) + { + returnString = Constants.bestandnichtvorhanden; + } else + { + returnString = Constants.bestandnichtvorhanden + ", " + returnString; + } + } + return returnString; + } + + + } + } + } + return("Prüfung nicht möglich"); + } + +} diff --git a/src/models_reiheAPicker/CustomTextAreaPickerTab.java b/src/models_reiheAPicker/CustomTextAreaPickerTab.java new file mode 100644 index 0000000..9e197e5 --- /dev/null +++ b/src/models_reiheAPicker/CustomTextAreaPickerTab.java @@ -0,0 +1,19 @@ +package models_reiheAPicker; + +import javafx.scene.control.TextArea; + +public class CustomTextAreaPickerTab extends TextArea { + + private ListEnum listEnum; + + public CustomTextAreaPickerTab(ListEnum listEnum) + { + this.listEnum = listEnum; + } + + public ListEnum getListEnum() { + return listEnum; + } + + +} diff --git a/src/models_reiheAPicker/DdcWhiteListModel.java b/src/models_reiheAPicker/DdcWhiteListModel.java new file mode 100644 index 0000000..75f0387 --- /dev/null +++ b/src/models_reiheAPicker/DdcWhiteListModel.java @@ -0,0 +1,25 @@ +package models_reiheAPicker; + +public class DdcWhiteListModel { + + private double ddcNumber; + private boolean covers0to100; + + public DdcWhiteListModel(double ddcNumber, boolean covers0to100) + { + this.ddcNumber = ddcNumber; + this.covers0to100 = covers0to100; + } + + public double getDdcNumber() + { + return this.ddcNumber; + } + + public boolean getCovers0to100() + { + return this.covers0to100; + } + + +} diff --git a/src/models_reiheAPicker/FondsManager_applicationModel.java b/src/models_reiheAPicker/FondsManager_applicationModel.java new file mode 100644 index 0000000..ff4ae8b --- /dev/null +++ b/src/models_reiheAPicker/FondsManager_applicationModel.java @@ -0,0 +1,98 @@ +package models_reiheAPicker; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import logic_reiheAPicker.FondsManager_getDataFromEmail; + +public class FondsManager_applicationModel { + + public FondsManager_publicationModel publicationModel; + public FondsManager_authorModel authorModel; + + + public FondsManager_applicationModel(String mailtext) + { + + mailtext = mailtext.replace("=\r\n", ""); + mailtext = mailtext.replace("=C3=B6", "ö"); + mailtext = mailtext.replace("=C3=A4", "ä"); + mailtext = mailtext.replace("=C3=BC", "ü"); + mailtext = mailtext.replace("=c3=96", "Ö"); + mailtext = mailtext.replace("=c3=84", "Ä"); + mailtext = mailtext.replace("=C3=9C", "Ü"); + + + System.out.println(mailtext); + + this.publicationModel = new FondsManager_publicationModel(mailtext); + this.authorModel = new FondsManager_authorModel(mailtext); + } + + public FondsManager_applicationModel(int id_publication, String initialEmail,String notes,String title,String publisher,String journalTitle, String submitDate, + String releaseDate,String costPrognosed,String currency,String costLoc,String correspondingAuthorIsPhMember, + String partialFeesAccepted, String fundingAcknowledgemetAccepted,String oaGreenAccepted,String applicationStage,String emailCostPersonResponsible, String comment_intern, + int id_author, String email, String firstname, String lastname, String orcid, String phone) //List fieldList) + { + + this.publicationModel = new FondsManager_publicationModel(id_publication, initialEmail,notes,title,publisher,submitDate, + releaseDate,costPrognosed,currency,costLoc,correspondingAuthorIsPhMember, + partialFeesAccepted, fundingAcknowledgemetAccepted,oaGreenAccepted,applicationStage,emailCostPersonResponsible, journalTitle, comment_intern); + this.authorModel = new FondsManager_authorModel(id_author, email, firstname, lastname, orcid, phone); + + } + + public List getValues() + { + List values = new ArrayList(); + values.add(Integer.toString( this.publicationModel.id)); + values.add(this.publicationModel.initialEmail); + values.add(this.publicationModel.notes); + values.add(this.publicationModel.title); + values.add(this.publicationModel.publisher); + values.add(this.publicationModel.journalTitle); + values.add(this.publicationModel.submitDate); + values.add(this.publicationModel.releaseDate); + values.add(this.publicationModel.costPrognosed); + values.add(this.publicationModel.currency); + values.add(this.publicationModel.costLoc); + values.add(this.publicationModel.applicationStage); + values.add(this.publicationModel.emailCostPersonResponsible); + values.add(this.publicationModel.comment_intern); + values.add(Integer.toString( this.authorModel.id)); + values.add(this.authorModel.email); + values.add(this.authorModel.firstname); + values.add(this.authorModel.lastname); + values.add(this.authorModel.orcid); + values.add(this.authorModel.phone); + return values; + + } + + public List getColumns() + { + List columns = new ArrayList(); + columns.add("id_Publikation"); + columns.add("Antragstext"); + columns.add("Kommentar"); + columns.add("Titel"); + columns.add("Verlag"); + columns.add("Zeitschrift"); + columns.add("Eingereicht am"); + columns.add("Erscheint am"); + columns.add("APC"); + columns.add("Waehrung"); + columns.add("Kostenstelle"); + columns.add("Status"); + columns.add("HaushaltsBVM"); + columns.add("Hinweis"); + columns.add("id_Autor"); + columns.add("E-Mail"); + columns.add("Vorname"); + columns.add("Nachname"); + columns.add("Orcid"); + columns.add("Telefon"); + return columns; + } +} diff --git a/src/models_reiheAPicker/FondsManager_authorModel.java b/src/models_reiheAPicker/FondsManager_authorModel.java new file mode 100644 index 0000000..4441d70 --- /dev/null +++ b/src/models_reiheAPicker/FondsManager_authorModel.java @@ -0,0 +1,34 @@ +package models_reiheAPicker; + +import logic_reiheAPicker.FondsManager_getDataFromEmail; + +public class FondsManager_authorModel { + + public int id; + public String email; + public String firstname; + public String lastname; + public String orcid; + public int isPhMember; + public String phone; + + public FondsManager_authorModel(String initialEmail) + { + this.email = FondsManager_getDataFromEmail.get_email(initialEmail); + this.firstname = FondsManager_getDataFromEmail.get_firstname(initialEmail); + this.lastname = FondsManager_getDataFromEmail.get_lastname(initialEmail); + this.orcid = FondsManager_getDataFromEmail.get_orcid(initialEmail); + //this.phone + //this.isPhMember + } + + public FondsManager_authorModel(int id, String email, String firstname, String lastname, String orcid, String phone) + { + this.id = id; + this.email = email; + this.firstname = firstname; + this.lastname = lastname; + this.orcid = orcid; + this.phone = phone; + } +} diff --git a/src/models_reiheAPicker/FondsManager_publicationModel.java b/src/models_reiheAPicker/FondsManager_publicationModel.java new file mode 100644 index 0000000..0945ce4 --- /dev/null +++ b/src/models_reiheAPicker/FondsManager_publicationModel.java @@ -0,0 +1,76 @@ +package models_reiheAPicker; + +import java.util.Date; + +import logic_reiheAPicker.FondsManager_getDataFromEmail; + +public class FondsManager_publicationModel { + + public int id; + public String title; + public String publisher; + public String journalTitle; + public String submitDate; + public String releaseDate; + public String costPrognosed; + public String currency; + public String costLoc; + public String correspondingAuthorIsPhMember; + public String partialFeesAccepted; + public String fundingAcknowledgemetAccepted; + public String oaGreenAccepted; + public String applicationStage; + public String emailCostPersonResponsible; + public String notes; + public String initialEmail; + public String dateOfApplication; + public String comment_intern; + + public FondsManager_publicationModel(String initialEmail) + { + this.initialEmail = initialEmail; + this.notes = FondsManager_getDataFromEmail.get_notes(initialEmail); + this.title = FondsManager_getDataFromEmail.get_title(initialEmail); + this.publisher = FondsManager_getDataFromEmail.get_publisher(initialEmail); + this.submitDate = FondsManager_getDataFromEmail.get_submitDate(initialEmail); + this.releaseDate = FondsManager_getDataFromEmail.get_releaseDate(initialEmail); + this.costPrognosed = FondsManager_getDataFromEmail.get_costPrognosed(initialEmail); + this.currency = FondsManager_getDataFromEmail.get_currency(initialEmail); + this.costLoc = FondsManager_getDataFromEmail.get_costLoc(initialEmail); + this.correspondingAuthorIsPhMember = FondsManager_getDataFromEmail.get_correspondingAuthorIsPhMember(initialEmail); + this.partialFeesAccepted = FondsManager_getDataFromEmail.get_partialFeesAccepted(initialEmail); + this.fundingAcknowledgemetAccepted = FondsManager_getDataFromEmail.get_fundingAcknowledgemetAccepted(initialEmail); + this.oaGreenAccepted = FondsManager_getDataFromEmail.get_oaGreenAccepted(initialEmail); + this.applicationStage = FondsManager_getDataFromEmail.get_applicationStage(initialEmail); + this.emailCostPersonResponsible = FondsManager_getDataFromEmail.get_emailCostResponsiblePerson(initialEmail); + this.journalTitle = FondsManager_getDataFromEmail.get_journalTitle(initialEmail); + + } + + public FondsManager_publicationModel(int id, String initialEmail,String notes,String title,String publisher,String submitDate, + String releaseDate,String costPrognosed,String currency,String costLoc,String correspondingAuthorIsPhMember, + String partialFeesAccepted, String fundingAcknowledgemetAccepted,String oaGreenAccepted,String applicationStage,String emailCostPersonResponsible, + String journalTitle, String comment_intern) + { + this.id = id; + this.initialEmail = initialEmail; + this.notes = notes; + this.title = title; + this.publisher = publisher; + this.journalTitle = journalTitle; + this.submitDate = submitDate; + this.releaseDate = releaseDate; + this.costPrognosed = costPrognosed; + this.currency = currency; + this.costLoc = costLoc; + this.correspondingAuthorIsPhMember = correspondingAuthorIsPhMember; + this.partialFeesAccepted = partialFeesAccepted; + this.fundingAcknowledgemetAccepted = fundingAcknowledgemetAccepted; + this.oaGreenAccepted = oaGreenAccepted; + this.applicationStage = applicationStage; + this.emailCostPersonResponsible = emailCostPersonResponsible; + this.comment_intern = comment_intern; + + } + +} diff --git a/src/models_reiheAPicker/ListEnum.java b/src/models_reiheAPicker/ListEnum.java new file mode 100644 index 0000000..698cca4 --- /dev/null +++ b/src/models_reiheAPicker/ListEnum.java @@ -0,0 +1,9 @@ +package models_reiheAPicker; + +public enum ListEnum { + + PICKS, + QUEUE, + NOPES, + +} diff --git a/src/models_reiheAPicker/PropertiesFileModel.java b/src/models_reiheAPicker/PropertiesFileModel.java new file mode 100644 index 0000000..58855a8 --- /dev/null +++ b/src/models_reiheAPicker/PropertiesFileModel.java @@ -0,0 +1,459 @@ +package models_reiheAPicker; +import java.util.ArrayList; +import java.util.Map.Entry; + +import javafx.scene.control.CheckBox; +import javafx.scene.control.TextField; +import var_reiheAPicker.Constants; + +import java.util.Properties; + + +//new PropertiesFileModel +//created to simplifiy the task of creating new Properties in the config file +//also makes creating new fields in properties guy much easier +//in order to add a new property: +//(1) Create Field in this Model +//For example: private PropertyModel RandomCheckbox; +//(2) Add Field to Constructors +// (two separate ones, one with values, second one only created model with default values (in case no properties file detected)) +// you have to add the new Property to both constructors +// One constructor takes the actual value (from the file), the default value, and the tagName for the file +// the second constructor +//(3) Add new Field to function "InitPropertyList" +//Function gathers all Properties in a list, so other Functions can be generic and iterate through that very list +//(5) create a getter Function + +public class PropertiesFileModel { + + private ArrayList PropertyModels; + + private int _generalSetting_LaunchMode = 0; + // + + private PropertyModel settings_FontSize; + private PropertyModel settings_QueueBoxWidth; + private PropertyModel settings_QueueBoxHeight; + + private PropertyModel settings_ExportFileFolder; + private PropertyModel settings_PublisherBlacklist; + private PropertyModel settings_RemoveDuplicates; + private PropertyModel settings_DDCBlacklist; + private PropertyModel settings_DDCWhitelist; + private PropertyModel settings_BlockBelletristik; + private PropertyModel settings_SaveFileFolder; + private PropertyModel settings_f1search; + private PropertyModel settings_f2search; + private PropertyModel settings_f3search; + private PropertyModel settings_f4search; + private PropertyModel settings_f1searchShift; + private PropertyModel settings_f2searchShift; + private PropertyModel settings_f3searchShift; + private PropertyModel settings_f4searchShift; + private PropertyModel settings_f1searchCtrl; + private PropertyModel settings_f2searchCtrl; + private PropertyModel settings_f3searchCtrl; + private PropertyModel settings_f4searchCtrl; + private PropertyModel settings_stichwortmarkierungGruen; + private PropertyModel settings_stichwortmarkierungRot; + private PropertyModel settings_API_link; + private PropertyModel settings_API_CheckApiAfterImport; + private PropertyModel settings_API_RemoveHoldings; + private PropertyModel settings_API_sigil; + private PropertyModel settings_API_isbnSeparator; + private PropertyModel settings_API_markOA; + private PropertyModel settings_API_RemoveOA; + private PropertyModel settings_RemoveDuplicatesByTitle; + private PropertyModel settings_RemoveSchoolBooks; + private PropertyModel settings_RemoveJuvenileLiterature; + private PropertyModel settings_FieldDisplaySettings; + private PropertyModel settings_RemoveTitlesWithoutISBNsInQueue; + private PropertyModel settings_Order_ImportVerzeichnisNameTextField; + private PropertyModel settings_Order_DoneVerzeichnisNameTextField; + private PropertyModel settings_PickerOrOrdererName; + private PropertyModel settings_OtherOrdererNames; + + + + + public void updateProperties(String exportFileFolder,String settings_SaveFileFolder,String publisherBlacklist,String RemoveDuplicates,String dDCBlacklist, + String dDCWhitelist, String settings_BlockBelletristik, String settings_f1search,String settings_f2search,String settings_f3search,String settings_f4search, + String settings_f1searchShift,String settings_f2searchShift,String settings_f3searchShift,String settings_f4searchShift,String settings_f1searchCtrl, + String settings_f2searchCtrl,String settings_f3searchCtrl,String settings_f4searchCtrl, String settings_stichwortmarkierungGruen, String settings_stichwortmarkierungRot, + String settings_API_link, String settings_API_CheckApiAfterImport, String settings_API_RemoveHoldings, String settings_API_isbnSeparator, String settings_API_sigil, String settings_API_markOA, String settings_API_RemoveOA, + String settings_RemoveDuplicatesByTitle, String settings_RemoveSchoolBooks, String settings_RemoveJuvenileLiterature, String settings_FieldDisplaySettings, + String settings_RemoveTitlesWithoutISBNsInQueue, String settings_Order_ImportVerzeichnisNameTextField, String settings_Order_DoneVerzeichnisNameTextField, + String settings_PickerName, String settings_OtherOrdererNames) + { + this.settings_ExportFileFolder.setNewValue(exportFileFolder); + this.settings_SaveFileFolder.setNewValue(settings_SaveFileFolder); + this.settings_PublisherBlacklist.setNewValue(publisherBlacklist); + this.settings_RemoveDuplicates.setNewValue(RemoveDuplicates); + this.settings_DDCBlacklist.setNewValue(dDCBlacklist); + this.settings_DDCWhitelist.setNewValue(dDCWhitelist); + this.settings_BlockBelletristik.setNewValue(settings_BlockBelletristik); + this.settings_f1search.setNewValue(settings_f1search); + this.settings_f2search.setNewValue(settings_f2search); + this.settings_f3search.setNewValue(settings_f3search); + this.settings_f4search.setNewValue(settings_f4search); + this.settings_f1searchShift.setNewValue(settings_f1searchShift); + this.settings_f2searchShift.setNewValue(settings_f2searchShift); + this.settings_f3searchShift.setNewValue(settings_f3searchShift); + this.settings_f4searchShift.setNewValue(settings_f4searchShift); + this.settings_f1searchCtrl.setNewValue(settings_f1searchCtrl); + this.settings_f2searchCtrl.setNewValue(settings_f2searchCtrl); + this.settings_f3searchCtrl.setNewValue(settings_f3searchCtrl); + this.settings_f4searchCtrl.setNewValue(settings_f4searchCtrl); + this.settings_stichwortmarkierungGruen.setNewValue(settings_stichwortmarkierungGruen); + this.settings_stichwortmarkierungRot.setNewValue(settings_stichwortmarkierungRot); + this.settings_API_link.setNewValue(settings_API_link); + this.settings_API_CheckApiAfterImport.setNewValue(settings_API_CheckApiAfterImport); + this.settings_API_RemoveHoldings.setNewValue(settings_API_RemoveHoldings); + this.settings_API_isbnSeparator.setNewValue(settings_API_isbnSeparator); + this.settings_API_sigil.setNewValue(settings_API_sigil); + this.settings_API_markOA.setNewValue(settings_API_markOA); + this.settings_API_RemoveOA.setNewValue(settings_API_RemoveOA); + this.settings_RemoveDuplicatesByTitle.setNewValue(settings_RemoveDuplicatesByTitle); + this.settings_RemoveSchoolBooks.setNewValue(settings_RemoveSchoolBooks); + this.settings_RemoveJuvenileLiterature.setNewValue(settings_RemoveJuvenileLiterature); + this.settings_FieldDisplaySettings.setNewValue(settings_FieldDisplaySettings); + this.settings_RemoveTitlesWithoutISBNsInQueue.setNewValue(settings_RemoveTitlesWithoutISBNsInQueue); + this.settings_Order_ImportVerzeichnisNameTextField.setNewValue(settings_Order_ImportVerzeichnisNameTextField); + this.settings_Order_DoneVerzeichnisNameTextField.setNewValue(settings_Order_DoneVerzeichnisNameTextField); + this.settings_PickerOrOrdererName.setNewValue(settings_PickerName); + this.settings_OtherOrdererNames.setNewValue(settings_OtherOrdererNames); + + } + + public PropertiesFileModel(String settings_ExportFileFolder,String settings_SaveFileFolder, String settings_PublisherBlacklist, String settings_RemoveDuplicates, String settings_DDCBlacklist, + String settings_DDCWhitelist, String settings_BlockBelletristik, String settings_f1search,String settings_f2search,String settings_f3search,String settings_f4search, + String settings_f1searchShift,String settings_f2searchShift,String settings_f3searchShift,String settings_f4searchShift,String settings_f1searchCtrl,String settings_f2searchCtrl, + String settings_f3searchCtrl,String settings_f4searchCtrl, String settings_stichwortmarkierungGruen, String settings_stichwortmarkierungRot, String settings_API_link, + String settings_API_CheckApiAfterImport, String settings_API_RemoveHoldings, String settings_API_isbnSeparator, String settings_API_sigil, String settings_API_markOA, String settings_API_RemoveOA, + String settings_RemoveDuplicatesByTitle, String settings_RemoveSchoolBooks, String settings_RemoveJuvenileLiterature, String settings_FieldDisplaySettings, + String settings_RemoveTitlesWithoutISBNsInQueue, String settings_Order_ImportVerzeichnisNameTextField, String settings_Order_DoneVerzeichnisNameTextField, + String settings_PickerName, String settings_OtherOrdererNames) + { + this.settings_ExportFileFolder = new PropertyModel(settings_ExportFileFolder,"Dokumente","settings_ExportFileFolder"); + this.settings_SaveFileFolder = new PropertyModel(settings_SaveFileFolder,"Dokumente","settings_SaveFileFolder"); + this.settings_PublisherBlacklist = new PropertyModel(settings_PublisherBlacklist,"","settings_PublisherBlacklist"); + this.settings_RemoveDuplicates = new PropertyModel(settings_RemoveDuplicates,"true","settings_RemoveDuplicates"); + this.settings_DDCBlacklist = new PropertyModel(settings_DDCBlacklist,"","settings_DDCBlacklist"); + this.settings_DDCWhitelist = new PropertyModel(settings_DDCWhitelist,"","settings_DDCWhitelist"); + this.settings_BlockBelletristik = new PropertyModel(settings_BlockBelletristik, "", "settings_BlockBelletristik"); + this.settings_f1search = new PropertyModel(settings_f1search, Constants.CatalogueUrlTitleSearch, "settings_f1search"); + this.settings_f2search = new PropertyModel(settings_f2search, Constants.CatalogueUrlTitleAuthorSearch, "settings_f2search"); + this.settings_f3search = new PropertyModel(settings_f3search, Constants.CatalogueUrlIsbnfSearch, "settings_f3search"); + this.settings_f4search = new PropertyModel(settings_f4search, Constants.CatalogueUrlpublisherSearch, "settings_f4search"); + this.settings_f1searchShift = new PropertyModel(settings_f1searchShift, "", "settings_f1searchShift"); + this.settings_f2searchShift = new PropertyModel(settings_f2searchShift, "", "settings_f2searchShift"); + this.settings_f3searchShift = new PropertyModel(settings_f3searchShift, "", "settings_f3searchShift"); + this.settings_f4searchShift = new PropertyModel(settings_f4searchShift, "", "settings_f4searchShift"); + this.settings_f1searchCtrl = new PropertyModel(settings_f1searchCtrl, "", "settings_f1searchCtrl"); + this.settings_f2searchCtrl = new PropertyModel(settings_f2searchCtrl, "", "settings_f2searchCtrl"); + this.settings_f3searchCtrl = new PropertyModel(settings_f3searchCtrl, "", "settings_f3searchCtrl"); + this.settings_f4searchCtrl = new PropertyModel(settings_f4searchCtrl, "", "settings_f4searchCtrl"); + this.settings_stichwortmarkierungGruen = new PropertyModel(settings_stichwortmarkierungGruen, "", "settings_stichwortmarkierungGruen"); + this.settings_stichwortmarkierungRot = new PropertyModel(settings_stichwortmarkierungRot, "", "settings_stichwortmarkierungRot"); + this.settings_API_link = new PropertyModel(settings_API_link, "", "settings_API_link"); + this.settings_API_CheckApiAfterImport = new PropertyModel(settings_API_CheckApiAfterImport, "", "settings_API_CheckApiAfterImport"); + this.settings_API_RemoveHoldings = new PropertyModel(settings_API_RemoveHoldings, "true", "settings_API_RemoveHoldings"); + this.settings_API_isbnSeparator = new PropertyModel(settings_API_isbnSeparator, "true", "settings_API_isbnSeparator"); + this.settings_API_sigil = new PropertyModel(settings_API_sigil, "", "settings_API_sigil"); + this.settings_API_markOA = new PropertyModel(settings_API_markOA, "true", "settings_API_markOA"); + this.settings_API_RemoveOA = new PropertyModel(settings_API_RemoveOA, "true", "settings_API_RemoveOA"); + this.settings_RemoveDuplicatesByTitle = new PropertyModel(settings_RemoveDuplicatesByTitle, "", "settings_RemoveDuplicatesByTitle"); + this.settings_RemoveSchoolBooks = new PropertyModel(settings_RemoveSchoolBooks, "", "settings_RemoveSchoolBooks"); + this.settings_RemoveJuvenileLiterature = new PropertyModel(settings_RemoveJuvenileLiterature, "", "settings_RemoveJuvenileLiterature"); + this.settings_FieldDisplaySettings = new PropertyModel(settings_FieldDisplaySettings, Constants.DefaultFieldDefinition, "settings_FieldDisplaySettings"); + this.settings_RemoveTitlesWithoutISBNsInQueue = new PropertyModel(settings_RemoveTitlesWithoutISBNsInQueue, "", "settings_RemoveTitlesWithoutISBNsInQueue"); + this.settings_Order_ImportVerzeichnisNameTextField = new PropertyModel(settings_Order_ImportVerzeichnisNameTextField, "", "settings_Order_ImportVerzeichnisNameTextField"); + this.settings_Order_DoneVerzeichnisNameTextField = new PropertyModel(settings_Order_DoneVerzeichnisNameTextField, "", "settings_Order_DoneVerzeichnisNameTextField"); + this.settings_PickerOrOrdererName = new PropertyModel(settings_PickerName, "", "settings_PickerName"); + this.settings_OtherOrdererNames = new PropertyModel(settings_OtherOrdererNames, "", "settings_OtherOrdererNames"); + initPropertyList(); + } + + public PropertiesFileModel() + { + this.settings_ExportFileFolder = new PropertyModel("Dokumente","settings_ExportFileFolder"); + this.settings_SaveFileFolder = new PropertyModel("Dokumente","settings_SaveFileFolder"); + this.settings_PublisherBlacklist = new PropertyModel("","settings_PublisherBlacklist"); + this.settings_RemoveDuplicates = new PropertyModel("true","settings_RemoveDuplicates"); + this.settings_DDCBlacklist = new PropertyModel("","settings_DDCBlacklist"); + this.settings_DDCWhitelist = new PropertyModel("","settings_DDCWhitelist"); + this.settings_BlockBelletristik = new PropertyModel("false", "settings_BlockBelletristik"); + this.settings_f1search = new PropertyModel(Constants.CatalogueUrlTitleSearch, "settings_f1search"); + this.settings_f2search = new PropertyModel(Constants.CatalogueUrlTitleAuthorSearch, "settings_f2search"); + this.settings_f3search = new PropertyModel(Constants.CatalogueUrlIsbnfSearch, "settings_f3search"); + this.settings_f4search = new PropertyModel(Constants.CatalogueUrlpublisherSearch, "settings_f4search"); + this.settings_f1searchShift = new PropertyModel(Constants.KVKUrlTitleSearch, "settings_f1searchShift"); + this.settings_f2searchShift = new PropertyModel(Constants.KVKUrlTitleAuthorSearch, "settings_f2searchShift"); + this.settings_f3searchShift = new PropertyModel(Constants.KVKUrlIsbnfSearch, "settings_f3searchShift"); + this.settings_f4searchShift = new PropertyModel(Constants.KVKUrlpublisherSearch , "settings_f4searchShift"); + this.settings_f1searchCtrl = new PropertyModel(Constants.LehmannsUrlIsbnSearch, "settings_f1searchCtrl"); + this.settings_f2searchCtrl = new PropertyModel(Constants.RombachUrlIsbnSearch, "settings_f2searchCtrl"); + this.settings_f3searchCtrl = new PropertyModel(Constants.AmazonUrlIsbnSearch, "settings_f3searchCtrl"); + this.settings_f4searchCtrl = new PropertyModel("", "settings_f4searchCtrl"); + this.settings_stichwortmarkierungGruen = new PropertyModel("", "settings_stichwortmarkierungGruen"); + this.settings_stichwortmarkierungRot = new PropertyModel("", "settings_stichwortmarkierungRot"); + this.settings_API_link = new PropertyModel("https://sru.bsz-bw.de/swb?version=1.1&query=pica.isb%3D[{[isbn]}]&operation=searchRetrieve&maximumRecords=10&recordSchema=marcxmlk10os", "settings_API_link"); + this.settings_API_CheckApiAfterImport = new PropertyModel("false", "settings_API_CheckApiAfterImport"); + this.settings_API_RemoveHoldings = new PropertyModel("true", "settings_API_RemoveHoldings"); + this.settings_API_isbnSeparator = new PropertyModel("+or+pica.isb%3D", "", "settings_API_isbnSeparator"); + this.settings_API_sigil = new PropertyModel("DE-Frei129", "", "settings_API_sigil"); + this.settings_API_markOA = new PropertyModel("true", "", "settings_API_markOA"); + this.settings_API_RemoveOA = new PropertyModel("true", "", "settings_API_RemoveOA"); + this.settings_RemoveDuplicatesByTitle = new PropertyModel("false", "", "settings_RemoveDuplicatesByTitle"); + this.settings_RemoveSchoolBooks = new PropertyModel("false", "", "settings_RemoveSchoolBooks"); + this.settings_RemoveJuvenileLiterature = new PropertyModel("false", "", "settings_RemoveJuvenileLiterature"); + this.settings_FieldDisplaySettings = new PropertyModel(Constants.DefaultFieldDefinition, "settings_FieldDisplaySettings"); + this.settings_RemoveTitlesWithoutISBNsInQueue = new PropertyModel("false", "settings_RemoveTitlesWithoutISBNsInQueue"); + this.settings_Order_ImportVerzeichnisNameTextField = new PropertyModel("", "settings_Order_ImportVerzeichnisNameTextField"); + this.settings_Order_DoneVerzeichnisNameTextField = new PropertyModel("", "settings_Order_DoneVerzeichnisNameTextField"); + this.settings_PickerOrOrdererName = new PropertyModel("", "", "settings_PickerName"); + this.settings_OtherOrdererNames = new PropertyModel("", "", "settings_OtherOrdererNames"); + this.settings_FontSize = new PropertyModel("16", "", "settings_FontSize"); + this.settings_QueueBoxWidth = new PropertyModel("", "", "settings_QueueBoxWidth"); + this.settings_QueueBoxHeight = new PropertyModel("", "", "settings_QueueBoxHeight"); + + initPropertyList(); + } + + private void initPropertyList() + { + this.PropertyModels = new ArrayList(); + + this.PropertyModels.add(this.settings_ExportFileFolder); + this.PropertyModels.add(this.settings_SaveFileFolder); + this.PropertyModels.add(this.settings_PublisherBlacklist); + this.PropertyModels.add(this.settings_RemoveDuplicates); + this.PropertyModels.add(this.settings_DDCBlacklist); + this.PropertyModels.add(this.settings_DDCWhitelist); + this.PropertyModels.add(this.settings_BlockBelletristik); + this.PropertyModels.add(this.settings_f1search); + this.PropertyModels.add(this.settings_f2search); + this.PropertyModels.add(this.settings_f3search); + this.PropertyModels.add(this.settings_f4search); + this.PropertyModels.add(this.settings_f1searchShift); + this.PropertyModels.add(this.settings_f2searchShift); + this.PropertyModels.add(this.settings_f3searchShift); + this.PropertyModels.add(this.settings_f4searchShift); + this.PropertyModels.add(this.settings_f1searchCtrl); + this.PropertyModels.add(this.settings_f2searchCtrl); + this.PropertyModels.add(this.settings_f3searchCtrl); + this.PropertyModels.add(this.settings_f4searchCtrl); + this.PropertyModels.add(this.settings_stichwortmarkierungGruen); + this.PropertyModels.add(this.settings_stichwortmarkierungRot); + this.PropertyModels.add(this.settings_API_link); + this.PropertyModels.add(this.settings_API_CheckApiAfterImport); + this.PropertyModels.add(this.settings_API_RemoveHoldings); + this.PropertyModels.add(this.settings_API_sigil); + this.PropertyModels.add(this.settings_API_isbnSeparator); + this.PropertyModels.add(this.settings_API_markOA); + this.PropertyModels.add(this.settings_API_RemoveOA); + this.PropertyModels.add(this.settings_RemoveDuplicatesByTitle); + this.PropertyModels.add(this.settings_RemoveSchoolBooks); + this.PropertyModels.add(this.settings_RemoveJuvenileLiterature); + this.PropertyModels.add(this.settings_FieldDisplaySettings); + this.PropertyModels.add(this.settings_RemoveTitlesWithoutISBNsInQueue); + this.PropertyModels.add(this.settings_Order_ImportVerzeichnisNameTextField); + this.PropertyModels.add(this.settings_Order_DoneVerzeichnisNameTextField); + this.PropertyModels.add(this.settings_PickerOrOrdererName); + this.PropertyModels.add(this.settings_OtherOrdererNames); + this.PropertyModels.add(settings_FontSize); + this.PropertyModels.add(settings_QueueBoxWidth); + this.PropertyModels.add(settings_QueueBoxHeight); + + + } + + public void setGeneralProperties(String settings_ExportFileFolder) + { + this.settings_ExportFileFolder.setNewValue(settings_ExportFileFolder); + initPropertyList(); + } + + public Properties getProperties() + { + Properties properties = new Properties(); + for(PropertyModel propertyModel: PropertyModels) + { + properties.setProperty(propertyModel.TagNameValue, propertyModel.getCurrentValue()); + } + + return properties; + } + + + + public void setProperties(Properties propertiesFile) + { + for (Entry propertyFileItem : propertiesFile.entrySet()) + { + for (PropertyModel propertyModel : PropertyModels) + { + if (propertyFileItem.getKey().equals(propertyModel.TagNameValue)) + { + propertyModel.setNewValue(propertyFileItem.getValue().toString()); + } + } + } + initPropertyList(); + return; + } + + + + public int get_settingsLaunchMode() + { + return this._generalSetting_LaunchMode; + } + public void set_settingsPickerLaunchMode() + { + this._generalSetting_LaunchMode = 0; + } + + public void set_settingsOrderLaunchMode() + { + this._generalSetting_LaunchMode = 1; + } + + public void set_settingsPubFundMode() + { + this._generalSetting_LaunchMode = 2; + } + + + public String get_settings_ExportFileFolder() + { + return this.settings_ExportFileFolder.getCurrentValue(); + } + public String get_settings_PublisherBlacklist() + { + return this.settings_PublisherBlacklist.getCurrentValue(); + } + public String get_settings_RemoveDuplicates() + { + return this.settings_RemoveDuplicates.getCurrentValue(); + } + public String get_settings_DDCBlacklist() + { + return this.settings_DDCBlacklist.getCurrentValue(); + } + public String get_settings_DDCWhitelist() + { + return this.settings_DDCWhitelist.getCurrentValue(); + } + public String get_settings_BlockBelletristik() + { + return this.settings_BlockBelletristik.getCurrentValue(); + } + public String get_settings_SaveFileFolder() + { + return this.settings_SaveFileFolder.getCurrentValue(); + } + + public void set_settings_FontSize (String fontSize){this.settings_FontSize.setNewValue(fontSize);} + public void set_settings_QueueBoxWidth (String queueBoxWidth){this.settings_QueueBoxWidth.setNewValue(queueBoxWidth);} + public void set_settings_QueueBoxHeight (String queueBoxHeight) { this.settings_QueueBoxHeight.setNewValue(queueBoxHeight);} + + public String get_settings_FontSize (){ return this.settings_FontSize .getCurrentValue();} + public String get_settings_QueueBoxWidth (){ return this.settings_QueueBoxWidth .getCurrentValue();} + public String get_settings_QueueBoxHeight (){ return this.settings_QueueBoxHeight .getCurrentValue();} + + + public String get_settings_stichwortmarkierungGruen (){return this.settings_stichwortmarkierungGruen .getCurrentValue();} + public String get_settings_stichwortmarkierungRot (){return this.settings_stichwortmarkierungRot .getCurrentValue();} + + public String get_settings_API_link () {return this.settings_API_link.getCurrentValue();} + + public String get_settings_f1search (){return this.settings_f1search .getCurrentValue();} + public String get_settings_f2search (){return this.settings_f2search .getCurrentValue();} + public String get_settings_f3search (){return this.settings_f3search .getCurrentValue();} + public String get_settings_f4search (){return this.settings_f4search .getCurrentValue();} + public String get_settings_f1searchShift(){return this.settings_f1searchShift.getCurrentValue();} + public String get_settings_f2searchShift(){return this.settings_f2searchShift.getCurrentValue();} + public String get_settings_f3searchShift(){return this.settings_f3searchShift.getCurrentValue();} + public String get_settings_f4searchShift(){return this.settings_f4searchShift.getCurrentValue();} + public String get_settings_f1searchCtrl (){return this.settings_f1searchCtrl .getCurrentValue();} + public String get_settings_f2searchCtrl (){return this.settings_f2searchCtrl .getCurrentValue();} + public String get_settings_f3searchCtrl (){return this.settings_f3searchCtrl .getCurrentValue();} + public String get_settings_f4searchCtrl (){return this.settings_f4searchCtrl .getCurrentValue();} + public String get_settings_API_sigil (){return this.settings_API_sigil .getCurrentValue();} + public String get_settings_API_isbnSeparator (){return this.settings_API_isbnSeparator .getCurrentValue();} + public String get_settings_API_markOA (){return this.settings_API_markOA .getCurrentValue();} + public String get_settings_API_RemoveOA (){return this.settings_API_RemoveOA .getCurrentValue();} + + public String get_settings_API_CheckApiAfterImport (){return this.settings_API_CheckApiAfterImport .getCurrentValue();} + public String get_settings_API_RemoveHoldings (){return this.settings_API_RemoveHoldings .getCurrentValue();} + + public String get_settings_RemoveDuplicatesByTitle (){return this.settings_RemoveDuplicatesByTitle .getCurrentValue();} + public String get_settings_RemoveSchoolBooks (){return this.settings_RemoveSchoolBooks .getCurrentValue();} + public String get_settings_RemoveJuvenileLiterature (){return this.settings_RemoveJuvenileLiterature .getCurrentValue();} + public String get_settings_FieldDisplaySettings () {return this.settings_FieldDisplaySettings.getCurrentValue();} + public String get_settings_RemoveTitlesWithoutISBNsInQueue () {return this.settings_RemoveTitlesWithoutISBNsInQueue.getCurrentValue();} + + public String get_settings_Order_ImportVerzeichnisNameTextField () {return this.settings_Order_ImportVerzeichnisNameTextField.getCurrentValue();} + public String get_settings_Order_DoneVerzeichnisNameTextField () {return this.settings_Order_DoneVerzeichnisNameTextField.getCurrentValue();} + + public String get_settings_PickerOrOrdererName () {return this.settings_PickerOrOrdererName.getCurrentValue();} + public String get_settings_OtherOrdererNames () {return this.settings_OtherOrdererNames.getCurrentValue();} + + /* + public String get_labels_ExportFileFolder() + { + return this.settings_ExportFileFolder.getTagNameValue(); + } + public String get_labels_PublisherBlacklist() + { + return this.settings_PublisherBlacklist.getTagNameValue(); + } + public String get_labels_RemoveDuplicates() + { + return this.settings_RemoveDuplicates.getTagNameValue(); + } + public String get_labels_DDCBlacklist() + { + return this.settings_DDCBlacklist.getTagNameValue(); + } + public String get_labels_DDCWhitelist() + { + return this.settings_DDCWhitelist.getTagNameValue(); + } + public String get_labels_BlockBelletristik() + { + return this.settings_BlockBelletristik.getTagNameValue(); + } + public String get_labels_SaveFileFolder() + { + return this.settings_SaveFileFolder.getTagNameValue(); + } + + public String get_labels_f1search (){return this.settings_f1search .getTagNameValue();} + public String get_labels_f2search (){return this.settings_f2search .getTagNameValue();} + public String get_labels_f3search (){return this.settings_f3search .getTagNameValue();} + public String get_labels_f4search (){return this.settings_f4search .getTagNameValue();} + public String get_labels_f1searchShift(){return this.settings_f1searchShift.getTagNameValue();} + public String get_labels_f2searchShift(){return this.settings_f2searchShift.getTagNameValue();} + public String get_labels_f3searchShift(){return this.settings_f3searchShift.getTagNameValue();} + public String get_labels_f4searchShift(){return this.settings_f4searchShift.getTagNameValue();} + public String get_labels_f1searchCtrl (){return this.settings_f1searchCtrl .getTagNameValue();} + public String get_labels_f2searchCtrl (){return this.settings_f2searchCtrl .getTagNameValue();} + public String get_labels_f3searchCtrl (){return this.settings_f3searchCtrl .getTagNameValue();} + public String get_labels_f4searchCtrl (){return this.settings_f4searchCtrl .getTagNameValue();} + public String get_labels_API_sigil (){return this.settings_API_sigil .getTagNameValue();} + public String get_labels_API_isbnSeparator (){return this.settings_API_isbnSeparator .getTagNameValue();} + public String get_labels_API_markOA (){return this.settings_API_markOA .getTagNameValue();} + public String get_labels_API_RemoveOA (){return this.settings_API_RemoveOA .getTagNameValue();} + + public String get_labels_API_RemoveHoldings (){return this.settings_API_RemoveHoldings .getTagNameValue();} + public String get_labels_API_CheckApiAfterImport (){return this.settings_API_CheckApiAfterImport .getTagNameValue();} + + public String get_labels_stichwortmarkierungGruen (){return this.settings_stichwortmarkierungGruen .getTagNameValue();} + public String get_labels_stichwortmarkierungRot (){return this.settings_stichwortmarkierungRot .getTagNameValue();} + + public String get_Labels_API_link () {return this.settings_API_link.getTagNameValue();} + */ + +} \ No newline at end of file diff --git a/src/models_reiheAPicker/PropertyModel.java b/src/models_reiheAPicker/PropertyModel.java new file mode 100644 index 0000000..7026a79 --- /dev/null +++ b/src/models_reiheAPicker/PropertyModel.java @@ -0,0 +1,52 @@ +package models_reiheAPicker; + +//only used in model: PropertyFileModel +//Basic propertyEntity +//InitialValue not needed as of now +public class PropertyModel { + + public final String TagNameValue; + private String CurrentValue; + private String InitialValue; + private String DefaultValue; + + public PropertyModel(String currentValue, String defaultValue, String tagNameValue) { + this.CurrentValue = currentValue; + this.InitialValue = currentValue; + this.DefaultValue = defaultValue; + this.TagNameValue = tagNameValue; + } + + public PropertyModel(String defaultValue, String tagNameValue) { + this.CurrentValue = defaultValue; + this.InitialValue = defaultValue; + this.DefaultValue = defaultValue; + this.TagNameValue = tagNameValue; + } + + public String getCurrentValue() + { + return this.CurrentValue; + } + + public String getInitialValue() + { + return this.InitialValue; + } + + public String getDefaultValue() + { + return this.DefaultValue; + } + + public String getTagNameValue() + { + return this.TagNameValue; + } + + public void setNewValue(String newValue) + { + this.CurrentValue = newValue; + this.InitialValue = newValue; + } +} \ No newline at end of file diff --git a/src/models_reiheAPicker/PublisherAmountBooksModel.java b/src/models_reiheAPicker/PublisherAmountBooksModel.java new file mode 100644 index 0000000..7a23814 --- /dev/null +++ b/src/models_reiheAPicker/PublisherAmountBooksModel.java @@ -0,0 +1,14 @@ +package models_reiheAPicker; + +public class PublisherAmountBooksModel { + + public String publisher; + public int numberOfBooks; + + public PublisherAmountBooksModel(String publisher, int numberOfBooks) + { + this.publisher = publisher; + this.numberOfBooks = numberOfBooks; + } + +} diff --git a/src/models_reiheAPicker/TitleModel.java b/src/models_reiheAPicker/TitleModel.java new file mode 100644 index 0000000..1a2c964 --- /dev/null +++ b/src/models_reiheAPicker/TitleModel.java @@ -0,0 +1,5 @@ +package models_reiheAPicker; + +public class TitleModel { + +} diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000..c6c0e19 --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,18 @@ +module reiheAPicker { + requires javafx.graphics; + requires javafx.controls; + requires org.apache.commons.io; + requires javafx.base; + requires java.desktop; + requires java.xml; + requires org.jsoup; + requires org.json; + requires commons.lang; + requires poi; + requires poi.ooxml; + requires java.base; + requires java.datatransfer; + requires java.sql; + requires okhttp3; + opens launcher to javafx.graphics; +} \ No newline at end of file diff --git a/src/userInterface_reiheAPicker/AdjustTitleTabTab.java b/src/userInterface_reiheAPicker/AdjustTitleTabTab.java new file mode 100644 index 0000000..b2df568 --- /dev/null +++ b/src/userInterface_reiheAPicker/AdjustTitleTabTab.java @@ -0,0 +1,16 @@ +package userInterface_reiheAPicker; + +import java.util.List; + +import javafx.scene.control.Tab; + +public class AdjustTitleTabTab { + + public Tab tab; + + public AdjustTitleTabTab(List columns) + { + + } + +} diff --git a/src/userInterface_reiheAPicker/Database_OpenOrdersTab.java b/src/userInterface_reiheAPicker/Database_OpenOrdersTab.java new file mode 100644 index 0000000..e23e903 --- /dev/null +++ b/src/userInterface_reiheAPicker/Database_OpenOrdersTab.java @@ -0,0 +1,257 @@ +package userInterface_reiheAPicker; + +import java.io.IOException; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.List; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TextField; +import javafx.scene.image.ImageView; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import logic_reiheAPicker.DataBaseHandler; +import logic_reiheAPicker.GetButtonPics; +import logic_reiheAPicker.PropertyFileHandler; +import models_reiheAPicker.ListEnum; +import var_reiheAPicker.Constants; + +public class Database_OpenOrdersTab { + + GridPane gridpane = new GridPane(); + ScrollPane scrollPane = new ScrollPane(); + public Tab database_OpenOrdersTab; + Button searchByTitleButton; + Button refreshButton; + TextField textfield = new TextField(); + VBox vbox = new VBox(); + HBox hbox = new HBox(); + private PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + DataBaseHandler databaseHandler = new DataBaseHandler(); + +public Database_OpenOrdersTab() +{ + try { + loadDataFromDatabase(null); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + this.scrollPane.setFitToHeight(true); + this.scrollPane.setFitToWidth(true); + this.scrollPane.setContent(gridpane); + this.searchByTitleButton = new Button("Nach Titel suchen"); + + this.scrollPane.setFitToWidth(true); // set content width to viewport width + this.scrollPane.setPannable(true); // allow scrolling via mouse dragging + this.database_OpenOrdersTab = new Tab("Bestellhistorie"); + this.database_OpenOrdersTab.setClosable(false); + + this.refreshButton = new Button(); + ImageView img3 = new ImageView(GetButtonPics.getButtonImage_refresh()); + img3.setFitWidth(25); + img3.setFitHeight(25); + refreshButton.setGraphic(img3); + refreshButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + try { + + loadDataFromDatabase(null); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.hbox.getChildren().addAll(refreshButton, new Label(" "), this.textfield, new Label(" "), this.searchByTitleButton); + this.vbox.getChildren().addAll(hbox, scrollPane); + + this.database_OpenOrdersTab.setContent(this.vbox); + this.scrollPane.setStyle("-fx-border-color:black; -fx-border-width:2; -fx-border-insets:2;"); + + + + + searchByTitleButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + try { + + loadDataFromDatabase(databaseHandler.pickerSafetyDB_getAllDatasetsByTitle(getSearchFieldContent())); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + +} + +private final String getSearchFieldContent() +{ + final String text = this.textfield.getText(); + return text; +} + +public void loadDataFromDatabase(List> dataSet_preloaded) throws SQLException +{ + final String user = propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName(); + this.gridpane.getChildren().clear(); + + List> datasets = null; + if (dataSet_preloaded == null) + { + if (propertyFileHandler.propertyFileModel.get_settingsLaunchMode() != 1) + { + datasets = databaseHandler.pickerSafetyDB_getAllDatasets(propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName()); + } else + { + datasets = databaseHandler.pickerSafetyDB_getAllDatasets(""); + } + + } else + { + datasets = dataSet_preloaded; + } + + Label titleLabel = new Label(" Titel: "); + titleLabel.setMaxWidth(700); + titleLabel.setMinWidth(500); + Label auswahlLabel = new Label(" Auswahl am: "); + auswahlLabel.setMinWidth(120); + Label gewaehltLabel = new Label(" Gewählt von: "); + gewaehltLabel.setMinWidth(60); + Label bestelltAmLabel = new Label(" Bestellt am: "); + bestelltAmLabel.setMinWidth(120); + Label bestelltVonLabel = new Label(" Bestellt von: "); + bestelltVonLabel.setMinWidth(60); + Label hinweisLabel = new Label(" Hinweis: "); + hinweisLabel.setMaxWidth(400); + hinweisLabel.setMinWidth(200); + + this.gridpane.add(titleLabel, 2, 0); + this.gridpane.add(auswahlLabel, 4, 0); + this.gridpane.add(gewaehltLabel, 6, 0); + this.gridpane.add(bestelltAmLabel, 8, 0); + this.gridpane.add(bestelltVonLabel, 10, 0); + this.gridpane.add(hinweisLabel, 11, 0); + + this.gridpane.add(new Label(" ? "), 12, 0); + if (propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + this.gridpane.add(new Label(" / "), 14, 0); + } + + for (int i = 0; i < datasets.size(); i ++) + { + Label titleInsideLabel = new Label(" " + datasets.get(i).get(2) + " "); + final int index = i; + this.gridpane.add(titleInsideLabel, 2, i+1); + this.gridpane.add(new Label(" " + datasets.get(i).get(0) + " "), 4, i+1); + this.gridpane.add(new Label(" " + datasets.get(i).get(3) + " "), 6, i+1); + this.gridpane.add(new Label(" " + datasets.get(i).get(1) + " "), 8, i+1); + this.gridpane.add(new Label(" " + datasets.get(i).get(4) + " "), 10, i+1); + this.gridpane.add(new Label(" " + datasets.get(i).get(6) + " "), 11, i+1); + final String data = datasets.get(i).get(5); + Button showDataButton = new Button(""); + showDataButton.setPrefSize(15, 15); + ImageView img = new ImageView(GetButtonPics.getButtonImage_importButton()); + img.setFitWidth(15); + img.setFitHeight(15); + showDataButton.setGraphic(img); + showDataButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + String neatString = data; + neatString = neatString.replace("Titel: ", "\r\nTitel: "); + neatString = neatString.replace("Hinweis: ", "\r\nHinweis: "); + neatString = neatString.replace("Bestand: ", "\r\nBestand: "); + neatString = neatString.replace("GewaehltVon: ", "\r\nGewählt Von: "); + neatString = neatString.replace("BearbeitetVon: ", "\r\nBearbeitet Von: "); + neatString = neatString.replace("Status: ", "\r\nStatus: "); + neatString = neatString.replace("Werktitel: ", "\r\nWerktitel: "); + neatString = neatString.replace("Verfasser: ", "\r\nVerfasser: "); + neatString = neatString.replace("Verlag: ", "\r\nVerlag: "); + neatString = neatString.replace("Verlagsort: ", "\r\nVerlagsort: "); + neatString = neatString.replace("Erscheinungsjahr: ", "\r\nErscheinungsjahr: "); + neatString = neatString.replace("Erscheinungstermin: ", "\r\nErscheinungstermin: "); + neatString = neatString.replace("ISBN: ", "\r\nISBN: "); + neatString = neatString.replace("Auflage: ", "\r\nAuflage: "); + neatString = neatString.replace("Preis: ", "\r\nPreis: "); + neatString = neatString.replace("Festeinband : ", "\r\nFesteinband: "); + neatString = neatString.replace("Seiten: ", "\r\nSeiten: "); + neatString = neatString.replace("Begleitmaterial: ", "\r\nBegleitmaterial: "); + neatString = neatString.replace("Reihe: ", "\r\nReihe: "); + neatString = neatString.replace("Fußnote: ", "\r\nFußnote: "); + neatString = neatString.replace("Parallele Ausgabe: ", "\r\nParallele Ausgabe: "); + neatString = neatString.replace("Hochschulschriftenvermerk: ", "\r\nHochschulschriftenvermerk: "); + neatString = neatString.replace("Datenträger: ", "\r\nDatenträger: "); + neatString = neatString.replace("Band Wochenverzeichnisnummer: ", "\r\nBand Wochenverzeichnisnummer: "); + neatString = neatString.replace("DDC-Sachgruppe: ", "\r\nDDC-Sachgruppe: "); + neatString = neatString.replace("Schlagworte: ", "\r\nSchlagworte: "); + neatString = neatString.replace("Vollständige DDC-Notation: ", "\r\nVollständige DDC-Notation: "); + neatString = neatString.replace("Inhaltsverzeichnis: ", "\r\nInhaltsverzeichnis: "); + neatString = neatString.replace("Inhaltstext: ", "\r\nInhaltstext: "); + neatString = neatString.replace("Links: ", "\r\nLinks: "); + neatString = neatString.replace("Desiderat: ", "\r\nDesiderat: "); + + Alert alert = new Alert (AlertType.INFORMATION, neatString); + alert.setHeaderText(null); + alert.setGraphic(null); + alert.setTitle("Titelanzeige"); + alert.show(); + } + }); + this.gridpane.add(showDataButton, 12, i+1); + + + if (datasets.get(i).get(1) == null || datasets.get(i).get(1).contains("null")) + { + final String title = datasets.get(index).get(2); + final String hinweis = datasets.get(index).get(6); + Button clearDataStatusButton = new Button(""); + clearDataStatusButton.setPrefSize(15, 15); + ImageView img2 = new ImageView(GetButtonPics.getButtonImage_closedEye()); + img2.setFitWidth(15); + img2.setFitHeight(15); + clearDataStatusButton.setGraphic(img2); + clearDataStatusButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); + String tsNow = sdf.format(timestamp); + try { + databaseHandler.pickerSafetyDBUpdate(tsNow, user + " (history Tab)", title, hinweis); + loadDataFromDatabase(null); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + if (propertyFileHandler.propertyFileModel.get_settingsLaunchMode() == 1) + { + this.gridpane.add(clearDataStatusButton, 14, i+1); + } + } + + + + + + //this.gridpane.add(new Label(datasets.get(i).get(5)), 6, i); + } +} + +} diff --git a/src/userInterface_reiheAPicker/ExportTab.java b/src/userInterface_reiheAPicker/ExportTab.java new file mode 100644 index 0000000..0414a67 --- /dev/null +++ b/src/userInterface_reiheAPicker/ExportTab.java @@ -0,0 +1,17 @@ +package userInterface_reiheAPicker; + +import javafx.scene.control.Tab; +import var_reiheAPicker.Constants; + +public class ExportTab { + + public Tab exportTab; + + public ExportTab() { + this.exportTab = new Tab(Constants.ExportTabName); + this.exportTab.setClosable(false); + } + + + +} diff --git a/src/userInterface_reiheAPicker/FondsManagerFundingTab.java b/src/userInterface_reiheAPicker/FondsManagerFundingTab.java new file mode 100644 index 0000000..7c33b83 --- /dev/null +++ b/src/userInterface_reiheAPicker/FondsManagerFundingTab.java @@ -0,0 +1,2602 @@ +package userInterface_reiheAPicker; + +import java.awt.Toolkit; +import java.awt.datatransfer.StringSelection; +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Alert; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.ProgressIndicator; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextInputDialog; +import javafx.scene.control.Tooltip; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Label; +import javafx.scene.control.OverrunStyle; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.scene.input.ScrollEvent; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Priority; +import javafx.scene.layout.Region; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.Text; +import javafx.stage.Stage; +import javafx.stage.StageStyle; +import logic_reiheAPicker.DataBaseHandler; +import logic_reiheAPicker.GetButtonPics; +import logic_reiheAPicker.ImportExportFileHandler; +import logic_reiheAPicker.PropertyFileHandler; +import logic_reiheAPicker.QueueManager; +import models_reiheAPicker.CustomTextAreaPickerTab; +import models_reiheAPicker.FondsManager_applicationModel; +import models_reiheAPicker.ListEnum; +import var_reiheAPicker.Constants; + +public class FondsManagerFundingTab { + +public Tab oaTab; + + public GridPane gridpaneLower; + private PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + + public HBox currentsHBox; + public HBox nextsHBox; + public HBox formersHBox; + public HBox shortCutHBox; + private double QueueWidth; + private double QueueHeight; + + public Text progressText; + + public VBox currentsleftVBox; + public VBox currentsmiddleVBox; + public VBox currentsrightVBox; + public VBox formersleftVBox; + public VBox formersmiddleVBox; + public VBox formersrightVBox; + public VBox nextsleftVBox; + public VBox nextsmiddleVBox; + public VBox nextsrightVBox; + + public CustomTextAreaPickerTab currentspicks; + public CustomTextAreaPickerTab currentsqueue; + public CustomTextAreaPickerTab currentsnopes; + + public Label textA1; + public Label textA2; + public Label textA3; + public Label textA4; + public Label textA5; + public Label textA6; + public Label textA7; + public Label textA8; + public Label textA9; + public Label textA10; + + public Label textB1; + public Label textB2; + public Label textB3; + public Label textB4; + public Label textB5; + public Label textB6; + public Label textB7; + public Label textB8; + public Label textB9; + public Label textB10; + + public Label textC1; + public Label textC2; + public Label textC3; + public Label textC4; + public Label textC5; + public Label textC6; + public Label textC7; + public Label textC8; + public Label textC9; + public Label textC10; + + public Label textD1; + public Label textD2; + public Label textD3; + public Label textD4; + public Label textD5; + public Label textD6; + public Label textD7; + public Label textD8; + public Label textD9; + public Label textD10; + + public Label textE1; + public Label textE2; + public Label textE3; + public Label textE4; + public Label textE5; + public Label textE6; + public Label textE7; + public Label textE8; + public Label textE9; + public Label textE10; + + public Label textF1; + public Label textF2; + public Label textF3; + public Label textF4; + public Label textF5; + public Label textF6; + public Label textF7; + public Label textF8; + public Label textF9; + public Label textF10; + + public HBox markedKeyWordsHBoxNopes; + public HBox markedKeyWordsHBoxQueue; + public HBox markedKeyWordsHBoxPicks; + public Label markedKeyWordsNopesGreen; + public Label markedKeyWordsNopesRed; + public Label markedKeyWordsQueueGreen; + public Label markedKeyWordsQueueRed; + public Label markedKeyWordsPicksGreen; + public Label markedKeyWordsPicksRed; + public Label markedKeyWordsNopesOA; + public Label markedKeyWordsQueueOA; + public Label markedKeyWordsPicksOA; + + public Label pleaseWaitLabel = new Label("Titelliste wird auf Bestandsnachweise geprüft. Bitte warten."); + + Image ButtonImage_ctrl; + //Image ButtonImage_space; + //Image ButtonImage_shift; + //Image ButtonImage_backspace; + Image ButtonImage_F1; + Image ButtonImage_F2; + Image ButtonImage_F3; + Image ButtonImage_F4; + //Image ButtonImage_F5; + Image ButtonImage_F6; + //Image ButtonImage_F7; + Image ButtonImage_enter; + Image ButtonImage_arrowRight; + Image ButtonImage_verticalLine; + Image ButtonImage_closedEye; + Image QuestionMarkImage; + Image ButtonImage_alt; + Image IHV_Image; + Image IHT_Image; + + ImageView IHV_ImageViewNopes; + ImageView IHT_ImageViewNopes; + ImageView IHV_ImageViewQueue; + ImageView IHT_ImageViewQueue; + ImageView IHV_ImageViewPicks; + ImageView IHT_ImageViewPicks; + Button IHV_ButtonNopes; + Button IHT_ButtonNopes; + Button IHV_ButtonQueue; + Button IHT_ButtonQueue; + Button IHV_ButtonPicks; + Button IHT_ButtonPicks; + + + Button openBillButtonQueue; + Button openBillButtonPicks; + + Button helpButton; + + Stage primaryStage; + public QueueManager queuemanager; + public int buildStage = -1; + + public ProgressBar progressBar; + + /* last action 0: none + * last action 1: swipeLeft + * last action 2: swipeRight + */ + private int lastAction = 0; + private int fontSize = 16; + + public FondsManagerFundingTab(Stage primaryStage) + { + + + + this.primaryStage = primaryStage; + + this.primaryStage.widthProperty().addListener((observable, oldValue, newValue) -> { + resizeEvent((double) newValue); + }); + this.primaryStage.heightProperty().addListener((observable, oldValue, newValue) -> { + resizeEvent((double) newValue); + }); + + + + this.oaTab = new Tab(Constants.ChooserTabName_OAFondsManager_funding); + this.oaTab.setClosable(false); + this.buildStage = 0; + + } + + private void resizeEvent(double newValue) + { + /* + * proven to be stupid + */ + + + } + + private void updateQueueProgress(double number) + { + this.progressBar.setProgress(number); + } + + public void initialFormatting() + { + updateFormattedTitle(ListEnum.NOPES); + updateFormattedTitle(ListEnum.PICKS); + updateFormattedTitle(ListEnum.QUEUE); + } + + public void rebuild(List applicatonModels) throws InterruptedException { + + initiateElements(); + configureElements(); + this.buildStage = 1; + int bearbeitetVonIndex = -1; + + + + + if (this.propertyFileHandler.propertyFileModel.get_settings_FontSize().length() > 0) + { + this.fontSize = Integer.parseInt(this.propertyFileHandler.propertyFileModel.get_settings_FontSize()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth().length() > 0) + { + this.QueueWidth = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight().length() > 0) + { + this.QueueHeight = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight()); + } + + + changeGridWidhtAndHeightAccordingToPropertiesOrDefault(); + + List> queueTitles = new ArrayList>(); + List> nopeTitles = new ArrayList>(); + List> pickTitles = new ArrayList>(); + + for (FondsManager_applicationModel model : applicatonModels) + { + if (model.publicationModel.applicationStage.equals("4")) + { + queueTitles.add(model.getValues()); + }else if (model.publicationModel.applicationStage.equals("3")) + { + nopeTitles.add(model.getValues()); + } else if (model.publicationModel.applicationStage.equals("5")) + { + pickTitles.add(model.getValues()); + } + + } + + if (applicatonModels == null) + { + return; + } + + List columnNames = applicatonModels.get(0).getColumns(); + + + this.queuemanager = new QueueManager(columnNames, nopeTitles, queueTitles, pickTitles); + + + configureEventsGeneral(); + configureEventsQueue(); + configureEventsPicks(); + configureEventsNopes(); + this.QueueWidth = this.currentsqueue.getWidth(); + this.QueueHeight = this.currentsqueue.getHeight(); + updateLists(); + } + + + public void updateFormattedTitles(boolean updatenopes, String altNopeTitle, boolean updatequeue, String altQueueTitle, boolean updatepicks, String altPickTitle, boolean updateApi) + { + if (updatenopes) + { + if (altNopeTitle != null) + { + this.currentsnopes.setText(altNopeTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsnopes.setText(queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + + } + } + if (updatequeue) + { + if (altQueueTitle != null) + { + this.currentsqueue.setText(altQueueTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsqueue.setText(queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + + } + } + if (updatepicks) + { + if (altPickTitle != null) + { + this.currentspicks.setText(altPickTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentspicks.setText(queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + + } + } + } + + private void updateLists() + { + + this.currentsqueue.setVisible(true); + this.currentspicks.setVisible(true); + this.currentsnopes.setVisible(true); + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, false); + + updateFormattedTitle(ListEnum.NOPES); + updateFormattedTitle(ListEnum.QUEUE); + } + + public void resetformersleft() + { + this.textA1.setText(" "); + this.textA2.setText(" "); + this.textA3.setText(" "); + this.textA4.setText(" "); + this.textA5.setText(" "); + this.textA6.setText(" "); + this.textA7.setText(" "); + this.textA8.setText(" "); + this.textA9.setText(" "); + this.textA10.setText(" "); + } + + public void resetformersmiddle() + { + this.textB1.setText(" "); + this.textB2.setText(" "); + this.textB3.setText(" "); + this.textB4.setText(" "); + this.textB5.setText(" "); + this.textB6.setText(" "); + this.textB7.setText(" "); + this.textB8.setText(" "); + this.textB9.setText(" "); + this.textB10.setText(" "); + } + + public void resetformersright() + { + this.textC1.setText(" "); + this.textC2.setText(" "); + this.textC3.setText(" "); + this.textC4.setText(" "); + this.textC5.setText(" "); + this.textC6.setText(" "); + this.textC7.setText(" "); + this.textC8.setText(" "); + this.textC9.setText(" "); + this.textC10.setText(" "); + } + + public void resetnextsleft() + { + this.textD1.setText(" "); + this.textD2.setText(" "); + this.textD3.setText(" "); + this.textD4.setText(" "); + this.textD5.setText(" "); + this.textD6.setText(" "); + this.textD7.setText(" "); + this.textD8.setText(" "); + this.textD9.setText(" "); + this.textD10.setText(" "); + } + + public void resetnextsmiddle() + { + this.textE1.setText(" "); + this.textE2.setText(" "); + this.textE3.setText(" "); + this.textE4.setText(" "); + this.textE5.setText(" "); + this.textE6.setText(" "); + this.textE7.setText(" "); + this.textE8.setText(" "); + this.textE9.setText(" "); + this.textE10.setText(" "); + } + + public void resetnextsrightt() + { + this.textF1.setText(" "); + this.textF2.setText(" "); + this.textF3.setText(" "); + this.textF4.setText(" "); + this.textF5.setText(" "); + this.textF6.setText(" "); + this.textF7.setText(" "); + this.textF8.setText(" "); + this.textF9.setText(" "); + this.textF10.setText(" "); + } + + public String shortenShortTitleString(String title) + { + + + String titleShort = title.split(" : ")[0]; + if (titleShort.length() > 60) + { + titleShort = titleShort.substring(0, 59); + } + + //return titleShort; + return title; + } + + public void updateQueues(boolean updateNopes, boolean updateQueue, boolean updatePicks) + { + + List> formersleft; + List> formersright; + List> formersmiddle; + List> nextsleft; + List> nextsright; + List> nextsmiddle; + + if (updateNopes) + { + formersleft = queuemanager.get10Formers(ListEnum.NOPES); + nextsleft = queuemanager.get10Nexts(ListEnum.NOPES); + if (formersleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersleft.size()-1) + { + this.textA10.setText(" "); + } else + { + this.textA10.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersleft.size()-1) + { + this.textA9.setText(" "); + } else + { + this.textA9.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersleft.size()-1) + { + this.textA8.setText(" "); + } else + { + this.textA8.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersleft.size()-1) + { + this.textA7.setText(" "); + } else + { + this.textA7.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersleft.size()-1) + { + this.textA6.setText(" "); + } else + { + this.textA6.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersleft.size()-1) + { + this.textA5.setText(" "); + } else + { + this.textA5.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersleft.size()-1) + { + this.textA4.setText(" "); + } else + { + this.textA4.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersleft.size()-1) + { + this.textA3.setText(" "); + } else + { + this.textA3.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersleft.size()-1) + { + this.textA2.setText(" "); + break; + } else + { + this.textA2.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersleft.size()-1) + { + this.textA1.setText(" "); + break; + } else + { + this.textA1.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersleft(); + + if (nextsleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsleft.size()-1) + { + this.textD1.setText(" "); + } else + { + this.textD1.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsleft.size()-1) + { + this.textD2.setText(" "); + } else + { + this.textD2.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsleft.size()-1) + { + this.textD3.setText(" "); + } else + { + this.textD3.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsleft.size()-1) + { + this.textD4.setText(" "); + } else + { + this.textD4.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsleft.size()-1) + { + this.textD5.setText(" "); + } else + { + this.textD5.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsleft.size()-1) + { + this.textD6.setText(" "); + } else + { + this.textD6.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsleft.size()-1) + { + this.textD7.setText(" "); + } else + { + this.textD7.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsleft.size()-1) + { + this.textD8.setText(" "); + } else + { + this.textD8.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsleft.size()-1) + { + this.textD9.setText(" "); + break; + } else + { + this.textD9.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsleft.size()-1) + { + this.textD10.setText(" "); + break; + } else + { + this.textD10.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsleft(); + } + + if (updateQueue) + { + formersmiddle = queuemanager.get10Formers(ListEnum.QUEUE); + nextsmiddle = queuemanager.get10Nexts(ListEnum.QUEUE); + if (formersmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersmiddle.size()-1) + { + this.textB10.setText(" "); + } else + { + this.textB10.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersmiddle.size()-1) + { + this.textB9.setText(" "); + } else + { + this.textB9.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersmiddle.size()-1) + { + this.textB8.setText(" "); + } else + { + this.textB8.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersmiddle.size()-1) + { + this.textB7.setText(" "); + } else + { + this.textB7.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersmiddle.size()-1) + { + this.textB6.setText(" "); + } else + { + this.textB6.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersmiddle.size()-1) + { + this.textB5.setText(" "); + } else + { + this.textB5.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersmiddle.size()-1) + { + this.textB4.setText(" "); + } else + { + this.textB4.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersmiddle.size()-1) + { + this.textB3.setText(" "); + } else + { + this.textB3.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersmiddle.size()-1) + { + this.textB2.setText(" "); + break; + } else + { + this.textB2.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersmiddle.size()-1) + { + this.textB1.setText(" "); + break; + } else + { + this.textB1.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersmiddle(); + + if (nextsmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsmiddle.size()-1) + { + this.textE1.setText(" "); + } else + { + this.textE1.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsmiddle.size()-1) + { + this.textE2.setText(" "); + } else + { + this.textE2.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsmiddle.size()-1) + { + this.textE3.setText(" "); + } else + { + this.textE3.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsmiddle.size()-1) + { + this.textE4.setText(" "); + } else + { + this.textE4.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsmiddle.size()-1) + { + this.textE5.setText(" "); + } else + { + this.textE5.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsmiddle.size()-1) + { + this.textE6.setText(" "); + } else + { + this.textE6.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsmiddle.size()-1) + { + this.textE7.setText(" "); + } else + { + this.textE7.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsmiddle.size()-1) + { + this.textE8.setText(" "); + } else + { + this.textE8.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsmiddle.size()-1) + { + this.textE9.setText(" "); + break; + } else + { + this.textE9.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsmiddle.size()-1) + { + this.textE10.setText(" "); + break; + } else + { + this.textE10.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsmiddle(); + } + + if (updatePicks) + { //formers + formersright = queuemanager.get10Formers(ListEnum.PICKS); + nextsright = queuemanager.get10Nexts(ListEnum.PICKS); + + if (formersright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersright.size()-1) + { + this.textC10.setText(" "); + } else + { + this.textC10.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersright.size()-1) + { + this.textC9.setText(" "); + } else + { + this.textC9.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersright.size()-1) + { + this.textC8.setText(" "); + } else + { + this.textC8.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersright.size()-1) + { + this.textC7.setText(" "); + } else + { + this.textC7.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersright.size()-1) + { + this.textC6.setText(" "); + } else + { + this.textC6.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersright.size()-1) + { + this.textC5.setText(" "); + } else + { + this.textC5.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersright.size()-1) + { + this.textC4.setText(" "); + } else + { + this.textC4.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersright.size()-1) + { + this.textC3.setText(" "); + } else + { + this.textC3.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersright.size()-1) + { + this.textC2.setText(" "); + break; + } else + { + this.textC2.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersright.size()-1) + { + this.textC1.setText(" "); + break; + } else + { + this.textC1.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersright(); + + //nexts + if (nextsright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsright.size()-1) + { + this.textF1.setText(" "); + } else + { + this.textF1.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsright.size()-1) + { + this.textF2.setText(" "); + } else + { + this.textF2.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsright.size()-1) + { + this.textF3.setText(" "); + } else + { + this.textF3.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsright.size()-1) + { + this.textF4.setText(" "); + } else + { + this.textF4.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsright.size()-1) + { + this.textF5.setText(" "); + } else + { + this.textF5.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsright.size()-1) + { + this.textF6.setText(" "); + } else + { + this.textF6.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsright.size()-1) + { + this.textF7.setText(" "); + } else + { + this.textF7.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsright.size()-1) + { + this.textF8.setText(" "); + } else + { + this.textF8.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsright.size()-1) + { + this.textF9.setText(" "); + break; + } else + { + this.textF9.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsright.size()-1) + { + this.textF10.setText(" "); + break; + } else + { + this.textF10.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsrightt(); + } + + + + + + + + + + + + + + + + + + + + } + + private void exportQueue(QueueManager queuemanager) + { + if (queuemanager.isExportFolderValid()) + { + ImportExportFileHandler importExportFileHandler = new ImportExportFileHandler(); + + queuemanager.exportPicks(); + try { + importExportFileHandler.openExportFileFolder(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Warnung"); + alert.setHeaderText("Kein gültiger Exportpfad angegeben. Ihre Daten wurden noch nicht gespeichert."); + alert.setContentText("Bitte gehen Sie zu den Importeinstellungen und überprüfen Sie Ihre Eingaben!"); + + alert.showAndWait(); + } + } + + private void initiateElements() + { + this.oaTab = new Tab(Constants.ChooserTabName_OAFondsManager_funding); + + this.currentsqueue = new CustomTextAreaPickerTab(ListEnum.QUEUE); + this.currentspicks = new CustomTextAreaPickerTab(ListEnum.PICKS); + this.currentsnopes = new CustomTextAreaPickerTab(ListEnum.NOPES); + + + //this.currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + //this.currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + //this.currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + + this.openBillButtonQueue = new Button(); + Tooltip openBillTooltipQueue = new Tooltip(); + openBillTooltipQueue.setText("Rechnung aufrufen."); + ImageView openBillImageViewQueue = new ImageView(GetButtonPics.getButtonImage_Regulations()); + openBillImageViewQueue.setPreserveRatio(true); + openBillImageViewQueue.setFitHeight(18); + this.openBillButtonQueue.setGraphic(openBillImageViewQueue); + + this.openBillButtonQueue.setTooltip(openBillTooltipQueue); + this.openBillButtonQueue.setPrefWidth(18); + this.openBillButtonQueue.setMaxWidth(18); + this.openBillButtonQueue.setPadding(new Insets(0,0,0,0)); + + this.openBillButtonQueue.setVisible(true); + + this.openBillButtonPicks = new Button(); + Tooltip openBillTooltipPicks = new Tooltip(); + openBillTooltipPicks.setText("Rechnung aufrufen."); + ImageView openBillImageViewPicks = new ImageView(GetButtonPics.getButtonImage_Regulations()); + openBillImageViewPicks.setPreserveRatio(true); + openBillImageViewPicks.setFitHeight(18); + this.openBillButtonPicks.setGraphic(openBillImageViewPicks); + + this.openBillButtonPicks.setTooltip(openBillTooltipPicks); + this.openBillButtonPicks.setPrefWidth(18); + this.openBillButtonPicks.setMaxWidth(18); + this.openBillButtonPicks.setPadding(new Insets(0,0,0,0)); + + this.openBillButtonPicks.setVisible(true); + + this.progressBar = new ProgressBar(0.1); + + this.gridpaneLower = new GridPane(); + this.progressText = new Text(); + + this.currentsHBox = new HBox(); + this.nextsHBox = new HBox(); + this.formersHBox = new HBox(); + this.shortCutHBox = new HBox(); + + this.currentsleftVBox = new VBox(200, this.currentsnopes); + this.currentsmiddleVBox = new VBox(200, this.currentsqueue); + this.currentsrightVBox = new VBox(200, this.currentspicks); + + this.helpButton = new Button(); + Tooltip helpTooltip = new Tooltip(); + helpTooltip.setText("Kurzeinführung"); + helpButton.setTooltip(helpTooltip); + + this.textA1 = new Label(""); + this.textA2 = new Label(""); + this.textA3 = new Label(""); + this.textA4 = new Label(""); + this.textA5 = new Label(""); + this.textA6 = new Label(""); + this.textA7 = new Label(""); + this.textA8 = new Label(""); + this.textA9 = new Label(""); + this.textA10 = new Label(""); + this.formersleftVBox = new VBox(5, this.textA1, this.textA2, this.textA3, this.textA4, this.textA5, this.textA6, this.textA7, this.textA8, this.textA9, this.textA10); + + this.textB1 = new Label(" "); + this.textB2 = new Label(" "); + this.textB3 = new Label(" "); + this.textB4 = new Label(" "); + this.textB5 = new Label(" "); + this.textB6 = new Label(" "); + this.textB7 = new Label(" "); + this.textB8 = new Label(" "); + this.textB9 = new Label(" "); + this.textB10 = new Label(" "); + this.formersmiddleVBox = new VBox(5, this.textB1, this.textB2, this.textB3, this.textB4, this.textB5, this.textB6, this.textB7, this.textB8, this.textB9, this.textB10); + + this.textC1 = new Label(" "); + this.textC2 = new Label(" "); + this.textC3 = new Label(" "); + this.textC4 = new Label(" "); + this.textC5 = new Label(" "); + this.textC6 = new Label(" "); + this.textC7 = new Label(" "); + this.textC8 = new Label(" "); + this.textC9 = new Label(" "); + this.textC10 = new Label(" "); + this.formersrightVBox = new VBox(5, this.textC1, this.textC2, this.textC3, this.textC4, this.textC5, this.textC6, this.textC7, this.textC8, this.textC9, this.textC10); + + this.textD1 = new Label(" "); + this.textD2 = new Label(" "); + this.textD3 = new Label(" "); + this.textD4 = new Label(" "); + this.textD5 = new Label(" "); + this.textD6 = new Label(" "); + this.textD7 = new Label(" "); + this.textD8 = new Label(" "); + this.textD9 = new Label(" "); + this.textD10 = new Label(" "); + this.nextsleftVBox = new VBox(5, this.textD1, this.textD2, this.textD3, this.textD4, this.textD5, this.textD6, this.textD7, this.textD8, this.textD9, this.textD10); + + this.textE1 = new Label(" "); + this.textE2 = new Label(" "); + this.textE3 = new Label(" "); + this.textE4 = new Label(" "); + this.textE5 = new Label(" "); + this.textE6 = new Label(" "); + this.textE7 = new Label(" "); + this.textE8 = new Label(" "); + this.textE9 = new Label(" "); + this.textE10 = new Label(" "); + this.nextsmiddleVBox = new VBox(5, this.textE1, this.textE2, this.textE3, this.textE4, this.textE5, this.textE6, this.textE7, this.textE8, this.textE9, this.textE10); + + this.textF1 = new Label(" "); + this.textF2 = new Label(" "); + this.textF3 = new Label(" "); + this.textF4 = new Label(" "); + this.textF5 = new Label(" "); + this.textF6 = new Label(" "); + this.textF7 = new Label(" "); + this.textF8 = new Label(" "); + this.textF9 = new Label(" "); + this.textF10 = new Label(" "); + this.nextsrightVBox = new VBox(5, this.textF1, this.textF2, this.textF3, this.textF4, this.textF5, this.textF6, this.textF7, this.textF8, this.textF9, this.textF10); + + this.markedKeyWordsHBoxNopes = new HBox(); + this. markedKeyWordsHBoxQueue = new HBox(); + this.markedKeyWordsHBoxPicks = new HBox(); + this.markedKeyWordsNopesGreen = new Label(); + this.markedKeyWordsNopesRed = new Label(); + this.markedKeyWordsQueueGreen = new Label(); + this.markedKeyWordsQueueRed = new Label(); + this.markedKeyWordsPicksGreen = new Label(); + this.markedKeyWordsPicksRed = new Label(); + this.markedKeyWordsNopesOA = new Label("Finale Förderzusage"); + this.markedKeyWordsQueueOA = new Label("Rechnung eingegangen"); + this.markedKeyWordsPicksOA = new Label("Förderung abgeschlossen"); + + } + public void updateKeyWords(ListEnum listEnum) throws MalformedURLException, InterruptedException + { + switch (listEnum) + { + case NOPES: + { + + this.IHV_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, true)); + this.IHT_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, false)); + this.markedKeyWordsNopesGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, true)); + this.markedKeyWordsNopesRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, false)); + + return; + } + case QUEUE: + { + this.IHV_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, true)); + this.IHT_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, false)); + this.markedKeyWordsQueueGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, true)); + this.markedKeyWordsQueueRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, false)); + + return; + } + case PICKS: + { + this.IHV_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, true)); + this.IHT_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, false)); + this.markedKeyWordsPicksGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, true)); + this.markedKeyWordsPicksRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, false)); + + return; + } + } + return; + } + + private void configureElements() + { + + this.markedKeyWordsHBoxNopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxQueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxPicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsNopesGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsNopesRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsQueueGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsQueueRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsPicksGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsPicksRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsNopesOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsQueueOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsPicksOA.setTextFill(Color.rgb(160,32,240)); + + + this.markedKeyWordsNopesGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsNopesRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsNopesOA.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueOA.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksOA.setStyle("-fx-font-weight: bold"); + + + Region regionKeyWordsNopes = new Region(); + Region regionKeyWordsQueue = new Region(); + Region regionKeyWordsPicks = new Region(); + + Region regionKeyWordsNopes2 = new Region(); + Region regionKeyWordsQueue2 = new Region(); + Region regionKeyWordsPicks2 = new Region(); + + HBox.setHgrow(regionKeyWordsNopes, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsNopes2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks2, Priority.ALWAYS); + + + + this.IHV_Image = GetButtonPics.getButtonImage_IHV(); + this.IHT_Image = GetButtonPics.getButtonImage_IHT(); + + this.IHV_ImageViewNopes = new ImageView(this.IHV_Image); + this.IHT_ImageViewNopes = new ImageView(this.IHT_Image); + this. IHV_ImageViewQueue = new ImageView(this.IHV_Image); + this. IHT_ImageViewQueue = new ImageView(this.IHT_Image); + this. IHV_ImageViewPicks = new ImageView(this.IHV_Image); + this. IHT_ImageViewPicks = new ImageView(this.IHT_Image); + this.IHV_ImageViewNopes.setPreserveRatio(true); + this.IHT_ImageViewNopes.setPreserveRatio(true); + this.IHV_ImageViewQueue.setPreserveRatio(true); + this.IHT_ImageViewQueue.setPreserveRatio(true); + this.IHV_ImageViewPicks.setPreserveRatio(true); + this.IHT_ImageViewPicks.setPreserveRatio(true); + + this.IHV_ButtonNopes= new Button(); + this.IHT_ButtonNopes= new Button(); + this.IHV_ButtonQueue= new Button(); + this.IHT_ButtonQueue= new Button(); + this.IHV_ButtonPicks= new Button(); + this.IHT_ButtonPicks= new Button(); + this.IHV_ButtonNopes.setGraphic(this.IHV_ImageViewNopes); + this.IHT_ButtonNopes.setGraphic(this.IHT_ImageViewNopes); + this.IHV_ButtonQueue.setGraphic(this.IHV_ImageViewQueue); + this.IHT_ButtonQueue.setGraphic(this.IHT_ImageViewQueue); + this.IHV_ButtonPicks.setGraphic(this.IHV_ImageViewPicks); + this.IHT_ButtonPicks.setGraphic(this.IHT_ImageViewPicks); + int imageViewWidth = 18; + this.IHV_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setVisible(false); + this.IHT_ButtonNopes.setVisible(false); + this.IHV_ButtonQueue.setVisible(false); + this.IHT_ButtonQueue.setVisible(false); + this.IHV_ButtonPicks.setVisible(false); + this.IHT_ButtonPicks.setVisible(false); + + + + + + this.IHV_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHT_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHV_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHT_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHV_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHT_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHV_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHT_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHV_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHT_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHV_ImageViewPicks.setFitHeight(imageViewWidth); + this.IHT_ImageViewPicks.setFitHeight(imageViewWidth); + + + this.markedKeyWordsHBoxNopes.getChildren().addAll(new Label(" "), new Label(" "), new Label(" "), regionKeyWordsNopes, markedKeyWordsNopesOA, regionKeyWordsNopes2, new Label(" ")); + this.markedKeyWordsHBoxQueue.getChildren().addAll(new Label(" "), this.openBillButtonQueue, new Label(" "), regionKeyWordsQueue, markedKeyWordsQueueOA, regionKeyWordsQueue2, new Label(" ")); + this.markedKeyWordsHBoxPicks.getChildren().addAll(new Label(" "), this.openBillButtonPicks, new Label(" "), regionKeyWordsPicks, markedKeyWordsPicksOA, regionKeyWordsPicks2, new Label(" ")); + + + + + this.oaTab.setClosable(false); + this.currentsqueue.setEditable(false); + this.currentspicks.setEditable(false); + this.currentsnopes.setEditable(false); + + this.currentsqueue.setVisible(false); + this.currentspicks.setVisible(false); + this.currentsnopes.setVisible(false); + + this.currentsqueue.setWrapText(true); + this.currentspicks.setWrapText(true); + this.currentsnopes.setWrapText(true); + + this.currentsqueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentspicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsnopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsqueue.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentspicks.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentsnopes.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + + this.currentsqueue.setMinHeight(200); + this.currentspicks.setMinHeight(200); + this.currentsnopes.setMinHeight(200); + + + this.currentspicks.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.PICKS); + + } + }); + + this.currentsqueue.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.QUEUE); + } + }); + + this.currentsnopes.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.NOPES); + } + }); + + + this.textA1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + + this.progressBar.setMinHeight(15); + this.progressBar.setMinWidth(100); + + this.ButtonImage_ctrl = GetButtonPics.getButtonImage_ctrl(); + //this.ButtonImage_space = GetButtonPics.getButtonImage_space(); + //this.ButtonImage_shift = GetButtonPics.getButtonImage_shift(); + this.ButtonImage_F1 = GetButtonPics.getButtonImage_F1(); + this.ButtonImage_F2 = GetButtonPics.getButtonImage_F2(); + this.ButtonImage_F3 = GetButtonPics.getButtonImage_F3(); + this.ButtonImage_F4 = GetButtonPics.getButtonImage_F4(); + //this.ButtonImage_F5 = GetButtonPics.getButtonImage_F5(); + this.ButtonImage_F6 = GetButtonPics.getButtonImage_F6(); + //this.ButtonImage_F7 = GetButtonPics.getButtonImage_F7(); + this.ButtonImage_enter = GetButtonPics.getButtonImage_enter(); + this.ButtonImage_arrowRight = GetButtonPics.getButtonImage_arrowRight(); + this.ButtonImage_verticalLine = GetButtonPics.getButtonImage_verticalLine(); + this.ButtonImage_closedEye = GetButtonPics.getButtonImage_closedEye(); + //this.ButtonImage_backspace = GetButtonPics.getButtonImage_backspace(); + this.QuestionMarkImage = GetButtonPics.getButtonImage_QuestionMark(); + this.ButtonImage_alt = GetButtonPics.getButtonImage_Alt(); + + + + this.textA1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsnopes.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsqueue.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentspicks.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + + + //this.textA1.setTextOverrun(OverrunStyle.CLIP); + this.textA2.setTextOverrun(OverrunStyle.CLIP); + this.textA3.setTextOverrun(OverrunStyle.CLIP); + this.textA4.setTextOverrun(OverrunStyle.CLIP); + this.textA5.setTextOverrun(OverrunStyle.CLIP); + this.textA6.setTextOverrun(OverrunStyle.CLIP); + this.textA7.setTextOverrun(OverrunStyle.CLIP); + this.textA8.setTextOverrun(OverrunStyle.CLIP); + this.textA9.setTextOverrun(OverrunStyle.CLIP); + this.textA10.setTextOverrun(OverrunStyle.CLIP); + this.textB1.setTextOverrun(OverrunStyle.CLIP); + this.textB2.setTextOverrun(OverrunStyle.CLIP); + this.textB3.setTextOverrun(OverrunStyle.CLIP); + this.textB4.setTextOverrun(OverrunStyle.CLIP); + this.textB5.setTextOverrun(OverrunStyle.CLIP); + this.textB6.setTextOverrun(OverrunStyle.CLIP); + this.textB7.setTextOverrun(OverrunStyle.CLIP); + this.textB8.setTextOverrun(OverrunStyle.CLIP); + this.textB9.setTextOverrun(OverrunStyle.CLIP); + this.textB10.setTextOverrun(OverrunStyle.CLIP); + this.textC1.setTextOverrun(OverrunStyle.CLIP); + this.textC2.setTextOverrun(OverrunStyle.CLIP); + this.textC3.setTextOverrun(OverrunStyle.CLIP); + this.textC4.setTextOverrun(OverrunStyle.CLIP); + this.textC5.setTextOverrun(OverrunStyle.CLIP); + this.textC6.setTextOverrun(OverrunStyle.CLIP); + this.textC7.setTextOverrun(OverrunStyle.CLIP); + this.textC8.setTextOverrun(OverrunStyle.CLIP); + this.textC9.setTextOverrun(OverrunStyle.CLIP); + this.textC10.setTextOverrun(OverrunStyle.CLIP); + this.textD1.setTextOverrun(OverrunStyle.CLIP); + this.textD2.setTextOverrun(OverrunStyle.CLIP); + this.textD3.setTextOverrun(OverrunStyle.CLIP); + this.textD4.setTextOverrun(OverrunStyle.CLIP); + this.textD5.setTextOverrun(OverrunStyle.CLIP); + this.textD6.setTextOverrun(OverrunStyle.CLIP); + this.textD7.setTextOverrun(OverrunStyle.CLIP); + this.textD8.setTextOverrun(OverrunStyle.CLIP); + this.textD9.setTextOverrun(OverrunStyle.CLIP); + this.textD10.setTextOverrun(OverrunStyle.CLIP); + this.textE1.setTextOverrun(OverrunStyle.CLIP); + this.textE2.setTextOverrun(OverrunStyle.CLIP); + this.textE3.setTextOverrun(OverrunStyle.CLIP); + this.textE4.setTextOverrun(OverrunStyle.CLIP); + this.textE5.setTextOverrun(OverrunStyle.CLIP); + this.textE6.setTextOverrun(OverrunStyle.CLIP); + this.textE7.setTextOverrun(OverrunStyle.CLIP); + this.textE8.setTextOverrun(OverrunStyle.CLIP); + this.textE9.setTextOverrun(OverrunStyle.CLIP); + this.textE10.setTextOverrun(OverrunStyle.CLIP); + this.textF1.setTextOverrun(OverrunStyle.CLIP); + this.textF2.setTextOverrun(OverrunStyle.CLIP); + this.textF3.setTextOverrun(OverrunStyle.CLIP); + this.textF4.setTextOverrun(OverrunStyle.CLIP); + this.textF5.setTextOverrun(OverrunStyle.CLIP); + this.textF6.setTextOverrun(OverrunStyle.CLIP); + this.textF7.setTextOverrun(OverrunStyle.CLIP); + this.textF8.setTextOverrun(OverrunStyle.CLIP); + this.textF9.setTextOverrun(OverrunStyle.CLIP); + this.textF10.setTextOverrun(OverrunStyle.CLIP); + + + + this.progressText = new Text(""); + if (!(this.ButtonImage_ctrl == null || + //this.ButtonImage_space == null || + //this.ButtonImage_shift == null || + this.ButtonImage_F1 == null || + this.ButtonImage_F2 == null || + this.ButtonImage_F3 == null || + this.ButtonImage_F4 == null || + //this.ButtonImage_F5 == null || + this.ButtonImage_F6 == null || + //this.ButtonImage_F7 == null || + this.ButtonImage_enter == null || + this.ButtonImage_arrowRight == null || + this.ButtonImage_verticalLine == null || + this.ButtonImage_closedEye == null || + //this.ButtonImage_backspace == null) || + this.QuestionMarkImage == null || + this.ButtonImage_alt == null)) + { + buildShortcutHBox(); + } + + + + shortCutHBox.setAlignment(Pos.CENTER_LEFT); + + HBox.setMargin(this.progressBar, new Insets(0,10,0,0)); + + + this.formersleftVBox.setMaxWidth(200); + this.formersmiddleVBox.setMaxWidth(200); + this.formersrightVBox.setMaxWidth(200); + this.nextsleftVBox.setMaxWidth(200); + this.nextsmiddleVBox.setMaxWidth(200); + this.nextsrightVBox.setMaxWidth(200); + + //labels instead of textareas: + this.gridpaneLower.setHgap(10); + this.gridpaneLower.setVgap(10); + this.gridpaneLower.setPadding(new Insets(0,10,10,10)); + this.gridpaneLower.add(this.formersleftVBox, 0, 1); + this.gridpaneLower.add(this.formersmiddleVBox, 1, 1); + this.gridpaneLower.add(this.formersrightVBox, 2, 1); + this.gridpaneLower.add(this.markedKeyWordsHBoxNopes, 0, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxQueue, 1, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxPicks , 2, 2); + this.gridpaneLower.add(this.currentsnopes, 0, 3); + this.gridpaneLower.add(this.currentsqueue, 1, 3); + this.gridpaneLower.add(this.currentspicks, 2, 3); + this.gridpaneLower.add(this.nextsleftVBox, 0, 4); + this.gridpaneLower.add(this.nextsmiddleVBox, 1, 4); + this.gridpaneLower.add(this.nextsrightVBox, 2, 4); + + this.openBillButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openBill(ListEnum.QUEUE); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.openBillButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openBill(ListEnum.PICKS); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + ScrollPane scrollPane = new ScrollPane(); + scrollPane.setFitToHeight(true); + scrollPane.setFitToWidth(true); + ScrollPane scrollPane2 = new ScrollPane(); + scrollPane.setContent(this.shortCutHBox); + scrollPane2.setContent(this.gridpaneLower); + + scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a vertical ScrollBar + scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a hor ScrollBar + scrollPane.setFitToWidth(true); // set content width to viewport width + scrollPane.setPannable(true); // allow scrolling via mouse dragging + + scrollPane2.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); + scrollPane2.setFitToWidth(true); // set content width to viewport width + scrollPane2.setPannable(true); // allow scrolling via mouse dragging + + this.oaTab.setContent(new VBox(scrollPane, scrollPane2)); + HBox.setHgrow(gridpaneLower, Priority.ALWAYS); + + } + + private void buildShortcutHBox() + { + Region regionMiddle = new Region(); + HBox.setHgrow(regionMiddle, Priority.ALWAYS); + + this.helpButton.setGraphic(GetButtonPics.turnPicIntoImageView(QuestionMarkImage)); + + this.IHT_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.helpButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Kurzeinführung:"); + alert.setHeaderText(null); + alert.setContentText(Constants.Kurzeinfuehrung_orderMode); + alert.initStyle(StageStyle.UTILITY); + + alert.showAndWait(); + } + }); + + this.shortCutHBox.getChildren().addAll( + + new Text(" "),GetButtonPics.turnPicIntoImageView(this.ButtonImage_F1),new Text(" bis "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_F4), Constants.ShortCutDescription_titelsuche2, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltsverzeichnis,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift), GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltstext,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_backspace), Constants.ShortCutDescription_rueckgaengig, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_F5), Constants.ShortCutDescription_copyISBNToClipboard,GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_F6), Constants.ShortCutDescription_hinweisHinzufuegen2,GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_F7), Constants.ShortCutDescription_BestellendePersonAendern, + regionMiddle, this.progressText, new Text(" "), this.progressBar, new Text(" "), this.helpButton, new Text(" ") + ); + } + + private void updateProgressText(String text) + { + this.progressText.setText(text); + } + + private Region getRegionForFormattedTitle(ListEnum listEnum) + { + switch (listEnum) + { + case NOPES: + { + return ( Region )this.currentsnopes.lookup(".content"); + } + case QUEUE: + { + return ( Region )this.currentsqueue.lookup(".content"); + } + case PICKS: + { + return ( Region )this.currentspicks.lookup(".content"); + } + } + return null; + } + + private void updateFormattedTitle(ListEnum listEnum) + { + Region region = getRegionForFormattedTitle(listEnum); + if (region != null) + //region.setBackground(null); + this.markedKeyWordsPicksGreen.setText(""); + this.markedKeyWordsPicksRed.setText(""); + try { + updateKeyWords(listEnum); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + + + } + + public void adjustFontSizeTaller() + { + this.fontSize ++; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + public void adjustFontSizeSmaller() + { + this.fontSize --; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + private void configureEventsGeneral() { + + this.primaryStage.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + //this.nextsleftVBox.setBackground(null); + if (keyEvent.getCode() == KeyCode.ADD || keyEvent.getCode() == KeyCode.PLUS) + { + adjustFontSizeTaller(); + } + if (keyEvent.getCode() == KeyCode.SUBTRACT || keyEvent.getCode() == KeyCode.MINUS) + { + adjustFontSizeSmaller(); + } + + }); + + + this.currentsqueue.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + } + }); + + this.currentsnopes.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + //nextsleftVBox.setBackground(null); + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + //nextsleftVBox.setBackground(null); + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + } + }); + + this.currentspicks.setOnScroll(new EventHandler() { + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } + } + }); + } + + + private void configureEventsQueue() { + this.currentsqueue.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + // this.nextsleftVBox.setBackground(null); + + + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.QUEUE, true)), null); + } + if (keyEvent.getCode() == KeyCode.F6) + { + queuemanager.startDialogueForAltFlag(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + + if (keyEvent.getCode() == KeyCode.F7) + { + String ordererString = queuemanager.startDialogueForOrdererList(); + if (ordererString != null && !ordererString.isBlank()) + { + queuemanager.changeOrderer(ListEnum.QUEUE, ordererString); + } + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + + + if (keyEvent.getCode() == KeyCode.SPACE) + { + + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + } + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + + + if (keyEvent.getCode() == KeyCode.RIGHT) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.PICKS, true, false, "5", false); + this.lastAction = 2; + + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, true, false, "3", false); + this.lastAction = 1; + + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + + }); + + } + + private void configureEventsPicks() { + this.currentspicks.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + //this.nextsleftVBox.setBackground(null); + + + + + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + // + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.QUEUE, false, true, "4", false); + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.NOPES, true, false, "3", false); + queuemanager.resetFlag(); + updateQueues(true, false, true); + updateFormattedTitles(true, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.PICKS, true)), null); + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + + private void configureEventsNopes() { + this.currentsnopes.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + //this.nextsleftVBox.setBackground(null); + + + + + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + + ImportExportFileHandler fileHandler = new ImportExportFileHandler(); + File fileChoosen = fileHandler.getFileOrFolder(true); + if (fileChoosen != null) + { + String newFilepath; + try { + newFilepath = fileHandler.copyFileToLocationReturnPath(fileChoosen, Constants.billsLocation); + DataBaseHandler databaseHandler = new DataBaseHandler(); + databaseHandler.saveBill_basic(queuemanager.getCurrentID(ListEnum.NOPES), newFilepath); + + + } catch (IOException | SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.QUEUE, false, true, "4", true); + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + } + + + } + + if (keyEvent.getCode() == KeyCode.LEFT) + { + // + } + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.NOPES, true)), null); + } + if (keyEvent.getCode() == KeyCode.F6) + { + queuemanager.startDialogueForAltFlag(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + + if (keyEvent.getCode() == KeyCode.F7) + { + String ordererString = queuemanager.startDialogueForOrdererList(); + if (ordererString != null && !ordererString.isBlank()) + { + queuemanager.changeOrderer(ListEnum.NOPES, ordererString); + } + updateQueues(false, true, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + public String getFontsize() + { + int number = (int) this.currentsqueue.getFont().getSize(); + return Integer.toString(number); + } + + public String getGridWidth() + { + Double number = this.currentsqueue.getWidth(); + return number.toString(); + } + + public String getGridHeight() + { + Double number = this.currentsqueue.getHeight(); + return number.toString(); + } + + private void changeGridWidhtAndHeightAccordingToPropertiesOrDefault() + { + + if (this.QueueWidth != 0) + { + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + if (this.QueueHeight != 0) + { + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + } + + public void changeGridI() + { + this.QueueWidth = this.currentsqueue.getWidth() - 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + + public void changeGridII() + { + + this.QueueHeight = this.currentsqueue.getHeight() - 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + + public void changeGridIII() + { + + this.QueueHeight = this.currentsqueue.getHeight() + 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + public void changeGridIV() + { + + this.QueueWidth = this.currentsqueue.getWidth() + 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } +} \ No newline at end of file diff --git a/src/userInterface_reiheAPicker/FondsManagerSettingsTab.java b/src/userInterface_reiheAPicker/FondsManagerSettingsTab.java new file mode 100644 index 0000000..36c657d --- /dev/null +++ b/src/userInterface_reiheAPicker/FondsManagerSettingsTab.java @@ -0,0 +1,1000 @@ +package userInterface_reiheAPicker; + + +import java.io.File; +import java.io.IOException; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Properties; + +import org.json.JSONObject; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressIndicator; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TabPane.TabClosingPolicy; +import javafx.scene.control.TextArea; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.control.TextField; +import javafx.scene.control.Tooltip; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Text; +import javafx.stage.Stage; +import logic_reiheAPicker.DataBaseHandler; +import logic_reiheAPicker.GetButtonPics; +import logic_reiheAPicker.ImportExportFileHandler; +import logic_reiheAPicker.PropertyFileHandler; +import models_reiheAPicker.FondsManager_applicationModel; +import models_reiheAPicker.ListEnum; +import models_reiheAPicker.PropertyModel; +import var_reiheAPicker.Constants; +import javafx.scene.layout.VBox; + +public class FondsManagerSettingsTab { + + public Tab importSettingsTab; + private Stage primaryStage; + + public TabPane importSettingsTabSubSettingsTabPane; + + + private boolean changedFlag = false; + + public FondsManagerTab fondsManagerTab; + + public Tab generalSettings; + public Tab fieldSettings; + public Tab catalogueSettings; + + public HBox saveButtonHBox; + + public List> titles = null; + + PropertyFileHandler propertyFilehandler = PropertyFileHandler.getInstance(); + public GridPane gridpaneGeneral; + public GridPane gridpaneCatalogue; + public GridPane gridpaneMarkings; + public GridPane gridpaneFieldSetting; + + + public VBox globalVBox; + ScrollPane scrollPane = new ScrollPane(); + + public Label settingsLabel1; + public Label settingsLabel2; + public Label settingsLabel3; + public Label settingsLabel4; + public Label settingsLabel5; + public Label settingsLabel6; + public Label settingsLabel7; + + + //searchlabels + + public Label settingsLabel8; + public Label settingsLabel9; + public Label settingsLabel10; + public Label settingsLabel11; + public Label settingsLabel12; + public Label settingsLabel13; + public Label settingsLabel14; + public Label settingsLabel15; + public Label settingsLabel16; + public Label settingsLabel17; + public Label settingsLabel18; + public Label settingsLabel19; + + public Label settingsLabel20; + public Label settingsLabel21; + + public Label settingsLabel22; + public Label settingsLabel22b; + public Label settingsLabel22c; + + public Label settingsLabel23; + public Label settingsLabel24; + public Label settingsLabel25; + public Label settingsLabel26; + + public Label settingsLabel27; + public Label settingsLabel28; + public Label settingsLabel29; + public Label settingsLabel30; + + public Label generalSettins = new Label(Constants.LabelNameGeneralSettings); + public Label catalogueSearch = new Label(Constants.LabelNameSearchCatalogueSettings); + public Label apisettings = new Label(Constants.LabelNameApiSettings); + + public TextField settingsTextField1; + public TextField settingsTextField2; + public TextField settingsTextField3; + public TextField settingsTextField4; + public CheckBox settingsTextField5_checkbox; + public CheckBox settingsTextField6_checkbox; + public TextField settingsTextField7; + + //searchtextfields + public TextField settingsTextField8; + public TextField settingsTextField9; + public TextField settingsTextField10; + public TextField settingsTextField11; + public TextField settingsTextField12; + public TextField settingsTextField13; + public TextField settingsTextField14; + public TextField settingsTextField15; + public TextField settingsTextField16; + public TextField settingsTextField17; + public TextField settingsTextField18; + public TextField settingsTextField19; + + public TextField settingsTextField20; + public TextField settingsTextField21; + + public TextField settingsTextField22; + public TextField settingsTextField22b; + public TextField settingsTextField22c; + + public CheckBox settingsTextField23_checkbox; + public CheckBox settingsTextField24_checkbox; + + public CheckBox settingsTextField25_checkbox; + public CheckBox settingsTextField26_checkbox; + + public CheckBox settingsTextField27_checkbox; + public CheckBox settingsTextField28_checkbox; + public CheckBox settingsTextField29_checkbox; + public CheckBox settingsTextField30_checkbox; + + public Button saveSettingsButton; + public Button searchExportFolderButton; + public Button searchSaveFolderButton; + + //labels f�r suche; Angabe von Termen damit �berblick leichter + public Label searchFieldLabel1; + public Label searchFieldLabel2; + public Label searchFieldLabel3; + public Label searchFieldLabel4; + public Label searchFieldLabel5; + public Label searchFieldLabel6; + public Label searchFieldLabel7; + public Label searchFieldLabel8; + public Label searchFieldLabel9; + public Label searchFieldLabel10; + public Label searchFieldLabel11; + public Label searchFieldLabel12; + + private Button infoButton1; + private Button infoButton2; + private Button infoButton3; + private Button infoButton4; + private Button infoButton5; + private Button infoButton6; + private Button infoButton7; + private Button infoButton8; + private Button infoButton9; + private Button infoButton10; + private Button infoButton11; + + private TextArea loadCurrentSettingsDefaultColumnNames; + private TextArea saveCurrentSettingsNewColumnNames; + private TextArea displayCurrentSettingsNewColumnNames; + private Label saveFieldLabel; + private Label demoFieldLabel; + private Label defaultFieldLabel; + private Label expertfieldDefexample = new Label("'>FieldName>InhaltsverzeichnisFieldAlias>IHV FieldContent>Space {setChangedFlag();}); + this.saveCurrentSettingsNewColumnNames.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField2.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField3.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField4.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField5_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField6_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField7.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + //searchtextfields + this.settingsTextField8.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField9.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField10.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField11.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField12.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField13.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField14.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField15.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField16.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField17.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField18.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField19.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField20.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField21.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField22.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField22b.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField22c.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField23_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField24_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField25_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField26_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField27_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField28_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField29_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField30_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + + } + + + private void setChangedFlag() + { + this.changedFlag = true; + this.saveButtonHBox.setBackground(new Background(new BackgroundFill(Color.rgb(255, 220, 220), new CornerRadii(5), Insets.EMPTY))); + + if (!this.saveButtonHBox.getChildren().contains(this.saveButtonHBox)) + { + this.saveButtonHBox.getChildren().clear(); + this.saveButtonHBox.setPadding(new Insets(5,5,5,5)); + this.saveButtonHBox.getChildren().addAll(this.saveSettingsButton, new Label(" Ungespeicherte Einstellungen finden keine Anwendung und gehen nach dem Beenden des Programms verloren!\n Bitte speichern Sie Ihre Einstellungen mit einem Klick auf diesen Button.")); + } + + } + + private String getLabelContentSearchFields(String content) + { + String labelString = ""; + if (content.contains(Constants.isbnWildcard)) + { + labelString = Constants.isbnWildcardLabel; + } + if (content.contains("[{[title]}]")) + { + labelString = Constants.TitleLabelOAOnly; + } + if (content.contains("[{[journalTitle]}]")) + { + labelString = Constants.journalTitleLabelOaOnly; + } + if (content.contains("[{[orcid]}]")) + { + labelString = Constants.orcidLabelOaOnly; + } + if (content.contains(Constants.authorWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.authorWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.authorWildcardLabel; + } + } + if (content.contains(Constants.titleWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.titleWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.titleWildcardLabel; + } + } + if (content.contains(Constants.publisherWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.publisherWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.publisherWildcardLabel; + } + } + + + return labelString; + } + + private void updateSearchFieldLabels() + { + searchFieldLabel1.setText(getLabelContentSearchFields(this.settingsTextField8.getText())); + searchFieldLabel2.setText(getLabelContentSearchFields(this.settingsTextField9.getText())); + searchFieldLabel3.setText(getLabelContentSearchFields(this.settingsTextField10.getText())); + searchFieldLabel4.setText(getLabelContentSearchFields(this.settingsTextField11.getText())); + searchFieldLabel5.setText(getLabelContentSearchFields(this.settingsTextField12.getText())); + searchFieldLabel6.setText(getLabelContentSearchFields(this.settingsTextField13.getText())); + searchFieldLabel7.setText(getLabelContentSearchFields(this.settingsTextField14.getText())); + searchFieldLabel8.setText(getLabelContentSearchFields(this.settingsTextField15.getText())); + searchFieldLabel9.setText(getLabelContentSearchFields(this.settingsTextField16.getText())); + searchFieldLabel10.setText(getLabelContentSearchFields(this.settingsTextField17.getText())); + searchFieldLabel11.setText(getLabelContentSearchFields(this.settingsTextField18.getText())); + searchFieldLabel12.setText(getLabelContentSearchFields(this.settingsTextField19.getText())); + } + + + private void configureElements() + { + this.importSettingsTabSubSettingsTabPane.minWidthProperty().bind(this.primaryStage.widthProperty()); + this.importSettingsTabSubSettingsTabPane.minHeightProperty().bind(this.primaryStage.heightProperty()); + + this.loadCurrentSettingsDefaultColumnNames.setText("Bitte laden Sie zunächst einen beliebigen Datensatz."); + this.displayCurrentSettingsNewColumnNames.setText("Bitte laden Sie zunächst einen beliebigen Datensatz."); + + + this.importSettingsTab.setClosable(false); + this.generalSettings.setClosable(false); + this.fieldSettings.setClosable(false); + + this.gridpaneGeneral.setMinHeight(500); + this.gridpaneCatalogue.setMinHeight(500); + this.gridpaneMarkings.setMinHeight(500); + this.gridpaneFieldSetting.setMinHeight(500); + + Image importSettingsQuestionButtonImage = GetButtonPics.getButtonImage_QuestionMark_importSettings(); + + if (importSettingsQuestionButtonImage != null) + { + + this.infoButton1.setText(null); + this.infoButton2.setText(null); + this.infoButton3.setText(null); + this.infoButton4.setText(null); + this.infoButton5.setText(null); + this.infoButton6.setText(null); + this.infoButton7.setText(null); + this.infoButton8.setText(null); + this.infoButton9.setText(null); + this.infoButton10.setText(null); + this.infoButton11.setText(null); + this.infoButton1.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton2.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton3.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton4.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton5.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton6.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton7.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton8.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton9.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton10.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton11.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton1.setPadding(new Insets(1,1,1,1)); + this.infoButton2.setPadding(new Insets(1,1,1,1)); + this.infoButton3.setPadding(new Insets(1,1,1,1)); + this.infoButton4.setPadding(new Insets(1,1,1,1)); + this.infoButton5.setPadding(new Insets(1,1,1,1)); + this.infoButton6.setPadding(new Insets(1,1,1,1)); + this.infoButton7.setPadding(new Insets(1,1,1,1)); + this.infoButton8.setPadding(new Insets(1,1,1,1)); + this.infoButton9.setPadding(new Insets(1,1,1,1)); + this.infoButton10.setPadding(new Insets(1,1,1,1)); + this.infoButton11.setPadding(new Insets(1,1,1,1)); + this.infoButton1.setTooltip(new Tooltip(Constants.importSettingsTooltip1)); + this.infoButton2.setTooltip(new Tooltip(Constants.importSettingsTooltip2)); + this.infoButton3.setTooltip(new Tooltip(Constants.importSettingsTooltip3)); + this.infoButton4.setTooltip(new Tooltip(Constants.importSettingsTooltip4)); + this.infoButton5.setTooltip(new Tooltip(Constants.importSettingsTooltip5)); + this.infoButton6.setTooltip(new Tooltip(Constants.importSettingsTooltip6)); + this.infoButton7.setTooltip(new Tooltip(Constants.importSettingsTooltip7)); + this.infoButton8.setTooltip(new Tooltip(Constants.importSettingsTooltip8)); + this.infoButton9.setTooltip(new Tooltip(Constants.importSettingsTooltip9)); + this.infoButton10.setTooltip(new Tooltip(Constants.importSettingsTooltip10)); + this.infoButton11.setTooltip(new Tooltip(Constants.importSettingsTooltip11)); + } + + this.generalSettins.setStyle("-fx-font-weight: bold"); + this.catalogueSearch.setStyle("-fx-font-weight: bold"); + this.apisettings.setStyle("-fx-font-weight: bold"); + + searchFieldLabel1= new Label(getLabelContentSearchFields(this.settingsTextField8.getText())); + searchFieldLabel2= new Label(getLabelContentSearchFields(this.settingsTextField9.getText())); + searchFieldLabel3= new Label(getLabelContentSearchFields(this.settingsTextField10.getText())); + searchFieldLabel4= new Label(getLabelContentSearchFields(this.settingsTextField11.getText())); + searchFieldLabel5= new Label(getLabelContentSearchFields(this.settingsTextField12.getText())); + searchFieldLabel6= new Label(getLabelContentSearchFields(this.settingsTextField13.getText())); + searchFieldLabel7= new Label(getLabelContentSearchFields(this.settingsTextField14.getText())); + searchFieldLabel8= new Label(getLabelContentSearchFields(this.settingsTextField15.getText())); + searchFieldLabel9= new Label(getLabelContentSearchFields(this.settingsTextField16.getText())); + searchFieldLabel10= new Label(getLabelContentSearchFields(this.settingsTextField17.getText())); + searchFieldLabel11= new Label(getLabelContentSearchFields(this.settingsTextField18.getText())); + searchFieldLabel12= new Label(getLabelContentSearchFields(this.settingsTextField19.getText())); + + + this.gridpaneGeneral = new GridPane(); + this.gridpaneCatalogue = new GridPane(); + this.gridpaneMarkings = new GridPane(); + + this.displayCurrentSettingsNewColumnNames.setMinHeight(200); + this.displayCurrentSettingsNewColumnNames.setPrefHeight(200); + this.displayCurrentSettingsNewColumnNames.setMaxHeight(200); + this.saveCurrentSettingsNewColumnNames .setMinHeight(200); + this.saveCurrentSettingsNewColumnNames.setPrefHeight(200); + this.saveCurrentSettingsNewColumnNames.setMaxHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setMinHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setPrefHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setMaxHeight(200); + + loadCurrentSettingsDefaultColumnNames.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == null || newValue.isBlank() || newValue.contains("Bitte laden Sie zunächst einen beliebigen Datensatz.")) + { + this.fieldSettingsAdvanced.setVisible(false); + + } else + { + this.fieldSettingsAdvanced.setVisible(true); + } + }); + + Image saveButtonImage = GetButtonPics.getButtonImage_saveButton(); + Image searchFileOrFolderImage = GetButtonPics.getButtonImage_SearchFolderOrFile(); + + if (searchFileOrFolderImage != null) + { + + this.searchSaveFolderButton = new Button(""); + this.searchExportFolderButton.setText(null); + ImageView img = GetButtonPics.turnPicIntoImageView(searchFileOrFolderImage); + img.setFitWidth(22); + img.setFitHeight(22); + this.searchExportFolderButton.setGraphic(img); + this.searchExportFolderButton.setPadding(new Insets(1,1,1,1)); + this.searchSaveFolderButton.setText(null); + img = GetButtonPics.turnPicIntoImageView(searchFileOrFolderImage); + img.setFitWidth(22); + img.setFitHeight(22); + this.searchSaveFolderButton.setGraphic(img); + this.searchSaveFolderButton.setPadding(new Insets(1,1,1,1)); + + + } + + if (saveButtonImage != null) + { + + this.saveSettingsButton.setText(null); + this.saveSettingsButton.setGraphic(GetButtonPics.turnPicIntoImageView(saveButtonImage)); + this.saveSettingsButton.setPadding(new Insets(5,5,5,5)); + } + this.saveButtonHBox.setPadding(new Insets(5,5,5,5)); + + + + this.gridpaneGeneral.add(this.generalSettins, 0, 0); + + + this.gridpaneCatalogue.add(this.catalogueSearch, 0, 0); this.gridpaneCatalogue.add(new Text("Variablen: [{[orcid]}], [{[title]}], [{[journalTitle]}], [{[publisher]}]"), 1, 0);this.gridpaneCatalogue.add(this.infoButton5, 2,0); + this.gridpaneCatalogue.add(this.settingsLabel8, 0, 1); this.gridpaneCatalogue.add(this.settingsTextField8, 1, 1); this.gridpaneCatalogue.add(this.searchFieldLabel1, 2, 1); + this.gridpaneCatalogue.add(this.settingsLabel9, 0, 2); this.gridpaneCatalogue.add(this.settingsTextField9, 1, 2); this.gridpaneCatalogue.add(this.searchFieldLabel2, 2, 2); + this.gridpaneCatalogue.add(this.settingsLabel10, 0, 3); this.gridpaneCatalogue.add(this.settingsTextField10, 1, 3); this.gridpaneCatalogue.add(this.searchFieldLabel3, 2, 3); + this.gridpaneCatalogue.add(this.settingsLabel11, 0, 4); this.gridpaneCatalogue.add(this.settingsTextField11, 1, 4); this.gridpaneCatalogue.add(this.searchFieldLabel4, 2, 4); + this.gridpaneCatalogue.add(this.settingsLabel12, 0, 5); this.gridpaneCatalogue.add(this.settingsTextField12, 1, 5); this.gridpaneCatalogue.add(this.searchFieldLabel5, 2, 5); + this.gridpaneCatalogue.add(this.settingsLabel13, 0, 6); this.gridpaneCatalogue.add(this.settingsTextField13, 1, 6); this.gridpaneCatalogue.add(this.searchFieldLabel6, 2, 6); + this.gridpaneCatalogue.add(this.settingsLabel14, 0, 7); this.gridpaneCatalogue.add(this.settingsTextField14, 1, 7); this.gridpaneCatalogue.add(this.searchFieldLabel7, 2, 7); + this.gridpaneCatalogue.add(this.settingsLabel15, 0, 8); this.gridpaneCatalogue.add(this.settingsTextField15, 1, 8); this.gridpaneCatalogue.add(this.searchFieldLabel8, 2, 8); + this.gridpaneCatalogue.add(this.settingsLabel16, 0, 9); this.gridpaneCatalogue.add(this.settingsTextField16, 1, 9); this.gridpaneCatalogue.add(this.searchFieldLabel9, 2, 9); + this.gridpaneCatalogue.add(this.settingsLabel17, 0, 10); this.gridpaneCatalogue.add(this.settingsTextField17, 1, 10); this.gridpaneCatalogue.add(this.searchFieldLabel10, 2, 10); + this.gridpaneCatalogue.add(this.settingsLabel18, 0, 11); this.gridpaneCatalogue.add(this.settingsTextField18, 1, 11); this.gridpaneCatalogue.add(this.searchFieldLabel11, 2, 11); + this.gridpaneCatalogue.add(this.settingsLabel19, 0, 12); this.gridpaneCatalogue.add(this.settingsTextField19, 1, 12); this.gridpaneCatalogue.add(this.searchFieldLabel12, 2, 12); + + this.gridpaneFieldSetting.add(this.saveFieldLabel, 0, 0); this.gridpaneFieldSetting.add(this.infoButton11, 1, 0); + this.gridpaneFieldSetting.add(this.saveCurrentSettingsNewColumnNames, 0, 1); + + this.gridpaneFieldSetting.add(this.defaultFieldLabel, 0, 2); + this.gridpaneFieldSetting.add(this.expertfieldDefexample, 0, 3); + this.gridpaneFieldSetting.add(this.loadCurrentSettingsDefaultColumnNames, 0, 4); + this.gridpaneFieldSetting.add(this.fieldSettingsAdvanced, 1, 4); + this.gridpaneFieldSetting.add(this.demoFieldLabel, 0, 5); + this.gridpaneFieldSetting.add(this.displayCurrentSettingsNewColumnNames, 0, 6); + + + + this.gridpaneGeneral.setHgap(10); + this.gridpaneGeneral.setVgap(10); + this.gridpaneGeneral.setPadding(new Insets(10,10,10,10)); + + this.gridpaneCatalogue.setHgap(10); + this.gridpaneCatalogue.setVgap(10); + this.gridpaneCatalogue.setPadding(new Insets(10,10,10,10)); + + this.gridpaneMarkings.setHgap(10); + this.gridpaneMarkings.setVgap(10); + this.gridpaneMarkings.setPadding(new Insets(10,10,10,10)); + + this.gridpaneFieldSetting.setHgap(10); + this.gridpaneFieldSetting.setVgap(10); + this.gridpaneFieldSetting.setPadding(new Insets(10,10,10,10)); + + + + + + + this.saveCurrentSettingsNewColumnNames.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == null || newValue.isBlank()) + { + + } else + { + + //update for currentSettingsFormatter: Change this later + this.displayCurrentSettingsNewColumnNames.setText(fondsManagerTab.queuemanager.fetchFormattedTitle(ListEnum.QUEUE, false, this.saveCurrentSettingsNewColumnNames.getText())); + + } + }); + + + this.fieldSettingsAdvanced.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + switchAdvancedButton(); + } + }); + + this.infoButton1.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText1,Constants.importSettingsTooltip1, Constants.importSettingsTitle1, GetButtonPics.getButtonImage_ResImageHelpDDCWhitelist()); + } + }); + + this.infoButton2.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText2,Constants.importSettingsTooltip2, Constants.importSettingsTitle2, GetButtonPics.getButtonImage_ResImageHelpPublisherBlacklist()); + } + }); + + this.infoButton3.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText3,Constants.importSettingsTooltip3, Constants.importSettingsTitle3, null); + } + }); + + this.infoButton4.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText4,Constants.importSettingsTooltip4, Constants.importSettingsTitle4, null); + } + }); + + this.infoButton5.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText5,Constants.importSettingsTooltip5, Constants.importSettingsTitle5, GetButtonPics.getButtonImage_ResImageHelpCatSearch1()); + } + }); + + this.infoButton6.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText6,Constants.importSettingsTooltip6, Constants.importSettingsTitle6, GetButtonPics.getButtonImage_ResImageHelpmarkings()); + } + }); + + this.infoButton7.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText7,Constants.importSettingsTooltip7, Constants.importSettingsTitle7, null); + } + }); + + this.infoButton8.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText8,Constants.importSettingsTooltip8, Constants.importSettingsTitle8, GetButtonPics.getButtonImage_ResImageHelpprogress()); + } + }); + + this.infoButton9.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText9,Constants.importSettingsTooltip9, Constants.importSettingsTitle9, null); + } + }); + + this.infoButton10.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText10, Constants.importSettingsTooltip10, Constants.importSettingsTitle10, null); + } + }); + + this.infoButton11.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText11, Constants.importSettingsTooltip11, Constants.importSettingsTitle11, GetButtonPics.getButtonImage_ResImageHelpFieldSettings()); + } + }); + + + saveSettingsButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + updateAndSaveProperties(); + updateSearchFieldLabels(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } + }); + + + + + this.settingsTextField23_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> { + updateTextField24(); + updateTextField26(); + }); + + updateTextField24(); + updateTextField26(); + + this.catalogueSettings.setContent(this.gridpaneCatalogue); + this.generalSettings.setContent(this.gridpaneGeneral); + this.fieldSettings.setContent(this.gridpaneFieldSetting); + + + + + this.globalVBox.getChildren().addAll(this.saveButtonHBox, this.importSettingsTabSubSettingsTabPane); + this.scrollPane.setContent(this.globalVBox); + this.importSettingsTab.setContent(this.scrollPane); + + } + + private void updateTextField24() + { + /* + if (this.settingsTextField23_checkbox.isSelected()) + { + this.settingsTextField24_checkbox.setVisible(true); + } else + { + this.settingsTextField24_checkbox.setVisible(false); + } + */ + } + + private void updateTextField26() + { + /* + if (this.settingsTextField23_checkbox.isSelected()) + { + this.settingsTextField26_checkbox.setVisible(true); + } else + { + this.settingsTextField26_checkbox.setVisible(false); + } + */ + } + + private void updateAndSaveProperties() throws IOException + { + + + if(!this.settingsTextField1.getText().substring(this.settingsTextField1.getText().length() - 1).equals("\\")) + { + this.settingsTextField1.setText(this.settingsTextField1.getText() + "\\"); + } + if(!this.settingsTextField7.getText().substring(this.settingsTextField7.getText().length() - 1).equals("\\")) + { + this.settingsTextField7.setText(this.settingsTextField7.getText() + "\\"); + } + if(this.settingsTextField3.getText().contains(" ")) + { + this.settingsTextField3.setText(this.settingsTextField3.getText().replace(" ", "")); + } + if(this.settingsTextField4.getText().contains("; ") || this.settingsTextField4.getText().contains(" ;")) + { + this.settingsTextField4.setText(this.settingsTextField4.getText().replace("; ", ";")); + this.settingsTextField4.setText(this.settingsTextField4.getText().replace(" ;", ";")); + } + + if(this.settingsTextField20.getText().contains("; ") || this.settingsTextField20.getText().contains(" ;")) + { + this.settingsTextField20.setText(this.settingsTextField20.getText().replace("; ", ";")); + this.settingsTextField20.setText(this.settingsTextField20.getText().replace(" ;", ";")); + } + if(this.settingsTextField21.getText().contains("; ") || this.settingsTextField21.getText().contains(" ;")) + { + this.settingsTextField21.setText(this.settingsTextField21.getText().replace("; ", ";")); + this.settingsTextField21.setText(this.settingsTextField21.getText().replace(" ;", ";")); + } + + this.propertyFilehandler.propertyFileModel.updateProperties(this.settingsTextField1.getText(),this.settingsTextField7.getText(), this.settingsTextField4.getText(),booleanToString(this.settingsTextField5_checkbox),this.settingsTextField2.getText(),this.settingsTextField3.getText(), booleanToString(this.settingsTextField6_checkbox), + this.settingsTextField8 .getText(), this.settingsTextField9 .getText(), this.settingsTextField10.getText(), this.settingsTextField11.getText(), this.settingsTextField12.getText(), this.settingsTextField13.getText(), this.settingsTextField14.getText(), this.settingsTextField15.getText(), this.settingsTextField16.getText(), this.settingsTextField17.getText(), this.settingsTextField18.getText(), this.settingsTextField19.getText(), + this.settingsTextField20.getText(), this.settingsTextField21.getText(), + this.settingsTextField22.getText(), + booleanToString(this.settingsTextField23_checkbox) , booleanToString(this.settingsTextField24_checkbox), + this.settingsTextField22b.getText(),this.settingsTextField22c.getText(), + booleanToString(this.settingsTextField25_checkbox),booleanToString(this.settingsTextField26_checkbox), + booleanToString(this.settingsTextField27_checkbox), + booleanToString(this.settingsTextField28_checkbox),booleanToString(this.settingsTextField29_checkbox), + this.saveCurrentSettingsNewColumnNames.getText(), + booleanToString(this.settingsTextField30_checkbox), + "", + "", + "", + "" + ); + + this.propertyFilehandler.setConfigDetail(); + this.changedFlag = false; + this.saveButtonHBox.setBackground(null); + this.saveButtonHBox.getChildren().clear(); + + + + } + + + + public String booleanToString(CheckBox checkbox) + { + if (checkbox.isSelected()) + { + return "true"; + } + return "false"; + } + + + public List openFileAndLoad() throws IOException + { + ImportExportFileHandler.importFondsManagerFilesFromImportLocation(); + DataBaseHandler databaseHandler = new DataBaseHandler(); + try { + return (databaseHandler.loadDatabaseData()); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //this.titles = databaseHandler.loadDatabaseData(); + return null; + } + + + + public void setCurrentColumns() + { + + if (fondsManagerTab.queuemanager == null || fondsManagerTab.queuemanager.ColumnNames == null || this.fondsManagerTab.queuemanager.ColumnNames.size() == 0) + { + this.loadCurrentSettingsDefaultColumnNames.setText("Bitte zunächst Datensatz laden."); + + } else + { + String currentColumnsString = ""; + for (String column : fondsManagerTab.queuemanager.ColumnNames) + { + if (isAdanced) + { + currentColumnsString += ">FieldName>" + column + "FieldAlias>" + "FieldContent>" + " { + resizeEvent((double) newValue); + }); + this.primaryStage.heightProperty().addListener((observable, oldValue, newValue) -> { + resizeEvent((double) newValue); + }); + + + + this.oaTab = new Tab(Constants.ChooserTabName_OAFondsManager); + this.oaTab.setClosable(false); + this.buildStage = 0; + + } + + private void resizeEvent(double newValue) + { + /* + * proven to be stupid + */ + + + } + + private void updateQueueProgress(double number) + { + this.progressBar.setProgress(number); + } + + public void initialFormatting() + { + updateFormattedTitle(ListEnum.NOPES); + updateFormattedTitle(ListEnum.PICKS); + updateFormattedTitle(ListEnum.QUEUE); + } + + public void rebuild(List applicatonModels) throws InterruptedException { + + initiateElements(); + configureElements(); + this.buildStage = 1; + int bearbeitetVonIndex = -1; + + if (this.propertyFileHandler.propertyFileModel.get_settings_FontSize().length() > 0) + { + this.fontSize = Integer.parseInt(this.propertyFileHandler.propertyFileModel.get_settings_FontSize()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth().length() > 0) + { + this.QueueWidth = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight().length() > 0) + { + this.QueueHeight = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight()); + } + + + changeGridWidhtAndHeightAccordingToPropertiesOrDefault(); + + List> queueTitles = new ArrayList>(); + List> nopeTitles = new ArrayList>(); + List> pickTitles = new ArrayList>(); + + for (FondsManager_applicationModel model : applicatonModels) + { + if (model.publicationModel.applicationStage.equals("0")) + { + queueTitles.add(model.getValues()); + }else if (model.publicationModel.applicationStage.equals("1")) + { + nopeTitles.add(model.getValues()); + } else if (Integer.parseInt(model.publicationModel.applicationStage) > 1) + { + pickTitles.add(model.getValues()); + } + + } + + if (applicatonModels == null) + { + return; + } + + List columnNames = applicatonModels.get(0).getColumns(); + + + this.queuemanager = new QueueManager(columnNames, nopeTitles, queueTitles, pickTitles); + + + configureEventsGeneral(); + configureEventsQueue(); + configureEventsPicks(); + configureEventsNopes(); + this.QueueWidth = this.currentsqueue.getWidth(); + this.QueueHeight = this.currentsqueue.getHeight(); + updateLists(); + } + + + public void updateFormattedTitles(boolean updatenopes, String altNopeTitle, boolean updatequeue, String altQueueTitle, boolean updatepicks, String altPickTitle, boolean updateApi) + { + if (updatenopes) + { + if (altNopeTitle != null) + { + this.currentsnopes.setText(altNopeTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsnopes.setText(queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + + } + } + if (updatequeue) + { + if (altQueueTitle != null) + { + this.currentsqueue.setText(altQueueTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsqueue.setText(queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + + } + } + if (updatepicks) + { + if (altPickTitle != null) + { + this.currentspicks.setText(altPickTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + + if(queuemanager.getPublicationStage(ListEnum.PICKS) > 2) + { + + } + + this.currentspicks.setText(queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + if(queuemanager.getPublicationStage(ListEnum.PICKS) > 2) + { + this.engageFinalFundingStage.setVisible(false); + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #DCFFDC;"); + } else if (queuemanager.getPublicationStage(ListEnum.PICKS) == 2) + { + this.engageFinalFundingStage.setVisible(true); + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFDCDC;"); + } else + { + this.engageFinalFundingStage.setVisible(false); + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + + } + + } + } + } + + private void updateLists() + { + + this.currentsqueue.setVisible(true); + this.currentspicks.setVisible(true); + this.currentsnopes.setVisible(true); + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, false); + + updateFormattedTitle(ListEnum.NOPES); + updateFormattedTitle(ListEnum.QUEUE); + } + + public void resetformersleft() + { + this.textA1.setText(" "); + this.textA2.setText(" "); + this.textA3.setText(" "); + this.textA4.setText(" "); + this.textA5.setText(" "); + this.textA6.setText(" "); + this.textA7.setText(" "); + this.textA8.setText(" "); + this.textA9.setText(" "); + this.textA10.setText(" "); + } + + public void resetformersmiddle() + { + this.textB1.setText(" "); + this.textB2.setText(" "); + this.textB3.setText(" "); + this.textB4.setText(" "); + this.textB5.setText(" "); + this.textB6.setText(" "); + this.textB7.setText(" "); + this.textB8.setText(" "); + this.textB9.setText(" "); + this.textB10.setText(" "); + } + + public void resetformersright() + { + this.textC1.setText(" "); + this.textC2.setText(" "); + this.textC3.setText(" "); + this.textC4.setText(" "); + this.textC5.setText(" "); + this.textC6.setText(" "); + this.textC7.setText(" "); + this.textC8.setText(" "); + this.textC9.setText(" "); + this.textC10.setText(" "); + } + + public void resetnextsleft() + { + this.textD1.setText(" "); + this.textD2.setText(" "); + this.textD3.setText(" "); + this.textD4.setText(" "); + this.textD5.setText(" "); + this.textD6.setText(" "); + this.textD7.setText(" "); + this.textD8.setText(" "); + this.textD9.setText(" "); + this.textD10.setText(" "); + } + + public void resetnextsmiddle() + { + this.textE1.setText(" "); + this.textE2.setText(" "); + this.textE3.setText(" "); + this.textE4.setText(" "); + this.textE5.setText(" "); + this.textE6.setText(" "); + this.textE7.setText(" "); + this.textE8.setText(" "); + this.textE9.setText(" "); + this.textE10.setText(" "); + } + + public void resetnextsrightt() + { + this.textF1.setText(" "); + this.textF2.setText(" "); + this.textF3.setText(" "); + this.textF4.setText(" "); + this.textF5.setText(" "); + this.textF6.setText(" "); + this.textF7.setText(" "); + this.textF8.setText(" "); + this.textF9.setText(" "); + this.textF10.setText(" "); + } + + public String shortenShortTitleString(String title) + { + + + String titleShort = title.split(" : ")[0]; + if (titleShort.length() > 60) + { + titleShort = titleShort.substring(0, 59); + } + + //return titleShort; + return title; + } + + public void updateQueues(boolean updateNopes, boolean updateQueue, boolean updatePicks) + { + + List> formersleft; + List> formersright; + List> formersmiddle; + List> nextsleft; + List> nextsright; + List> nextsmiddle; + + if (updateNopes) + { + formersleft = queuemanager.get10Formers(ListEnum.NOPES); + nextsleft = queuemanager.get10Nexts(ListEnum.NOPES); + if (formersleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersleft.size()-1) + { + this.textA10.setText(" "); + } else + { + this.textA10.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersleft.size()-1) + { + this.textA9.setText(" "); + } else + { + this.textA9.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersleft.size()-1) + { + this.textA8.setText(" "); + } else + { + this.textA8.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersleft.size()-1) + { + this.textA7.setText(" "); + } else + { + this.textA7.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersleft.size()-1) + { + this.textA6.setText(" "); + } else + { + this.textA6.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersleft.size()-1) + { + this.textA5.setText(" "); + } else + { + this.textA5.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersleft.size()-1) + { + this.textA4.setText(" "); + } else + { + this.textA4.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersleft.size()-1) + { + this.textA3.setText(" "); + } else + { + this.textA3.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersleft.size()-1) + { + this.textA2.setText(" "); + break; + } else + { + this.textA2.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersleft.size()-1) + { + this.textA1.setText(" "); + break; + } else + { + this.textA1.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersleft(); + + if (nextsleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsleft.size()-1) + { + this.textD1.setText(" "); + } else + { + this.textD1.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsleft.size()-1) + { + this.textD2.setText(" "); + } else + { + this.textD2.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsleft.size()-1) + { + this.textD3.setText(" "); + } else + { + this.textD3.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsleft.size()-1) + { + this.textD4.setText(" "); + } else + { + this.textD4.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsleft.size()-1) + { + this.textD5.setText(" "); + } else + { + this.textD5.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsleft.size()-1) + { + this.textD6.setText(" "); + } else + { + this.textD6.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsleft.size()-1) + { + this.textD7.setText(" "); + } else + { + this.textD7.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsleft.size()-1) + { + this.textD8.setText(" "); + } else + { + this.textD8.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsleft.size()-1) + { + this.textD9.setText(" "); + break; + } else + { + this.textD9.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsleft.size()-1) + { + this.textD10.setText(" "); + break; + } else + { + this.textD10.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsleft(); + } + + if (updateQueue) + { + formersmiddle = queuemanager.get10Formers(ListEnum.QUEUE); + nextsmiddle = queuemanager.get10Nexts(ListEnum.QUEUE); + if (formersmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersmiddle.size()-1) + { + this.textB10.setText(" "); + } else + { + this.textB10.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersmiddle.size()-1) + { + this.textB9.setText(" "); + } else + { + this.textB9.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersmiddle.size()-1) + { + this.textB8.setText(" "); + } else + { + this.textB8.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersmiddle.size()-1) + { + this.textB7.setText(" "); + } else + { + this.textB7.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersmiddle.size()-1) + { + this.textB6.setText(" "); + } else + { + this.textB6.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersmiddle.size()-1) + { + this.textB5.setText(" "); + } else + { + this.textB5.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersmiddle.size()-1) + { + this.textB4.setText(" "); + } else + { + this.textB4.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersmiddle.size()-1) + { + this.textB3.setText(" "); + } else + { + this.textB3.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersmiddle.size()-1) + { + this.textB2.setText(" "); + break; + } else + { + this.textB2.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersmiddle.size()-1) + { + this.textB1.setText(" "); + break; + } else + { + this.textB1.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersmiddle(); + + if (nextsmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsmiddle.size()-1) + { + this.textE1.setText(" "); + } else + { + this.textE1.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsmiddle.size()-1) + { + this.textE2.setText(" "); + } else + { + this.textE2.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsmiddle.size()-1) + { + this.textE3.setText(" "); + } else + { + this.textE3.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsmiddle.size()-1) + { + this.textE4.setText(" "); + } else + { + this.textE4.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsmiddle.size()-1) + { + this.textE5.setText(" "); + } else + { + this.textE5.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsmiddle.size()-1) + { + this.textE6.setText(" "); + } else + { + this.textE6.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsmiddle.size()-1) + { + this.textE7.setText(" "); + } else + { + this.textE7.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsmiddle.size()-1) + { + this.textE8.setText(" "); + } else + { + this.textE8.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsmiddle.size()-1) + { + this.textE9.setText(" "); + break; + } else + { + this.textE9.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsmiddle.size()-1) + { + this.textE10.setText(" "); + break; + } else + { + this.textE10.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsmiddle(); + } + + if (updatePicks) + { //formers + formersright = queuemanager.get10Formers(ListEnum.PICKS); + nextsright = queuemanager.get10Nexts(ListEnum.PICKS); + + if (formersright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersright.size()-1) + { + this.textC10.setText(" "); + } else + { + this.textC10.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersright.size()-1) + { + this.textC9.setText(" "); + } else + { + this.textC9.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersright.size()-1) + { + this.textC8.setText(" "); + } else + { + this.textC8.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersright.size()-1) + { + this.textC7.setText(" "); + } else + { + this.textC7.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersright.size()-1) + { + this.textC6.setText(" "); + } else + { + this.textC6.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersright.size()-1) + { + this.textC5.setText(" "); + } else + { + this.textC5.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersright.size()-1) + { + this.textC4.setText(" "); + } else + { + this.textC4.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersright.size()-1) + { + this.textC3.setText(" "); + } else + { + this.textC3.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersright.size()-1) + { + this.textC2.setText(" "); + break; + } else + { + this.textC2.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersright.size()-1) + { + this.textC1.setText(" "); + break; + } else + { + this.textC1.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersright(); + + //nexts + if (nextsright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsright.size()-1) + { + this.textF1.setText(" "); + } else + { + this.textF1.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsright.size()-1) + { + this.textF2.setText(" "); + } else + { + this.textF2.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsright.size()-1) + { + this.textF3.setText(" "); + } else + { + this.textF3.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsright.size()-1) + { + this.textF4.setText(" "); + } else + { + this.textF4.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsright.size()-1) + { + this.textF5.setText(" "); + } else + { + this.textF5.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsright.size()-1) + { + this.textF6.setText(" "); + } else + { + this.textF6.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsright.size()-1) + { + this.textF7.setText(" "); + } else + { + this.textF7.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsright.size()-1) + { + this.textF8.setText(" "); + } else + { + this.textF8.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsright.size()-1) + { + this.textF9.setText(" "); + break; + } else + { + this.textF9.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsright.size()-1) + { + this.textF10.setText(" "); + break; + } else + { + this.textF10.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsrightt(); + } + + + + + + + + + + + + + + + + + + + + } + + private void exportQueue(QueueManager queuemanager) + { + if (queuemanager.isExportFolderValid()) + { + ImportExportFileHandler importExportFileHandler = new ImportExportFileHandler(); + + queuemanager.exportPicks(); + try { + importExportFileHandler.openExportFileFolder(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Warnung"); + alert.setHeaderText("Kein gültiger Exportpfad angegeben. Ihre Daten wurden noch nicht gespeichert."); + alert.setContentText("Bitte gehen Sie zu den Importeinstellungen und überprüfen Sie Ihre Eingaben!"); + + alert.showAndWait(); + } + } + + private void initiateElements() + { + this.oaTab = new Tab(Constants.ChooserTabName_OAFondsManager); + + this.currentsqueue = new CustomTextAreaPickerTab(ListEnum.QUEUE); + this.currentspicks = new CustomTextAreaPickerTab(ListEnum.PICKS); + this.currentsnopes = new CustomTextAreaPickerTab(ListEnum.NOPES); + + this.engageFinalFundingStage = new Button(); + Tooltip engageFinalFundingStageTooltip = new Tooltip(); + engageFinalFundingStageTooltip.setText("Finale Förderzusage erteilen und Datensatz in den Folgetab übertragen."); + ImageView engageFinalFundingStageImageView = new ImageView(GetButtonPics.getButtonImage_arrowRight()); + engageFinalFundingStageImageView.setPreserveRatio(true); + engageFinalFundingStageImageView.setFitHeight(18); + + this.engageFinalFundingStage.setGraphic(engageFinalFundingStageImageView); + + engageFinalFundingStage.setTooltip(engageFinalFundingStageTooltip); + this.engageFinalFundingStage.setPrefWidth(18); + this.engageFinalFundingStage.setMaxWidth(18); + this.engageFinalFundingStage.setPadding(new Insets(0,0,0,0)); + + + this.engageFinalFundingStage.setVisible(false); + //this.currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + //this.currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + //this.currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + + + this.progressBar = new ProgressBar(0.1); + + this.gridpaneLower = new GridPane(); + this.progressText = new Text(); + + this.currentsHBox = new HBox(); + this.nextsHBox = new HBox(); + this.formersHBox = new HBox(); + this.shortCutHBox = new HBox(); + + this.currentsleftVBox = new VBox(200, this.currentsnopes); + this.currentsmiddleVBox = new VBox(200, this.currentsqueue); + this.currentsrightVBox = new VBox(200, this.currentspicks); + + this.helpButton = new Button(); + Tooltip helpTooltip = new Tooltip(); + helpTooltip.setText("Kurzeinführung"); + helpButton.setTooltip(helpTooltip); + + this.textA1 = new Label(""); + this.textA2 = new Label(""); + this.textA3 = new Label(""); + this.textA4 = new Label(""); + this.textA5 = new Label(""); + this.textA6 = new Label(""); + this.textA7 = new Label(""); + this.textA8 = new Label(""); + this.textA9 = new Label(""); + this.textA10 = new Label(""); + this.formersleftVBox = new VBox(5, this.textA1, this.textA2, this.textA3, this.textA4, this.textA5, this.textA6, this.textA7, this.textA8, this.textA9, this.textA10); + + this.textB1 = new Label(" "); + this.textB2 = new Label(" "); + this.textB3 = new Label(" "); + this.textB4 = new Label(" "); + this.textB5 = new Label(" "); + this.textB6 = new Label(" "); + this.textB7 = new Label(" "); + this.textB8 = new Label(" "); + this.textB9 = new Label(" "); + this.textB10 = new Label(" "); + this.formersmiddleVBox = new VBox(5, this.textB1, this.textB2, this.textB3, this.textB4, this.textB5, this.textB6, this.textB7, this.textB8, this.textB9, this.textB10); + + this.textC1 = new Label(" "); + this.textC2 = new Label(" "); + this.textC3 = new Label(" "); + this.textC4 = new Label(" "); + this.textC5 = new Label(" "); + this.textC6 = new Label(" "); + this.textC7 = new Label(" "); + this.textC8 = new Label(" "); + this.textC9 = new Label(" "); + this.textC10 = new Label(" "); + this.formersrightVBox = new VBox(5, this.textC1, this.textC2, this.textC3, this.textC4, this.textC5, this.textC6, this.textC7, this.textC8, this.textC9, this.textC10); + + this.textD1 = new Label(" "); + this.textD2 = new Label(" "); + this.textD3 = new Label(" "); + this.textD4 = new Label(" "); + this.textD5 = new Label(" "); + this.textD6 = new Label(" "); + this.textD7 = new Label(" "); + this.textD8 = new Label(" "); + this.textD9 = new Label(" "); + this.textD10 = new Label(" "); + this.nextsleftVBox = new VBox(5, this.textD1, this.textD2, this.textD3, this.textD4, this.textD5, this.textD6, this.textD7, this.textD8, this.textD9, this.textD10); + + this.textE1 = new Label(" "); + this.textE2 = new Label(" "); + this.textE3 = new Label(" "); + this.textE4 = new Label(" "); + this.textE5 = new Label(" "); + this.textE6 = new Label(" "); + this.textE7 = new Label(" "); + this.textE8 = new Label(" "); + this.textE9 = new Label(" "); + this.textE10 = new Label(" "); + this.nextsmiddleVBox = new VBox(5, this.textE1, this.textE2, this.textE3, this.textE4, this.textE5, this.textE6, this.textE7, this.textE8, this.textE9, this.textE10); + + this.textF1 = new Label(" "); + this.textF2 = new Label(" "); + this.textF3 = new Label(" "); + this.textF4 = new Label(" "); + this.textF5 = new Label(" "); + this.textF6 = new Label(" "); + this.textF7 = new Label(" "); + this.textF8 = new Label(" "); + this.textF9 = new Label(" "); + this.textF10 = new Label(" "); + this.nextsrightVBox = new VBox(5, this.textF1, this.textF2, this.textF3, this.textF4, this.textF5, this.textF6, this.textF7, this.textF8, this.textF9, this.textF10); + + this.markedKeyWordsHBoxNopes = new HBox(); + this. markedKeyWordsHBoxQueue = new HBox(); + this.markedKeyWordsHBoxPicks = new HBox(); + this.markedKeyWordsNopesGreen = new Label(); + this.markedKeyWordsNopesRed = new Label(); + this.markedKeyWordsQueueGreen = new Label(); + this.markedKeyWordsQueueRed = new Label(); + this.markedKeyWordsPicksGreen = new Label(); + this.markedKeyWordsPicksRed = new Label(); + this.markedKeyWordsNopesOA = new Label("Abgelehnte Anträge"); + this.markedKeyWordsQueueOA = new Label("Prüfung ausstehend"); + this.markedKeyWordsPicksOA = new Label("Vorläufige Förderzusage"); + + } + public void updateKeyWords(ListEnum listEnum) throws MalformedURLException, InterruptedException + { + switch (listEnum) + { + case NOPES: + { + + this.IHV_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, true)); + this.IHT_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, false)); + this.markedKeyWordsNopesGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, true)); + this.markedKeyWordsNopesRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, false)); + + return; + } + case QUEUE: + { + this.IHV_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, true)); + this.IHT_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, false)); + this.markedKeyWordsQueueGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, true)); + this.markedKeyWordsQueueRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, false)); + + return; + } + case PICKS: + { + this.IHV_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, true)); + this.IHT_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, false)); + this.markedKeyWordsPicksGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, true)); + this.markedKeyWordsPicksRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, false)); + + return; + } + } + return; + } + + private void configureElements() + { + + this.markedKeyWordsHBoxNopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxQueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxPicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsNopesGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsNopesRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsQueueGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsQueueRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsPicksGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsPicksRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsNopesOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsQueueOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsPicksOA.setTextFill(Color.rgb(160,32,240)); + + + this.markedKeyWordsNopesGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsNopesRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsNopesOA.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueOA.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksOA.setStyle("-fx-font-weight: bold"); + + + Region regionKeyWordsNopes = new Region(); + Region regionKeyWordsQueue = new Region(); + Region regionKeyWordsPicks = new Region(); + + Region regionKeyWordsNopes2 = new Region(); + Region regionKeyWordsQueue2 = new Region(); + Region regionKeyWordsPicks2 = new Region(); + + HBox.setHgrow(regionKeyWordsNopes, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsNopes2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks2, Priority.ALWAYS); + + + + this.IHV_Image = GetButtonPics.getButtonImage_IHV(); + this.IHT_Image = GetButtonPics.getButtonImage_IHT(); + + this.IHV_ImageViewNopes = new ImageView(this.IHV_Image); + this.IHT_ImageViewNopes = new ImageView(this.IHT_Image); + this. IHV_ImageViewQueue = new ImageView(this.IHV_Image); + this. IHT_ImageViewQueue = new ImageView(this.IHT_Image); + this. IHV_ImageViewPicks = new ImageView(this.IHV_Image); + this. IHT_ImageViewPicks = new ImageView(this.IHT_Image); + this.IHV_ImageViewNopes.setPreserveRatio(true); + this.IHT_ImageViewNopes.setPreserveRatio(true); + this.IHV_ImageViewQueue.setPreserveRatio(true); + this.IHT_ImageViewQueue.setPreserveRatio(true); + this.IHV_ImageViewPicks.setPreserveRatio(true); + this.IHT_ImageViewPicks.setPreserveRatio(true); + + this.IHV_ButtonNopes= new Button(); + this.IHT_ButtonNopes= new Button(); + this.IHV_ButtonQueue= new Button(); + this.IHT_ButtonQueue= new Button(); + this.IHV_ButtonPicks= new Button(); + this.IHT_ButtonPicks= new Button(); + this.IHV_ButtonNopes.setGraphic(this.IHV_ImageViewNopes); + this.IHT_ButtonNopes.setGraphic(this.IHT_ImageViewNopes); + this.IHV_ButtonQueue.setGraphic(this.IHV_ImageViewQueue); + this.IHT_ButtonQueue.setGraphic(this.IHT_ImageViewQueue); + this.IHV_ButtonPicks.setGraphic(this.IHV_ImageViewPicks); + this.IHT_ButtonPicks.setGraphic(this.IHT_ImageViewPicks); + int imageViewWidth = 18; + this.IHV_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setVisible(false); + this.IHT_ButtonNopes.setVisible(false); + this.IHV_ButtonQueue.setVisible(false); + this.IHT_ButtonQueue.setVisible(false); + this.IHV_ButtonPicks.setVisible(false); + this.IHT_ButtonPicks.setVisible(false); + + + + + + this.IHV_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHT_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHV_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHT_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHV_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHT_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHV_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHT_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHV_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHT_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHV_ImageViewPicks.setFitHeight(imageViewWidth); + this.IHT_ImageViewPicks.setFitHeight(imageViewWidth); + + + this.markedKeyWordsHBoxNopes.getChildren().addAll(new Label(" "), new Label(" "), new Label(" "), regionKeyWordsNopes, markedKeyWordsNopesOA, regionKeyWordsNopes2, new Label(" ")); + this.markedKeyWordsHBoxQueue.getChildren().addAll(new Label(" "), new Label(" "), new Label(" "), regionKeyWordsQueue, markedKeyWordsQueueOA, regionKeyWordsQueue2, new Label(" ")); + this.markedKeyWordsHBoxPicks.getChildren().addAll(new Label(" "), this.engageFinalFundingStage, new Label(" "), regionKeyWordsPicks, markedKeyWordsPicksOA, regionKeyWordsPicks2, new Label(" ")); + + + + + this.oaTab.setClosable(false); + this.currentsqueue.setEditable(false); + this.currentspicks.setEditable(false); + this.currentsnopes.setEditable(false); + + this.currentsqueue.setVisible(false); + this.currentspicks.setVisible(false); + this.currentsnopes.setVisible(false); + + this.currentsqueue.setWrapText(true); + this.currentspicks.setWrapText(true); + this.currentsnopes.setWrapText(true); + + this.currentsqueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentspicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsnopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsqueue.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentspicks.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentsnopes.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + + this.currentsqueue.setMinHeight(200); + this.currentspicks.setMinHeight(200); + this.currentsnopes.setMinHeight(200); + + + this.currentspicks.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.PICKS); + + } + }); + + this.currentsqueue.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.QUEUE); + } + }); + + this.currentsnopes.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.NOPES); + } + }); + + + this.textA1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + + this.progressBar.setMinHeight(15); + this.progressBar.setMinWidth(100); + + this.ButtonImage_ctrl = GetButtonPics.getButtonImage_ctrl(); + //this.ButtonImage_space = GetButtonPics.getButtonImage_space(); + //this.ButtonImage_shift = GetButtonPics.getButtonImage_shift(); + this.ButtonImage_F1 = GetButtonPics.getButtonImage_F1(); + this.ButtonImage_F2 = GetButtonPics.getButtonImage_F2(); + this.ButtonImage_F3 = GetButtonPics.getButtonImage_F3(); + this.ButtonImage_F4 = GetButtonPics.getButtonImage_F4(); + //this.ButtonImage_F5 = GetButtonPics.getButtonImage_F5(); + this.ButtonImage_F6 = GetButtonPics.getButtonImage_F6(); + //this.ButtonImage_F7 = GetButtonPics.getButtonImage_F7(); + this.ButtonImage_enter = GetButtonPics.getButtonImage_enter(); + this.ButtonImage_arrowRight = GetButtonPics.getButtonImage_arrowRight(); + this.ButtonImage_verticalLine = GetButtonPics.getButtonImage_verticalLine(); + this.ButtonImage_closedEye = GetButtonPics.getButtonImage_closedEye(); + //this.ButtonImage_backspace = GetButtonPics.getButtonImage_backspace(); + this.QuestionMarkImage = GetButtonPics.getButtonImage_QuestionMark(); + this.ButtonImage_alt = GetButtonPics.getButtonImage_Alt(); + + + + this.textA1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsnopes.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsqueue.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentspicks.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + + + //this.textA1.setTextOverrun(OverrunStyle.CLIP); + this.textA2.setTextOverrun(OverrunStyle.CLIP); + this.textA3.setTextOverrun(OverrunStyle.CLIP); + this.textA4.setTextOverrun(OverrunStyle.CLIP); + this.textA5.setTextOverrun(OverrunStyle.CLIP); + this.textA6.setTextOverrun(OverrunStyle.CLIP); + this.textA7.setTextOverrun(OverrunStyle.CLIP); + this.textA8.setTextOverrun(OverrunStyle.CLIP); + this.textA9.setTextOverrun(OverrunStyle.CLIP); + this.textA10.setTextOverrun(OverrunStyle.CLIP); + this.textB1.setTextOverrun(OverrunStyle.CLIP); + this.textB2.setTextOverrun(OverrunStyle.CLIP); + this.textB3.setTextOverrun(OverrunStyle.CLIP); + this.textB4.setTextOverrun(OverrunStyle.CLIP); + this.textB5.setTextOverrun(OverrunStyle.CLIP); + this.textB6.setTextOverrun(OverrunStyle.CLIP); + this.textB7.setTextOverrun(OverrunStyle.CLIP); + this.textB8.setTextOverrun(OverrunStyle.CLIP); + this.textB9.setTextOverrun(OverrunStyle.CLIP); + this.textB10.setTextOverrun(OverrunStyle.CLIP); + this.textC1.setTextOverrun(OverrunStyle.CLIP); + this.textC2.setTextOverrun(OverrunStyle.CLIP); + this.textC3.setTextOverrun(OverrunStyle.CLIP); + this.textC4.setTextOverrun(OverrunStyle.CLIP); + this.textC5.setTextOverrun(OverrunStyle.CLIP); + this.textC6.setTextOverrun(OverrunStyle.CLIP); + this.textC7.setTextOverrun(OverrunStyle.CLIP); + this.textC8.setTextOverrun(OverrunStyle.CLIP); + this.textC9.setTextOverrun(OverrunStyle.CLIP); + this.textC10.setTextOverrun(OverrunStyle.CLIP); + this.textD1.setTextOverrun(OverrunStyle.CLIP); + this.textD2.setTextOverrun(OverrunStyle.CLIP); + this.textD3.setTextOverrun(OverrunStyle.CLIP); + this.textD4.setTextOverrun(OverrunStyle.CLIP); + this.textD5.setTextOverrun(OverrunStyle.CLIP); + this.textD6.setTextOverrun(OverrunStyle.CLIP); + this.textD7.setTextOverrun(OverrunStyle.CLIP); + this.textD8.setTextOverrun(OverrunStyle.CLIP); + this.textD9.setTextOverrun(OverrunStyle.CLIP); + this.textD10.setTextOverrun(OverrunStyle.CLIP); + this.textE1.setTextOverrun(OverrunStyle.CLIP); + this.textE2.setTextOverrun(OverrunStyle.CLIP); + this.textE3.setTextOverrun(OverrunStyle.CLIP); + this.textE4.setTextOverrun(OverrunStyle.CLIP); + this.textE5.setTextOverrun(OverrunStyle.CLIP); + this.textE6.setTextOverrun(OverrunStyle.CLIP); + this.textE7.setTextOverrun(OverrunStyle.CLIP); + this.textE8.setTextOverrun(OverrunStyle.CLIP); + this.textE9.setTextOverrun(OverrunStyle.CLIP); + this.textE10.setTextOverrun(OverrunStyle.CLIP); + this.textF1.setTextOverrun(OverrunStyle.CLIP); + this.textF2.setTextOverrun(OverrunStyle.CLIP); + this.textF3.setTextOverrun(OverrunStyle.CLIP); + this.textF4.setTextOverrun(OverrunStyle.CLIP); + this.textF5.setTextOverrun(OverrunStyle.CLIP); + this.textF6.setTextOverrun(OverrunStyle.CLIP); + this.textF7.setTextOverrun(OverrunStyle.CLIP); + this.textF8.setTextOverrun(OverrunStyle.CLIP); + this.textF9.setTextOverrun(OverrunStyle.CLIP); + this.textF10.setTextOverrun(OverrunStyle.CLIP); + + + + this.progressText = new Text(""); + if (!(this.ButtonImage_ctrl == null || + //this.ButtonImage_space == null || + //this.ButtonImage_shift == null || + this.ButtonImage_F1 == null || + this.ButtonImage_F2 == null || + this.ButtonImage_F3 == null || + this.ButtonImage_F4 == null || + //this.ButtonImage_F5 == null || + this.ButtonImage_F6 == null || + //this.ButtonImage_F7 == null || + this.ButtonImage_enter == null || + this.ButtonImage_arrowRight == null || + this.ButtonImage_verticalLine == null || + this.ButtonImage_closedEye == null || + //this.ButtonImage_backspace == null) || + this.QuestionMarkImage == null || + this.ButtonImage_alt == null)) + { + buildShortcutHBox(); + } + + this.engageFinalFundingStage.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + queuemanager.engageCurrentPickTitleIntoFinalFundingStage(ListEnum.PICKS); + updateFormattedTitles(false, null, false, null, true, null, false); + } + }); + + shortCutHBox.setAlignment(Pos.CENTER_LEFT); + + HBox.setMargin(this.progressBar, new Insets(0,10,0,0)); + + + this.formersleftVBox.setMaxWidth(200); + this.formersmiddleVBox.setMaxWidth(200); + this.formersrightVBox.setMaxWidth(200); + this.nextsleftVBox.setMaxWidth(200); + this.nextsmiddleVBox.setMaxWidth(200); + this.nextsrightVBox.setMaxWidth(200); + + //labels instead of textareas: + this.gridpaneLower.setHgap(10); + this.gridpaneLower.setVgap(10); + this.gridpaneLower.setPadding(new Insets(0,10,10,10)); + this.gridpaneLower.add(this.formersleftVBox, 0, 1); + this.gridpaneLower.add(this.formersmiddleVBox, 1, 1); + this.gridpaneLower.add(this.formersrightVBox, 2, 1); + this.gridpaneLower.add(this.markedKeyWordsHBoxNopes, 0, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxQueue, 1, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxPicks , 2, 2); + this.gridpaneLower.add(this.currentsnopes, 0, 3); + this.gridpaneLower.add(this.currentsqueue, 1, 3); + this.gridpaneLower.add(this.currentspicks, 2, 3); + this.gridpaneLower.add(this.nextsleftVBox, 0, 4); + this.gridpaneLower.add(this.nextsmiddleVBox, 1, 4); + this.gridpaneLower.add(this.nextsrightVBox, 2, 4); + + + + ScrollPane scrollPane = new ScrollPane(); + scrollPane.setFitToHeight(true); + scrollPane.setFitToWidth(true); + ScrollPane scrollPane2 = new ScrollPane(); + scrollPane.setContent(this.shortCutHBox); + scrollPane2.setContent(this.gridpaneLower); + + scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a vertical ScrollBar + scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a hor ScrollBar + scrollPane.setFitToWidth(true); // set content width to viewport width + scrollPane.setPannable(true); // allow scrolling via mouse dragging + + scrollPane2.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); + scrollPane2.setFitToWidth(true); // set content width to viewport width + scrollPane2.setPannable(true); // allow scrolling via mouse dragging + + this.oaTab.setContent(new VBox(scrollPane, scrollPane2)); + HBox.setHgrow(gridpaneLower, Priority.ALWAYS); + + } + + private void buildShortcutHBox() + { + Region regionMiddle = new Region(); + HBox.setHgrow(regionMiddle, Priority.ALWAYS); + + this.helpButton.setGraphic(GetButtonPics.turnPicIntoImageView(QuestionMarkImage)); + + this.IHT_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.helpButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Kurzeinführung:"); + alert.setHeaderText(null); + alert.setContentText(Constants.Kurzeinfuehrung_orderMode); + alert.initStyle(StageStyle.UTILITY); + + alert.showAndWait(); + } + }); + + this.shortCutHBox.getChildren().addAll( + + new Text(" "),GetButtonPics.turnPicIntoImageView(this.ButtonImage_F1),new Text(" bis "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_F4), Constants.ShortCutDescription_titelsuche, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltsverzeichnis,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift), GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltstext,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_backspace), Constants.ShortCutDescription_rueckgaengig, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_F5), Constants.ShortCutDescription_copyISBNToClipboard,GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_F6), Constants.ShortCutDescription_hinweisHinzufuegen,GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + //GetButtonPics.turnPicIntoImageView(this.ButtonImage_F7), Constants.ShortCutDescription_BestellendePersonAendern, + regionMiddle, this.progressText, new Text(" "), this.progressBar, new Text(" "), this.helpButton, new Text(" ") + ); + } + + private void updateProgressText(String text) + { + this.progressText.setText(text); + } + + private Region getRegionForFormattedTitle(ListEnum listEnum) + { + switch (listEnum) + { + case NOPES: + { + return ( Region )this.currentsnopes.lookup(".content"); + } + case QUEUE: + { + return ( Region )this.currentsqueue.lookup(".content"); + } + case PICKS: + { + return ( Region )this.currentspicks.lookup(".content"); + } + } + return null; + } + + private void updateFormattedTitle(ListEnum listEnum) + { + Region region = getRegionForFormattedTitle(listEnum); + if (region != null) + //region.setBackground(null); + this.markedKeyWordsPicksGreen.setText(""); + this.markedKeyWordsPicksRed.setText(""); + try { + updateKeyWords(listEnum); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + + + } + + public void adjustFontSizeTaller() + { + this.fontSize ++; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + public void adjustFontSizeSmaller() + { + this.fontSize --; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + private void configureEventsGeneral() { + + this.primaryStage.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + //this.nextsleftVBox.setBackground(null); + if (keyEvent.getCode() == KeyCode.ADD || keyEvent.getCode() == KeyCode.PLUS) + { + adjustFontSizeTaller(); + } + if (keyEvent.getCode() == KeyCode.SUBTRACT || keyEvent.getCode() == KeyCode.MINUS) + { + adjustFontSizeSmaller(); + } + + }); + + + this.currentsqueue.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + } + }); + + this.currentsnopes.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + //nextsleftVBox.setBackground(null); + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + //nextsleftVBox.setBackground(null); + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + } + }); + + this.currentspicks.setOnScroll(new EventHandler() { + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } + } + }); + } + + + private void configureEventsQueue() { + this.currentsqueue.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + // this.nextsleftVBox.setBackground(null); + + + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.QUEUE, true)), null); + } + if (keyEvent.getCode() == KeyCode.F6) + { + queuemanager.startDialogueForAltFlag(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + + if (keyEvent.getCode() == KeyCode.F7) + { + String ordererString = queuemanager.startDialogueForOrdererList(); + if (ordererString != null && !ordererString.isBlank()) + { + queuemanager.changeOrderer(ListEnum.QUEUE, ordererString); + } + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + + + if (keyEvent.getCode() == KeyCode.SPACE) + { + + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + } + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + + + if (keyEvent.getCode() == KeyCode.RIGHT) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.PICKS, true, false, "2", false); + this.lastAction = 2; + + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, true, false, "1", false); + this.lastAction = 1; + + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + int counter = 0; + while (!this.propertyFileHandler.propertyFileModel.get_settings_API_CheckApiAfterImport().equals("true") && queuemanager.titleIsOwnedOrOpenAccess(ListEnum.QUEUE) && counter < 10) + { + counter ++; + if ((this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveHoldings().equals("true") && queuemanager.titleIsOwned(ListEnum.QUEUE)) + || (this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveOA().equals("true") && queuemanager.titleIsOpenAccess(ListEnum.QUEUE))) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, false, false, Constants.statusOrder, true); + this.lastAction = 1; + + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + + //this.nextsleftVBox.setBackground(new Background(new BackgroundFill(Color.rgb(255, 220, 220), new CornerRadii(5), Insets.EMPTY))); + } + } + + }); + + } + + private void configureEventsPicks() { + this.currentspicks.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + //this.nextsleftVBox.setBackground(null); + + + + + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + // + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.QUEUE, false, true, "0", false); + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.NOPES, true, false, "1", false); + queuemanager.resetFlag(); + updateQueues(true, false, true); + updateFormattedTitles(true, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.PICKS, true)), null); + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + + private void configureEventsNopes() { + this.currentsnopes.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + //this.nextsleftVBox.setBackground(null); + + + + + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.QUEUE, false, true, "0", true); + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.PICKS, true, false, "2", true); + updateQueues(true, false, true); + updateFormattedTitles(true, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + // + } + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.NOPES, true)), null); + } + if (keyEvent.getCode() == KeyCode.F6) + { + queuemanager.startDialogueForAltFlag(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + + if (keyEvent.getCode() == KeyCode.F7) + { + String ordererString = queuemanager.startDialogueForOrdererList(); + if (ordererString != null && !ordererString.isBlank()) + { + queuemanager.changeOrderer(ListEnum.NOPES, ordererString); + } + updateQueues(false, true, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + public String getFontsize() + { + int number = (int) this.currentsqueue.getFont().getSize(); + return Integer.toString(number); + } + + public String getGridWidth() + { + Double number = this.currentsqueue.getWidth(); + return number.toString(); + } + + public String getGridHeight() + { + Double number = this.currentsqueue.getHeight(); + return number.toString(); + } + + private void changeGridWidhtAndHeightAccordingToPropertiesOrDefault() + { + + if (this.QueueWidth != 0) + { + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + if (this.QueueHeight != 0) + { + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + } + + public void changeGridI() + { + this.QueueWidth = this.currentsqueue.getWidth() - 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + + public void changeGridII() + { + + this.QueueHeight = this.currentsqueue.getHeight() - 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + + public void changeGridIII() + { + + this.QueueHeight = this.currentsqueue.getHeight() + 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + public void changeGridIV() + { + + this.QueueWidth = this.currentsqueue.getWidth() + 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } +} \ No newline at end of file diff --git a/src/userInterface_reiheAPicker/HistoryTab.java b/src/userInterface_reiheAPicker/HistoryTab.java new file mode 100644 index 0000000..8316b1c --- /dev/null +++ b/src/userInterface_reiheAPicker/HistoryTab.java @@ -0,0 +1,17 @@ +package userInterface_reiheAPicker; + +import javafx.scene.control.Tab; +import var_reiheAPicker.Constants; + +public class HistoryTab { + + public Tab historyTab; + + public HistoryTab() { + this.historyTab = new Tab(Constants.HistoryTabName); + this.historyTab.setClosable(false); + } + + + +} diff --git a/src/userInterface_reiheAPicker/ISBNCheckerTab.java b/src/userInterface_reiheAPicker/ISBNCheckerTab.java new file mode 100644 index 0000000..9bab176 --- /dev/null +++ b/src/userInterface_reiheAPicker/ISBNCheckerTab.java @@ -0,0 +1,488 @@ +package userInterface_reiheAPicker; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.parsers.ParserConfigurationException; + +import org.xml.sax.SAXException; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.VBox; +import javafx.scene.text.Text; +import logic_reiheAPicker.ApiCallerClass; +import logic_reiheAPicker.PropertyFileHandler; +import var_reiheAPicker.Constants; + +public class ISBNCheckerTab { + + public Tab isbnCheckerTab; + private Label inputLabel; + private Label outputLabel; + private TextArea isbnInput; + private Button isbnSendButton; + private TextArea isbnOutput; + private GridPane gridpane; + private ApiCallerClass apiCaller; + private VBox pageVBox; + private int isbnAmount; + private CheckBox issnInstead; + private PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + + + public ISBNCheckerTab() + { + initiateElements(); + configureElements(); + } + + private void initiateElements() + { + this.isbnCheckerTab = new Tab(Constants.isbnCheckerTabName); + this.inputLabel = new Label("Input"); + this.outputLabel = new Label("Output"); + this.isbnInput = new TextArea(); + this.isbnSendButton = new Button("Anfrage starten"); + this.isbnOutput = new TextArea(); + this.gridpane = new GridPane(); + this.apiCaller = new ApiCallerClass(); + this.pageVBox = new VBox(); + this.isbnAmount = 0; + } + private void configureElements() + { + this.isbnCheckerTab.setClosable(false); + this.issnInstead = new CheckBox(); + this.issnInstead.setText("Titel sind Zeitschriften (ISSN statt ISBN)"); + + this.gridpane.add(this.inputLabel, 0, 0); this.gridpane.add(this.isbnInput, 1, 0);this.gridpane.add(this.issnInstead, 2, 0); this.gridpane.add(this.isbnSendButton, 3, 0); + this.gridpane.add(this.outputLabel, 0, 1); this.gridpane.add(this.isbnOutput, 1, 1); + this.gridpane.setHgap(10); + this.gridpane.setVgap(10); + this.gridpane.setPadding(new Insets(10,10,10,10)); + this.isbnInput.setMinWidth(600); + this.isbnInput.setMinHeight(300); + this.isbnOutput.setMinWidth(600); + this.isbnOutput.setMinHeight(300); + this.isbnInput.setMaxWidth(600); + this.isbnInput.setMaxHeight(300); + this.isbnOutput.setMaxWidth(600); + this.isbnOutput.setMaxHeight(300); + this.isbnOutput.setEditable(false); + this.pageVBox.getChildren().addAll(this.gridpane); + + isbnSendButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + try { + getAndCallIsbnsAndSetOutput(); + + + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } + }); + + this.isbnInput.textProperty().addListener((observable, oldValue, newValue) -> { + countISBNsFirst(); + }); + + this.isbnCheckerTab.setContent(this.pageVBox); + } + + private Pattern getPatternISBN() + { + return Pattern.compile("\\D(\\d-?){13}\\D|\\D(\\d-?){10}\\D"); + } + + private Pattern getPatternISSN() + { + return Pattern.compile("[0-9]{4}\\-?[0-9]{3}[0-9xX]"); + } + + private String getInput() + { + return this.isbnInput.getText(); + } + + private Matcher getMatcher() + { + String input = " " + getInput() + " "; + input = input.replace(" ", " "); + input = input.replace("\r\n", " "); + input = input.replace("\r", " "); + input = input.replace("\n", " "); + input = input.replace("\t", " "); + + if (this.issnInstead.isSelected()) + { + return getPatternISSN().matcher(input); + } else + { + return getPatternISBN().matcher(input); + } + } + + + + private void countISBNsFirst() + { + Matcher matcher; + matcher = getMatcher(); + + + int counter = 0; + + while (matcher != null && matcher.find()) + { + + System.out.println(counter); + counter ++; + } + + this.isbnAmount = counter; + if (this.issnInstead.isSelected()) + { + this.isbnOutput.setText(counter + " ISBNs gefunden. Voraussichtliche Dauer: " + counter * 3.5 + " Sekunden."); + } else + { + this.isbnOutput.setText(counter + " ISBNs gefunden. Voraussichtliche Dauer: " + counter * .5 + " Sekunden."); + } + + } + + /* + // code was just temporarily important to turn DNB-ddcs into bsz-ddcs for Reihe A + private void getAndCallIsbnsAndSetOutput() throws MalformedURLException, InterruptedException + { + String input = isbnInput.getText(); + String output = ""; + + String[] lines = input.split("\n"); + + for (String line : lines) + { + for (int counter = 0; counter < line.length(); counter ++) + { + if (Character.isDigit(line.charAt(counter))) + { + output += line.charAt(counter); + } else if (line.charAt(counter) == ';') + { + output += ";"; + } else if (line.charAt(counter) == '.') + { + if (counter + 1 < line.length()) + { + while (Character.isDigit(line.charAt(counter+1))) + { + counter ++; + } + } + + + } else if (!Character.isDigit(line.charAt(counter)) && (line.charAt(counter) == 'K' || line.charAt(counter) == 'S' || line.charAt(counter) == 'B')) + { + if (counter + 1 < line.length()) + { + if (Character.isWhitespace(line.charAt(counter +1))) + { + output += line.charAt(counter); + } + } else if (counter + 1 == line.length()) + { + output += line.charAt(counter); + } + } + } + output += System.lineSeparator(); + } + + + this.isbnOutput.setText(output); + + } + */ + + /* + // code was just temporarily important to turn DNB-content links into bsz-content links for Reihe A + private void getAndCallIsbnsAndSetOutput() throws MalformedURLException, InterruptedException + { + String input = isbnInput.getText(); + List contentsArrayList = new ArrayList(); + + String[] lines = input.split("\n"); + + + for (String line : lines) + { + String[] lineContents = line.split(";"); + { + String[] tempContents = new String[2]; + for (String content : lineContents) + { + if (content.contains("Inhaltsverzeichnis") && content.contains("[") && content.contains("]")) + { + tempContents[0] = content.substring(content.indexOf("[") +1, content.indexOf("]")); + } + if (content.contains("Inhaltstext") && content.contains("[") && content.contains("]")) + { + tempContents[1] = content.substring(content.indexOf("[")+1, content.indexOf("]")); + } + } + contentsArrayList.add(tempContents); + } + } + + String output = ""; + + for(String[] contents : contentsArrayList) + { + output += contents[0] + "\t" + contents[1] + "\n"; + } + + + this.isbnOutput.setText(output.replace("null", "")); + + } + */ + + + private void getAndCallIsbnsAndSetOutput() throws MalformedURLException, InterruptedException + { + Matcher matcher; + matcher = getMatcher(); + String result = getInput(); + String output = ""; + int counter = 0; + + while (matcher.find()) + { + String link = ""; + String baselink = propertyFileHandler.propertyFileModel.get_settings_API_link(); + if (this.issnInstead.isSelected()) + { + + link = baselink.replace("pica.isb", "query=pica.iss"); + } else + { + link = baselink; + } + + + + //result += matcher.group() + ": " + this.apiCaller.callUrl(new URL(link.replace("[{[isbn]}]", matcher.group()))).contains("DE-Frei129") + "\r\n"; + String linkEZBPHBFR_FR = ""; + String linkEZBPHLB_LB = ""; + String linkEZBPHHD_HD = ""; + String linkEZBHSBKA_KA = ""; + String linkEZBPHGD_SG = ""; + String linkEZBhbw_WG = ""; + + String linkDOAJ = ""; + if (this.issnInstead.isSelected()) + { + + link = link.replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", "")); + + linkEZBPHBFR_FR = "http://ezb.uni-regensburg.de/ezeit/vascoda/license_info?bibid=PHBFR&sid=test%25253Atest&pid=object_identifier%25253Dlizensiert&genre=article&issn=[{[isbn]}]".replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", ""));; + linkEZBPHLB_LB = "http://ezb.uni-regensburg.de/ezeit/vascoda/license_info?bibid=PHLB&sid=test%25253Atest&pid=object_identifier%25253Dlizensiert&genre=article&issn=[{[isbn]}]".replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", "")); + linkEZBPHHD_HD = "http://ezb.uni-regensburg.de/ezeit/vascoda/license_info?bibid=PHHD&sid=test%25253Atest&pid=object_identifier%25253Dlizensiert&genre=article&issn=[{[isbn]}]".replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", "")); + linkEZBHSBKA_KA = "http://ezb.uni-regensburg.de/ezeit/vascoda/license_info?bibid=HSBKA&sid=test%25253Atest&pid=object_identifier%25253Dlizensiert&genre=article&issn=[{[isbn]}]".replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", "")); + linkEZBPHGD_SG = "http://ezb.uni-regensburg.de/ezeit/vascoda/license_info?bibid=PHGD&sid=test%25253Atest&pid=object_identifier%25253Dlizensiert&genre=article&issn=[{[isbn]}]".replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", "")); + linkEZBhbw_WG = "http://ezb.uni-regensburg.de/ezeit/vascoda/license_info?bibid=Bhbw&sid=test%25253Atest&pid=object_identifier%25253Dlizensiert&genre=article&issn=[{[isbn]}]".replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", "")); + + linkDOAJ = "https://doaj.org/api/search/journals/issn:[{[isbn]}]".replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-|X|x]+", "")); + + } else + { + link = link.replace("[{[isbn]}]", matcher.group().replaceAll("[^0-9|-]+", "")); + } + + URL url = new URL(link); + String apiContent = ""; + String bestand = "?"; + String bestandEZB_FR = "?"; + String bestandEZB_LB = "?"; + String bestandEZB_HD = "?"; + String bestandEZB_KA = "?"; + String bestandEZB_SG = "?"; + String bestandEZB_WG = "?"; + String bestandDOAJ = "?"; + if (this.issnInstead.isSelected()) + { + apiContent = this.apiCaller.callUrlLimitedWaitTime(url); + bestand = apiContent.contains("Lizenzfrei") ? "lizenzfrei" : "?"; + + URL urlEZB_FR = new URL(linkEZBPHBFR_FR); + URL urlEZB_LB = new URL(linkEZBPHLB_LB); + URL urlEZB_HD = new URL(linkEZBPHHD_HD); + URL urlEZB_KA = new URL(linkEZBHSBKA_KA); + URL urlEZB_SG = new URL(linkEZBPHGD_SG); + URL urlEZB_WG = new URL(linkEZBhbw_WG); + + String apiContentEZB_FR = this.apiCaller.callUrl(urlEZB_FR); + String apiContentEZB_LB = this.apiCaller.callUrl(urlEZB_LB); + String apiContentEZB_HD = this.apiCaller.callUrl(urlEZB_HD); + String apiContentEZB_KA = this.apiCaller.callUrl(urlEZB_KA); + String apiContentEZB_SG = this.apiCaller.callUrl(urlEZB_SG); + String apiContentEZB_WG = this.apiCaller.callUrl(urlEZB_WG); + + if (apiContentEZB_FR.contains("> titles = null; + public boolean isSaveFileLoad = false; + public List saveFilePaths = null; + public List ColumnNamesFromSaveFile = null; + public List> nopeTitlesFromSaveFile = null; + public List> queueTitlesFromSaveFile = null; + public List> pickTitlesFromSaveFile = null; + + PropertyFileHandler propertyFilehandler = PropertyFileHandler.getInstance(); + public GridPane gridpaneGeneral; + public GridPane gridpaneCatalogue; + public GridPane gridpaneMarkings; + public GridPane gridpaneApi; + public GridPane gridpaneFieldSetting; + + + public VBox globalVBox; + ScrollPane scrollPane = new ScrollPane(); + + public Label settingsLabel1; + public Label settingsLabel2; + public Label settingsLabel3; + public Label settingsLabel4; + public Label settingsLabel5; + public Label settingsLabel6; + public Label settingsLabel7; + + //searchlabels + + public Label settingsLabel8; + public Label settingsLabel9; + public Label settingsLabel10; + public Label settingsLabel11; + public Label settingsLabel12; + public Label settingsLabel13; + public Label settingsLabel14; + public Label settingsLabel15; + public Label settingsLabel16; + public Label settingsLabel17; + public Label settingsLabel18; + public Label settingsLabel19; + + public Label settingsLabel20; + public Label settingsLabel21; + + public Label settingsLabel22; + public Label settingsLabel22b; + public Label settingsLabel22c; + + public Label settingsLabel23; + public Label settingsLabel24; + public Label settingsLabel25; + public Label settingsLabel26; + + public Label settingsLabel27; + public Label settingsLabel28; + public Label settingsLabel29; + public Label settingsLabel30; + + public Label generalSettins = new Label(Constants.LabelNameGeneralSettings); + public Label catalogueSearch = new Label(Constants.LabelNameSearchCatalogueSettings); + public Label markierungseinstellungen = new Label(Constants.LabelNameMarkingsSettings); + public Label apisettings = new Label(Constants.LabelNameApiSettings); + + public TextField settingsTextField1; + public TextField settingsTextField2; + public TextField settingsTextField3; + public TextField settingsTextField4; + public CheckBox settingsTextField5_checkbox; + public CheckBox settingsTextField6_checkbox; + public TextField settingsTextField7; + + //searchtextfields + public TextField settingsTextField8; + public TextField settingsTextField9; + public TextField settingsTextField10; + public TextField settingsTextField11; + public TextField settingsTextField12; + public TextField settingsTextField13; + public TextField settingsTextField14; + public TextField settingsTextField15; + public TextField settingsTextField16; + public TextField settingsTextField17; + public TextField settingsTextField18; + public TextField settingsTextField19; + + public TextField settingsTextField20; + public TextField settingsTextField21; + + public TextField settingsTextField22; + public TextField settingsTextField22b; + public TextField settingsTextField22c; + + public CheckBox settingsTextField23_checkbox; + public CheckBox settingsTextField24_checkbox; + + public CheckBox settingsTextField25_checkbox; + public CheckBox settingsTextField26_checkbox; + + public CheckBox settingsTextField27_checkbox; + public CheckBox settingsTextField28_checkbox; + public CheckBox settingsTextField29_checkbox; + public CheckBox settingsTextField30_checkbox; + + public Button saveSettingsButton; + public Button searchExportFolderButton; + public Button searchSaveFolderButton; + + //labels f�r suche; Angabe von Termen damit �berblick leichter + public Label searchFieldLabel1; + public Label searchFieldLabel2; + public Label searchFieldLabel3; + public Label searchFieldLabel4; + public Label searchFieldLabel5; + public Label searchFieldLabel6; + public Label searchFieldLabel7; + public Label searchFieldLabel8; + public Label searchFieldLabel9; + public Label searchFieldLabel10; + public Label searchFieldLabel11; + public Label searchFieldLabel12; + + private Button infoButton1; + private Button infoButton2; + private Button infoButton3; + private Button infoButton4; + private Button infoButton5; + private Button infoButton6; + private Button infoButton7; + private Button infoButton8; + private Button infoButton9; + private Button infoButton10; + private Button infoButton11; + + private TextArea loadCurrentSettingsDefaultColumnNames; + private TextArea saveCurrentSettingsNewColumnNames; + private TextArea displayCurrentSettingsNewColumnNames; + private Label saveFieldLabel; + private Label demoFieldLabel; + private Label defaultFieldLabel; + private Label expertfieldDefexample = new Label("'>FieldName>InhaltsverzeichnisFieldAlias>IHV FieldContent>Space {setChangedFlag();}); + this.saveCurrentSettingsNewColumnNames.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField2.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField3.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField4.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField5_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField6_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField7.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + //searchtextfields + this.settingsTextField8.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField9.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField10.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField11.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField12.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField13.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField14.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField15.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField16.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField17.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField18.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField19.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField20.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField21.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField22.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField22b.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField22c.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsLabel_PickerName_label.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField_PickerName_textField.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + + this.settingsTextField23_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField24_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField25_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField26_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField27_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField28_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField29_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField30_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + } + + + private void setChangedFlag() + { + this.changedFlag = true; + this.saveButtonHBox.setBackground(new Background(new BackgroundFill(Color.rgb(255, 220, 220), new CornerRadii(5), Insets.EMPTY))); + + if (!this.saveButtonHBox.getChildren().contains(this.saveButtonHBox)) + { + this.saveButtonHBox.getChildren().clear(); + this.saveButtonHBox.setPadding(new Insets(5,5,5,5)); + this.saveButtonHBox.getChildren().addAll(this.saveSettingsButton, new Label(" Ungespeicherte Einstellungen finden keine Anwendung und gehen nach dem Beenden des Programms verloren!\n Bitte speichern Sie Ihre Einstellungen mit einem Klick auf diesen Button.")); + } + + } + + private String getLabelContentSearchFields(String content) + { + String labelString = ""; + if (content.contains(Constants.isbnWildcard)) + { + labelString = Constants.isbnWildcardLabel; + } + if (content.contains(Constants.authorWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.authorWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.authorWildcardLabel; + } + } + if (content.contains(Constants.titleWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.titleWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.titleWildcardLabel; + } + } + if (content.contains(Constants.publisherWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.publisherWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.publisherWildcardLabel; + } + } + + + return labelString; + } + + private void updateSearchFieldLabels() + { + searchFieldLabel1.setText(getLabelContentSearchFields(this.settingsTextField8.getText())); + searchFieldLabel2.setText(getLabelContentSearchFields(this.settingsTextField9.getText())); + searchFieldLabel3.setText(getLabelContentSearchFields(this.settingsTextField10.getText())); + searchFieldLabel4.setText(getLabelContentSearchFields(this.settingsTextField11.getText())); + searchFieldLabel5.setText(getLabelContentSearchFields(this.settingsTextField12.getText())); + searchFieldLabel6.setText(getLabelContentSearchFields(this.settingsTextField13.getText())); + searchFieldLabel7.setText(getLabelContentSearchFields(this.settingsTextField14.getText())); + searchFieldLabel8.setText(getLabelContentSearchFields(this.settingsTextField15.getText())); + searchFieldLabel9.setText(getLabelContentSearchFields(this.settingsTextField16.getText())); + searchFieldLabel10.setText(getLabelContentSearchFields(this.settingsTextField17.getText())); + searchFieldLabel11.setText(getLabelContentSearchFields(this.settingsTextField18.getText())); + searchFieldLabel12.setText(getLabelContentSearchFields(this.settingsTextField19.getText())); + } + + + private void configureElements() + { + this.importSettingsTabSubSettingsTabPane.minWidthProperty().bind(this.primaryStage.widthProperty()); + this.importSettingsTabSubSettingsTabPane.minHeightProperty().bind(this.primaryStage.heightProperty()); + + this.loadCurrentSettingsDefaultColumnNames.setText("Bitte laden Sie zunächst einen beliebigen Datensatz."); + this.displayCurrentSettingsNewColumnNames.setText("Bitte laden Sie zunächst einen beliebigen Datensatz."); + + + this.importSettingsTab.setClosable(false); + this.generalSettings.setClosable(false); + this.catalogueSettings.setClosable(false); + this.markingsSettings.setClosable(false); + this.apiSettings.setClosable(false); + this.fieldSettings.setClosable(false); + + this.gridpaneGeneral.setMinHeight(500); + this.gridpaneCatalogue.setMinHeight(500); + this.gridpaneMarkings.setMinHeight(500); + this.gridpaneApi.setMinHeight(500); + this.gridpaneFieldSetting.setMinHeight(500); + + Image importSettingsQuestionButtonImage = GetButtonPics.getButtonImage_QuestionMark_importSettings(); + + if (importSettingsQuestionButtonImage != null) + { + + this.infoButton1.setText(null); + this.infoButton2.setText(null); + this.infoButton3.setText(null); + this.infoButton4.setText(null); + this.infoButton5.setText(null); + this.infoButton6.setText(null); + this.infoButton7.setText(null); + this.infoButton8.setText(null); + this.infoButton9.setText(null); + this.infoButton10.setText(null); + this.infoButton11.setText(null); + this.infoButton1.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton2.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton3.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton4.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton5.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton6.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton7.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton8.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton9.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton10.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton11.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton1.setPadding(new Insets(1,1,1,1)); + this.infoButton2.setPadding(new Insets(1,1,1,1)); + this.infoButton3.setPadding(new Insets(1,1,1,1)); + this.infoButton4.setPadding(new Insets(1,1,1,1)); + this.infoButton5.setPadding(new Insets(1,1,1,1)); + this.infoButton6.setPadding(new Insets(1,1,1,1)); + this.infoButton7.setPadding(new Insets(1,1,1,1)); + this.infoButton8.setPadding(new Insets(1,1,1,1)); + this.infoButton9.setPadding(new Insets(1,1,1,1)); + this.infoButton10.setPadding(new Insets(1,1,1,1)); + this.infoButton11.setPadding(new Insets(1,1,1,1)); + this.infoButton1.setTooltip(new Tooltip(Constants.importSettingsTooltip1)); + this.infoButton2.setTooltip(new Tooltip(Constants.importSettingsTooltip2)); + this.infoButton3.setTooltip(new Tooltip(Constants.importSettingsTooltip3)); + this.infoButton4.setTooltip(new Tooltip(Constants.importSettingsTooltip4)); + this.infoButton5.setTooltip(new Tooltip(Constants.importSettingsTooltip5)); + this.infoButton6.setTooltip(new Tooltip(Constants.importSettingsTooltip6)); + this.infoButton7.setTooltip(new Tooltip(Constants.importSettingsTooltip7)); + this.infoButton8.setTooltip(new Tooltip(Constants.importSettingsTooltip8)); + this.infoButton9.setTooltip(new Tooltip(Constants.importSettingsTooltip9)); + this.infoButton10.setTooltip(new Tooltip(Constants.importSettingsTooltip10)); + this.infoButton11.setTooltip(new Tooltip(Constants.importSettingsTooltip11)); + } + + this.generalSettins.setStyle("-fx-font-weight: bold"); + this.catalogueSearch.setStyle("-fx-font-weight: bold"); + this.markierungseinstellungen.setStyle("-fx-font-weight: bold"); + this.apisettings.setStyle("-fx-font-weight: bold"); + + searchFieldLabel1= new Label(getLabelContentSearchFields(this.settingsTextField8.getText())); + searchFieldLabel2= new Label(getLabelContentSearchFields(this.settingsTextField9.getText())); + searchFieldLabel3= new Label(getLabelContentSearchFields(this.settingsTextField10.getText())); + searchFieldLabel4= new Label(getLabelContentSearchFields(this.settingsTextField11.getText())); + searchFieldLabel5= new Label(getLabelContentSearchFields(this.settingsTextField12.getText())); + searchFieldLabel6= new Label(getLabelContentSearchFields(this.settingsTextField13.getText())); + searchFieldLabel7= new Label(getLabelContentSearchFields(this.settingsTextField14.getText())); + searchFieldLabel8= new Label(getLabelContentSearchFields(this.settingsTextField15.getText())); + searchFieldLabel9= new Label(getLabelContentSearchFields(this.settingsTextField16.getText())); + searchFieldLabel10= new Label(getLabelContentSearchFields(this.settingsTextField17.getText())); + searchFieldLabel11= new Label(getLabelContentSearchFields(this.settingsTextField18.getText())); + searchFieldLabel12= new Label(getLabelContentSearchFields(this.settingsTextField19.getText())); + + + this.gridpaneGeneral = new GridPane(); + this.gridpaneCatalogue = new GridPane(); + this.gridpaneMarkings = new GridPane(); + this.gridpaneApi = new GridPane(); + + this.displayCurrentSettingsNewColumnNames.setMinHeight(200); + this.displayCurrentSettingsNewColumnNames.setPrefHeight(200); + this.displayCurrentSettingsNewColumnNames.setMaxHeight(200); + this.saveCurrentSettingsNewColumnNames .setMinHeight(200); + this.saveCurrentSettingsNewColumnNames.setPrefHeight(200); + this.saveCurrentSettingsNewColumnNames.setMaxHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setMinHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setPrefHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setMaxHeight(200); + + loadCurrentSettingsDefaultColumnNames.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == null || newValue.isBlank() || newValue.contains("Bitte laden Sie zunächst einen beliebigen Datensatz.")) + { + this.fieldSettingsAdvanced.setVisible(false); + + } else + { + this.fieldSettingsAdvanced.setVisible(true); + } + }); + + Image saveButtonImage = GetButtonPics.getButtonImage_saveButton(); + Image searchFileOrFolderImage = GetButtonPics.getButtonImage_SearchFolderOrFile(); + + if (searchFileOrFolderImage != null) + { + + this.searchSaveFolderButton = new Button(""); + this.searchExportFolderButton.setText(null); + ImageView img = GetButtonPics.turnPicIntoImageView(searchFileOrFolderImage); + img.setFitWidth(22); + img.setFitHeight(22); + this.searchExportFolderButton.setGraphic(img); + this.searchExportFolderButton.setPadding(new Insets(1,1,1,1)); + this.searchSaveFolderButton.setText(null); + img = GetButtonPics.turnPicIntoImageView(searchFileOrFolderImage); + img.setFitWidth(22); + img.setFitHeight(22); + this.searchSaveFolderButton.setGraphic(img); + this.searchSaveFolderButton.setPadding(new Insets(1,1,1,1)); + + + } + + if (saveButtonImage != null) + { + + this.saveSettingsButton.setText(null); + this.saveSettingsButton.setGraphic(GetButtonPics.turnPicIntoImageView(saveButtonImage)); + this.saveSettingsButton.setPadding(new Insets(5,5,5,5)); + } + this.saveButtonHBox.setPadding(new Insets(5,5,5,5)); + + + + this.gridpaneGeneral.add(this.generalSettins, 0, 0); + this.gridpaneGeneral.add(this.settingsLabel_PickerName_label, 0, 1); this.gridpaneGeneral.add(this.settingsTextField_PickerName_textField, 1, 1); + this.gridpaneGeneral.add(this.settingsLabel1, 0, 2); this.gridpaneGeneral.add(this.settingsTextField1, 1, 2); this.gridpaneGeneral.add(this.searchExportFolderButton, 2, 2); + this.gridpaneGeneral.add(this.settingsLabel7, 0, 3); this.gridpaneGeneral.add(this.settingsTextField7, 1, 3); this.gridpaneGeneral.add(this.searchSaveFolderButton, 2, 3); + + //this.gridpaneGeneral.add(this.settingsLabel7, 0, 1); this.gridpaneGeneral.add(this.settingsTextField7, 1, 1); + //this.gridpaneGeneral.add(this.settingsLabel2, 0, 2); this.gridpaneGeneral.add(this.settingsTextField2, 1, 2); + this.gridpaneGeneral.add(this.settingsLabel3, 0, 4); this.gridpaneGeneral.add(this.settingsTextField3, 1, 4); this.gridpaneGeneral.add(this.infoButton1, 2,4); // new Text("Angabe von erlaubten DDCs. (z.b. '200+;350+;440' entspricht 200-299.999, 350-399.999 und 440)"), 2, 3); + this.gridpaneGeneral.add(this.settingsLabel4, 0, 5); this.gridpaneGeneral.add(this.settingsTextField4, 1, 5); this.gridpaneGeneral.add(this.infoButton2, 2,5);//new Text("Angabe von auszusortierenden Verlagen. (z.b. 'Springer Nature;Wiley')"), 2, 4); + this.gridpaneGeneral.add(this.settingsLabel5, 0, 6); this.gridpaneGeneral.add(this.settingsTextField5_checkbox, 1, 6); this.gridpaneGeneral.add(this.infoButton3, 2,6); + this.gridpaneGeneral.add(this.settingsLabel27, 0, 7); this.gridpaneGeneral.add(this.settingsTextField27_checkbox, 1, 7); this.gridpaneGeneral.add(this.infoButton4, 2,7); + this.gridpaneGeneral.add(this.settingsLabel30, 0, 8); this.gridpaneGeneral.add(this.settingsTextField30_checkbox, 1, 8); + this.gridpaneGeneral.add(this.settingsLabel28, 0, 9); this.gridpaneGeneral.add(this.settingsTextField28_checkbox, 1, 9); + this.gridpaneGeneral.add(this.settingsLabel29, 0, 10); this.gridpaneGeneral.add(this.settingsTextField29_checkbox, 1, 10); + this.gridpaneGeneral.add(this.settingsLabel6, 0, 11); this.gridpaneGeneral.add(this.settingsTextField6_checkbox, 1, 11); + + + + this.gridpaneCatalogue.add(this.catalogueSearch, 0, 0); this.gridpaneCatalogue.add(new Text("Variablen: [{[author]}], [{[title]}], [{[isbn]}], [{[publisher]}]"), 1, 0);this.gridpaneCatalogue.add(this.infoButton5, 2,0); + this.gridpaneCatalogue.add(this.settingsLabel8, 0, 1); this.gridpaneCatalogue.add(this.settingsTextField8, 1, 1); this.gridpaneCatalogue.add(this.searchFieldLabel1, 2, 1); + this.gridpaneCatalogue.add(this.settingsLabel9, 0, 2); this.gridpaneCatalogue.add(this.settingsTextField9, 1, 2); this.gridpaneCatalogue.add(this.searchFieldLabel2, 2, 2); + this.gridpaneCatalogue.add(this.settingsLabel10, 0, 3); this.gridpaneCatalogue.add(this.settingsTextField10, 1, 3); this.gridpaneCatalogue.add(this.searchFieldLabel3, 2, 3); + this.gridpaneCatalogue.add(this.settingsLabel11, 0, 4); this.gridpaneCatalogue.add(this.settingsTextField11, 1, 4); this.gridpaneCatalogue.add(this.searchFieldLabel4, 2, 4); + this.gridpaneCatalogue.add(this.settingsLabel12, 0, 5); this.gridpaneCatalogue.add(this.settingsTextField12, 1, 5); this.gridpaneCatalogue.add(this.searchFieldLabel5, 2, 5); + this.gridpaneCatalogue.add(this.settingsLabel13, 0, 6); this.gridpaneCatalogue.add(this.settingsTextField13, 1, 6); this.gridpaneCatalogue.add(this.searchFieldLabel6, 2, 6); + this.gridpaneCatalogue.add(this.settingsLabel14, 0, 7); this.gridpaneCatalogue.add(this.settingsTextField14, 1, 7); this.gridpaneCatalogue.add(this.searchFieldLabel7, 2, 7); + this.gridpaneCatalogue.add(this.settingsLabel15, 0, 8); this.gridpaneCatalogue.add(this.settingsTextField15, 1, 8); this.gridpaneCatalogue.add(this.searchFieldLabel8, 2, 8); + this.gridpaneCatalogue.add(this.settingsLabel16, 0, 9); this.gridpaneCatalogue.add(this.settingsTextField16, 1, 9); this.gridpaneCatalogue.add(this.searchFieldLabel9, 2, 9); + this.gridpaneCatalogue.add(this.settingsLabel17, 0, 10); this.gridpaneCatalogue.add(this.settingsTextField17, 1, 10); this.gridpaneCatalogue.add(this.searchFieldLabel10, 2, 10); + this.gridpaneCatalogue.add(this.settingsLabel18, 0, 11); this.gridpaneCatalogue.add(this.settingsTextField18, 1, 11); this.gridpaneCatalogue.add(this.searchFieldLabel11, 2, 11); + this.gridpaneCatalogue.add(this.settingsLabel19, 0, 12); this.gridpaneCatalogue.add(this.settingsTextField19, 1, 12); this.gridpaneCatalogue.add(this.searchFieldLabel12, 2, 12); + + this.gridpaneMarkings.add(this.markierungseinstellungen , 0, 0); this.gridpaneMarkings.add(this.infoButton6 , 1, 0); + this.gridpaneMarkings.add(this.settingsLabel20, 0, 1); this.gridpaneMarkings.add(this.settingsTextField20, 1, 1); // this.gridpaneMarkings.add(new Text("z.b. 'Pädagogik;Sozialwissenschaft;Herder;DDC-Sachgruppe:S;Verlagsort:Freiburg'"), 2, 1); + this.gridpaneMarkings.add(this.settingsLabel21, 0, 2); this.gridpaneMarkings.add(this.settingsTextField21, 1, 2); // this.gridpaneMarkings.add(new Text("z.b. 'Scientology;Grin-Verlag;DDC-Sachgruppe:B;Autor:Guttenberg;Auflage:Unver'"), 2, 2); + this.gridpaneMarkings.add(this.settingsLabel25, 0, 3); this.gridpaneMarkings.add(this.settingsTextField25_checkbox, 1, 3); + + + this.gridpaneApi.add(this.apisettings , 0, 0); + this.gridpaneApi.add(this.settingsLabel22, 0, 1); this.gridpaneApi.add(this.settingsTextField22, 1, 1); this.gridpaneApi.add(new HBox(this.settingsLabel22b, new Label(" "), this.settingsTextField22b,new Label(" "), this.settingsLabel22c,new Label(" "), this.settingsTextField22c), 2, 1); this.gridpaneApi.add(this.infoButton7, 3, 1); + this.gridpaneApi.add(this.settingsLabel23, 0, 2); this.gridpaneApi.add(this.settingsTextField23_checkbox, 1, 2); this.gridpaneApi.add(this.infoButton8, 2,2); //new Text("Sämtliche Datensätze werden bereits beim Laden auf Bestand und OA-Status geprüft und ggf. aussortiert. (Ladezeit ca. 0,5 Sekunden je Titel)"), 2, 2); + this.gridpaneApi.add(this.settingsLabel24, 0, 3); this.gridpaneApi.add(this.settingsTextField24_checkbox, 1, 3); this.gridpaneApi.add(this.infoButton9, 2,3); + this.gridpaneApi.add(this.settingsLabel26, 0, 4); this.gridpaneApi.add(this.settingsTextField26_checkbox, 1, 4); this.gridpaneApi.add(this.infoButton10, 2,4); + + this.gridpaneFieldSetting.add(this.saveFieldLabel, 0, 0); this.gridpaneFieldSetting.add(this.infoButton11, 1, 0); + this.gridpaneFieldSetting.add(this.saveCurrentSettingsNewColumnNames, 0, 1); + + this.gridpaneFieldSetting.add(this.defaultFieldLabel, 0, 2); + this.gridpaneFieldSetting.add(this.expertfieldDefexample, 0, 3); + this.gridpaneFieldSetting.add(this.loadCurrentSettingsDefaultColumnNames, 0, 4); + this.gridpaneFieldSetting.add(this.fieldSettingsAdvanced, 1, 4); + this.gridpaneFieldSetting.add(this.demoFieldLabel, 0, 5); + this.gridpaneFieldSetting.add(this.displayCurrentSettingsNewColumnNames, 0, 6); + + + + this.gridpaneGeneral.setHgap(10); + this.gridpaneGeneral.setVgap(10); + this.gridpaneGeneral.setPadding(new Insets(10,10,10,10)); + + this.gridpaneCatalogue.setHgap(10); + this.gridpaneCatalogue.setVgap(10); + this.gridpaneCatalogue.setPadding(new Insets(10,10,10,10)); + + this.gridpaneMarkings.setHgap(10); + this.gridpaneMarkings.setVgap(10); + this.gridpaneMarkings.setPadding(new Insets(10,10,10,10)); + + this.gridpaneApi.setHgap(10); + this.gridpaneApi.setVgap(10); + this.gridpaneApi.setPadding(new Insets(10,10,10,10)); + + this.gridpaneFieldSetting.setHgap(10); + this.gridpaneFieldSetting.setVgap(10); + this.gridpaneFieldSetting.setPadding(new Insets(10,10,10,10)); + + + + + + + this.saveCurrentSettingsNewColumnNames.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == null || newValue.isBlank()) + { + + } else + { + + this.displayCurrentSettingsNewColumnNames.setText(pickerTab.queuemanager.fetchFormattedTitle(ListEnum.QUEUE, false, this.saveCurrentSettingsNewColumnNames.getText())); + + } + }); + + + this.fieldSettingsAdvanced.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + switchAdvancedButton(); + } + }); + + this.infoButton1.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText1,Constants.importSettingsTooltip1, Constants.importSettingsTitle1, GetButtonPics.getButtonImage_ResImageHelpDDCWhitelist()); + } + }); + + this.infoButton2.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText2,Constants.importSettingsTooltip2, Constants.importSettingsTitle2, GetButtonPics.getButtonImage_ResImageHelpPublisherBlacklist()); + } + }); + + this.infoButton3.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText3,Constants.importSettingsTooltip3, Constants.importSettingsTitle3, null); + } + }); + + this.infoButton4.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText4,Constants.importSettingsTooltip4, Constants.importSettingsTitle4, null); + } + }); + + this.infoButton5.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText5,Constants.importSettingsTooltip5, Constants.importSettingsTitle5, GetButtonPics.getButtonImage_ResImageHelpCatSearch1()); + } + }); + + this.infoButton6.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText6,Constants.importSettingsTooltip6, Constants.importSettingsTitle6, GetButtonPics.getButtonImage_ResImageHelpmarkings()); + } + }); + + this.infoButton7.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText7,Constants.importSettingsTooltip7, Constants.importSettingsTitle7, null); + } + }); + + this.infoButton8.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText8,Constants.importSettingsTooltip8, Constants.importSettingsTitle8, GetButtonPics.getButtonImage_ResImageHelpprogress()); + } + }); + + this.infoButton9.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText9,Constants.importSettingsTooltip9, Constants.importSettingsTitle9, null); + } + }); + + this.infoButton10.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText10, Constants.importSettingsTooltip10, Constants.importSettingsTitle10, null); + } + }); + + this.infoButton11.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText11, Constants.importSettingsTooltip11, Constants.importSettingsTitle11, GetButtonPics.getButtonImage_ResImageHelpFieldSettings()); + } + }); + + + saveSettingsButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + updateAndSaveProperties(); + updateSearchFieldLabels(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } + }); + + searchSaveFolderButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + getFolderName(false); + + } + }); + + searchExportFolderButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + getFolderName(true); + + } + }); + + + this.settingsTextField23_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> { + updateTextField24(); + updateTextField26(); + }); + + updateTextField24(); + updateTextField26(); + + + + this.generalSettings.setContent(this.gridpaneGeneral); + this.catalogueSettings.setContent(this.gridpaneCatalogue); + this.markingsSettings.setContent(this.gridpaneMarkings); + this.apiSettings.setContent(this.gridpaneApi); + this.fieldSettings.setContent(this.gridpaneFieldSetting); + + + + + this.globalVBox.getChildren().addAll(this.saveButtonHBox, this.importSettingsTabSubSettingsTabPane); + this.scrollPane.setContent(this.globalVBox); + this.importSettingsTab.setContent(this.scrollPane); + + } + + private void updateTextField24() + { + /* + if (this.settingsTextField23_checkbox.isSelected()) + { + this.settingsTextField24_checkbox.setVisible(true); + } else + { + this.settingsTextField24_checkbox.setVisible(false); + } + */ + } + + private void updateTextField26() + { + /* + if (this.settingsTextField23_checkbox.isSelected()) + { + this.settingsTextField26_checkbox.setVisible(true); + } else + { + this.settingsTextField26_checkbox.setVisible(false); + } + */ + } + + private void updateAndSaveProperties() throws IOException + { + + + if(!this.settingsTextField1.getText().substring(this.settingsTextField1.getText().length() - 1).equals("\\")) + { + this.settingsTextField1.setText(this.settingsTextField1.getText() + "\\"); + } + if(!this.settingsTextField7.getText().substring(this.settingsTextField7.getText().length() - 1).equals("\\")) + { + this.settingsTextField7.setText(this.settingsTextField7.getText() + "\\"); + } + if(this.settingsTextField3.getText().contains(" ")) + { + this.settingsTextField3.setText(this.settingsTextField3.getText().replace(" ", "")); + } + if(this.settingsTextField4.getText().contains("; ") || this.settingsTextField4.getText().contains(" ;")) + { + this.settingsTextField4.setText(this.settingsTextField4.getText().replace("; ", ";")); + this.settingsTextField4.setText(this.settingsTextField4.getText().replace(" ;", ";")); + } + + if(this.settingsTextField20.getText().contains("; ") || this.settingsTextField20.getText().contains(" ;")) + { + this.settingsTextField20.setText(this.settingsTextField20.getText().replace("; ", ";")); + this.settingsTextField20.setText(this.settingsTextField20.getText().replace(" ;", ";")); + } + if(this.settingsTextField21.getText().contains("; ") || this.settingsTextField21.getText().contains(" ;")) + { + this.settingsTextField21.setText(this.settingsTextField21.getText().replace("; ", ";")); + this.settingsTextField21.setText(this.settingsTextField21.getText().replace(" ;", ";")); + } + + this.propertyFilehandler.propertyFileModel.updateProperties(this.settingsTextField1.getText(),this.settingsTextField7.getText(), this.settingsTextField4.getText(),booleanToString(this.settingsTextField5_checkbox),this.settingsTextField2.getText(),this.settingsTextField3.getText(), booleanToString(this.settingsTextField6_checkbox), + this.settingsTextField8 .getText(), this.settingsTextField9 .getText(), this.settingsTextField10.getText(), this.settingsTextField11.getText(), this.settingsTextField12.getText(), this.settingsTextField13.getText(), this.settingsTextField14.getText(), this.settingsTextField15.getText(), this.settingsTextField16.getText(), this.settingsTextField17.getText(), this.settingsTextField18.getText(), this.settingsTextField19.getText(), + this.settingsTextField20.getText(), this.settingsTextField21.getText(), + this.settingsTextField22.getText(), + booleanToString(this.settingsTextField23_checkbox) , booleanToString(this.settingsTextField24_checkbox), + this.settingsTextField22b.getText(),this.settingsTextField22c.getText(), + booleanToString(this.settingsTextField25_checkbox),booleanToString(this.settingsTextField26_checkbox), + booleanToString(this.settingsTextField27_checkbox), + booleanToString(this.settingsTextField28_checkbox),booleanToString(this.settingsTextField29_checkbox), + this.saveCurrentSettingsNewColumnNames.getText(), + booleanToString(this.settingsTextField30_checkbox), + this.propertyFilehandler.propertyFileModel.get_settings_Order_ImportVerzeichnisNameTextField(), + this.propertyFilehandler.propertyFileModel.get_settings_Order_DoneVerzeichnisNameTextField(), + this.settingsTextField_PickerName_textField.getText(), this.propertyFilehandler.propertyFileModel.get_settings_OtherOrdererNames()); + + this.propertyFilehandler.setConfigDetail(); + this.changedFlag = false; + this.saveButtonHBox.setBackground(null); + this.saveButtonHBox.getChildren().clear(); + + + + } + + + + public String booleanToString(CheckBox checkbox) + { + if (checkbox.isSelected()) + { + return "true"; + } + return "false"; + } + + private void getFolderName(boolean tf1truetf7false) + { + if (tf1truetf7false) + { + this.settingsTextField1.setText(ImportExportFileHandler.getFileOrFolder(false).getAbsolutePath()); + } else + { + this.settingsTextField7.setText(ImportExportFileHandler.getFileOrFolder(false).getAbsolutePath()); + } + + } + + public void openFileAndLoad() throws IOException + { + this.titles = ImportExportFileHandler.importCsvOrTsvOrPsf(); + + // if you see this, know that I am fully aware that I have sinned. + // dont judge. (what could go wrong?) + if (this.titles.toString().contains("[Picker Save File]")) + { + + this.isSaveFileLoad = true; + this.saveFilePaths = this.titles.get(0); + + String filename_c = this.titles.get(1).get(0); + String filename_n = this.titles.get(2).get(0); + String filename_q = this.titles.get(3).get(0); + String filename_p = this.titles.get(4).get(0); + + this.ColumnNamesFromSaveFile = ImportExportFileHandler.getFileStringListFromFile(new File(filename_c)).get(0); + this.nopeTitlesFromSaveFile = ImportExportFileHandler.getFileStringListFromFile(new File(filename_n)); + this.queueTitlesFromSaveFile = ImportExportFileHandler.getFileStringListFromFile(new File(filename_q)); + + this.pickTitlesFromSaveFile = ImportExportFileHandler.getFileStringListFromFile(new File(filename_p)); + + } + } + + + + public void setCurrentColumns() + { + + if (pickerTab.queuemanager == null || pickerTab.queuemanager.ColumnNames == null || this.pickerTab.queuemanager.ColumnNames.size() == 0) + { + this.loadCurrentSettingsDefaultColumnNames.setText("Bitte zunächst Datensatz laden."); + + } else + { + String currentColumnsString = ""; + for (String column : pickerTab.queuemanager.ColumnNames) + { + if (isAdanced) + { + currentColumnsString += ">FieldName>" + column + "FieldAlias>" + "FieldContent>" + " { + if ((double) newValue != (double) oldValue) + { + text.setMinWidth((double) newValue-20); + text.setMaxWidth((double) newValue-20); + text.setPrefWidth((double) newValue-20); + } + }); + + Scene scene = new Scene(scrollpane); + infoStage.setScene(scene); + infoStage.show(); + +/* + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle(title); + alert.setHeaderText(null); + alert.setContentText(message); + alert.initStyle(StageStyle.UTILITY); + + alert.showAndWait(); + */ + + + } + String testString = "This is a test \nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\nThis is a test \\n"; + +} + diff --git a/src/userInterface_reiheAPicker/LegalInformationScene.java b/src/userInterface_reiheAPicker/LegalInformationScene.java new file mode 100644 index 0000000..f625151 --- /dev/null +++ b/src/userInterface_reiheAPicker/LegalInformationScene.java @@ -0,0 +1,90 @@ +package userInterface_reiheAPicker; + +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Label; +import javafx.scene.control.TextArea; +import javafx.scene.image.Image; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import logic_reiheAPicker.GetButtonPics; + +public class LegalInformationScene { + + public Stage legalStage = new Stage(); + private VBox vboxEntireScene = new VBox(); + private Scene legalScene; + private GridPane grid = new GridPane(); + + public LegalInformationScene() + { + + Image tooltipIcon = GetButtonPics.getButtonImage_TooltipIcon(); + if (tooltipIcon != null) + { + this.legalStage.getIcons().add(tooltipIcon); + + } + this.legalStage.setTitle("Impressum und Lizenzinformationen"); + + Label label0 = new Label("Reihe-A-Picker - Version 1.4 (12/2023)"); + label0.setStyle("-fx-font-weight: bold"); + Label label1 = new Label("Github: https://github.com/BergerChris87/SU_Picker"); + Label label1_ = new Label(); + Label label2 = new Label("Idee und Umsetzung:"); + label2.setStyle("-fx-font-weight: bold"); + Label label2_ = new Label(); + Label label3 = new Label("Christian Berger"); + Label label4 = new Label("christian.berger@ph-freiburg.de"); + Label label5 = new Label("Bibliothek der Pädagogischen Hochschule Freiburg"); + Label label5_ = new Label(); + Label label6 = new Label("Diese Software steht unter der MIT-Software Lizenz:"); + label6.setStyle("-fx-font-weight: bold"); + Label label6_ = new Label(); + + + TextArea mITText = new TextArea(); + mITText.setEditable(false); + mITText.setText("Copyright 2022 Pädagogische Hochschule Freiburg" + + "\r\n" + + "\r\n" + + "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n" + + "\r\n" + + "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n" + + "\r\n" + + "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."); + mITText.setWrapText(true); + mITText.setMinHeight(350); + + + this.vboxEntireScene.getChildren().addAll(label0, label1,label1_, label2,label2_, label3, label4, label5,label5_, label6,label6_, mITText); + this.vboxEntireScene.setAlignment(Pos.CENTER); + + /* + + this.grid.add(label0, 0, 0); + this.grid.add(label1, 0, 1); + this.grid.add(new Label(), 0, 2); + this.grid.add(label2, 0, 3); + this.grid.add(new Label(), 0, 4); + this.grid.add(label3, 0, 5); + this.grid.add(label4, 0, 6); + this.grid.add(new Label(), 0, 7); + this.grid.add(label5, 0, 8); + + this.grid.add(new Label(), 0, 9); + this.grid.add(mITText, 0, 10); + + this.vboxEntireScene.getChildren().add(this.grid); + */ + + + this.legalScene = new Scene(this.vboxEntireScene); + this.legalStage.setScene(legalScene); + + this.legalStage.show(); + this.legalStage.setResizable(false); + } + +} diff --git a/src/userInterface_reiheAPicker/OrderSettingsTab.java b/src/userInterface_reiheAPicker/OrderSettingsTab.java new file mode 100644 index 0000000..bf42646 --- /dev/null +++ b/src/userInterface_reiheAPicker/OrderSettingsTab.java @@ -0,0 +1,1072 @@ +package userInterface_reiheAPicker; + + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Properties; + +import org.json.JSONObject; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressIndicator; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TabPane.TabClosingPolicy; +import javafx.scene.control.TextArea; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.control.TextField; +import javafx.scene.control.Tooltip; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Text; +import javafx.stage.Stage; +import logic_reiheAPicker.GetButtonPics; +import logic_reiheAPicker.ImportExportFileHandler; +import logic_reiheAPicker.PropertyFileHandler; +import models_reiheAPicker.ListEnum; +import models_reiheAPicker.PropertyModel; +import var_reiheAPicker.Constants; +import javafx.scene.layout.VBox; + +public class OrderSettingsTab { + + public Tab importSettingsTab; + private Stage primaryStage; + + public TabPane importSettingsTabSubSettingsTabPane; + + private boolean changedFlag = false; + + public OrderTab orderTab; + + public Tab generalSettings; + public Tab catalogueSettings; + public Tab markingsSettings; + public Tab fieldSettings; + + public HBox saveButtonHBox; + + public List> titles = null; + + PropertyFileHandler propertyFilehandler = PropertyFileHandler.getInstance(); + public GridPane gridpaneGeneral; + public GridPane gridpaneCatalogue; + public GridPane gridpaneMarkings; + public GridPane gridpaneFieldSetting; + + + public VBox globalVBox; + ScrollPane scrollPane = new ScrollPane(); + + public Label settingsLabel1; + public Label settingsLabel2; + public Label settingsLabel3; + public Label settingsLabel4; + public Label settingsLabel5; + public Label settingsLabel6; + public Label settingsLabel7; + + + //searchlabels + + public Label settingsLabel8; + public Label settingsLabel9; + public Label settingsLabel10; + public Label settingsLabel11; + public Label settingsLabel12; + public Label settingsLabel13; + public Label settingsLabel14; + public Label settingsLabel15; + public Label settingsLabel16; + public Label settingsLabel17; + public Label settingsLabel18; + public Label settingsLabel19; + + public Label settingsLabel20; + public Label settingsLabel21; + + public Label settingsLabel22; + public Label settingsLabel22b; + public Label settingsLabel22c; + + public Label settingsLabel23; + public Label settingsLabel24; + public Label settingsLabel25; + public Label settingsLabel26; + + public Label settingsLabel27; + public Label settingsLabel28; + public Label settingsLabel29; + public Label settingsLabel30; + + public Label generalSettins = new Label(Constants.LabelNameGeneralSettings); + public Label catalogueSearch = new Label(Constants.LabelNameSearchCatalogueSettings); + public Label markierungseinstellungen = new Label(Constants.LabelNameMarkingsSettings); + public Label apisettings = new Label(Constants.LabelNameApiSettings); + + public TextField settingsTextField1; + public TextField settingsTextField2; + public TextField settingsTextField3; + public TextField settingsTextField4; + public CheckBox settingsTextField5_checkbox; + public CheckBox settingsTextField6_checkbox; + public TextField settingsTextField7; + + //searchtextfields + public TextField settingsTextField8; + public TextField settingsTextField9; + public TextField settingsTextField10; + public TextField settingsTextField11; + public TextField settingsTextField12; + public TextField settingsTextField13; + public TextField settingsTextField14; + public TextField settingsTextField15; + public TextField settingsTextField16; + public TextField settingsTextField17; + public TextField settingsTextField18; + public TextField settingsTextField19; + + public TextField settingsTextField20; + public TextField settingsTextField21; + + public TextField settingsTextField22; + public TextField settingsTextField22b; + public TextField settingsTextField22c; + + public CheckBox settingsTextField23_checkbox; + public CheckBox settingsTextField24_checkbox; + + public CheckBox settingsTextField25_checkbox; + public CheckBox settingsTextField26_checkbox; + + public CheckBox settingsTextField27_checkbox; + public CheckBox settingsTextField28_checkbox; + public CheckBox settingsTextField29_checkbox; + public CheckBox settingsTextField30_checkbox; + + public Button saveSettingsButton; + public Button searchExportFolderButton; + public Button searchSaveFolderButton; + + //labels f�r suche; Angabe von Termen damit �berblick leichter + public Label searchFieldLabel1; + public Label searchFieldLabel2; + public Label searchFieldLabel3; + public Label searchFieldLabel4; + public Label searchFieldLabel5; + public Label searchFieldLabel6; + public Label searchFieldLabel7; + public Label searchFieldLabel8; + public Label searchFieldLabel9; + public Label searchFieldLabel10; + public Label searchFieldLabel11; + public Label searchFieldLabel12; + + private Button infoButton1; + private Button infoButton2; + private Button infoButton3; + private Button infoButton4; + private Button infoButton5; + private Button infoButton6; + private Button infoButton7; + private Button infoButton8; + private Button infoButton9; + private Button infoButton10; + private Button infoButton11; + + private TextArea loadCurrentSettingsDefaultColumnNames; + private TextArea saveCurrentSettingsNewColumnNames; + private TextArea displayCurrentSettingsNewColumnNames; + private Label saveFieldLabel; + private Label demoFieldLabel; + private Label defaultFieldLabel; + private Label expertfieldDefexample = new Label("'>FieldName>InhaltsverzeichnisFieldAlias>IHV FieldContent>Space {setChangedFlag();}); + this.saveCurrentSettingsNewColumnNames.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField2.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField3.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField4.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField5_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField6_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField7.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + //searchtextfields + this.settingsTextField8.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField9.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField10.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField11.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField12.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField13.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField14.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField15.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField16.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField17.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField18.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField19.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField20.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField21.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField22.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField22b.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField22c.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField23_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField24_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField25_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField26_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.settingsTextField27_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField28_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField29_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.settingsTextField30_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + + this.order_ImportVerzeichnisNameLabel = new Label(Constants.Order_ImportVerzeichnisNameLabel); + this.order_DoneVerzeichnisNameLabel = new Label(Constants.Order_DoneVerzeichnisNameLabel); + this.order_ImportVerzeichnisNameTextField = new TextField(propertyFilehandler.propertyFileModel.get_settings_Order_ImportVerzeichnisNameTextField()); + this.order_DoneVerzeichnisNameTextField = new TextField(propertyFilehandler.propertyFileModel.get_settings_Order_DoneVerzeichnisNameTextField()); + this.order_settingsLabel_OrdererName_label = new Label(Constants.Order_OrdererName); + this.order_settingsLabel_OtherOrdererNames_label = new Label(Constants.OtherOrdererNames); + this.order_settingsLabel_OrdererName_TextField = new TextField(propertyFilehandler.propertyFileModel.get_settings_PickerOrOrdererName()); + this.order_settingsLabel_OtherOrdererNames_TextField = new TextField(propertyFilehandler.propertyFileModel.get_settings_OtherOrdererNames()); + + + + this.order_DoneVerzeichnisNameTextField.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.order_ImportVerzeichnisNameTextField.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + this.order_settingsLabel_OrdererName_TextField.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + this.order_settingsLabel_OtherOrdererNames_TextField.textProperty().addListener((observable, oldValue, newValue) -> {setChangedFlag();}); + + + + } + + + private void setChangedFlag() + { + this.changedFlag = true; + this.saveButtonHBox.setBackground(new Background(new BackgroundFill(Color.rgb(255, 220, 220), new CornerRadii(5), Insets.EMPTY))); + + if (!this.saveButtonHBox.getChildren().contains(this.saveButtonHBox)) + { + this.saveButtonHBox.getChildren().clear(); + this.saveButtonHBox.setPadding(new Insets(5,5,5,5)); + this.saveButtonHBox.getChildren().addAll(this.saveSettingsButton, new Label(" Ungespeicherte Einstellungen finden keine Anwendung und gehen nach dem Beenden des Programms verloren!\n Bitte speichern Sie Ihre Einstellungen mit einem Klick auf diesen Button.")); + } + + } + + private String getLabelContentSearchFields(String content) + { + String labelString = ""; + if (content.contains(Constants.isbnWildcard)) + { + labelString = Constants.isbnWildcardLabel; + } + if (content.contains(Constants.authorWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.authorWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.authorWildcardLabel; + } + } + if (content.contains(Constants.titleWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.titleWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.titleWildcardLabel; + } + } + if (content.contains(Constants.publisherWildcard)) + { + if (labelString.isBlank()) + { + labelString = Constants.publisherWildcardLabel; + } else + { + labelString = labelString + " & " + Constants.publisherWildcardLabel; + } + } + + + return labelString; + } + + private void updateSearchFieldLabels() + { + searchFieldLabel1.setText(getLabelContentSearchFields(this.settingsTextField8.getText())); + searchFieldLabel2.setText(getLabelContentSearchFields(this.settingsTextField9.getText())); + searchFieldLabel3.setText(getLabelContentSearchFields(this.settingsTextField10.getText())); + searchFieldLabel4.setText(getLabelContentSearchFields(this.settingsTextField11.getText())); + searchFieldLabel5.setText(getLabelContentSearchFields(this.settingsTextField12.getText())); + searchFieldLabel6.setText(getLabelContentSearchFields(this.settingsTextField13.getText())); + searchFieldLabel7.setText(getLabelContentSearchFields(this.settingsTextField14.getText())); + searchFieldLabel8.setText(getLabelContentSearchFields(this.settingsTextField15.getText())); + searchFieldLabel9.setText(getLabelContentSearchFields(this.settingsTextField16.getText())); + searchFieldLabel10.setText(getLabelContentSearchFields(this.settingsTextField17.getText())); + searchFieldLabel11.setText(getLabelContentSearchFields(this.settingsTextField18.getText())); + searchFieldLabel12.setText(getLabelContentSearchFields(this.settingsTextField19.getText())); + } + + + private void configureElements() + { + this.importSettingsTabSubSettingsTabPane.minWidthProperty().bind(this.primaryStage.widthProperty()); + this.importSettingsTabSubSettingsTabPane.minHeightProperty().bind(this.primaryStage.heightProperty()); + + this.loadCurrentSettingsDefaultColumnNames.setText("Bitte laden Sie zunächst einen beliebigen Datensatz."); + this.displayCurrentSettingsNewColumnNames.setText("Bitte laden Sie zunächst einen beliebigen Datensatz."); + + + this.importSettingsTab.setClosable(false); + this.generalSettings.setClosable(false); + this.catalogueSettings.setClosable(false); + this.markingsSettings.setClosable(false); + this.fieldSettings.setClosable(false); + + this.gridpaneGeneral.setMinHeight(500); + this.gridpaneCatalogue.setMinHeight(500); + this.gridpaneMarkings.setMinHeight(500); + this.gridpaneFieldSetting.setMinHeight(500); + + Image importSettingsQuestionButtonImage = GetButtonPics.getButtonImage_QuestionMark_importSettings(); + + if (importSettingsQuestionButtonImage != null) + { + + this.infoButton1.setText(null); + this.infoButton2.setText(null); + this.infoButton3.setText(null); + this.infoButton4.setText(null); + this.infoButton5.setText(null); + this.infoButton6.setText(null); + this.infoButton7.setText(null); + this.infoButton8.setText(null); + this.infoButton9.setText(null); + this.infoButton10.setText(null); + this.infoButton11.setText(null); + this.infoButton1.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton2.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton3.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton4.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton5.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton6.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton7.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton8.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton9.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton10.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton11.setGraphic(GetButtonPics.turnPicIntoImageView(importSettingsQuestionButtonImage)); + this.infoButton1.setPadding(new Insets(1,1,1,1)); + this.infoButton2.setPadding(new Insets(1,1,1,1)); + this.infoButton3.setPadding(new Insets(1,1,1,1)); + this.infoButton4.setPadding(new Insets(1,1,1,1)); + this.infoButton5.setPadding(new Insets(1,1,1,1)); + this.infoButton6.setPadding(new Insets(1,1,1,1)); + this.infoButton7.setPadding(new Insets(1,1,1,1)); + this.infoButton8.setPadding(new Insets(1,1,1,1)); + this.infoButton9.setPadding(new Insets(1,1,1,1)); + this.infoButton10.setPadding(new Insets(1,1,1,1)); + this.infoButton11.setPadding(new Insets(1,1,1,1)); + this.infoButton1.setTooltip(new Tooltip(Constants.importSettingsTooltip1)); + this.infoButton2.setTooltip(new Tooltip(Constants.importSettingsTooltip2)); + this.infoButton3.setTooltip(new Tooltip(Constants.importSettingsTooltip3)); + this.infoButton4.setTooltip(new Tooltip(Constants.importSettingsTooltip4)); + this.infoButton5.setTooltip(new Tooltip(Constants.importSettingsTooltip5)); + this.infoButton6.setTooltip(new Tooltip(Constants.importSettingsTooltip6)); + this.infoButton7.setTooltip(new Tooltip(Constants.importSettingsTooltip7)); + this.infoButton8.setTooltip(new Tooltip(Constants.importSettingsTooltip8)); + this.infoButton9.setTooltip(new Tooltip(Constants.importSettingsTooltip9)); + this.infoButton10.setTooltip(new Tooltip(Constants.importSettingsTooltip10)); + this.infoButton11.setTooltip(new Tooltip(Constants.importSettingsTooltip11)); + } + + this.generalSettins.setStyle("-fx-font-weight: bold"); + this.catalogueSearch.setStyle("-fx-font-weight: bold"); + this.markierungseinstellungen.setStyle("-fx-font-weight: bold"); + this.apisettings.setStyle("-fx-font-weight: bold"); + + searchFieldLabel1= new Label(getLabelContentSearchFields(this.settingsTextField8.getText())); + searchFieldLabel2= new Label(getLabelContentSearchFields(this.settingsTextField9.getText())); + searchFieldLabel3= new Label(getLabelContentSearchFields(this.settingsTextField10.getText())); + searchFieldLabel4= new Label(getLabelContentSearchFields(this.settingsTextField11.getText())); + searchFieldLabel5= new Label(getLabelContentSearchFields(this.settingsTextField12.getText())); + searchFieldLabel6= new Label(getLabelContentSearchFields(this.settingsTextField13.getText())); + searchFieldLabel7= new Label(getLabelContentSearchFields(this.settingsTextField14.getText())); + searchFieldLabel8= new Label(getLabelContentSearchFields(this.settingsTextField15.getText())); + searchFieldLabel9= new Label(getLabelContentSearchFields(this.settingsTextField16.getText())); + searchFieldLabel10= new Label(getLabelContentSearchFields(this.settingsTextField17.getText())); + searchFieldLabel11= new Label(getLabelContentSearchFields(this.settingsTextField18.getText())); + searchFieldLabel12= new Label(getLabelContentSearchFields(this.settingsTextField19.getText())); + + + this.gridpaneGeneral = new GridPane(); + this.gridpaneCatalogue = new GridPane(); + this.gridpaneMarkings = new GridPane(); + + this.displayCurrentSettingsNewColumnNames.setMinHeight(200); + this.displayCurrentSettingsNewColumnNames.setPrefHeight(200); + this.displayCurrentSettingsNewColumnNames.setMaxHeight(200); + this.saveCurrentSettingsNewColumnNames .setMinHeight(200); + this.saveCurrentSettingsNewColumnNames.setPrefHeight(200); + this.saveCurrentSettingsNewColumnNames.setMaxHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setMinHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setPrefHeight(200); + this.loadCurrentSettingsDefaultColumnNames.setMaxHeight(200); + + loadCurrentSettingsDefaultColumnNames.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == null || newValue.isBlank() || newValue.contains("Bitte laden Sie zunächst einen beliebigen Datensatz.")) + { + this.fieldSettingsAdvanced.setVisible(false); + + } else + { + this.fieldSettingsAdvanced.setVisible(true); + } + }); + + Image saveButtonImage = GetButtonPics.getButtonImage_saveButton(); + Image searchFileOrFolderImage = GetButtonPics.getButtonImage_SearchFolderOrFile(); + + if (searchFileOrFolderImage != null) + { + + this.searchSaveFolderButton = new Button(""); + this.searchExportFolderButton.setText(null); + ImageView img = GetButtonPics.turnPicIntoImageView(searchFileOrFolderImage); + img.setFitWidth(22); + img.setFitHeight(22); + this.searchExportFolderButton.setGraphic(img); + this.searchExportFolderButton.setPadding(new Insets(1,1,1,1)); + this.searchSaveFolderButton.setText(null); + img = GetButtonPics.turnPicIntoImageView(searchFileOrFolderImage); + img.setFitWidth(22); + img.setFitHeight(22); + this.searchSaveFolderButton.setGraphic(img); + this.searchSaveFolderButton.setPadding(new Insets(1,1,1,1)); + + + } + + if (saveButtonImage != null) + { + + this.saveSettingsButton.setText(null); + this.saveSettingsButton.setGraphic(GetButtonPics.turnPicIntoImageView(saveButtonImage)); + this.saveSettingsButton.setPadding(new Insets(5,5,5,5)); + } + this.saveButtonHBox.setPadding(new Insets(5,5,5,5)); + + + + this.gridpaneGeneral.add(this.generalSettins, 0, 0); + this.gridpaneGeneral.add(this.order_settingsLabel_OrdererName_label , 0, 1); this.gridpaneGeneral.add(this.order_settingsLabel_OrdererName_TextField, 1, 1); + this.gridpaneGeneral.add(this.order_settingsLabel_OtherOrdererNames_label , 0, 2); this.gridpaneGeneral.add(this.order_settingsLabel_OtherOrdererNames_TextField, 1, 2); + this.gridpaneGeneral.add(this.order_ImportVerzeichnisNameLabel, 0, 3); this.gridpaneGeneral.add(this.order_ImportVerzeichnisNameTextField, 1, 3); this.gridpaneGeneral.add(this.searchExportFolderButton, 2, 3); + this.gridpaneGeneral.add(this.order_DoneVerzeichnisNameLabel, 0, 4); this.gridpaneGeneral.add(this.order_DoneVerzeichnisNameTextField, 1, 4); this.gridpaneGeneral.add(this.searchSaveFolderButton, 2, 4); + /* formerPickerTabThingsNoLongerNeeded + //this.gridpaneGeneral.add(this.settingsLabel7, 0, 1); this.gridpaneGeneral.add(this.settingsTextField7, 1, 1); + //this.gridpaneGeneral.add(this.settingsLabel2, 0, 2); this.gridpaneGeneral.add(this.settingsTextField2, 1, 2); + this.gridpaneGeneral.add(this.settingsLabel3, 0, 3); this.gridpaneGeneral.add(this.settingsTextField3, 1, 3); this.gridpaneGeneral.add(this.infoButton1, 2,3); // new Text("Angabe von erlaubten DDCs. (z.b. '200+;350+;440' entspricht 200-299.999, 350-399.999 und 440)"), 2, 3); + this.gridpaneGeneral.add(this.settingsLabel4, 0, 4); this.gridpaneGeneral.add(this.settingsTextField4, 1, 4); this.gridpaneGeneral.add(this.infoButton2, 2,4);//new Text("Angabe von auszusortierenden Verlagen. (z.b. 'Springer Nature;Wiley')"), 2, 4); + this.gridpaneGeneral.add(this.settingsLabel5, 0, 5); this.gridpaneGeneral.add(this.settingsTextField5_checkbox, 1, 5); this.gridpaneGeneral.add(this.infoButton3, 2,5); + this.gridpaneGeneral.add(this.settingsLabel27, 0, 6); this.gridpaneGeneral.add(this.settingsTextField27_checkbox, 1, 6); this.gridpaneGeneral.add(this.infoButton4, 2,6); + this.gridpaneGeneral.add(this.settingsLabel30, 0, 7); this.gridpaneGeneral.add(this.settingsTextField30_checkbox, 1, 7); + this.gridpaneGeneral.add(this.settingsLabel28, 0, 8); this.gridpaneGeneral.add(this.settingsTextField28_checkbox, 1, 8); + this.gridpaneGeneral.add(this.settingsLabel29, 0, 9); this.gridpaneGeneral.add(this.settingsTextField29_checkbox, 1, 9); + this.gridpaneGeneral.add(this.settingsLabel6, 0, 10); this.gridpaneGeneral.add(this.settingsTextField6_checkbox, 1, 10); + */ + + this.gridpaneCatalogue.add(this.catalogueSearch, 0, 0); this.gridpaneCatalogue.add(new Text("Variablen: [{[author]}], [{[title]}], [{[isbn]}], [{[publisher]}]"), 1, 0);this.gridpaneCatalogue.add(this.infoButton5, 2,0); + this.gridpaneCatalogue.add(this.settingsLabel8, 0, 1); this.gridpaneCatalogue.add(this.settingsTextField8, 1, 1); this.gridpaneCatalogue.add(this.searchFieldLabel1, 2, 1); + this.gridpaneCatalogue.add(this.settingsLabel9, 0, 2); this.gridpaneCatalogue.add(this.settingsTextField9, 1, 2); this.gridpaneCatalogue.add(this.searchFieldLabel2, 2, 2); + this.gridpaneCatalogue.add(this.settingsLabel10, 0, 3); this.gridpaneCatalogue.add(this.settingsTextField10, 1, 3); this.gridpaneCatalogue.add(this.searchFieldLabel3, 2, 3); + this.gridpaneCatalogue.add(this.settingsLabel11, 0, 4); this.gridpaneCatalogue.add(this.settingsTextField11, 1, 4); this.gridpaneCatalogue.add(this.searchFieldLabel4, 2, 4); + this.gridpaneCatalogue.add(this.settingsLabel12, 0, 5); this.gridpaneCatalogue.add(this.settingsTextField12, 1, 5); this.gridpaneCatalogue.add(this.searchFieldLabel5, 2, 5); + this.gridpaneCatalogue.add(this.settingsLabel13, 0, 6); this.gridpaneCatalogue.add(this.settingsTextField13, 1, 6); this.gridpaneCatalogue.add(this.searchFieldLabel6, 2, 6); + this.gridpaneCatalogue.add(this.settingsLabel14, 0, 7); this.gridpaneCatalogue.add(this.settingsTextField14, 1, 7); this.gridpaneCatalogue.add(this.searchFieldLabel7, 2, 7); + this.gridpaneCatalogue.add(this.settingsLabel15, 0, 8); this.gridpaneCatalogue.add(this.settingsTextField15, 1, 8); this.gridpaneCatalogue.add(this.searchFieldLabel8, 2, 8); + this.gridpaneCatalogue.add(this.settingsLabel16, 0, 9); this.gridpaneCatalogue.add(this.settingsTextField16, 1, 9); this.gridpaneCatalogue.add(this.searchFieldLabel9, 2, 9); + this.gridpaneCatalogue.add(this.settingsLabel17, 0, 10); this.gridpaneCatalogue.add(this.settingsTextField17, 1, 10); this.gridpaneCatalogue.add(this.searchFieldLabel10, 2, 10); + this.gridpaneCatalogue.add(this.settingsLabel18, 0, 11); this.gridpaneCatalogue.add(this.settingsTextField18, 1, 11); this.gridpaneCatalogue.add(this.searchFieldLabel11, 2, 11); + this.gridpaneCatalogue.add(this.settingsLabel19, 0, 12); this.gridpaneCatalogue.add(this.settingsTextField19, 1, 12); this.gridpaneCatalogue.add(this.searchFieldLabel12, 2, 12); + + this.gridpaneMarkings.add(this.markierungseinstellungen , 0, 0); this.gridpaneMarkings.add(this.infoButton6 , 1, 0); + this.gridpaneMarkings.add(this.settingsLabel20, 0, 1); this.gridpaneMarkings.add(this.settingsTextField20, 1, 1); // this.gridpaneMarkings.add(new Text("z.b. 'Pädagogik;Sozialwissenschaft;Herder;DDC-Sachgruppe:S;Verlagsort:Freiburg'"), 2, 1); + this.gridpaneMarkings.add(this.settingsLabel21, 0, 2); this.gridpaneMarkings.add(this.settingsTextField21, 1, 2); // this.gridpaneMarkings.add(new Text("z.b. 'Scientology;Grin-Verlag;DDC-Sachgruppe:B;Autor:Guttenberg;Auflage:Unver'"), 2, 2); + // formerPickerTabThingsNoLongerNeeded + //this.gridpaneMarkings.add(this.settingsLabel25, 0, 3); this.gridpaneMarkings.add(this.settingsTextField25_checkbox, 1, 3); + + + this.gridpaneFieldSetting.add(this.saveFieldLabel, 0, 0); this.gridpaneFieldSetting.add(this.infoButton11, 1, 0); + this.gridpaneFieldSetting.add(this.saveCurrentSettingsNewColumnNames, 0, 1); + + this.gridpaneFieldSetting.add(this.defaultFieldLabel, 0, 2); + this.gridpaneFieldSetting.add(this.expertfieldDefexample, 0, 3); + this.gridpaneFieldSetting.add(this.loadCurrentSettingsDefaultColumnNames, 0, 4); + this.gridpaneFieldSetting.add(this.fieldSettingsAdvanced, 1, 4); + this.gridpaneFieldSetting.add(this.demoFieldLabel, 0, 5); + this.gridpaneFieldSetting.add(this.displayCurrentSettingsNewColumnNames, 0, 6); + + + + this.gridpaneGeneral.setHgap(10); + this.gridpaneGeneral.setVgap(10); + this.gridpaneGeneral.setPadding(new Insets(10,10,10,10)); + + this.gridpaneCatalogue.setHgap(10); + this.gridpaneCatalogue.setVgap(10); + this.gridpaneCatalogue.setPadding(new Insets(10,10,10,10)); + + this.gridpaneMarkings.setHgap(10); + this.gridpaneMarkings.setVgap(10); + this.gridpaneMarkings.setPadding(new Insets(10,10,10,10)); + + this.gridpaneFieldSetting.setHgap(10); + this.gridpaneFieldSetting.setVgap(10); + this.gridpaneFieldSetting.setPadding(new Insets(10,10,10,10)); + + + + + + + this.saveCurrentSettingsNewColumnNames.textProperty().addListener((observable, oldValue, newValue) -> { + if (newValue == null || newValue.isBlank()) + { + + } else + { + + //update for currentSettingsFormatter: Change this later + this.displayCurrentSettingsNewColumnNames.setText(orderTab.queuemanager.fetchFormattedTitle(ListEnum.NOPES, false, this.saveCurrentSettingsNewColumnNames.getText())); + + } + }); + + + this.fieldSettingsAdvanced.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + switchAdvancedButton(); + } + }); + + this.infoButton1.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText1,Constants.importSettingsTooltip1, Constants.importSettingsTitle1, GetButtonPics.getButtonImage_ResImageHelpDDCWhitelist()); + } + }); + + this.infoButton2.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText2,Constants.importSettingsTooltip2, Constants.importSettingsTitle2, GetButtonPics.getButtonImage_ResImageHelpPublisherBlacklist()); + } + }); + + this.infoButton3.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText3,Constants.importSettingsTooltip3, Constants.importSettingsTitle3, null); + } + }); + + this.infoButton4.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText4,Constants.importSettingsTooltip4, Constants.importSettingsTitle4, null); + } + }); + + this.infoButton5.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText5,Constants.importSettingsTooltip5, Constants.importSettingsTitle5, GetButtonPics.getButtonImage_ResImageHelpCatSearch1()); + } + }); + + this.infoButton6.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText6,Constants.importSettingsTooltip6, Constants.importSettingsTitle6, GetButtonPics.getButtonImage_ResImageHelpmarkings()); + } + }); + + this.infoButton7.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText7,Constants.importSettingsTooltip7, Constants.importSettingsTitle7, null); + } + }); + + this.infoButton8.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText8,Constants.importSettingsTooltip8, Constants.importSettingsTitle8, GetButtonPics.getButtonImage_ResImageHelpprogress()); + } + }); + + this.infoButton9.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText9,Constants.importSettingsTooltip9, Constants.importSettingsTitle9, null); + } + }); + + this.infoButton10.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText10, Constants.importSettingsTooltip10, Constants.importSettingsTitle10, null); + } + }); + + this.infoButton11.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + new InfoBox(Constants.importSettingsText11, Constants.importSettingsTooltip11, Constants.importSettingsTitle11, GetButtonPics.getButtonImage_ResImageHelpFieldSettings()); + } + }); + + + saveSettingsButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + updateAndSaveProperties(); + updateSearchFieldLabels(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } + }); + + searchSaveFolderButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + getFolderName(false); + + } + }); + + searchExportFolderButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + getFolderName(true); + + } + }); + + + this.settingsTextField23_checkbox.selectedProperty().addListener((observable, oldValue, newValue) -> { + updateTextField24(); + updateTextField26(); + }); + + updateTextField24(); + updateTextField26(); + + + + this.generalSettings.setContent(this.gridpaneGeneral); + this.catalogueSettings.setContent(this.gridpaneCatalogue); + this.markingsSettings.setContent(this.gridpaneMarkings); + this.fieldSettings.setContent(this.gridpaneFieldSetting); + + + + + this.globalVBox.getChildren().addAll(this.saveButtonHBox, this.importSettingsTabSubSettingsTabPane); + this.scrollPane.setContent(this.globalVBox); + this.importSettingsTab.setContent(this.scrollPane); + + } + + private void updateTextField24() + { + /* + if (this.settingsTextField23_checkbox.isSelected()) + { + this.settingsTextField24_checkbox.setVisible(true); + } else + { + this.settingsTextField24_checkbox.setVisible(false); + } + */ + } + + private void updateTextField26() + { + /* + if (this.settingsTextField23_checkbox.isSelected()) + { + this.settingsTextField26_checkbox.setVisible(true); + } else + { + this.settingsTextField26_checkbox.setVisible(false); + } + */ + } + + private void updateAndSaveProperties() throws IOException + { + + + if(!this.settingsTextField1.getText().substring(this.settingsTextField1.getText().length() - 1).equals("\\")) + { + this.settingsTextField1.setText(this.settingsTextField1.getText() + "\\"); + } + if(!this.settingsTextField7.getText().substring(this.settingsTextField7.getText().length() - 1).equals("\\")) + { + this.settingsTextField7.setText(this.settingsTextField7.getText() + "\\"); + } + if(!this.order_ImportVerzeichnisNameTextField.getText().substring(this.order_ImportVerzeichnisNameTextField.getText().length() - 1).equals("\\")) + { + this.order_ImportVerzeichnisNameTextField.setText(this.order_ImportVerzeichnisNameTextField.getText() + "\\"); + } + if(!this.order_DoneVerzeichnisNameTextField.getText().substring(this.order_DoneVerzeichnisNameTextField.getText().length() - 1).equals("\\")) + { + this.order_DoneVerzeichnisNameTextField.setText(this.order_DoneVerzeichnisNameTextField.getText() + "\\"); + } + if(this.settingsTextField3.getText().contains(" ")) + { + this.settingsTextField3.setText(this.settingsTextField3.getText().replace(" ", "")); + } + if(this.settingsTextField4.getText().contains("; ") || this.settingsTextField4.getText().contains(" ;")) + { + this.settingsTextField4.setText(this.settingsTextField4.getText().replace("; ", ";")); + this.settingsTextField4.setText(this.settingsTextField4.getText().replace(" ;", ";")); + } + + if(this.settingsTextField20.getText().contains("; ") || this.settingsTextField20.getText().contains(" ;")) + { + this.settingsTextField20.setText(this.settingsTextField20.getText().replace("; ", ";")); + this.settingsTextField20.setText(this.settingsTextField20.getText().replace(" ;", ";")); + } + if(this.settingsTextField21.getText().contains("; ") || this.settingsTextField21.getText().contains(" ;")) + { + this.settingsTextField21.setText(this.settingsTextField21.getText().replace("; ", ";")); + this.settingsTextField21.setText(this.settingsTextField21.getText().replace(" ;", ";")); + } + + this.propertyFilehandler.propertyFileModel.updateProperties(this.settingsTextField1.getText(),this.settingsTextField7.getText(), this.settingsTextField4.getText(),booleanToString(this.settingsTextField5_checkbox),this.settingsTextField2.getText(),this.settingsTextField3.getText(), booleanToString(this.settingsTextField6_checkbox), + this.settingsTextField8 .getText(), this.settingsTextField9 .getText(), this.settingsTextField10.getText(), this.settingsTextField11.getText(), this.settingsTextField12.getText(), this.settingsTextField13.getText(), this.settingsTextField14.getText(), this.settingsTextField15.getText(), this.settingsTextField16.getText(), this.settingsTextField17.getText(), this.settingsTextField18.getText(), this.settingsTextField19.getText(), + this.settingsTextField20.getText(), this.settingsTextField21.getText(), + this.settingsTextField22.getText(), + booleanToString(this.settingsTextField23_checkbox) , booleanToString(this.settingsTextField24_checkbox), + this.settingsTextField22b.getText(),this.settingsTextField22c.getText(), + booleanToString(this.settingsTextField25_checkbox),booleanToString(this.settingsTextField26_checkbox), + booleanToString(this.settingsTextField27_checkbox), + booleanToString(this.settingsTextField28_checkbox),booleanToString(this.settingsTextField29_checkbox), + this.saveCurrentSettingsNewColumnNames.getText(), + booleanToString(this.settingsTextField30_checkbox), + order_ImportVerzeichnisNameTextField.getText(), + order_DoneVerzeichnisNameTextField.getText(), + this.order_settingsLabel_OrdererName_TextField.getText(), + this.order_settingsLabel_OtherOrdererNames_TextField.getText() + ); + + this.propertyFilehandler.setConfigDetail(); + this.changedFlag = false; + this.saveButtonHBox.setBackground(null); + this.saveButtonHBox.getChildren().clear(); + + + + } + + + + public String booleanToString(CheckBox checkbox) + { + if (checkbox.isSelected()) + { + return "true"; + } + return "false"; + } + + private void getFolderName(boolean ImportFieldtruetDoneFieldfalse) + { + if (ImportFieldtruetDoneFieldfalse) + { + this.order_ImportVerzeichnisNameTextField.setText(ImportExportFileHandler.getFileOrFolder(false).getAbsolutePath()); + } else + { + this.order_DoneVerzeichnisNameTextField.setText(ImportExportFileHandler.getFileOrFolder(false).getAbsolutePath()); + } + + } + + public void openFileAndLoad() throws IOException + { + this.titles = ImportExportFileHandler.importOrderFilesFromImportLocation(); + + } + + + + public void setCurrentColumns() + { + + + if (orderTab.queuemanager == null || orderTab.queuemanager.ColumnNames == null || this.orderTab.queuemanager.ColumnNames.size() == 0) + { + this.loadCurrentSettingsDefaultColumnNames.setText("Bitte zunächst Datensatz laden."); + + } else + { + String currentColumnsString = ""; + for (String column : orderTab.queuemanager.ColumnNames) + { + if (isAdanced) + { + currentColumnsString += ">FieldName>" + column + "FieldAlias>" + "FieldContent>" + " { + resizeEvent((double) newValue); + }); + this.primaryStage.heightProperty().addListener((observable, oldValue, newValue) -> { + resizeEvent((double) newValue); + }); + + + + this.orderTab = new Tab(Constants.ChooserTabName); + this.orderTab.setClosable(false); + this.buildStage = 0; + + } + + private void resizeEvent(double newValue) + { + /* + * proven to be stupid + */ + + + } + + private void updateQueueProgress(double number) + { + this.progressBar.setProgress(number); + } + + public void initialFormatting() + { + updateFormattedTitle(ListEnum.NOPES); + updateFormattedTitle(ListEnum.PICKS); + updateFormattedTitle(ListEnum.QUEUE); + } + + public void rebuild(List columnNames, List> ntitles) throws InterruptedException { + + initiateElements(); + configureElements(); + this.buildStage = 1; + int bearbeitetVonIndex = -1; + + if (this.propertyFileHandler.propertyFileModel.get_settings_FontSize().length() > 0) + { + this.fontSize = Integer.parseInt(this.propertyFileHandler.propertyFileModel.get_settings_FontSize()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth().length() > 0) + { + this.QueueWidth = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight().length() > 0) + { + this.QueueHeight = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight()); + } + + + changeGridWidhtAndHeightAccordingToPropertiesOrDefault(); + + List> sortedList = new ArrayList>(); + + for (int counter = 0; counter < columnNames.size(); counter ++) + { + if (columnNames.get(counter).contains(Constants.CaseHandledBy)) + { + bearbeitetVonIndex = counter; + } + } + if (bearbeitetVonIndex != -1) + { + for (List title : ntitles) + { + if (title.get(bearbeitetVonIndex).contains(this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName())) + { + sortedList.add(0, title); + } else if (!title.get(bearbeitetVonIndex).contains(Constants.emptyField)) + { + sortedList.add(title); + } else + { + sortedList.add(0, title); + } + } + + } + + + + this.queuemanager = new QueueManager(columnNames, sortedList, new ArrayList>(), new ArrayList>()); + + + configureEventsGeneral(); + configureEventsQueue(); + configureEventsPicks(); + configureEventsNopes(); + this.QueueWidth = this.currentsqueue.getWidth(); + this.QueueHeight = this.currentsqueue.getHeight(); + updateLists(); + } + + + public void updateFormattedTitles(boolean updatenopes, String altNopeTitle, boolean updatequeue, String altQueueTitle, boolean updatepicks, String altPickTitle, boolean updateApi) + { + if (updatenopes) + { + if (altNopeTitle != null) + { + this.currentsnopes.setText(altNopeTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsnopes.setText(queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + + if (queuemanager.listNullOrEmpty(ListEnum.NOPES) || queuemanager.titleHasNoOrderer(ListEnum.NOPES)) + { + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } else if(queuemanager.titleOrdererIsCurrentOrderer(ListEnum.NOPES) ) + { + + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #DCFFDC;"); + } else if(!queuemanager.titleOrdererIsCurrentOrderer(ListEnum.NOPES) && !queuemanager.titleOrdererIsNotSet(ListEnum.NOPES)) + { + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFDCDC;"); + + } else + { + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } + + } + } + if (updatequeue) + { + if (altQueueTitle != null) + { + this.currentsqueue.setText(altQueueTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsqueue.setText(queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + + if (queuemanager.listNullOrEmpty(ListEnum.QUEUE) || queuemanager.titleHasNoOrderer(ListEnum.QUEUE)) + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } else if(queuemanager.titleOrdererIsCurrentOrderer(ListEnum.QUEUE)) + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #DCFFDC;"); + + } else if(!queuemanager.titleOrdererIsCurrentOrderer(ListEnum.QUEUE) && !queuemanager.titleOrdererIsNotSet(ListEnum.QUEUE)) + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFDCDC;"); + } else + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } + } + } + if (updatepicks) + { + if (altPickTitle != null) + { + this.currentspicks.setText(altPickTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentspicks.setText(queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + + + if (queuemanager.listNullOrEmpty(ListEnum.PICKS) || queuemanager.titleHasNoOrderer(ListEnum.PICKS)) + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } else if(queuemanager.titleOrdererIsCurrentOrderer(ListEnum.PICKS)) + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #DCFFDC;"); + + } else if(!queuemanager.titleOrdererIsCurrentOrderer(ListEnum.PICKS) && !queuemanager.titleOrdererIsNotSet(ListEnum.PICKS)) + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFDCDC;"); + } else + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } + } + } + } + + private void updateLists() + { + + this.currentsqueue.setVisible(true); + this.currentspicks.setVisible(true); + this.currentsnopes.setVisible(true); + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, false, null, true); + + updateFormattedTitle(ListEnum.NOPES); + updateFormattedTitle(ListEnum.QUEUE); + } + + public void resetformersleft() + { + this.textA1.setText(" "); + this.textA2.setText(" "); + this.textA3.setText(" "); + this.textA4.setText(" "); + this.textA5.setText(" "); + this.textA6.setText(" "); + this.textA7.setText(" "); + this.textA8.setText(" "); + this.textA9.setText(" "); + this.textA10.setText(" "); + } + + public void resetformersmiddle() + { + this.textB1.setText(" "); + this.textB2.setText(" "); + this.textB3.setText(" "); + this.textB4.setText(" "); + this.textB5.setText(" "); + this.textB6.setText(" "); + this.textB7.setText(" "); + this.textB8.setText(" "); + this.textB9.setText(" "); + this.textB10.setText(" "); + } + + public void resetformersright() + { + this.textC1.setText(" "); + this.textC2.setText(" "); + this.textC3.setText(" "); + this.textC4.setText(" "); + this.textC5.setText(" "); + this.textC6.setText(" "); + this.textC7.setText(" "); + this.textC8.setText(" "); + this.textC9.setText(" "); + this.textC10.setText(" "); + } + + public void resetnextsleft() + { + this.textD1.setText(" "); + this.textD2.setText(" "); + this.textD3.setText(" "); + this.textD4.setText(" "); + this.textD5.setText(" "); + this.textD6.setText(" "); + this.textD7.setText(" "); + this.textD8.setText(" "); + this.textD9.setText(" "); + this.textD10.setText(" "); + } + + public void resetnextsmiddle() + { + this.textE1.setText(" "); + this.textE2.setText(" "); + this.textE3.setText(" "); + this.textE4.setText(" "); + this.textE5.setText(" "); + this.textE6.setText(" "); + this.textE7.setText(" "); + this.textE8.setText(" "); + this.textE9.setText(" "); + this.textE10.setText(" "); + } + + public void resetnextsrightt() + { + this.textF1.setText(" "); + this.textF2.setText(" "); + this.textF3.setText(" "); + this.textF4.setText(" "); + this.textF5.setText(" "); + this.textF6.setText(" "); + this.textF7.setText(" "); + this.textF8.setText(" "); + this.textF9.setText(" "); + this.textF10.setText(" "); + } + + public String shortenShortTitleString(String title) + { + + + String titleShort = title.split(" : ")[0]; + if (titleShort.length() > 60) + { + titleShort = titleShort.substring(0, 59); + } + + //return titleShort; + return title; + } + + public void updateQueues(boolean updateNopes, boolean updateQueue, boolean updatePicks) + { + + List> formersleft; + List> formersright; + List> formersmiddle; + List> nextsleft; + List> nextsright; + List> nextsmiddle; + + if (updateNopes) + { + formersleft = queuemanager.get10Formers(ListEnum.NOPES); + nextsleft = queuemanager.get10Nexts(ListEnum.NOPES); + if (formersleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersleft.size()-1) + { + this.textA10.setText(" "); + } else + { + this.textA10.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersleft.size()-1) + { + this.textA9.setText(" "); + } else + { + this.textA9.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersleft.size()-1) + { + this.textA8.setText(" "); + } else + { + this.textA8.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersleft.size()-1) + { + this.textA7.setText(" "); + } else + { + this.textA7.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersleft.size()-1) + { + this.textA6.setText(" "); + } else + { + this.textA6.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersleft.size()-1) + { + this.textA5.setText(" "); + } else + { + this.textA5.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersleft.size()-1) + { + this.textA4.setText(" "); + } else + { + this.textA4.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersleft.size()-1) + { + this.textA3.setText(" "); + } else + { + this.textA3.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersleft.size()-1) + { + this.textA2.setText(" "); + break; + } else + { + this.textA2.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersleft.size()-1) + { + this.textA1.setText(" "); + break; + } else + { + this.textA1.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersleft(); + + if (nextsleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsleft.size()-1) + { + this.textD1.setText(" "); + } else + { + this.textD1.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsleft.size()-1) + { + this.textD2.setText(" "); + } else + { + this.textD2.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsleft.size()-1) + { + this.textD3.setText(" "); + } else + { + this.textD3.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsleft.size()-1) + { + this.textD4.setText(" "); + } else + { + this.textD4.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsleft.size()-1) + { + this.textD5.setText(" "); + } else + { + this.textD5.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsleft.size()-1) + { + this.textD6.setText(" "); + } else + { + this.textD6.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsleft.size()-1) + { + this.textD7.setText(" "); + } else + { + this.textD7.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsleft.size()-1) + { + this.textD8.setText(" "); + } else + { + this.textD8.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsleft.size()-1) + { + this.textD9.setText(" "); + break; + } else + { + this.textD9.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsleft.size()-1) + { + this.textD10.setText(" "); + break; + } else + { + this.textD10.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsleft(); + } + + if (updateQueue) + { + formersmiddle = queuemanager.get10Formers(ListEnum.QUEUE); + nextsmiddle = queuemanager.get10Nexts(ListEnum.QUEUE); + if (formersmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersmiddle.size()-1) + { + this.textB10.setText(" "); + } else + { + this.textB10.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersmiddle.size()-1) + { + this.textB9.setText(" "); + } else + { + this.textB9.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersmiddle.size()-1) + { + this.textB8.setText(" "); + } else + { + this.textB8.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersmiddle.size()-1) + { + this.textB7.setText(" "); + } else + { + this.textB7.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersmiddle.size()-1) + { + this.textB6.setText(" "); + } else + { + this.textB6.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersmiddle.size()-1) + { + this.textB5.setText(" "); + } else + { + this.textB5.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersmiddle.size()-1) + { + this.textB4.setText(" "); + } else + { + this.textB4.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersmiddle.size()-1) + { + this.textB3.setText(" "); + } else + { + this.textB3.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersmiddle.size()-1) + { + this.textB2.setText(" "); + break; + } else + { + this.textB2.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersmiddle.size()-1) + { + this.textB1.setText(" "); + break; + } else + { + this.textB1.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersmiddle(); + + if (nextsmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsmiddle.size()-1) + { + this.textE1.setText(" "); + } else + { + this.textE1.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsmiddle.size()-1) + { + this.textE2.setText(" "); + } else + { + this.textE2.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsmiddle.size()-1) + { + this.textE3.setText(" "); + } else + { + this.textE3.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsmiddle.size()-1) + { + this.textE4.setText(" "); + } else + { + this.textE4.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsmiddle.size()-1) + { + this.textE5.setText(" "); + } else + { + this.textE5.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsmiddle.size()-1) + { + this.textE6.setText(" "); + } else + { + this.textE6.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsmiddle.size()-1) + { + this.textE7.setText(" "); + } else + { + this.textE7.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsmiddle.size()-1) + { + this.textE8.setText(" "); + } else + { + this.textE8.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsmiddle.size()-1) + { + this.textE9.setText(" "); + break; + } else + { + this.textE9.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsmiddle.size()-1) + { + this.textE10.setText(" "); + break; + } else + { + this.textE10.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsmiddle(); + } + + if (updatePicks) + { //formers + formersright = queuemanager.get10Formers(ListEnum.PICKS); + nextsright = queuemanager.get10Nexts(ListEnum.PICKS); + + if (formersright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersright.size()-1) + { + this.textC10.setText(" "); + } else + { + this.textC10.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersright.size()-1) + { + this.textC9.setText(" "); + } else + { + this.textC9.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersright.size()-1) + { + this.textC8.setText(" "); + } else + { + this.textC8.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersright.size()-1) + { + this.textC7.setText(" "); + } else + { + this.textC7.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersright.size()-1) + { + this.textC6.setText(" "); + } else + { + this.textC6.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersright.size()-1) + { + this.textC5.setText(" "); + } else + { + this.textC5.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersright.size()-1) + { + this.textC4.setText(" "); + } else + { + this.textC4.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersright.size()-1) + { + this.textC3.setText(" "); + } else + { + this.textC3.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersright.size()-1) + { + this.textC2.setText(" "); + break; + } else + { + this.textC2.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersright.size()-1) + { + this.textC1.setText(" "); + break; + } else + { + this.textC1.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersright(); + + //nexts + if (nextsright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsright.size()-1) + { + this.textF1.setText(" "); + } else + { + this.textF1.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsright.size()-1) + { + this.textF2.setText(" "); + } else + { + this.textF2.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsright.size()-1) + { + this.textF3.setText(" "); + } else + { + this.textF3.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsright.size()-1) + { + this.textF4.setText(" "); + } else + { + this.textF4.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsright.size()-1) + { + this.textF5.setText(" "); + } else + { + this.textF5.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsright.size()-1) + { + this.textF6.setText(" "); + } else + { + this.textF6.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsright.size()-1) + { + this.textF7.setText(" "); + } else + { + this.textF7.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsright.size()-1) + { + this.textF8.setText(" "); + } else + { + this.textF8.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsright.size()-1) + { + this.textF9.setText(" "); + break; + } else + { + this.textF9.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsright.size()-1) + { + this.textF10.setText(" "); + break; + } else + { + this.textF10.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsrightt(); + } + + + + + + + + + + + + + + + + + + + + } + + private void exportQueue(QueueManager queuemanager) + { + if (queuemanager.isExportFolderValid()) + { + ImportExportFileHandler importExportFileHandler = new ImportExportFileHandler(); + + queuemanager.exportPicks(); + try { + importExportFileHandler.openExportFileFolder(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Warnung"); + alert.setHeaderText("Kein gültiger Exportpfad angegeben. Ihre Daten wurden noch nicht gespeichert."); + alert.setContentText("Bitte gehen Sie zu den Importeinstellungen und überprüfen Sie Ihre Eingaben!"); + + alert.showAndWait(); + } + } + + private void initiateElements() + { + this.orderTab = new Tab(Constants.ChooserTabName); + + this.currentsqueue = new CustomTextAreaPickerTab(ListEnum.QUEUE); + this.currentspicks = new CustomTextAreaPickerTab(ListEnum.PICKS); + this.currentsnopes = new CustomTextAreaPickerTab(ListEnum.NOPES); + + + //this.currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + //this.currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + //this.currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize); + + + this.progressBar = new ProgressBar(0.1); + + this.gridpaneLower = new GridPane(); + this.progressText = new Text(); + this.progressTextDB = new Text(); + + this.currentsHBox = new HBox(); + this.nextsHBox = new HBox(); + this.formersHBox = new HBox(); + this.shortCutHBox = new HBox(); + + this.currentsleftVBox = new VBox(200, this.currentsnopes); + this.currentsmiddleVBox = new VBox(200, this.currentsqueue); + this.currentsrightVBox = new VBox(200, this.currentspicks); + + this.helpButton = new Button(); + Tooltip helpTooltip = new Tooltip(); + helpTooltip.setText("Kurzeinführung"); + helpButton.setTooltip(helpTooltip); + + this.textA1 = new Label(""); + this.textA2 = new Label(""); + this.textA3 = new Label(""); + this.textA4 = new Label(""); + this.textA5 = new Label(""); + this.textA6 = new Label(""); + this.textA7 = new Label(""); + this.textA8 = new Label(""); + this.textA9 = new Label(""); + this.textA10 = new Label(""); + this.formersleftVBox = new VBox(5, this.textA1, this.textA2, this.textA3, this.textA4, this.textA5, this.textA6, this.textA7, this.textA8, this.textA9, this.textA10); + + this.textB1 = new Label(" "); + this.textB2 = new Label(" "); + this.textB3 = new Label(" "); + this.textB4 = new Label(" "); + this.textB5 = new Label(" "); + this.textB6 = new Label(" "); + this.textB7 = new Label(" "); + this.textB8 = new Label(" "); + this.textB9 = new Label(" "); + this.textB10 = new Label(" "); + this.formersmiddleVBox = new VBox(5, this.textB1, this.textB2, this.textB3, this.textB4, this.textB5, this.textB6, this.textB7, this.textB8, this.textB9, this.textB10); + + this.textC1 = new Label(" "); + this.textC2 = new Label(" "); + this.textC3 = new Label(" "); + this.textC4 = new Label(" "); + this.textC5 = new Label(" "); + this.textC6 = new Label(" "); + this.textC7 = new Label(" "); + this.textC8 = new Label(" "); + this.textC9 = new Label(" "); + this.textC10 = new Label(" "); + this.formersrightVBox = new VBox(5, this.textC1, this.textC2, this.textC3, this.textC4, this.textC5, this.textC6, this.textC7, this.textC8, this.textC9, this.textC10); + + this.textD1 = new Label(" "); + this.textD2 = new Label(" "); + this.textD3 = new Label(" "); + this.textD4 = new Label(" "); + this.textD5 = new Label(" "); + this.textD6 = new Label(" "); + this.textD7 = new Label(" "); + this.textD8 = new Label(" "); + this.textD9 = new Label(" "); + this.textD10 = new Label(" "); + this.nextsleftVBox = new VBox(5, this.textD1, this.textD2, this.textD3, this.textD4, this.textD5, this.textD6, this.textD7, this.textD8, this.textD9, this.textD10); + + this.textE1 = new Label(" "); + this.textE2 = new Label(" "); + this.textE3 = new Label(" "); + this.textE4 = new Label(" "); + this.textE5 = new Label(" "); + this.textE6 = new Label(" "); + this.textE7 = new Label(" "); + this.textE8 = new Label(" "); + this.textE9 = new Label(" "); + this.textE10 = new Label(" "); + this.nextsmiddleVBox = new VBox(5, this.textE1, this.textE2, this.textE3, this.textE4, this.textE5, this.textE6, this.textE7, this.textE8, this.textE9, this.textE10); + + this.textF1 = new Label(" "); + this.textF2 = new Label(" "); + this.textF3 = new Label(" "); + this.textF4 = new Label(" "); + this.textF5 = new Label(" "); + this.textF6 = new Label(" "); + this.textF7 = new Label(" "); + this.textF8 = new Label(" "); + this.textF9 = new Label(" "); + this.textF10 = new Label(" "); + this.nextsrightVBox = new VBox(5, this.textF1, this.textF2, this.textF3, this.textF4, this.textF5, this.textF6, this.textF7, this.textF8, this.textF9, this.textF10); + + this.markedKeyWordsHBoxNopes = new HBox(); + this. markedKeyWordsHBoxQueue = new HBox(); + this.markedKeyWordsHBoxPicks = new HBox(); + this.markedKeyWordsNopesGreen = new Label(); + this.markedKeyWordsNopesRed = new Label(); + this.markedKeyWordsQueueGreen = new Label(); + this.markedKeyWordsQueueRed = new Label(); + this.markedKeyWordsPicksGreen = new Label(); + this.markedKeyWordsPicksRed = new Label(); + this.markedKeyWordsNopesOA = new Label(); + this.markedKeyWordsQueueOA = new Label(); + this.markedKeyWordsPicksOA = new Label(); + + } + public void updateKeyWords(ListEnum listEnum) throws MalformedURLException, InterruptedException + { + switch (listEnum) + { + case NOPES: + { + + this.IHV_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, true)); + this.IHT_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, false)); + this.markedKeyWordsNopesGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, true)); + this.markedKeyWordsNopesRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, false)); + this.markedKeyWordsNopesOA.setText(this.queuemanager.getCurrentOAKeyWord(ListEnum.NOPES, Constants.oaMarker, Constants.oaKeyWordForDisplay)); + return; + } + case QUEUE: + { + this.IHV_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, true)); + this.IHT_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, false)); + this.markedKeyWordsQueueGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, true)); + this.markedKeyWordsQueueRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, false)); + this.markedKeyWordsQueueOA.setText(this.queuemanager.getCurrentOAKeyWord(ListEnum.QUEUE, Constants.oaMarker, Constants.oaKeyWordForDisplay)); + return; + } + case PICKS: + { + this.IHV_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, true)); + this.IHT_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, false)); + this.markedKeyWordsPicksGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, true)); + this.markedKeyWordsPicksRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, false)); + this.markedKeyWordsPicksOA.setText(this.queuemanager.getCurrentOAKeyWord(ListEnum.PICKS, Constants.oaMarker, Constants.oaKeyWordForDisplay)); + return; + } + } + return; + } + + private void configureElements() + { + + this.markedKeyWordsHBoxNopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxQueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxPicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsNopesGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsNopesRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsQueueGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsQueueRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsPicksGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsPicksRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsNopesOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsQueueOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsPicksOA.setTextFill(Color.rgb(160,32,240)); + + + this.markedKeyWordsNopesGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsNopesRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksGreen.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksRed.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsNopesOA.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsQueueOA.setStyle("-fx-font-weight: bold"); + this.markedKeyWordsPicksOA.setStyle("-fx-font-weight: bold"); + + + Region regionKeyWordsNopes = new Region(); + Region regionKeyWordsQueue = new Region(); + Region regionKeyWordsPicks = new Region(); + + Region regionKeyWordsNopes2 = new Region(); + Region regionKeyWordsQueue2 = new Region(); + Region regionKeyWordsPicks2 = new Region(); + + HBox.setHgrow(regionKeyWordsNopes, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsNopes2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks2, Priority.ALWAYS); + + + + this.IHV_Image = GetButtonPics.getButtonImage_IHV(); + this.IHT_Image = GetButtonPics.getButtonImage_IHT(); + + this.IHV_ImageViewNopes = new ImageView(this.IHV_Image); + this.IHT_ImageViewNopes = new ImageView(this.IHT_Image); + this. IHV_ImageViewQueue = new ImageView(this.IHV_Image); + this. IHT_ImageViewQueue = new ImageView(this.IHT_Image); + this. IHV_ImageViewPicks = new ImageView(this.IHV_Image); + this. IHT_ImageViewPicks = new ImageView(this.IHT_Image); + this.IHV_ImageViewNopes.setPreserveRatio(true); + this.IHT_ImageViewNopes.setPreserveRatio(true); + this.IHV_ImageViewQueue.setPreserveRatio(true); + this.IHT_ImageViewQueue.setPreserveRatio(true); + this.IHV_ImageViewPicks.setPreserveRatio(true); + this.IHT_ImageViewPicks.setPreserveRatio(true); + + this.IHV_ButtonNopes= new Button(); + this.IHT_ButtonNopes= new Button(); + this.IHV_ButtonQueue= new Button(); + this.IHT_ButtonQueue= new Button(); + this.IHV_ButtonPicks= new Button(); + this.IHT_ButtonPicks= new Button(); + this.IHV_ButtonNopes.setGraphic(this.IHV_ImageViewNopes); + this.IHT_ButtonNopes.setGraphic(this.IHT_ImageViewNopes); + this.IHV_ButtonQueue.setGraphic(this.IHV_ImageViewQueue); + this.IHT_ButtonQueue.setGraphic(this.IHT_ImageViewQueue); + this.IHV_ButtonPicks.setGraphic(this.IHV_ImageViewPicks); + this.IHT_ButtonPicks.setGraphic(this.IHT_ImageViewPicks); + int imageViewWidth = 18; + this.IHV_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setVisible(false); + this.IHT_ButtonNopes.setVisible(false); + this.IHV_ButtonQueue.setVisible(false); + this.IHT_ButtonQueue.setVisible(false); + this.IHV_ButtonPicks.setVisible(false); + this.IHT_ButtonPicks.setVisible(false); + + + + + + this.IHV_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHT_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHV_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHT_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHV_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHT_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHV_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHT_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHV_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHT_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHV_ImageViewPicks.setFitHeight(imageViewWidth); + this.IHT_ImageViewPicks.setFitHeight(imageViewWidth); + + + this.markedKeyWordsHBoxNopes.getChildren().addAll(IHV_ButtonNopes, new Label(" "), IHT_ButtonNopes, new Label(" "), this.markedKeyWordsNopesGreen, regionKeyWordsNopes, markedKeyWordsNopesOA, regionKeyWordsNopes2, this.markedKeyWordsNopesRed); + this.markedKeyWordsHBoxQueue.getChildren().addAll(IHV_ButtonQueue, new Label(" "), IHT_ButtonQueue,new Label(" "), this.markedKeyWordsQueueGreen, regionKeyWordsQueue, markedKeyWordsQueueOA, regionKeyWordsQueue2, this.markedKeyWordsQueueRed); + this.markedKeyWordsHBoxPicks.getChildren().addAll(IHV_ButtonPicks, new Label(" "), IHT_ButtonPicks,new Label(" "), this.markedKeyWordsPicksGreen, regionKeyWordsPicks, markedKeyWordsPicksOA, regionKeyWordsPicks2, this.markedKeyWordsPicksRed); + + + + + this.orderTab.setClosable(false); + this.currentsqueue.setEditable(false); + this.currentspicks.setEditable(false); + this.currentsnopes.setEditable(false); + + this.currentsqueue.setVisible(false); + this.currentspicks.setVisible(false); + this.currentsnopes.setVisible(false); + + this.currentsqueue.setWrapText(true); + this.currentspicks.setWrapText(true); + this.currentsnopes.setWrapText(true); + + this.currentsqueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentspicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsnopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsqueue.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentspicks.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentsnopes.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + + this.currentsqueue.setMinHeight(200); + this.currentspicks.setMinHeight(200); + this.currentsnopes.setMinHeight(200); + + + this.currentspicks.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.PICKS); + + } + }); + + this.currentsqueue.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.QUEUE); + } + }); + + this.currentsnopes.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.NOPES); + } + }); + + + this.textA1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + + this.progressBar.setMinHeight(15); + this.progressBar.setMinWidth(100); + + this.ButtonImage_ctrl = GetButtonPics.getButtonImage_ctrl(); + this.ButtonImage_space = GetButtonPics.getButtonImage_space(); + this.ButtonImage_shift = GetButtonPics.getButtonImage_shift(); + this.ButtonImage_F1 = GetButtonPics.getButtonImage_F1(); + this.ButtonImage_F2 = GetButtonPics.getButtonImage_F2(); + this.ButtonImage_F3 = GetButtonPics.getButtonImage_F3(); + this.ButtonImage_F4 = GetButtonPics.getButtonImage_F4(); + this.ButtonImage_F5 = GetButtonPics.getButtonImage_F5(); + this.ButtonImage_F6 = GetButtonPics.getButtonImage_F6(); + this.ButtonImage_F7 = GetButtonPics.getButtonImage_F7(); + this.ButtonImage_enter = GetButtonPics.getButtonImage_enter(); + this.ButtonImage_arrowRight = GetButtonPics.getButtonImage_arrowRight(); + this.ButtonImage_verticalLine = GetButtonPics.getButtonImage_verticalLine(); + this.ButtonImage_closedEye = GetButtonPics.getButtonImage_closedEye(); + this.ButtonImage_backspace = GetButtonPics.getButtonImage_backspace(); + this.QuestionMarkImage = GetButtonPics.getButtonImage_QuestionMark(); + this.ButtonImage_alt = GetButtonPics.getButtonImage_Alt(); + + + + this.textA1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsnopes.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsqueue.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentspicks.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + + + //this.textA1.setTextOverrun(OverrunStyle.CLIP); + this.textA2.setTextOverrun(OverrunStyle.CLIP); + this.textA3.setTextOverrun(OverrunStyle.CLIP); + this.textA4.setTextOverrun(OverrunStyle.CLIP); + this.textA5.setTextOverrun(OverrunStyle.CLIP); + this.textA6.setTextOverrun(OverrunStyle.CLIP); + this.textA7.setTextOverrun(OverrunStyle.CLIP); + this.textA8.setTextOverrun(OverrunStyle.CLIP); + this.textA9.setTextOverrun(OverrunStyle.CLIP); + this.textA10.setTextOverrun(OverrunStyle.CLIP); + this.textB1.setTextOverrun(OverrunStyle.CLIP); + this.textB2.setTextOverrun(OverrunStyle.CLIP); + this.textB3.setTextOverrun(OverrunStyle.CLIP); + this.textB4.setTextOverrun(OverrunStyle.CLIP); + this.textB5.setTextOverrun(OverrunStyle.CLIP); + this.textB6.setTextOverrun(OverrunStyle.CLIP); + this.textB7.setTextOverrun(OverrunStyle.CLIP); + this.textB8.setTextOverrun(OverrunStyle.CLIP); + this.textB9.setTextOverrun(OverrunStyle.CLIP); + this.textB10.setTextOverrun(OverrunStyle.CLIP); + this.textC1.setTextOverrun(OverrunStyle.CLIP); + this.textC2.setTextOverrun(OverrunStyle.CLIP); + this.textC3.setTextOverrun(OverrunStyle.CLIP); + this.textC4.setTextOverrun(OverrunStyle.CLIP); + this.textC5.setTextOverrun(OverrunStyle.CLIP); + this.textC6.setTextOverrun(OverrunStyle.CLIP); + this.textC7.setTextOverrun(OverrunStyle.CLIP); + this.textC8.setTextOverrun(OverrunStyle.CLIP); + this.textC9.setTextOverrun(OverrunStyle.CLIP); + this.textC10.setTextOverrun(OverrunStyle.CLIP); + this.textD1.setTextOverrun(OverrunStyle.CLIP); + this.textD2.setTextOverrun(OverrunStyle.CLIP); + this.textD3.setTextOverrun(OverrunStyle.CLIP); + this.textD4.setTextOverrun(OverrunStyle.CLIP); + this.textD5.setTextOverrun(OverrunStyle.CLIP); + this.textD6.setTextOverrun(OverrunStyle.CLIP); + this.textD7.setTextOverrun(OverrunStyle.CLIP); + this.textD8.setTextOverrun(OverrunStyle.CLIP); + this.textD9.setTextOverrun(OverrunStyle.CLIP); + this.textD10.setTextOverrun(OverrunStyle.CLIP); + this.textE1.setTextOverrun(OverrunStyle.CLIP); + this.textE2.setTextOverrun(OverrunStyle.CLIP); + this.textE3.setTextOverrun(OverrunStyle.CLIP); + this.textE4.setTextOverrun(OverrunStyle.CLIP); + this.textE5.setTextOverrun(OverrunStyle.CLIP); + this.textE6.setTextOverrun(OverrunStyle.CLIP); + this.textE7.setTextOverrun(OverrunStyle.CLIP); + this.textE8.setTextOverrun(OverrunStyle.CLIP); + this.textE9.setTextOverrun(OverrunStyle.CLIP); + this.textE10.setTextOverrun(OverrunStyle.CLIP); + this.textF1.setTextOverrun(OverrunStyle.CLIP); + this.textF2.setTextOverrun(OverrunStyle.CLIP); + this.textF3.setTextOverrun(OverrunStyle.CLIP); + this.textF4.setTextOverrun(OverrunStyle.CLIP); + this.textF5.setTextOverrun(OverrunStyle.CLIP); + this.textF6.setTextOverrun(OverrunStyle.CLIP); + this.textF7.setTextOverrun(OverrunStyle.CLIP); + this.textF8.setTextOverrun(OverrunStyle.CLIP); + this.textF9.setTextOverrun(OverrunStyle.CLIP); + this.textF10.setTextOverrun(OverrunStyle.CLIP); + + + + this.progressText = new Text(""); + if (!(this.ButtonImage_ctrl == null || + this.ButtonImage_space == null || + this.ButtonImage_shift == null || + this.ButtonImage_F1 == null || + this.ButtonImage_F2 == null || + this.ButtonImage_F3 == null || + this.ButtonImage_F4 == null || + this.ButtonImage_F5 == null || + this.ButtonImage_F6 == null || + this.ButtonImage_F7 == null || + this.ButtonImage_enter == null || + this.ButtonImage_arrowRight == null || + this.ButtonImage_verticalLine == null || + this.ButtonImage_closedEye == null || + this.ButtonImage_backspace == null) || + this.QuestionMarkImage == null || + this.ButtonImage_alt == null) + { + buildShortcutHBox(); + } + + + + shortCutHBox.setAlignment(Pos.CENTER_LEFT); + + HBox.setMargin(this.progressBar, new Insets(0,10,0,0)); + + + this.formersleftVBox.setMaxWidth(200); + this.formersmiddleVBox.setMaxWidth(200); + this.formersrightVBox.setMaxWidth(200); + this.nextsleftVBox.setMaxWidth(200); + this.nextsmiddleVBox.setMaxWidth(200); + this.nextsrightVBox.setMaxWidth(200); + + //labels instead of textareas: + this.gridpaneLower.setHgap(10); + this.gridpaneLower.setVgap(10); + this.gridpaneLower.setPadding(new Insets(0,10,10,10)); + this.gridpaneLower.add(this.formersleftVBox, 0, 1); + this.gridpaneLower.add(this.formersmiddleVBox, 1, 1); + this.gridpaneLower.add(this.formersrightVBox, 2, 1); + this.gridpaneLower.add(this.markedKeyWordsHBoxNopes, 0, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxQueue, 1, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxPicks , 2, 2); + this.gridpaneLower.add(this.currentsnopes, 0, 3); + this.gridpaneLower.add(this.currentsqueue, 1, 3); + this.gridpaneLower.add(this.currentspicks, 2, 3); + this.gridpaneLower.add(this.nextsleftVBox, 0, 4); + this.gridpaneLower.add(this.nextsmiddleVBox, 1, 4); + this.gridpaneLower.add(this.nextsrightVBox, 2, 4); + + + + ScrollPane scrollPane = new ScrollPane(); + scrollPane.setFitToHeight(true); + scrollPane.setFitToWidth(true); + ScrollPane scrollPane2 = new ScrollPane(); + scrollPane.setContent(this.shortCutHBox); + scrollPane2.setContent(this.gridpaneLower); + + scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a vertical ScrollBar + scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a hor ScrollBar + scrollPane.setFitToWidth(true); // set content width to viewport width + scrollPane.setPannable(true); // allow scrolling via mouse dragging + + scrollPane2.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); + scrollPane2.setFitToWidth(true); // set content width to viewport width + scrollPane2.setPannable(true); // allow scrolling via mouse dragging + + this.orderTab.setContent(new VBox(scrollPane, scrollPane2)); + HBox.setHgrow(gridpaneLower, Priority.ALWAYS); + + } + + private void buildShortcutHBox() + { + Region regionMiddle = new Region(); + HBox.setHgrow(regionMiddle, Priority.ALWAYS); + + this.helpButton.setGraphic(GetButtonPics.turnPicIntoImageView(QuestionMarkImage)); + + this.IHT_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.helpButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Kurzeinführung:"); + alert.setHeaderText(null); + alert.setContentText(Constants.Kurzeinfuehrung_orderMode); + alert.initStyle(StageStyle.UTILITY); + + alert.showAndWait(); + } + }); + + this.shortCutHBox.getChildren().addAll( + + new Text(" "),GetButtonPics.turnPicIntoImageView(this.ButtonImage_F1),new Text(" bis "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_F4), Constants.ShortCutDescription_titelsuche, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltsverzeichnis,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift), GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltstext,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_backspace), Constants.ShortCutDescription_rueckgaengig, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_F5), Constants.ShortCutDescription_copyISBNToClipboard,GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_F6), Constants.ShortCutDescription_hinweisHinzufuegen,GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_F7), Constants.ShortCutDescription_BestellendePersonAendern, + regionMiddle, this.progressTextDB, new Text(" "), this.progressText, new Text(" "), this.progressBar, new Text(" "), this.helpButton, new Text(" ") + ); + } + + private void updateProgressText(String text) + { + this.progressText.setText(text); + } + + private void updateProgressTextDB(String text) + { + this.progressTextDB.setText(" Offene Bestellungen lt. Datenbank: " + text + " | Offene Bestelldatensätze im Programm: "); + } + + private Region getRegionForFormattedTitle(ListEnum listEnum) + { + switch (listEnum) + { + case NOPES: + { + return ( Region )this.currentsnopes.lookup(".content"); + } + case QUEUE: + { + return ( Region )this.currentsqueue.lookup(".content"); + } + case PICKS: + { + return ( Region )this.currentspicks.lookup(".content"); + } + } + return null; + } + + private void updateFormattedTitle(ListEnum listEnum) + { + Region region = getRegionForFormattedTitle(listEnum); + if (region != null) + //region.setBackground(null); + this.markedKeyWordsPicksGreen.setText(""); + this.markedKeyWordsPicksRed.setText(""); + this.markedKeyWordsPicksOA.setText(""); + try { + updateKeyWords(listEnum); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + + + } + + public void adjustFontSizeTaller() + { + this.fontSize ++; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + public void adjustFontSizeSmaller() + { + this.fontSize --; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + private void configureEventsGeneral() { + + this.primaryStage.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + //this.nextsleftVBox.setBackground(null); + if (keyEvent.getCode() == KeyCode.ADD || keyEvent.getCode() == KeyCode.PLUS) + { + adjustFontSizeTaller(); + } + if (keyEvent.getCode() == KeyCode.SUBTRACT || keyEvent.getCode() == KeyCode.MINUS) + { + adjustFontSizeSmaller(); + } + + }); + + + this.currentsqueue.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + } + }); + + this.currentsnopes.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + //nextsleftVBox.setBackground(null); + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + //nextsleftVBox.setBackground(null); + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + } + }); + + this.currentspicks.setOnScroll(new EventHandler() { + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } + } + }); + } + + + private void configureEventsQueue() { + this.currentsqueue.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + // this.nextsleftVBox.setBackground(null); + + + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.QUEUE, true)), null); + } + if (keyEvent.getCode() == KeyCode.F6) + { + queuemanager.startDialogueForAltFlag(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + + if (keyEvent.getCode() == KeyCode.F7) + { + String ordererString = queuemanager.startDialogueForOrdererList(); + if (ordererString != null && !ordererString.isBlank()) + { + queuemanager.changeOrderer(ListEnum.QUEUE, ordererString); + } + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + + + if (keyEvent.getCode() == KeyCode.SPACE) + { + + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + } + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + + + if (keyEvent.getCode() == KeyCode.RIGHT) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.PICKS, true, false, Constants.statusOrderDone, false); + this.lastAction = 2; + + DataBaseHandler databasehandler = new DataBaseHandler(); + + try { + String x = databasehandler.pickerSafetyDBgetAmountOfOpenOrders(); + System.out.println(x); + this.updateProgressTextDB(x); + + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, true, false, Constants.statusOrder, false); + this.lastAction = 1; + + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + + } + if (keyEvent.getCode() == KeyCode.BACK_SPACE) + { + if (this.lastAction == 1) + { + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.QUEUE, false, true, Constants.statusOrderInProgress, true); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, true); + } + else if (this.lastAction == 2) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.QUEUE, false, true, Constants.statusOrderInProgress, false); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, true); + + } + this.lastAction = 0; + } + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + int counter = 0; + while (!this.propertyFileHandler.propertyFileModel.get_settings_API_CheckApiAfterImport().equals("true") && queuemanager.titleIsOwnedOrOpenAccess(ListEnum.QUEUE) && counter < 10) + { + counter ++; + if ((this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveHoldings().equals("true") && queuemanager.titleIsOwned(ListEnum.QUEUE)) + || (this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveOA().equals("true") && queuemanager.titleIsOpenAccess(ListEnum.QUEUE))) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, false, false, Constants.statusOrder, true); + this.lastAction = 1; + + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + + //this.nextsleftVBox.setBackground(new Background(new BackgroundFill(Color.rgb(255, 220, 220), new CornerRadii(5), Insets.EMPTY))); + } + } + + }); + + } + + private void configureEventsPicks() { + this.currentspicks.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + //this.nextsleftVBox.setBackground(null); + + if (keyEvent.getCode() == KeyCode.SPACE) + { + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + // + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.QUEUE, false, true, Constants.statusOrderInProgress, false); + queuemanager.resetFlag(); + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.NOPES, true, false, Constants.statusOrder, false); + queuemanager.resetFlag(); + updateQueues(true, false, true); + updateFormattedTitles(true, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.PICKS, true)), null); + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + + private void configureEventsNopes() { + this.currentsnopes.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + //this.nextsleftVBox.setBackground(null); + + + if (keyEvent.getCode() == KeyCode.SPACE) + { + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + DataBaseHandler databasehandler = new DataBaseHandler(); + + try { + String x = databasehandler.pickerSafetyDBgetAmountOfOpenOrders(); + System.out.println(x); + this.updateProgressTextDB(x); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.QUEUE, false, true, Constants.statusOrderInProgress, true); + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.PICKS, true, false, Constants.statusOrderDone, true); + updateQueues(true, false, true); + updateFormattedTitles(true, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + // + } + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F5) + { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents( + new StringSelection(queuemanager.getCurrentIsbn(ListEnum.NOPES, true)), null); + } + if (keyEvent.getCode() == KeyCode.F6) + { + queuemanager.startDialogueForAltFlag(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + + if (keyEvent.getCode() == KeyCode.F7) + { + String ordererString = queuemanager.startDialogueForOrdererList(); + if (ordererString != null && !ordererString.isBlank()) + { + queuemanager.changeOrderer(ListEnum.NOPES, ordererString); + } + updateQueues(false, true, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + public String getFontsize() + { + int number = (int) this.currentsqueue.getFont().getSize(); + return Integer.toString(number); + } + + public String getGridWidth() + { + Double number = this.currentsqueue.getWidth(); + return number.toString(); + } + + public String getGridHeight() + { + Double number = this.currentsqueue.getHeight(); + return number.toString(); + } + + private void changeGridWidhtAndHeightAccordingToPropertiesOrDefault() + { + + if (this.QueueWidth != 0) + { + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + if (this.QueueHeight != 0) + { + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + } + + public void changeGridI() + { + this.QueueWidth = this.currentsqueue.getWidth() - 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + + public void changeGridII() + { + + this.QueueHeight = this.currentsqueue.getHeight() - 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + + public void changeGridIII() + { + + this.QueueHeight = this.currentsqueue.getHeight() + 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + public void changeGridIV() + { + + this.QueueWidth = this.currentsqueue.getWidth() + 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } +} \ No newline at end of file diff --git a/src/userInterface_reiheAPicker/PickerTab.java b/src/userInterface_reiheAPicker/PickerTab.java new file mode 100644 index 0000000..2d24757 --- /dev/null +++ b/src/userInterface_reiheAPicker/PickerTab.java @@ -0,0 +1,2854 @@ +package userInterface_reiheAPicker; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.List; +import java.util.Optional; + +import javax.swing.GroupLayout.Alignment; + +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Alert; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.ProgressIndicator; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextInputDialog; +import javafx.scene.control.Tooltip; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Label; +import javafx.scene.control.OverrunStyle; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.scene.input.ScrollEvent; +import javafx.scene.layout.Background; +import javafx.scene.layout.BackgroundFill; +import javafx.scene.layout.CornerRadii; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Priority; +import javafx.scene.layout.Region; +import javafx.scene.layout.VBox; +import javafx.scene.paint.Color; +import javafx.scene.text.Font; +import javafx.scene.text.Text; +import javafx.stage.Stage; +import javafx.stage.StageStyle; +import logic_reiheAPicker.GetButtonPics; +import logic_reiheAPicker.ImportExportFileHandler; +import logic_reiheAPicker.PropertyFileHandler; +import logic_reiheAPicker.QueueManager; +import models_reiheAPicker.CustomTextAreaPickerTab; +import models_reiheAPicker.ListEnum; +import var_reiheAPicker.Constants; + +public class PickerTab { + + public Tab pickerTab; + + public GridPane gridpaneLower; + private PropertyFileHandler propertyFileHandler = PropertyFileHandler.getInstance(); + + public HBox currentsHBox; + public HBox nextsHBox; + public HBox formersHBox; + public HBox shortCutHBox; + private double QueueWidth; + private double QueueHeight; + + public Text progressText; + + public VBox currentsleftVBox; + public VBox currentsmiddleVBox; + public VBox currentsrightVBox; + public VBox formersleftVBox; + public VBox formersmiddleVBox; + public VBox formersrightVBox; + public VBox nextsleftVBox; + public VBox nextsmiddleVBox; + public VBox nextsrightVBox; + + public CustomTextAreaPickerTab currentspicks; + public CustomTextAreaPickerTab currentsqueue; + public CustomTextAreaPickerTab currentsnopes; + + public Label textA1; + public Label textA2; + public Label textA3; + public Label textA4; + public Label textA5; + public Label textA6; + public Label textA7; + public Label textA8; + public Label textA9; + public Label textA10; + + public Label textB1; + public Label textB2; + public Label textB3; + public Label textB4; + public Label textB5; + public Label textB6; + public Label textB7; + public Label textB8; + public Label textB9; + public Label textB10; + + public Label textC1; + public Label textC2; + public Label textC3; + public Label textC4; + public Label textC5; + public Label textC6; + public Label textC7; + public Label textC8; + public Label textC9; + public Label textC10; + + public Label textD1; + public Label textD2; + public Label textD3; + public Label textD4; + public Label textD5; + public Label textD6; + public Label textD7; + public Label textD8; + public Label textD9; + public Label textD10; + + public Label textE1; + public Label textE2; + public Label textE3; + public Label textE4; + public Label textE5; + public Label textE6; + public Label textE7; + public Label textE8; + public Label textE9; + public Label textE10; + + public Label textF1; + public Label textF2; + public Label textF3; + public Label textF4; + public Label textF5; + public Label textF6; + public Label textF7; + public Label textF8; + public Label textF9; + public Label textF10; + + public HBox markedKeyWordsHBoxNopes; + public HBox markedKeyWordsHBoxQueue; + public HBox markedKeyWordsHBoxPicks; + public Label markedKeyWordsNopesGreen; + public Label markedKeyWordsNopesRed; + public Label markedKeyWordsQueueGreen; + public Label markedKeyWordsQueueRed; + public Label markedKeyWordsPicksGreen; + public Label markedKeyWordsPicksRed; + public Label markedKeyWordsNopesOA; + public Label markedKeyWordsQueueOA; + public Label markedKeyWordsPicksOA; + + public Label pleaseWaitLabel = new Label("Titelliste wird auf Bestandsnachweise geprüft. Bitte warten."); + + Image ButtonImage_ctrl; + Image ButtonImage_space; + Image ButtonImage_shift; + Image ButtonImage_backspace; + Image ButtonImage_F1; + Image ButtonImage_F2; + Image ButtonImage_F3; + Image ButtonImage_F4; + Image ButtonImage_enter; + Image ButtonImage_arrowRight; + Image ButtonImage_arrowLeft; + Image ButtonImage_verticalLine; + Image ButtonImage_closedEye; + Image QuestionMarkImage; + Image ButtonImage_alt; + Image IHV_Image; + Image IHT_Image; + + ImageView IHV_ImageViewNopes; + ImageView IHT_ImageViewNopes; + ImageView IHV_ImageViewQueue; + ImageView IHT_ImageViewQueue; + ImageView IHV_ImageViewPicks; + ImageView IHT_ImageViewPicks; + Button IHV_ButtonNopes; + Button IHT_ButtonNopes; + Button IHV_ButtonQueue; + Button IHT_ButtonQueue; + Button IHV_ButtonPicks; + Button IHT_ButtonPicks; + Button keyWordMoverButton; + Button publisherAmountMoverButton; + + Button helpButton; + + Stage primaryStage; + public QueueManager queuemanager; + public int buildStage = -1; + + public ProgressBar progressBar; + + /* last action 0: none + * last action 1: swipeLeft + * last action 2: swipeRight + */ + private int lastAction = 0; + private int fontSize = 16; + + public PickerTab(Stage primaryStage) + { + + + + this.primaryStage = primaryStage; + + this.primaryStage.widthProperty().addListener((observable, oldValue, newValue) -> { + resizeEvent((double) newValue); + }); + this.primaryStage.heightProperty().addListener((observable, oldValue, newValue) -> { + resizeEvent((double) newValue); + }); + + + + this.pickerTab = new Tab(Constants.ChooserTabName); + this.pickerTab.setClosable(false); + this.buildStage = 0; + + } + + private void resizeEvent(double newValue) + { + /* + * proven to be stupid + */ + + + } + + private void updateQueueProgress(double number) + { + this.progressBar.setProgress(number); + } + + + + public void rebuild(List columnNames, List> ntitles, List> qtitles, List> ptitles) throws InterruptedException { + + + initiateElements(); + configureElements(); + this.buildStage = 1; + this.queuemanager = new QueueManager(columnNames, ntitles, qtitles, ptitles); + if (var_reiheAPicker.Constants.useChatGPTToCheck) + { + this.queuemanager.useChatGPTApiGetRecommendation(); + } + this.queuemanager.setNopeIteratorToLast(); + updateLists(); + configureEventsGeneral(); + configureEventsQueue(); + configureEventsPicks(); + configureEventsNopes(); + if (this.propertyFileHandler.propertyFileModel.get_settings_FontSize().length() > 0) + { + this.fontSize = Integer.parseInt(this.propertyFileHandler.propertyFileModel.get_settings_FontSize()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth().length() > 0) + { + this.QueueWidth = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight().length() > 0) + { + this.QueueHeight = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight()); + } + changeGridWidhtAndHeightAccordingToPropertiesOrDefault(); + this.QueueWidth = this.currentsqueue.getWidth(); + this.QueueHeight = this.currentsqueue.getHeight(); + + + + } + + + public void rebuild(List> titles, ProgressIndicator progressIndicator, Label progressLabel) throws InterruptedException { + + initiateElements(); + configureElements(); + this.buildStage = 1; + if (this.propertyFileHandler.propertyFileModel.get_settings_FontSize().length() > 0) + { + this.fontSize = Integer.parseInt(this.propertyFileHandler.propertyFileModel.get_settings_FontSize()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth().length() > 0) + { + this.QueueWidth = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxWidth()); + } + if (this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight().length() > 0) + { + this.QueueHeight = Double.parseDouble(this.propertyFileHandler.propertyFileModel.get_settings_QueueBoxHeight()); + } + changeGridWidhtAndHeightAccordingToPropertiesOrDefault(); + + + this.queuemanager = new QueueManager(titles, progressIndicator, progressLabel); + + + if (!propertyFileHandler.propertyFileModel.get_settings_API_link().isBlank() && + propertyFileHandler.propertyFileModel.get_settings_API_CheckApiAfterImport().equals("true")) + { + + + progressIndicator.progressProperty().addListener((observable, oldValue, newValue) -> { + if ((double) newValue >= (double) 1) + { + updateLists(); + pleaseWaitLabel.setVisible(false); + progressLabel.setVisible(false); + progressIndicator.setVisible(false); + } + }); + + + this.queuemanager.setNopeIteratorToLast(); + } else + { + this.queuemanager.setNopeIteratorToLast(); + updateLists(); + } + configureEventsGeneral(); + configureEventsQueue(); + configureEventsPicks(); + configureEventsNopes(); + + } + + public void updateFormattedTitles(boolean updatenopes, String altNopeTitle, boolean updatequeue, String altQueueTitle, boolean updatepicks, String altPickTitle, boolean updateApi) + { + if (updatenopes) + { + if (altNopeTitle != null) + { + this.currentsnopes.setText(altNopeTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsnopes.setText(queuemanager.fetchFormattedTitle(ListEnum.NOPES, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } + + if (queuemanager.listNullOrEmpty(ListEnum.NOPES)) + { + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } else if(queuemanager.titleIsOwnedOrOpenAccess(ListEnum.NOPES)) + { + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFDCDC;"); + + } else if(!queuemanager.titleIsOwnedOrOpenAccess(ListEnum.NOPES) && !queuemanager.titleApiCouldNotBeAccessed(ListEnum.NOPES)) + { + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #DCFFDC;"); + + } else + { + currentsnopes.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } + + } + if (updatequeue) + { + if (altQueueTitle != null) + { + this.currentsqueue.setText(altQueueTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentsqueue.setText(queuemanager.fetchFormattedTitle(ListEnum.QUEUE, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } + + if (queuemanager.listNullOrEmpty(ListEnum.QUEUE)) + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } else if(queuemanager.titleIsOwnedOrOpenAccess(ListEnum.QUEUE)) + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFDCDC;"); + + } else if(!queuemanager.titleIsOwnedOrOpenAccess(ListEnum.QUEUE) && !queuemanager.titleApiCouldNotBeAccessed(ListEnum.QUEUE)) + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #DCFFDC;"); + + } else + { + currentsqueue.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } + + } + if (updatepicks) + { + if (altPickTitle != null) + { + this.currentspicks.setText(altPickTitle + ": " + queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } else + { + this.currentspicks.setText(queuemanager.fetchFormattedTitle(ListEnum.PICKS, updateApi, this.propertyFileHandler.propertyFileModel.get_settings_FieldDisplaySettings())); + } + + if (queuemanager.listNullOrEmpty(ListEnum.PICKS)) + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } else if(queuemanager.titleIsOwnedOrOpenAccess(ListEnum.PICKS)) + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFDCDC;"); + + } else if(!queuemanager.titleIsOwnedOrOpenAccess(ListEnum.PICKS) && !queuemanager.titleApiCouldNotBeAccessed(ListEnum.PICKS)) + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #DCFFDC;"); + + } else + { + currentspicks.setStyle("-fx-font-weight: bold; -fx-font-family: '" + Constants.MonospaceFont + "'; -fx-font-size: " + this.fontSize + "; -fx-control-inner-background: #FFFFFF;"); + } + } + + } + + private void updateLists() + { + + this.currentsqueue.setVisible(true); + this.currentspicks.setVisible(true); + this.currentsnopes.setVisible(true); + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, false, null, true); + + updateFormattedTitle(ListEnum.NOPES); + updateFormattedTitle(ListEnum.QUEUE); + } + + public void resetformersleft() + { + this.textA1.setText(" "); + this.textA2.setText(" "); + this.textA3.setText(" "); + this.textA4.setText(" "); + this.textA5.setText(" "); + this.textA6.setText(" "); + this.textA7.setText(" "); + this.textA8.setText(" "); + this.textA9.setText(" "); + this.textA10.setText(" "); + } + + public void resetformersmiddle() + { + this.textB1.setText(" "); + this.textB2.setText(" "); + this.textB3.setText(" "); + this.textB4.setText(" "); + this.textB5.setText(" "); + this.textB6.setText(" "); + this.textB7.setText(" "); + this.textB8.setText(" "); + this.textB9.setText(" "); + this.textB10.setText(" "); + } + + public void resetformersright() + { + this.textC1.setText(" "); + this.textC2.setText(" "); + this.textC3.setText(" "); + this.textC4.setText(" "); + this.textC5.setText(" "); + this.textC6.setText(" "); + this.textC7.setText(" "); + this.textC8.setText(" "); + this.textC9.setText(" "); + this.textC10.setText(" "); + } + + public void resetnextsleft() + { + this.textD1.setText(" "); + this.textD2.setText(" "); + this.textD3.setText(" "); + this.textD4.setText(" "); + this.textD5.setText(" "); + this.textD6.setText(" "); + this.textD7.setText(" "); + this.textD8.setText(" "); + this.textD9.setText(" "); + this.textD10.setText(" "); + } + + public void resetnextsmiddle() + { + this.textE1.setText(" "); + this.textE2.setText(" "); + this.textE3.setText(" "); + this.textE4.setText(" "); + this.textE5.setText(" "); + this.textE6.setText(" "); + this.textE7.setText(" "); + this.textE8.setText(" "); + this.textE9.setText(" "); + this.textE10.setText(" "); + } + + public void resetnextsrightt() + { + this.textF1.setText(" "); + this.textF2.setText(" "); + this.textF3.setText(" "); + this.textF4.setText(" "); + this.textF5.setText(" "); + this.textF6.setText(" "); + this.textF7.setText(" "); + this.textF8.setText(" "); + this.textF9.setText(" "); + this.textF10.setText(" "); + } + + public String shortenShortTitleString(String title) + { + + + String titleShort = title.split(" : ")[0]; + if (titleShort.length() > 60) + { + titleShort = titleShort.substring(0, 59); + } + + //return titleShort; + return title; + } + + public void updateQueues(boolean updateNopes, boolean updateQueue, boolean updatePicks) + { + + List> formersleft; + List> formersright; + List> formersmiddle; + List> nextsleft; + List> nextsright; + List> nextsmiddle; + + if (updateNopes) + { + formersleft = queuemanager.get10Formers(ListEnum.NOPES); + nextsleft = queuemanager.get10Nexts(ListEnum.NOPES); + if (formersleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersleft.size()-1) + { + this.textA10.setText(" "); + } else + { + this.textA10.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersleft.size()-1) + { + this.textA9.setText(" "); + } else + { + this.textA9.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersleft.size()-1) + { + this.textA8.setText(" "); + } else + { + this.textA8.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersleft.size()-1) + { + this.textA7.setText(" "); + } else + { + this.textA7.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersleft.size()-1) + { + this.textA6.setText(" "); + } else + { + this.textA6.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersleft.size()-1) + { + this.textA5.setText(" "); + } else + { + this.textA5.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersleft.size()-1) + { + this.textA4.setText(" "); + } else + { + this.textA4.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersleft.size()-1) + { + this.textA3.setText(" "); + } else + { + this.textA3.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersleft.size()-1) + { + this.textA2.setText(" "); + break; + } else + { + this.textA2.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersleft.size()-1) + { + this.textA1.setText(" "); + break; + } else + { + this.textA1.setText(queuemanager.nopeTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersleft.get(formersleft.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersleft(); + + if (nextsleft != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsleft.size()-1) + { + this.textD1.setText(" "); + } else + { + this.textD1.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsleft.size()-1) + { + this.textD2.setText(" "); + } else + { + this.textD2.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsleft.size()-1) + { + this.textD3.setText(" "); + } else + { + this.textD3.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsleft.size()-1) + { + this.textD4.setText(" "); + } else + { + this.textD4.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsleft.size()-1) + { + this.textD5.setText(" "); + } else + { + this.textD5.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsleft.size()-1) + { + this.textD6.setText(" "); + } else + { + this.textD6.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsleft.size()-1) + { + this.textD7.setText(" "); + } else + { + this.textD7.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsleft.size()-1) + { + this.textD8.setText(" "); + } else + { + this.textD8.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsleft.size()-1) + { + this.textD9.setText(" "); + break; + } else + { + this.textD9.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsleft.size()-1) + { + this.textD10.setText(" "); + break; + } else + { + this.textD10.setText(queuemanager.nopeTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsleft.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsleft(); + } + + if (updateQueue) + { + formersmiddle = queuemanager.get10Formers(ListEnum.QUEUE); + nextsmiddle = queuemanager.get10Nexts(ListEnum.QUEUE); + if (formersmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersmiddle.size()-1) + { + this.textB10.setText(" "); + } else + { + this.textB10.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersmiddle.size()-1) + { + this.textB9.setText(" "); + } else + { + this.textB9.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersmiddle.size()-1) + { + this.textB8.setText(" "); + } else + { + this.textB8.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersmiddle.size()-1) + { + this.textB7.setText(" "); + } else + { + this.textB7.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersmiddle.size()-1) + { + this.textB6.setText(" "); + } else + { + this.textB6.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersmiddle.size()-1) + { + this.textB5.setText(" "); + } else + { + this.textB5.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersmiddle.size()-1) + { + this.textB4.setText(" "); + } else + { + this.textB4.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersmiddle.size()-1) + { + this.textB3.setText(" "); + } else + { + this.textB3.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersmiddle.size()-1) + { + this.textB2.setText(" "); + break; + } else + { + this.textB2.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersmiddle.size()-1) + { + this.textB1.setText(" "); + break; + } else + { + this.textB1.setText(queuemanager.queueTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersmiddle.get(formersmiddle.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersmiddle(); + + if (nextsmiddle != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsmiddle.size()-1) + { + this.textE1.setText(" "); + } else + { + this.textE1.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsmiddle.size()-1) + { + this.textE2.setText(" "); + } else + { + this.textE2.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsmiddle.size()-1) + { + this.textE3.setText(" "); + } else + { + this.textE3.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsmiddle.size()-1) + { + this.textE4.setText(" "); + } else + { + this.textE4.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsmiddle.size()-1) + { + this.textE5.setText(" "); + } else + { + this.textE5.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsmiddle.size()-1) + { + this.textE6.setText(" "); + } else + { + this.textE6.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsmiddle.size()-1) + { + this.textE7.setText(" "); + } else + { + this.textE7.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsmiddle.size()-1) + { + this.textE8.setText(" "); + } else + { + this.textE8.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsmiddle.size()-1) + { + this.textE9.setText(" "); + break; + } else + { + this.textE9.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsmiddle.size()-1) + { + this.textE10.setText(" "); + break; + } else + { + this.textE10.setText(queuemanager.queueTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsmiddle.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsmiddle(); + } + + if (updatePicks) + { //formers + formersright = queuemanager.get10Formers(ListEnum.PICKS); + nextsright = queuemanager.get10Nexts(ListEnum.PICKS); + + if (formersright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > formersright.size()-1) + { + this.textC10.setText(" "); + } else + { + this.textC10.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 1: + { + if (counter > formersright.size()-1) + { + this.textC9.setText(" "); + } else + { + this.textC9.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 2: + { + if (counter > formersright.size()-1) + { + this.textC8.setText(" "); + } else + { + this.textC8.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 3: + { + if (counter > formersright.size()-1) + { + this.textC7.setText(" "); + } else + { + this.textC7.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 4: + { + if (counter > formersright.size()-1) + { + this.textC6.setText(" "); + } else + { + this.textC6.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 5: + { + if (counter > formersright.size()-1) + { + this.textC5.setText(" "); + } else + { + this.textC5.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 6: + { + if (counter > formersright.size()-1) + { + this.textC4.setText(" "); + } else + { + this.textC4.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 7: + { + if (counter > formersright.size()-1) + { + this.textC3.setText(" "); + } else + { + this.textC3.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 8: + { + if (counter > formersright.size()-1) + { + this.textC2.setText(" "); + break; + } else + { + this.textC2.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + case 9: + { + if (counter > formersright.size()-1) + { + this.textC1.setText(" "); + break; + } else + { + this.textC1.setText(queuemanager.pickTitlescurrentIteration - counter + " - " + shortenShortTitleString(formersright.get(formersright.size()-1-counter).get(0))); + break; + } + } + } + } + } else resetformersright(); + + //nexts + if (nextsright != null) + { + for (int counter = 0; counter <= 9; counter ++) + { + switch (counter) + { + case 0: + { + if (counter > nextsright.size()-1) + { + this.textF1.setText(" "); + } else + { + this.textF1.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 1: + { + if (counter > nextsright.size()-1) + { + this.textF2.setText(" "); + } else + { + this.textF2.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 2: + { + if (counter > nextsright.size()-1) + { + this.textF3.setText(" "); + } else + { + this.textF3.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 3: + { + if (counter > nextsright.size()-1) + { + this.textF4.setText(" "); + } else + { + this.textF4.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 4: + { + if (counter > nextsright.size()-1) + { + this.textF5.setText(" "); + } else + { + this.textF5.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 5: + { + if (counter > nextsright.size()-1) + { + this.textF6.setText(" "); + } else + { + this.textF6.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 6: + { + if (counter > nextsright.size()-1) + { + this.textF7.setText(" "); + } else + { + this.textF7.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 7: + { + if (counter > nextsright.size()-1) + { + this.textF8.setText(" "); + } else + { + this.textF8.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 8: + { + if (counter > nextsright.size()-1) + { + this.textF9.setText(" "); + break; + } else + { + this.textF9.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + case 9: + { + if (counter > nextsright.size()-1) + { + this.textF10.setText(" "); + break; + } else + { + this.textF10.setText(queuemanager.pickTitlescurrentIteration + 2 + counter + " - " + shortenShortTitleString(nextsright.get(counter).get(0))); + break; + } + } + } + } + } else resetnextsrightt(); + } + + + + + + + + + + + + + + + + + + + + } + + private void exportQueue(QueueManager queuemanager) + { + if (queuemanager.isExportFolderValid()) + { + ImportExportFileHandler importExportFileHandler = new ImportExportFileHandler(); + + queuemanager.exportPicks(); + try { + importExportFileHandler.openExportFileFolder(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Warnung"); + alert.setHeaderText("Kein gültiger Exportpfad angegeben. Ihre Daten wurden noch nicht gespeichert."); + alert.setContentText("Bitte gehen Sie zu den Importeinstellungen und überprüfen Sie Ihre Eingaben!"); + + alert.showAndWait(); + } + } + + private void initiateElements() + { + this.pickerTab = new Tab(Constants.ChooserTabName); + + this.currentsqueue = new CustomTextAreaPickerTab(ListEnum.QUEUE); + this.currentspicks = new CustomTextAreaPickerTab(ListEnum.PICKS); + this.currentsnopes = new CustomTextAreaPickerTab(ListEnum.NOPES); + + this.progressBar = new ProgressBar(0.1); + + this.gridpaneLower = new GridPane(); + this.progressText = new Text(); + + this.currentsHBox = new HBox(); + this.nextsHBox = new HBox(); + this.formersHBox = new HBox(); + this.shortCutHBox = new HBox(); + + this.currentsleftVBox = new VBox(200, this.currentsnopes); + this.currentsmiddleVBox = new VBox(200, this.currentsqueue); + this.currentsrightVBox = new VBox(200, this.currentspicks); + + this.helpButton = new Button(); + Tooltip helpTooltip = new Tooltip(); + helpTooltip.setText("Kurzeinführung"); + helpButton.setTooltip(helpTooltip); + + this.keyWordMoverButton = new Button(); + this.publisherAmountMoverButton = new Button(); + Tooltip keyWordMoverTooltip = new Tooltip("Titel anhand eines Schlüsselwortes nach rechts verschieben (Vorauswahl)"); + Tooltip publisherAmountMoverTooltip = new Tooltip("Titel anhand eines Schwellenwertes (minimale Anzahl an Titel des Verlages in den letzten drei Jahren) nach links verschieben"); + this.keyWordMoverButton.setText(null); + this.publisherAmountMoverButton.setText(null); + this.keyWordMoverButton.setTooltip(keyWordMoverTooltip); + this.publisherAmountMoverButton.setTooltip(publisherAmountMoverTooltip); + + this.textA1 = new Label(""); + this.textA2 = new Label(""); + this.textA3 = new Label(""); + this.textA4 = new Label(""); + this.textA5 = new Label(""); + this.textA6 = new Label(""); + this.textA7 = new Label(""); + this.textA8 = new Label(""); + this.textA9 = new Label(""); + this.textA10 = new Label(""); + this.formersleftVBox = new VBox(5, this.textA1, this.textA2, this.textA3, this.textA4, this.textA5, this.textA6, this.textA7, this.textA8, this.textA9, this.textA10); + + this.textB1 = new Label(" "); + this.textB2 = new Label(" "); + this.textB3 = new Label(" "); + this.textB4 = new Label(" "); + this.textB5 = new Label(" "); + this.textB6 = new Label(" "); + this.textB7 = new Label(" "); + this.textB8 = new Label(" "); + this.textB9 = new Label(" "); + this.textB10 = new Label(" "); + this.formersmiddleVBox = new VBox(5, this.textB1, this.textB2, this.textB3, this.textB4, this.textB5, this.textB6, this.textB7, this.textB8, this.textB9, this.textB10); + + this.textC1 = new Label(" "); + this.textC2 = new Label(" "); + this.textC3 = new Label(" "); + this.textC4 = new Label(" "); + this.textC5 = new Label(" "); + this.textC6 = new Label(" "); + this.textC7 = new Label(" "); + this.textC8 = new Label(" "); + this.textC9 = new Label(" "); + this.textC10 = new Label(" "); + this.formersrightVBox = new VBox(5, this.textC1, this.textC2, this.textC3, this.textC4, this.textC5, this.textC6, this.textC7, this.textC8, this.textC9, this.textC10); + + this.textD1 = new Label(" "); + this.textD2 = new Label(" "); + this.textD3 = new Label(" "); + this.textD4 = new Label(" "); + this.textD5 = new Label(" "); + this.textD6 = new Label(" "); + this.textD7 = new Label(" "); + this.textD8 = new Label(" "); + this.textD9 = new Label(" "); + this.textD10 = new Label(" "); + this.nextsleftVBox = new VBox(5, this.textD1, this.textD2, this.textD3, this.textD4, this.textD5, this.textD6, this.textD7, this.textD8, this.textD9, this.textD10); + + this.textE1 = new Label(" "); + this.textE2 = new Label(" "); + this.textE3 = new Label(" "); + this.textE4 = new Label(" "); + this.textE5 = new Label(" "); + this.textE6 = new Label(" "); + this.textE7 = new Label(" "); + this.textE8 = new Label(" "); + this.textE9 = new Label(" "); + this.textE10 = new Label(" "); + this.nextsmiddleVBox = new VBox(5, this.textE1, this.textE2, this.textE3, this.textE4, this.textE5, this.textE6, this.textE7, this.textE8, this.textE9, this.textE10); + + this.textF1 = new Label(" "); + this.textF2 = new Label(" "); + this.textF3 = new Label(" "); + this.textF4 = new Label(" "); + this.textF5 = new Label(" "); + this.textF6 = new Label(" "); + this.textF7 = new Label(" "); + this.textF8 = new Label(" "); + this.textF9 = new Label(" "); + this.textF10 = new Label(" "); + this.nextsrightVBox = new VBox(5, this.textF1, this.textF2, this.textF3, this.textF4, this.textF5, this.textF6, this.textF7, this.textF8, this.textF9, this.textF10); + + this.markedKeyWordsHBoxNopes = new HBox(); + this. markedKeyWordsHBoxQueue = new HBox(); + this.markedKeyWordsHBoxPicks = new HBox(); + this.markedKeyWordsNopesGreen = new Label(); + this.markedKeyWordsNopesRed = new Label(); + this.markedKeyWordsQueueGreen = new Label(); + this.markedKeyWordsQueueRed = new Label(); + this.markedKeyWordsPicksGreen = new Label(); + this.markedKeyWordsPicksRed = new Label(); + this.markedKeyWordsNopesOA = new Label(); + this.markedKeyWordsQueueOA = new Label(); + this.markedKeyWordsPicksOA = new Label(); + + } + public void updateKeyWords(ListEnum listEnum) throws MalformedURLException, InterruptedException + { + switch (listEnum) + { + case NOPES: + { + + this.IHV_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, true)); + this.IHT_ButtonNopes.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.NOPES, false)); + this.markedKeyWordsNopesGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, true)); + this.markedKeyWordsNopesRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.NOPES, false)); + this.markedKeyWordsNopesOA.setText(this.queuemanager.getAmountByPublisherList(ListEnum.NOPES) + " " + this.queuemanager.getCurrentOAKeyWord(ListEnum.NOPES, Constants.oaMarker, Constants.oaKeyWordForDisplay)); + return; + } + case QUEUE: + { + this.IHV_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, true)); + this.IHT_ButtonQueue.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.QUEUE, false)); + this.markedKeyWordsQueueGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, true)); + this.markedKeyWordsQueueRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.QUEUE, false)); + this.markedKeyWordsQueueOA.setText(this.queuemanager.getAmountByPublisherList(ListEnum.QUEUE) + " " + this.queuemanager.getCurrentOAKeyWord(ListEnum.QUEUE, Constants.oaMarker, Constants.oaKeyWordForDisplay)); + return; + } + case PICKS: + { + this.IHV_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, true)); + this.IHT_ButtonPicks.setVisible(this.queuemanager.getCurrentLinkStatus(ListEnum.PICKS, false)); + this.markedKeyWordsPicksGreen.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, true)); + this.markedKeyWordsPicksRed.setText(this.queuemanager.getCurrentKeyWords(ListEnum.PICKS, false)); + this.markedKeyWordsPicksOA.setText(this.queuemanager.getAmountByPublisherList(ListEnum.PICKS) + " " + this.queuemanager.getCurrentOAKeyWord(ListEnum.PICKS, Constants.oaMarker, Constants.oaKeyWordForDisplay)); + return; + } + } + return; + } + + private void configureElements() + { + + this.markedKeyWordsHBoxNopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxQueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsHBoxPicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.322)); + this.markedKeyWordsNopesGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsNopesRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsQueueGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsQueueRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsPicksGreen.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksGreen.setTextFill(Color.rgb(46,139,87)); + this.markedKeyWordsPicksRed.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksRed.setTextFill(Color.rgb(139,0,0)); + this.markedKeyWordsNopesOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsQueueOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsPicksOA.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.markedKeyWordsNopesOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsQueueOA.setTextFill(Color.rgb(160,32,240)); + this.markedKeyWordsPicksOA.setTextFill(Color.rgb(160,32,240)); + + + Region regionKeyWordsNopes = new Region(); + Region regionKeyWordsQueue = new Region(); + Region regionKeyWordsPicks = new Region(); + + Region regionKeyWordsNopes2 = new Region(); + Region regionKeyWordsQueue2 = new Region(); + Region regionKeyWordsPicks2 = new Region(); + + HBox.setHgrow(regionKeyWordsNopes, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsNopes2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsQueue2, Priority.ALWAYS); + HBox.setHgrow(regionKeyWordsPicks2, Priority.ALWAYS); + + + + this.IHV_Image = GetButtonPics.getButtonImage_IHV(); + this.IHT_Image = GetButtonPics.getButtonImage_IHT(); + + this.IHV_ImageViewNopes = new ImageView(this.IHV_Image); + this.IHT_ImageViewNopes = new ImageView(this.IHT_Image); + this. IHV_ImageViewQueue = new ImageView(this.IHV_Image); + this. IHT_ImageViewQueue = new ImageView(this.IHT_Image); + this. IHV_ImageViewPicks = new ImageView(this.IHV_Image); + this. IHT_ImageViewPicks = new ImageView(this.IHT_Image); + this.IHV_ImageViewNopes.setPreserveRatio(true); + this.IHT_ImageViewNopes.setPreserveRatio(true); + this.IHV_ImageViewQueue.setPreserveRatio(true); + this.IHT_ImageViewQueue.setPreserveRatio(true); + this.IHV_ImageViewPicks.setPreserveRatio(true); + this.IHT_ImageViewPicks.setPreserveRatio(true); + + this.IHV_ButtonNopes= new Button(); + this.IHT_ButtonNopes= new Button(); + this.IHV_ButtonQueue= new Button(); + this.IHT_ButtonQueue= new Button(); + this.IHV_ButtonPicks= new Button(); + this.IHT_ButtonPicks= new Button(); + this.IHV_ButtonNopes.setGraphic(this.IHV_ImageViewNopes); + this.IHT_ButtonNopes.setGraphic(this.IHT_ImageViewNopes); + this.IHV_ButtonQueue.setGraphic(this.IHV_ImageViewQueue); + this.IHT_ButtonQueue.setGraphic(this.IHT_ImageViewQueue); + this.IHV_ButtonPicks.setGraphic(this.IHV_ImageViewPicks); + this.IHT_ButtonPicks.setGraphic(this.IHT_ImageViewPicks); + int imageViewWidth = 18; + this.IHV_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setPrefWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHT_ButtonPicks.setPrefWidth(imageViewWidth - 5); + this.IHV_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHT_ButtonNopes.setMaxWidth(imageViewWidth -5); + this.IHV_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonQueue.setMaxWidth(imageViewWidth - 5); + this.IHV_ButtonPicks.setMaxWidth(imageViewWidth - 5); + this.IHT_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonQueue.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHT_ButtonPicks.setPadding(new Insets(0,0,0,0)); + this.IHV_ButtonNopes.setVisible(false); + this.IHT_ButtonNopes.setVisible(false); + this.IHV_ButtonQueue.setVisible(false); + this.IHT_ButtonQueue.setVisible(false); + this.IHV_ButtonPicks.setVisible(false); + this.IHT_ButtonPicks.setVisible(false); + + + + + + this.IHV_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHT_ImageViewNopes.setFitWidth(imageViewWidth); + this.IHV_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHT_ImageViewQueue.setFitWidth(imageViewWidth); + this.IHV_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHT_ImageViewPicks.setFitWidth(imageViewWidth); + this.IHV_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHT_ImageViewNopes.setFitHeight(imageViewWidth); + this.IHV_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHT_ImageViewQueue.setFitHeight(imageViewWidth); + this.IHV_ImageViewPicks.setFitHeight(imageViewWidth); + this.IHT_ImageViewPicks.setFitHeight(imageViewWidth); + + + this.markedKeyWordsHBoxNopes.getChildren().addAll(IHV_ButtonNopes, new Label(" "), IHT_ButtonNopes, new Label(" "), this.markedKeyWordsNopesGreen, regionKeyWordsNopes, markedKeyWordsNopesOA, regionKeyWordsNopes2, this.markedKeyWordsNopesRed); + this.markedKeyWordsHBoxQueue.getChildren().addAll(IHV_ButtonQueue, new Label(" "), IHT_ButtonQueue,new Label(" "), this.markedKeyWordsQueueGreen, regionKeyWordsQueue, markedKeyWordsQueueOA, regionKeyWordsQueue2, this.markedKeyWordsQueueRed); + this.markedKeyWordsHBoxPicks.getChildren().addAll(IHV_ButtonPicks, new Label(" "), IHT_ButtonPicks,new Label(" "), this.markedKeyWordsPicksGreen, regionKeyWordsPicks, markedKeyWordsPicksOA, regionKeyWordsPicks2, this.markedKeyWordsPicksRed); + + + + + this.pickerTab.setClosable(false); + this.currentsqueue.setEditable(false); + this.currentspicks.setEditable(false); + this.currentsnopes.setEditable(false); + + this.currentsqueue.setVisible(false); + this.currentspicks.setVisible(false); + this.currentsnopes.setVisible(false); + + this.currentsqueue.setWrapText(true); + this.currentspicks.setWrapText(true); + this.currentsnopes.setWrapText(true); + + this.currentsqueue.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentspicks.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsnopes.prefWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.currentsqueue.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentspicks.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + this.currentsnopes.prefHeightProperty().bind(primaryStage.heightProperty().multiply(0.321)); + + this.currentsqueue.setMinHeight(200); + this.currentspicks.setMinHeight(200); + this.currentsnopes.setMinHeight(200); + + + this.currentspicks.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.PICKS); + } + }); + + this.currentsqueue.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.QUEUE); + } + }); + + this.currentsnopes.textProperty().addListener((observable, oldValue, newValue) -> { + if (!oldValue.equals(newValue)) + { + updateFormattedTitle(ListEnum.NOPES); + } + }); + + + this.textA1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textA10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textB10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textC10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textD10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textE10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF1.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF2.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF3.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF4.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF5.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF6.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF7.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF8.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF9.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + this.textF10.minWidthProperty().bind(primaryStage.widthProperty().multiply(0.323)); + + this.progressBar.setMinHeight(15); + this.progressBar.setMinWidth(100); + + this.ButtonImage_ctrl = GetButtonPics.getButtonImage_ctrl(); + this.ButtonImage_space = GetButtonPics.getButtonImage_space(); + this.ButtonImage_shift = GetButtonPics.getButtonImage_shift(); + this.ButtonImage_F1 = GetButtonPics.getButtonImage_F1(); + this.ButtonImage_F2 = GetButtonPics.getButtonImage_F2(); + this.ButtonImage_F3 = GetButtonPics.getButtonImage_F3(); + this.ButtonImage_F4 = GetButtonPics.getButtonImage_F4(); + this.ButtonImage_enter = GetButtonPics.getButtonImage_enter(); + this.ButtonImage_arrowRight = GetButtonPics.getButtonImage_arrowRight(); + this.ButtonImage_arrowLeft = GetButtonPics.getButtonImage_arrowLeft(); + this.ButtonImage_verticalLine = GetButtonPics.getButtonImage_verticalLine(); + this.ButtonImage_closedEye = GetButtonPics.getButtonImage_closedEye(); + this.ButtonImage_backspace = GetButtonPics.getButtonImage_backspace(); + this.QuestionMarkImage = GetButtonPics.getButtonImage_QuestionMark(); + this.ButtonImage_alt = GetButtonPics.getButtonImage_Alt(); + + + + this.textA1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textA10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textB10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textC10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textD10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textE10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF1.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF2.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF3.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF4.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF5.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF6.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF7.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF8.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF9.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.textF10.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsnopes.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentsqueue.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + this.currentspicks.setFont(new Font(Constants.DefaultFont, Constants.DefaultFontSize)); + + + //this.textA1.setTextOverrun(OverrunStyle.CLIP); + this.textA2.setTextOverrun(OverrunStyle.CLIP); + this.textA3.setTextOverrun(OverrunStyle.CLIP); + this.textA4.setTextOverrun(OverrunStyle.CLIP); + this.textA5.setTextOverrun(OverrunStyle.CLIP); + this.textA6.setTextOverrun(OverrunStyle.CLIP); + this.textA7.setTextOverrun(OverrunStyle.CLIP); + this.textA8.setTextOverrun(OverrunStyle.CLIP); + this.textA9.setTextOverrun(OverrunStyle.CLIP); + this.textA10.setTextOverrun(OverrunStyle.CLIP); + this.textB1.setTextOverrun(OverrunStyle.CLIP); + this.textB2.setTextOverrun(OverrunStyle.CLIP); + this.textB3.setTextOverrun(OverrunStyle.CLIP); + this.textB4.setTextOverrun(OverrunStyle.CLIP); + this.textB5.setTextOverrun(OverrunStyle.CLIP); + this.textB6.setTextOverrun(OverrunStyle.CLIP); + this.textB7.setTextOverrun(OverrunStyle.CLIP); + this.textB8.setTextOverrun(OverrunStyle.CLIP); + this.textB9.setTextOverrun(OverrunStyle.CLIP); + this.textB10.setTextOverrun(OverrunStyle.CLIP); + this.textC1.setTextOverrun(OverrunStyle.CLIP); + this.textC2.setTextOverrun(OverrunStyle.CLIP); + this.textC3.setTextOverrun(OverrunStyle.CLIP); + this.textC4.setTextOverrun(OverrunStyle.CLIP); + this.textC5.setTextOverrun(OverrunStyle.CLIP); + this.textC6.setTextOverrun(OverrunStyle.CLIP); + this.textC7.setTextOverrun(OverrunStyle.CLIP); + this.textC8.setTextOverrun(OverrunStyle.CLIP); + this.textC9.setTextOverrun(OverrunStyle.CLIP); + this.textC10.setTextOverrun(OverrunStyle.CLIP); + this.textD1.setTextOverrun(OverrunStyle.CLIP); + this.textD2.setTextOverrun(OverrunStyle.CLIP); + this.textD3.setTextOverrun(OverrunStyle.CLIP); + this.textD4.setTextOverrun(OverrunStyle.CLIP); + this.textD5.setTextOverrun(OverrunStyle.CLIP); + this.textD6.setTextOverrun(OverrunStyle.CLIP); + this.textD7.setTextOverrun(OverrunStyle.CLIP); + this.textD8.setTextOverrun(OverrunStyle.CLIP); + this.textD9.setTextOverrun(OverrunStyle.CLIP); + this.textD10.setTextOverrun(OverrunStyle.CLIP); + this.textE1.setTextOverrun(OverrunStyle.CLIP); + this.textE2.setTextOverrun(OverrunStyle.CLIP); + this.textE3.setTextOverrun(OverrunStyle.CLIP); + this.textE4.setTextOverrun(OverrunStyle.CLIP); + this.textE5.setTextOverrun(OverrunStyle.CLIP); + this.textE6.setTextOverrun(OverrunStyle.CLIP); + this.textE7.setTextOverrun(OverrunStyle.CLIP); + this.textE8.setTextOverrun(OverrunStyle.CLIP); + this.textE9.setTextOverrun(OverrunStyle.CLIP); + this.textE10.setTextOverrun(OverrunStyle.CLIP); + this.textF1.setTextOverrun(OverrunStyle.CLIP); + this.textF2.setTextOverrun(OverrunStyle.CLIP); + this.textF3.setTextOverrun(OverrunStyle.CLIP); + this.textF4.setTextOverrun(OverrunStyle.CLIP); + this.textF5.setTextOverrun(OverrunStyle.CLIP); + this.textF6.setTextOverrun(OverrunStyle.CLIP); + this.textF7.setTextOverrun(OverrunStyle.CLIP); + this.textF8.setTextOverrun(OverrunStyle.CLIP); + this.textF9.setTextOverrun(OverrunStyle.CLIP); + this.textF10.setTextOverrun(OverrunStyle.CLIP); + + + + this.progressText = new Text(""); + if (!(this.ButtonImage_ctrl == null || + this.ButtonImage_space == null || + this.ButtonImage_shift == null || + this.ButtonImage_F1 == null || + this.ButtonImage_F2 == null || + this.ButtonImage_F3 == null || + this.ButtonImage_F4 == null || + this.ButtonImage_enter == null || + this.ButtonImage_arrowRight == null || + this.ButtonImage_verticalLine == null || + this.ButtonImage_closedEye == null || + this.ButtonImage_backspace == null) || + this.QuestionMarkImage == null || + this.ButtonImage_alt == null) + { + buildShortcutHBox(); + } + + + + shortCutHBox.setAlignment(Pos.CENTER_LEFT); + + HBox.setMargin(this.progressBar, new Insets(0,10,0,0)); + + + this.formersleftVBox.setMaxWidth(200); + this.formersmiddleVBox.setMaxWidth(200); + this.formersrightVBox.setMaxWidth(200); + this.nextsleftVBox.setMaxWidth(200); + this.nextsmiddleVBox.setMaxWidth(200); + this.nextsrightVBox.setMaxWidth(200); + + //labels instead of textareas: + this.gridpaneLower.setHgap(10); + this.gridpaneLower.setVgap(10); + this.gridpaneLower.setPadding(new Insets(0,10,10,10)); + this.gridpaneLower.add(this.formersleftVBox, 0, 1); + this.gridpaneLower.add(this.formersmiddleVBox, 1, 1); + this.gridpaneLower.add(this.formersrightVBox, 2, 1); + this.gridpaneLower.add(this.markedKeyWordsHBoxNopes, 0, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxQueue, 1, 2); + this.gridpaneLower.add(this.markedKeyWordsHBoxPicks , 2, 2); + this.gridpaneLower.add(this.currentsnopes, 0, 3); + this.gridpaneLower.add(this.currentsqueue, 1, 3); + this.gridpaneLower.add(this.currentspicks, 2, 3); + this.gridpaneLower.add(this.nextsleftVBox, 0, 4); + this.gridpaneLower.add(this.nextsmiddleVBox, 1, 4); + this.gridpaneLower.add(this.nextsrightVBox, 2, 4); + + + + ScrollPane scrollPane = new ScrollPane(); + scrollPane.setFitToHeight(true); + scrollPane.setFitToWidth(true); + ScrollPane scrollPane2 = new ScrollPane(); + scrollPane.setContent(this.shortCutHBox); + scrollPane2.setContent(this.gridpaneLower); + scrollPane.setMinHeight(43); + + scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a vertical ScrollBar + scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); // never show a hor ScrollBar + scrollPane.setFitToWidth(true); // set content width to viewport width + scrollPane.setPannable(true); // allow scrolling via mouse dragging + + scrollPane2.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); + scrollPane2.setFitToWidth(true); // set content width to viewport width + scrollPane2.setPannable(true); // allow scrolling via mouse dragging + + this.pickerTab.setContent(new VBox(scrollPane, scrollPane2)); + HBox.setHgrow(gridpaneLower, Priority.ALWAYS); + + } + + private void buildShortcutHBox() + { + Region regionMiddle = new Region(); + HBox.setHgrow(regionMiddle, Priority.ALWAYS); + + this.helpButton.setGraphic(GetButtonPics.turnPicIntoImageView(QuestionMarkImage)); + this.keyWordMoverButton.setGraphic(GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowRight)); + this.publisherAmountMoverButton.setGraphic(GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowLeft)); + + + this.IHT_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonNopes.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.NOPES); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonQueue.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHT_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentText(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.IHV_ButtonPicks.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + try { + queuemanager.openLinkContentList(ListEnum.PICKS); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + }); + + this.helpButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + + Alert alert = new Alert(AlertType.INFORMATION); + alert.setTitle("Kurzeinführung:"); + alert.setHeaderText(null); + alert.setContentText(Constants.Kurzeinfuehrung); + alert.initStyle(StageStyle.UTILITY); + + alert.showAndWait(); + } + }); + + this.keyWordMoverButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + queuemanager.startDialogueForKeyWordMover(); + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, true); + } + }); + + this.publisherAmountMoverButton.setOnAction(new EventHandler() { + @Override public void handle(ActionEvent e) { + queuemanager.startDialoguePublisherAmountMover(); + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, true); + } + }); + + /* + this.shortCutHBox.getChildren().addAll( + new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_ctrl), GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowRight), Constants.ShortCutDescription_zurAnsicht,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift), GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowRight), Constants.ShortCutDescription_auflagentausch,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_alt), GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowRight), Constants.ShortCutDescription_sonderHinweis,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltsverzeichnis,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift), GetButtonPics.turnPicIntoImageView(this.ButtonImage_space), Constants.ShortCutDescription_inhaltstext,new Text(" "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_F1),new Text(" bis "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_F4), Constants.ShortCutDescription_titelsuche, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_backspace), Constants.ShortCutDescription_rueckgaengig, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_enter), Constants.ShortCutDescription_export, GetButtonPics.turnPicIntoImageView(this.ButtonImage_verticalLine, 35), new Text(" "), + GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift),GetButtonPics.turnPicIntoImageView(this.ButtonImage_enter), Constants.ShortCutDescription_save, new Text(" "), + regionMiddle, this.keyWordMoverButton, this.progressText, new Text(" "), this.progressBar, new Text(" "), this.helpButton, new Text(" ") + ); + */ + + + HBox hbox1 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_ctrl), GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowRight)); + HBox hbox2 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift), GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowRight)); + HBox hbox3 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_alt), GetButtonPics.turnPicIntoImageView(this.ButtonImage_arrowRight)); + HBox hbox4 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_space)); + HBox hbox5 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift), GetButtonPics.turnPicIntoImageView(this.ButtonImage_space)); + HBox hbox6 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_F1),new Text(" bis "), GetButtonPics.turnPicIntoImageView(this.ButtonImage_F4)); + HBox hbox7 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_backspace)); + HBox hbox8 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_alt), GetButtonPics.turnPicIntoImageView(this.ButtonImage_enter)); + HBox hbox9 = new HBox(GetButtonPics.turnPicIntoImageView(this.ButtonImage_shift),GetButtonPics.turnPicIntoImageView(this.ButtonImage_enter)); + hbox1.setAlignment(Pos.TOP_CENTER); + hbox2.setAlignment(Pos.TOP_CENTER); + hbox3.setAlignment(Pos.TOP_CENTER); + hbox4.setAlignment(Pos.TOP_CENTER); + hbox5.setAlignment(Pos.TOP_CENTER); + hbox6.setAlignment(Pos.TOP_CENTER); + hbox7.setAlignment(Pos.TOP_CENTER); + hbox8.setAlignment(Pos.TOP_CENTER); + hbox9.setAlignment(Pos.TOP_CENTER); + + + VBox vbox1 = new VBox(hbox1, Constants.ShortCutDescription_zurAnsicht); + VBox vbox2 = new VBox(hbox2, Constants.ShortCutDescription_auflagentausch); + VBox vbox3 = new VBox(hbox3, Constants.ShortCutDescription_sonderHinweis); + VBox vbox4 = new VBox(hbox4, Constants.ShortCutDescription_inhaltsverzeichnis); + VBox vbox5 = new VBox(hbox5, Constants.ShortCutDescription_inhaltstext); + VBox vbox6 = new VBox(hbox6, Constants.ShortCutDescription_titelsuche); + VBox vbox7 = new VBox(hbox7, Constants.ShortCutDescription_rueckgaengig); + VBox vbox8 = new VBox(hbox8, Constants.ShortCutDescription_export); + VBox vbox9 = new VBox(hbox9, Constants.ShortCutDescription_save); + vbox1.setAlignment(Pos.TOP_CENTER); + vbox2.setAlignment(Pos.TOP_CENTER); + vbox3.setAlignment(Pos.TOP_CENTER); + vbox4.setAlignment(Pos.TOP_CENTER); + vbox5.setAlignment(Pos.TOP_CENTER); + vbox6.setAlignment(Pos.TOP_CENTER); + vbox7.setAlignment(Pos.TOP_CENTER); + vbox8.setAlignment(Pos.TOP_CENTER); + vbox9.setAlignment(Pos.TOP_CENTER); + vbox1.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox2.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox3.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox4.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox5.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox6.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox7.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox8.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + vbox9.setBackground(new Background(new BackgroundFill(Color.rgb(200,200,200), new CornerRadii(3), Insets.EMPTY))); + + + + + if (this.propertyFileHandler.propertyFileModel.get_settings_PickerOrOrdererName().equals("CB")) + { + this.shortCutHBox.getChildren().addAll( + vbox1,new Text(" "), + vbox2,new Text(" "), + vbox3,new Text(" "), + vbox4,new Text(" "), + vbox5,new Text(" "), + vbox6,new Text(" "), + vbox7,new Text(" "), + vbox8,new Text(" "), + vbox9,new Text(" "), + + regionMiddle, + this.publisherAmountMoverButton, new Text(""), this.keyWordMoverButton, new Text(" "), this.progressText, new Text(" "), this.progressBar, new Text(" "), this.helpButton, new Text(" ") + ); + } else + { + this.shortCutHBox.getChildren().addAll( + vbox1,new Text(" "), + vbox2,new Text(" "), + vbox3,new Text(" "), + vbox4,new Text(" "), + vbox5,new Text(" "), + vbox6,new Text(" "), + vbox7,new Text(" "), + vbox8,new Text(" "), + vbox9,new Text(" "), + + regionMiddle, + new Text(" "), this.progressText, new Text(" "), this.progressBar, new Text(" "), this.helpButton, new Text(" ") + ); + } + + this.shortCutHBox.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, CornerRadii.EMPTY, Insets.EMPTY))); + + + + + + } + + private void updateProgressText(String text) + { + this.progressText.setText(text); + } + + private void updateFormattedTitle(ListEnum listEnum) + { + + this.markedKeyWordsPicksGreen.setText(""); + this.markedKeyWordsPicksRed.setText(""); + this.markedKeyWordsPicksOA.setText(""); + try { + updateKeyWords(listEnum); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public void adjustFontSizeTaller() + { + this.fontSize ++; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + public void adjustFontSizeSmaller() + { + this.fontSize --; + updateFormattedTitles(true, null, true, null, true, null, false); + } + + private void changeGridWidhtAndHeightAccordingToPropertiesOrDefault() + { + + if (this.QueueWidth != 0) + { + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + if (this.QueueHeight != 0) + { + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + } + + private void configureEventsGeneral() { + + this.primaryStage.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + this.nextsleftVBox.setBackground(null); + if (keyEvent.getCode() == KeyCode.ADD || keyEvent.getCode() == KeyCode.PLUS) + { + adjustFontSizeTaller(); + } + if (keyEvent.getCode() == KeyCode.SUBTRACT || keyEvent.getCode() == KeyCode.MINUS) + { + adjustFontSizeSmaller(); + } + + }); + + + this.currentsqueue.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, false); + } + } + }); + + this.currentsnopes.setOnScroll(new EventHandler() { + + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + nextsleftVBox.setBackground(null); + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + nextsleftVBox.setBackground(null); + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, false); + } + } + }); + + this.currentspicks.setOnScroll(new EventHandler() { + @Override public void handle(ScrollEvent event) { + if (event.isShiftDown() && event.getTextDeltaX() > 0) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } else if (event.isShiftDown() && event.getTextDeltaX() < 0) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, false); + } + } + }); + } + + + private void configureEventsQueue() { + this.currentsqueue.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + this.nextsleftVBox.setBackground(null); + + if (keyEvent.getCode() == KeyCode.ENTER) + { + + if (keyEvent.isShiftDown()) + { + queuemanager.saveProgress(); + + } else if (keyEvent.isAltDown()) + { + + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText("Ihr aktueller Stand wird stattdessen im save-file Ordner (" + this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + ") zwischengespeichert."); + alert.showAndWait(); + if (!this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder().isBlank()) + { + queuemanager.saveProgress(); + } + + + } else + { + Alert alert = new Alert(Alert.AlertType.CONFIRMATION); + alert.setTitle("Datensätze zur Bestellung freigeben?"); + alert.setHeaderText("Datensätze zur Bestellung freigeben?"); + alert.setContentText("Möchten Sie die Datensätze auf der rechten Seite wirklich zur Bestellung freigeben?"); + + alert.getButtonTypes().setAll(ButtonType.YES, ButtonType.NO); + + // Show the dialog and wait for the user's response + java.util.Optional result = alert.showAndWait(); + + // Check the user's choice + if (result.isPresent() && result.get() == ButtonType.YES) { + exportQueue(queuemanager); + // Perform the action for YES + } else { + + } + } + + + + } + + } + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + + if (keyEvent.getCode() == KeyCode.SPACE) + { + + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.QUEUE); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + } + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.QUEUE); + updateQueues(false, true, false); + updateFormattedTitles(false, null, true, null, false, null, true); + } + + + if (keyEvent.getCode() == KeyCode.RIGHT) + { + if (keyEvent.isControlDown()) + { + queuemanager.setZAFlag(); + } + if (keyEvent.isShiftDown()) + { + queuemanager.setSwitchFlag(); + } + if (keyEvent.isAltDown()) + { + queuemanager.startDialogueForAltFlag(ListEnum.QUEUE); + } + + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.PICKS, true, false, Constants.statusOrder, false); + this.lastAction = 2; + + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, true, false, Constants.statusPicker, false); + this.lastAction = 1; + + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + + } + if (keyEvent.getCode() == KeyCode.BACK_SPACE) + { + if (this.lastAction == 1) + { + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.QUEUE, false, true, Constants.statusPicker, false); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, true); + } + else if (this.lastAction == 2) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.QUEUE, false, true, Constants.statusPicker, false); + queuemanager.resetFlag(); + + updateQueues(true, true, true); + updateFormattedTitles(true, null, true, null, true, null, true); + + } + this.lastAction = 0; + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + int counter = 0; + while (!this.propertyFileHandler.propertyFileModel.get_settings_API_CheckApiAfterImport().equals("true") && queuemanager.titleIsOwnedOrOpenAccess(ListEnum.QUEUE) && counter < 10) + { + counter ++; + if ((this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveHoldings().equals("true") && queuemanager.titleIsOwned(ListEnum.QUEUE)) + || (this.propertyFileHandler.propertyFileModel.get_settings_API_RemoveOA().equals("true") && queuemanager.titleIsOpenAccess(ListEnum.QUEUE))) + { + queuemanager.moveTitle(ListEnum.QUEUE, false, ListEnum.NOPES, false, false, Constants.statusPicker, false); + this.lastAction = 1; + + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + + this.nextsleftVBox.setBackground(new Background(new BackgroundFill(Color.rgb(255, 220, 220), new CornerRadii(5), Insets.EMPTY))); + } + } + + }); + + } + + private void configureEventsPicks() { + this.currentspicks.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + this.nextsleftVBox.setBackground(null); + + if (keyEvent.getCode() == KeyCode.SPACE) + { + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + if (keyEvent.getCode() == KeyCode.ENTER) + if (keyEvent.getCode() == KeyCode.ENTER) + { + + if (keyEvent.isShiftDown()) + { + queuemanager.saveProgress(); + + } else if (keyEvent.isAltDown()) + { + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText("Ihr aktueller Stand wird stattdessen im save-file Ordner (" + this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + ") zwischengespeichert."); + alert.showAndWait(); + if (!this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder().isBlank()) + { + queuemanager.saveProgress(); + + } + + + } else + { + Alert alert = new Alert(Alert.AlertType.CONFIRMATION); + alert.setTitle("Datensätze zur Bestellung freigeben?"); + alert.setHeaderText("Datensätze zur Bestellung freigeben?"); + alert.setContentText("Möchten Sie die Datensätze auf der rechten Seite wirklich zur Bestellung freigeben?"); + + alert.getButtonTypes().setAll(ButtonType.YES, ButtonType.NO); + + // Show the dialog and wait for the user's response + java.util.Optional result = alert.showAndWait(); + + // Check the user's choice + if (result.isPresent() && result.get() == ButtonType.YES) { + exportQueue(queuemanager); + // Perform the action for YES + } else { + + } + } + } + + } + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.PICKS); + updateQueues(false, false, true); + updateFormattedTitles(false, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + // + + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.QUEUE, false, true, Constants.statusPicker, false); + queuemanager.resetFlag(); + updateQueues(false, true, true); + updateFormattedTitles(false, null, true, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + queuemanager.moveTitle(ListEnum.PICKS, false, ListEnum.NOPES, true, false, Constants.statusPicker, false); + queuemanager.resetFlag(); + updateQueues(true, false, true); + updateFormattedTitles(true, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.PICKS); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + + + + + + + private void configureEventsNopes() { + this.currentsnopes.addEventFilter(KeyEvent.KEY_RELEASED, keyEvent -> { + + this.nextsleftVBox.setBackground(null); + if (keyEvent.getCode() == KeyCode.ENTER) + if (keyEvent.getCode() == KeyCode.ENTER) + { + + if (keyEvent.isShiftDown()) + { + queuemanager.saveProgress(); + + } else if (keyEvent.isAltDown()) + { + File f = new File(Constants.safetyDBPath); + if(!f.exists()) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Datenbank konnte nicht gefunden werden!"); + alert.setHeaderText("Stellen Sie bitte sicher, dass Sie mit dem Netzlaufwerk verbunden sind!"); + alert.setContentText("Ihr aktueller Stand wird stattdessen im save-file Ordner (" + this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder() + ") zwischengespeichert."); + alert.showAndWait(); + if (!this.propertyFileHandler.propertyFileModel.get_settings_SaveFileFolder().isBlank()) + { + queuemanager.saveProgress(); + } + + + } else + { + Alert alert = new Alert(Alert.AlertType.CONFIRMATION); + alert.setTitle("Datensätze zur Bestellung freigeben?"); + alert.setHeaderText("Datensätze zur Bestellung freigeben?"); + alert.setContentText("Möchten Sie die Datensätze auf der rechten Seite wirklich zur Bestellung freigeben?"); + + alert.getButtonTypes().setAll(ButtonType.YES, ButtonType.NO); + + // Show the dialog and wait for the user's response + java.util.Optional result = alert.showAndWait(); + + // Check the user's choice + if (result.isPresent() && result.get() == ButtonType.YES) { + exportQueue(queuemanager); + // Perform the action for YES + } else { + + } + } + } + + } + + if (keyEvent.getCode() == KeyCode.SPACE) + { + if (keyEvent.isShiftDown()) + { + try { + queuemanager.openLinkContentText(ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else + { + try { + queuemanager.openLinkContentList(ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + if (keyEvent.getCode() == KeyCode.UP) + { + queuemanager.formerTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + + } + if (keyEvent.getCode() == KeyCode.DOWN) + { + queuemanager.nextTitle(ListEnum.NOPES); + updateQueues(true, false, false); + updateFormattedTitles(true, null, false, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.RIGHT) + { + + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.QUEUE, false, true, Constants.statusPicker, false); + updateQueues(true, true, false); + updateFormattedTitles(true, null, true, null, false, null, true); + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + + queuemanager.moveTitle(ListEnum.NOPES, false, ListEnum.PICKS, true, false, Constants.statusOrder, false); + updateQueues(true, false, true); + updateFormattedTitles(true, null, false, null, true, null, true); + } + if (keyEvent.getCode() == KeyCode.LEFT) + { + // + } + + if (keyEvent.getCode() == KeyCode.F1) + { + try { + queuemanager.openLink(1, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F2) + { + try { + queuemanager.openLink(2, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F3) + { + try { + queuemanager.openLink(3, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + if (keyEvent.getCode() == KeyCode.F4) + { + try { + queuemanager.openLink(4, keyEvent.isShiftDown(), keyEvent.isControlDown(), ListEnum.NOPES); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + updateQueueProgress(queuemanager.getProgress()); + updateProgressText(queuemanager.getProgressText()); + + }); + } + + public String getFontsize() + { + int number = (int) this.currentsqueue.getFont().getSize(); + return Integer.toString(number); + } + + public String getGridWidth() + { + Double number = this.currentsqueue.getWidth(); + return number.toString(); + } + + public String getGridHeight() + { + Double number = this.currentsqueue.getHeight(); + return number.toString(); + } + + public void changeGridI() + { + this.QueueWidth = this.currentsqueue.getWidth() - 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } + + public void changeGridII() + { + this.QueueHeight = this.currentsqueue.getHeight() - 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + + public void changeGridIII() + { + this.QueueHeight = this.currentsqueue.getHeight() + 25; + this.currentsqueue.setMinHeight(QueueHeight); + this.currentsqueue.setMaxHeight(QueueHeight); + } + public void changeGridIV() + { + this.QueueWidth = this.currentsqueue.getWidth() + 25; + this.currentsqueue.setMinWidth(QueueWidth); + this.currentsqueue.setMaxWidth(QueueWidth); + } +} + diff --git a/src/var_reiheAPicker/Constants.java b/src/var_reiheAPicker/Constants.java new file mode 100644 index 0000000..8fa0748 --- /dev/null +++ b/src/var_reiheAPicker/Constants.java @@ -0,0 +1,414 @@ +package var_reiheAPicker; + +import javafx.scene.control.Label; +import javafx.scene.control.Tab; +import javafx.scene.control.Tooltip; +import javafx.scene.text.Text; +import var_reiheAPicker.Constants; + +public class Constants { + + + //Constants: OA _ DATABASE Constants + public static String dbLocation = "Y:\\Gruppen\\Bibliothek-Oeffentliches\\15. Elektronische Dienste\\15.7 Open Access\\Hochschuleigener Publikationsfonds\\Datenbank_Antraege\\SQLite_openAccessAntraege.db"; + public static String billsLocation = "Y:\\Gruppen\\Bibliothek-Oeffentliches\\15. Elektronische Dienste\\15.7 Open Access\\Hochschuleigener Publikationsfonds\\Rechnungen\\"; + public static String importLocation = "Y:\\Gruppen\\Bibliothek-Oeffentliches\\15. Elektronische Dienste\\15.7 Open Access\\Hochschuleigener Publikationsfonds\\Datenbank_Antraege\\application_import\\"; + public static String importDoneLocation = "Y:\\Gruppen\\Bibliothek-Oeffentliches\\15. Elektronische Dienste\\15.7 Open Access\\Hochschuleigener Publikationsfonds\\Datenbank_Antraege\\application_import_done\\"; + public static String safetyDBPath = "Y:\\Gruppen\\Bibliothek-Oeffentliches\\7. Erwerbung\\7.16 Rückstau Reihe-A\\Picker_File_sicherungen\\reiheA_SafetyBase.db"; + public static String ChatGPTApiKey = "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"; + public static boolean useChatGPTToCheck = false; + public static String ChatGPTAssistantKey = "asst_NfCPXUelQrkYU0cBzkNL05vz"; + + public static String ChooserTabName_OAFondsManager = "Anträge"; + public static String ChooserTabName_OAFondsManager_funding = "Förderungen"; + + public static String finalFundingMessageButtonText = "Finale Förderzusage erteilen!"; + + + public static String insertIntoOrder_inc = "insert into order_inc (created, title, chosenBy, Data, hinweis) VALUES ('%s', '%s', '%s', '%s', '%s');"; + public static String updateOrderInc = "update order_inc set ordered = '%s', orderedBy = '%s', hinweis = '%s' where title = '%s';"; + public static String updateOrderInc_commentOnly = "update order_inc set hinweis = '%s' where title = '%s';"; + public static String getAmountOpenOrdersFromOrderInc = "Select count(*) AS anz from order_inc where ordered is null;"; + public static String getAllDataFromOrderSafetyDB_chosenBy = "select * from order_inc where chosenBy = '[chosenBy]' AND (ordered IS NULL OR ordered >= DATE('now', '-6 months')) order by ordered IS NOT NULL, created DESC LIMIT 50"; + public static String getAllDataFromOrderSafetyDB_all = "select * from order_inc where (ordered IS NULL OR ordered >= DATE('now', '-6 months')) order by ordered IS NOT NULL, created DESC LIMIT 50"; + public static String getAllDataByTitleFromOrderSafetyDB = "select * from order_inc where title LIKE '%[title]%' order by ordered IS NOT NULL, created DESC LIMIT 50"; + public static String baseQueryInsertPublication = "insert into publication (title, publisher, journalTitle, submitDate, releaseDate, costPrognosed, currency, costLoc, correspondingAuthorIsPhMember, partialFeesAccepted, fundingAcknowledgemetAccepted, oaGreenAccepted, applicationStage, initialEmail, notes, emailCostPersonResponsible, dateOfApplication)" + + " VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"; + + public static String updateApplicationStage = "update publication set applicationStage = '%s' where rowid = %s"; + public static String updateComment_Intern = "update publication set comment_intern = '%s' where rowid = %s"; + + public static String baseQueryInsertAuthor = "insert into authors (email, firstname, lastname, title, orcid, isPhMember, phone)" + + " VALUES (%s, %s, %s, %s, %s, %s, %s)"; + public static String baseQuery_publicationAuthors = "insert into _publication_authors (applicationID, authorID)" + + " VALUES (%s, %s)"; + public static String baseQuery_getAllDatasets = "select publication.rowid, publication.initialEmail,publication.notes,publication.title,publication.journalTitle, publication.publisher,publication.submitDate," + + " publication.releaseDate,publication.costPrognosed,publication.currency,publication.costLoc,publication.correspondingAuthorIsPhMember," + + " publication.partialFeesAccepted, publication.fundingAcknowledgemetAccepted,publication.oaGreenAccepted,publication.applicationStage,publication.emailCostPersonResponsible, publication.comment_intern," + + " authors.rowid, authors.email, authors.firstname, authors.lastname, authors.orcid, authors.phone, _publication_authors.applicationID, _publication_authors.authorID" + + " from publication, authors, _publication_authors where publication.rowid = _publication_authors.applicationID and authors.rowid = _publication_authors.authorID"; + public static String baseQuery_insertBill = "insert into bills (publicationID, path, amountTotal, amountTotalCurrency, amountTotalEuro, paidTotal, paidTotalBooked, deptInstitue, deptInstituteBooked) " + + "values (%s, %s, %s, %s, %s, %s, %s, %s, %s)"; + public static String baseQuery_insertBill_basic = "insert into bills (publicationID, path) " + + "values ('%s', '%s')"; + //create table bills (publicationID integer, path text, amountTotal real, amountTotalCurrency text, amountTotalEuro real, paidTotal real, paidTotalBooked date, deptInstitue real, deptInstituteBooked date); + public static String baseQuery_getBillPathByPublicationID = "Select path from bills where publicationID = %s"; + + public static String TitleLabelOAOnly = "Titel"; + public static String idLabelOAOnly = "id_Publikation"; + public static String journalTitleLabelOaOnly = "Zeitschrift"; + public static String orcidLabelOaOnly = "Orcid"; + + //Constants: picker/Orderer + + + public static String ColumnNote = "Hinweis"; + public static String BestandLabel = "Bestand"; + public static String ChosenBy = "GewaehltVon"; + public static String CaseHandledBy = "BearbeitetVon"; + public static String Status = "Status"; + + + public static String Order_OrdererName = "Bestellende Person"; + public static String OtherOrdererNames = "Weitere bestellende Personen"; + + public static String statusPicker = "Auswahl"; + public static String statusOrder = "Bestellung durchfuehren"; + public static String statusOrderInProgress = "Bestellung in Bearbeitung"; + public static String statusOrderDone = "Bestellt"; + + public static int titleIndex = 0; + public static int hintIndex = 1; + public static int holdingsIndex = 2; + public static String emptyField = "-"; + + public static String Order_ImportVerzeichnisNameLabel = "Importverzeichnis"; + public static String Order_DoneVerzeichnisNameLabel = "'Done'-Verzeichnis"; + public static String LabelPickerName = "Name/Kürzel:"; + + public static String ProgramName = "Reihe-A-Picker"; + public static String ProgramName_orderMode = "Reihe-A-Order"; + public static String ProgramName_fondsManager = "OA-Fonds-Manager"; + public static String ChooserTabName = "Titelauswahl"; + public static String GeneralSettingsTabName = "Allgemeine Einstellungen"; + public static String CatalogueSettingsTabName = "Katalogeinstellungen"; + public static String MarkingsSettingsTabName = "Markierungseinstellungen"; + public static String ApiSettingsTabName = "API-Einstellungen"; + + public static String HistoryTabName = "Historie"; + public static String ImportSettingsTabName = "Einstellungen"; + public static String isbnCheckerTabName = "ISBN Checker"; + public static String ExportTabName = "Export"; + public static String ImportButtonName = "Import"; + public static String FieldSettingsTabName = "Feldeinstellungen"; + public static String CatalogueUrlTitleSearch = "https://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?type0%5B%5D=allfields&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=au&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ti&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ct&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=isn&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ta&lookfor0%5B%5D=[{[title]}]&join=AND&bool0%5B%5D=AND&type0%5B%5D=co&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=py&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pp&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pu&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=si&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=zr&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=cc&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND"; + public static String CatalogueUrlTitleAuthorSearch = "https://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?type0%5B%5D=allfields&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=au&lookfor0%5B%5D=[{[author]}]&join=AND&bool0%5B%5D=AND&type0%5B%5D=ti&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ct&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=isn&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ta&lookfor0%5B%5D=[{[title]}]&join=AND&bool0%5B%5D=AND&type0%5B%5D=co&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=py&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pp&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pu&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=si&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=zr&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=cc&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND"; + public static String CatalogueUrlpublisherSearch = "https://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?type0%5B%5D=allfields&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=au&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ti&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ct&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=isn&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ta&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=co&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=py&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pp&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pu&lookfor0%5B%5D=[{[publisher]}]&join=AND&bool0%5B%5D=AND&type0%5B%5D=si&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=zr&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=cc&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND"; + public static String CatalogueUrlIsbnfSearch = "https://rds.ibs-bw.de/phfreiburg/opac/RDSIndex/Search?type0%5B%5D=allfields&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=au&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ti&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=ct&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=isn&lookfor0%5B%5D=[{[isbn]}]&join=AND&bool0%5B%5D=AND&type0%5B%5D=ta&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=co&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=py&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pp&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=pu&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=si&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=zr&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND&type0%5B%5D=cc&lookfor0%5B%5D=&join=AND&bool0%5B%5D=AND"; + public static String DefaultFieldDefinition = ">FieldName>TitelFieldAlias>TITEL FieldContent>cr<\r\n" + + ">FieldName>DateipfadFieldAlias>DateipfadFieldContent>FieldName>HinweisFieldAlias>Hinweis FieldContent>FieldName>BestandFieldAlias>Bestand FieldContent>FieldName>GewaehltVonFieldAlias>Gewählt FieldContent>FieldName>BearbeitetVonFieldAlias>Bestellt FieldContent>FieldName>StatusFieldAlias>Status FieldContent>cr<\r\n" + + ">FieldName>VerlagFieldAlias>VERLAG FieldContent>FieldName>ErscheinungsjahrFieldAlias>ERJAHR FieldContent>FieldName>AuflageFieldAlias>AUFL FieldContent>FieldName>VerfasserFieldAlias>AUTOR FieldContent>FieldName>PreisFieldAlias>PREIS FieldContent>FieldName>SchlagworteFieldAlias>SW FieldContent>FieldName>HochschulschriftenvermerkFieldAlias>DISHAB FieldContent>cr<\r\n" + + "Titel\r\n" + + "Dateipfad\r\n" + + "Hinweis\r\n" + + "Bestand\r\n" + + "GewaehltVon\r\n" + + "BearbeitetVon\r\n" + + "Status\r\n" + + "Werktitel\r\n" + + "Verfasser\r\n" + + "Verlag\r\n" + + "Verlagsort\r\n" + + "Erscheinungsjahr\r\n" + + "Erscheinungstermin\r\n" + + "ISBN\r\n" + + "Auflage\r\n" + + "Preis\r\n" + + "Seiten\r\n" + + "Maß\r\n" + + "Begleitmaterial\r\n" + + "Reihe\r\n" + + "Fußnote\r\n" + + "ParalleleAusgabe\r\n" + + "Hochschulschriftenvermerk\r\n" + + "Datenträger\r\n" + + "Wochenverzeichnisnummer\r\n" + + "DDC-Sachgruppe\r\n" + + "Schlagworte\r\n" + + "VollständigeDDC-Notation\r\n" + + "Inhaltsverzeichnis\r\n" + + "Inhaltstext\r\n" + + "Links\r\n" + + "Desiderat"; + + public static String isbnWildcard = "[{[isbn]}]"; + public static String authorWildcard = "[{[author]}]"; + public static String titleWildcard = "[{[title]}]"; + public static String publisherWildcard = "[{[publisher]}]"; + public static String isbnWildcardLabel = "ISBN"; + public static String authorWildcardLabel = "Autor"; + public static String titleWildcardLabel = "Titel"; + public static String publisherWildcardLabel = "Verlag"; + public static String bestandLabel = "Bestand"; + public static String bestandvorhanden = "ja"; + public static String bestandnichtvorhanden = "nein"; + public static String oaSearchTerm = "kostenfrei"; + public static String oaMarker = "OA"; + public static String oaKeyWordForDisplay = "Open Access"; + public static String apiCouldNotBeAccessed = "Prüfung nicht möglich"; + + + public static String KVKUrlTitleSearch = "https://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske=kvk-redesign&lang=de&title=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css=none&input-charset=utf-8&ALL=&TI=[{[title]}]&AU=&CI=&ST=&PY=&SB=&SS=&PU=&kataloge=K10PLUS&kataloge=BVB&kataloge=NRW&kataloge=HEBIS&kataloge=HEBIS_RETRO&kataloge=KOBV_SOLR&kataloge=DDB&kataloge=STABI_BERLIN&ref=direct&client-js=yes"; + public static String KVKUrlTitleAuthorSearch = "https://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske=kvk-redesign&lang=de&title=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css=none&input-charset=utf-8&ALL=&TI=[{[title]}]&AU=[{[author]}]&CI=&ST=&PY=&SB=&SS=&PU=&kataloge=K10PLUS&kataloge=BVB&kataloge=NRW&kataloge=HEBIS&kataloge=HEBIS_RETRO&kataloge=KOBV_SOLR&kataloge=DDB&kataloge=STABI_BERLIN&ref=direct&client-js=yes"; + public static String KVKUrlpublisherSearch = "https://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske=kvk-redesign&lang=de&title=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css=none&input-charset=utf-8&ALL=&TI=&AU=&CI=&ST=&PY=&SB=&SS=&PU=[{[publisher]}]&kataloge=K10PLUS&kataloge=BVB&kataloge=NRW&kataloge=HEBIS&kataloge=HEBIS_RETRO&kataloge=KOBV_SOLR&kataloge=DDB&kataloge=STABI_BERLIN&ref=direct&client-js=yes"; + public static String KVKUrlIsbnfSearch = "https://kvk.bibliothek.kit.edu/hylib-bin/kvk/nph-kvk2.cgi?maske=kvk-redesign&lang=de&title=KIT-Bibliothek%3A+Karlsruher+Virtueller+Katalog+KVK+%3A+Ergebnisanzeige&head=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fhead.html&header=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fheader.html&spacer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Fspacer.html&footer=%2F%2Fkvk.bibliothek.kit.edu%2Fasset%2Fhtml%2Ffooter.html&css=none&input-charset=utf-8&ALL=&TI=&AU=&CI=&ST=&PY=&SB=[{[isbn]}]&SS=&PU=&kataloge=K10PLUS&kataloge=BVB&kataloge=NRW&kataloge=HEBIS&kataloge=HEBIS_RETRO&kataloge=KOBV_SOLR&kataloge=DDB&kataloge=STABI_BERLIN&ref=direct&client-js=yes"; + public static String LehmannsUrlIsbnSearch = "https://www.lehmanns.de/search/quick?PHPSESSID=mgli22g46vvrd57p74cr5uogt5&mediatype_id=&q=[{[isbn]}]"; + public static String RombachUrlIsbnSearch = "https://www.rombach.de/shop/quickSearch?searchString=[{[isbn]}]"; + public static String AmazonUrlIsbnSearch = "https://www.amazon.de/s?k=[{[isbn]}]&__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=2SV9BRO7RJQI0&sprefix=test%2Caps%2C101&ref=nb_sb_noss_1"; + + + + public static int TooltipDefaultHeight = 25; + + public static String LabelNameGeneralSettings = "Allgemeine Einstellungen:"; + public static String LabelNameSearchCatalogueSettings = "Katalogsuche:"; + public static String LabelNameMarkingsSettings = "Markierungseinstellungen:"; + public static String LabelNameApiSettings = "API-Einstellungen:"; + public static String LabelName1 = "Export Zielordner: "; + public static String LabelName2 = ""; + public static String LabelName3 = "DDC Whitelist: "; + public static String LabelName4 = "Publisher Blacklist: "; + public static String LabelName5 = "Dubletten entfernen? (Anhand ISBN)"; + public static String LabelName6 = "Belletristik entfernen? (DDC: B)"; + public static String LabelName7 = "Savefile Zielordner: "; + public static String LabelName8 = "Suche (F1)"; + public static String LabelName9 = "Suche (F2)"; + public static String LabelName10 = "Suche (F3)"; + public static String LabelName11 = "Suche (F4)"; + public static String LabelName12 = "Suche (Shift + F1)"; + public static String LabelName13 = "Suche (Shift + F2)"; + public static String LabelName14 = "Suche (Shift + F3)"; + public static String LabelName15 = "Suche (Shift + F4)"; + public static String LabelName16 = "Suche (CTRL + F1)"; + public static String LabelName17 = "Suche (CTRL + F2)"; + public static String LabelName18 = "Suche (CTRL + F3)"; + public static String LabelName19 = "Suche (CTRL + F4)"; + + public static String LabelName20 = "Stichwortmarkierung (Grün)"; + public static String LabelName21 = "Stichwortmarkierung (Rot)"; + + public static String LabelName22 = "API-Link (Bestandsprüfung):"; + public static String LabelName23 = "Bestand nach Import prüfen?"; + public static String LabelName24 = "Bestandsliteratur entfernen?"; + + public static String LabelName22b = "ISBN-Trenner:"; + public static String LabelName22c = "Sigel:"; + + public static String LabelName25 = "OA-Titel als Stichwort markieren?"; + public static String LabelName26 = "OA-Titel entfernen?"; + + public static String LabelName27 = "Dubletten entfernen? (Anhand Titel)"; + public static String LabelName28 = "Schulbücher entfernen? (DDC: S)"; + public static String LabelName29 = "Kinder- und Jugendliteratur entfernen? (DDC: K)"; + public static String LabelName30 = "Titel ohne ISBN entfernen?"; + + public static String ResFolder = "res\\"; + public static boolean ShowPicsInsteadOfButton = false; + + public static String ResImageNameRegulations = "regulations.png"; + public static String ResImageNameLegalInfo = "legal-info.png"; + public static String ResImageNamectrlPic = "remote-control.png"; + public static String ResImageNamectrlButton = "ctrl-control-button.png"; + public static String ResImageNameshiftPic = "transmission.png"; + public static String ResImageNameshiftButton = "shift-button.png"; + public static String ResImageNamespacePic = "planet-saturn-space.png"; + public static String ResImageNamespaceButton = "space-button.png"; + public static String ResImageNameenterPic = "enter.png"; + public static String ResImageNameenterButton = "enter-button.png"; + public static String ResImageNamearrowDown = "down-arrow-button.png"; + public static String ResImageNamearrowUp = "up-arrow-button.png"; + public static String ResImageNamearrowLeft = "left-arrow-button.png"; + public static String ResImageNamearrowRight = "right-arrow-button.png"; + public static String ResImageNameimport = "import.png"; + public static String ResImageNamef1 = "f1-button.png"; + public static String ResImageNamef2 = "f2-button.png"; + public static String ResImageNamef3 = "f3-button.png"; + public static String ResImageNamef4 = "f4-button.png"; + public static String ResImageNamef5 = "f5-button.png"; + public static String ResImageNamef6 = "f6-button.png"; + public static String ResImageNamef7 = "f7-button.png"; + public static String ResImageNameBackspace = "backspace.png"; + public static String ResImageVerticalLine = "vertical-line.png"; + public static String ResImageclosedEye = "closed-eye.png"; + public static String ResImageTooltipIcon = "Reihe-A-Logo.png"; + public static String ResImageQuestionMark = "question-mark-round-line.png"; + public static String ResImageAlt = "alt-button.png"; + public static String ResImageViviButton = "logo_square.png"; + public static String ResImageSnakeButton = "snake.png"; + public static String ResImageIsbnChecker = "interesting-facts.png"; + public static String ResImageReiheAPicker = "rocks-falling-sign.png"; + public static String ResImageSaveButton = "save-all-files-icon.png"; + public static String ResImageSearchFolderFile = "folder-search-icon.png"; + public static String ResImageQuestionMarkImportSettings = "question-inquiry-icon.png"; + public static String ResImageQuestionMarkgeneral = "query-what-how-why.png"; + public static String ResImageNarrower = "resize_narrower.png"; + public static String ResImageSmaller = "resize_smaller.png"; + public static String ResImageTaller = "resize_taller.png"; + public static String ResImageWider = "resize_wider.png"; + public static String ResImageFontTaller = "fontTaller.png"; + public static String ResImageFontSmaller = "fontSmaller.png"; + public static String ResImageRefresh = "refresh.png"; + + public static String ResImageHelpbestandsliteratur = "helpExamples/bestandsliteratur.bmp"; + public static String ResImageHelpCatSearch1 = "helpExamples/CatSearch.bmp"; + public static String ResImageHelpDDCWhitelist = "helpExamples/DDCWhitelist.bmp"; + public static String ResImageHelpmarkings = "helpExamples/markings.bmp"; + public static String ResImageHelpOpenAccess = "helpExamples/openAcces.bmp"; + public static String ResImageHelpprogress = "helpExamples/progress.bmp"; + public static String ResImageHelpPublisherBlacklist = "helpExamples/PublisherBlacklist.bmp"; + public static String ResImageHelpFieldSettings = "helpExamples/fieldSettings.bmp"; + + public static String ResImageIHT = "IHT.bmp"; + public static String ResImageIHV = "IHV.bmp"; + + public static Text ShortCutDescription_inhaltsverzeichnis = new Text(" Inhaltsverzeichnis "); + public static Text ShortCutDescription_inhaltstext = new Text(" Inhaltstext "); + public static Text ShortCutDescription_zurAnsicht = new Text(" zur Ansicht "); + public static Text ShortCutDescription_auflagentausch = new Text(" Auflage tauschen "); + public static Text ShortCutDescription_sonderHinweis = new Text(" Eigener Hinweis "); + public static Text ShortCutDescription_export = new Text(" Titel Exportieren "); + public static Text ShortCutDescription_save = new Text(" Fortschritt speichern "); + public static Text ShortCutDescription_titelsuche = new Text(" Siehe Einstellungen "); + public static Text ShortCutDescription_titelsuche2 = new Text(" Siehe Einstellungen "); + public static Text ShortCutDescription_titelautorsuche = new Text(" Titel/Autor suchen "); + public static Text ShortCutDescription_verlagsuche = new Text(" Verlag suchen "); + public static Text ShortCutDescription_isbnsuche = new Text(" ISBN suchen "); + public static Text ShortCutDescription_rueckgaengig = new Text(" Entscheidung zurück "); + public static Text ShortCutDescription_copyISBNToClipboard = new Text(" ISBN in die Zwischenablage "); + public static Text ShortCutDescription_hinweisHinzufuegen = new Text(" Hinweis hinzufügen "); + public static Text ShortCutDescription_hinweisHinzufuegen2 = new Text(" Hinweis hinzufügen "); + public static Text ShortCutDescription_BestellendePersonAendern = new Text(" Bestellende Person ändern "); + + public static String importSettingsTitle1 = "DDC-Whitelist"; + public static String importSettingsTitle2 = "Publisher-Blacklist"; + public static String importSettingsTitle3 = "Dublettenentfernung (ISBN)"; + public static String importSettingsTitle4 = "Dublettenentfernung (Titel)"; + public static String importSettingsTitle5 = "Benutzerdefinierte Katalogsuche"; + public static String importSettingsTitle6 = "Stichworthervorhebung"; + public static String importSettingsTitle7 = "API-Einstellungen: Bestands und Open-Access-Prüfung"; + public static String importSettingsTitle8 = "Bestandsprüfung während des Imports"; + public static String importSettingsTitle9 = "Bestand aussortieren (auflagenspezifisch)"; + public static String importSettingsTitle10 = "Open-Access-titel aussortieren (auflagenspezifisch)"; + public static String importSettingsTitle11 = "Felddefinitionen anpassen"; + + public static String importSettingsText1 = "Hinweis: Wenn das Feld leer gelassen wird, werden keine DDCs aussortiert\n\n" + + "Beispiele:\n" + + "'30;50;120' = DDCs 30, 50 und 120 sind erlaubt. Andere DDCs werden aussortiert.\n" + + "'100+' = 100-199.99 sind erlaubt.\n" + + "'170+' = 170-199.99 sind erlaubt."; + public static String importSettingsText2 = "Hinweis: Datensätze werden aussortiert, wenn das angegebene Stichwort im Feld 'Verlag' vorhanden ist.\n\n" + + "Beispiele:\n" + + "'Kopp': 'Kopp' und 'Kopp-Verlag' werden aussortiert.\n" + + "'Kopp-Verlag': 'Kopp-Verlag' wird aussortiert.\n" + + "Bitte benutzen Sie diese Option mit Bedacht."; + public static String importSettingsText3 = "Nicht alle Dubletten können so ausgeschlossen werden, da unterschiedliche Datensätze teils keinen Wert im Feld 'ISBN' enthalten."; + public static String importSettingsText4 = "Filtert auch Titel mit fehlender ISBN."; + public static String importSettingsText5 = "Folgendermaßen können Sie eine eigene Suche definieren:\n" + + "Wählen Sie Ihren Wunschkatalog. Definieren Sie eine erweiterte Suche. Geben Sie beispielsweise den Wert 'Platzhalter' in eines der Felder 'Titel', 'Autor', 'ISBN' oder 'Verlag' ein. Kombinationen sind möglich.\n" + + "Senden Sie die Anfrage, sodass Sie zur Anzeige der Suchergebnisse gelangen.\n" + + "Kopieren Sie nun die URL. Diese sollte die Variablen der erweiterten Suche (z.B. 'Platzhalter') enthalten.\n" + + "Kopieren Sie diese URL in ein Textprogramm und ersetzen die Variable durch '[{[title]}]', '[{[author]}]', '[{[isbn]}]' oder '[{[publisher]}]'.\n" + + "Kopieren Sie die neue URL in eines der designierten Felder, je nachdem, mit welchem Tastenkürzel Sie die Suche ausführen möchten."; + public static String importSettingsText6 = "Hinweis: Vollständige Wörter müssen nicht angegeben werden. Das Wort 'Päd' markiert den Datensatz mit dem Hinweis 'Päd' wenn Wörter\n" + + "wie 'Pädagogik' oder 'Orthodpädie' im Datensatz gefunden werden.\n\n" + + "Beispiele:\n" + + "'Dissertation': Zeigt das Wort 'Dissertation' über dem Datensatz an, wenn dieses im Datensatz vorkommt.\n" + + "'Aufl': Zeigt das Wort 'Aufl' über dem Datensatz an, wenn beispielsweise 'Auflage' oder 'Auflauf' in diesem Datensatz vorkommt.\n" + + "'Auflage:unv': Zeigt das Wort 'unv' über dem Datensatz an, wenn im Feld 'Auflage' das Wort 'unverändert' vorkommt."; + public static String importSettingsText7 = "Funktion derzeit nur verfügbar für Bibliotheken des K10+.\n" + + "Bitte tragen Sie lediglich Ihr Sigel im Feld Sigel ein. (Z.b. 'DE-Frei129')"; + public static String importSettingsText8 = "Sämtliche Datensätze werden bereits beim Laden auf Bestand und OA-Status geprüft und ggf. (abhängig von den beiden Folgeeinstellungen) aussortiert.\n" + + "Die Ladezeit je Titel beträgt ca. eine halbe Sekunde. Während des Ladeprozesses wird in der rechten oberen Ecke eine Fortschrittsanzeige angezeigt.\n" + + "Die Bestandsprüfung erfolgt anhand der ISBN und ist somit Auflagenspezifisch. Über den Bestand älterer Auflagen wird keine Aussage getroffen."; + public static String importSettingsText9 = "Hinweis: ist die Option 'Bestand nach Import prüfen?' aktiviert, werden die Datensätze unmittelbar nach dem Ladeprozess aussortiert.\n" + + "Ist die Funktion 'Bestand nach Import prüfen?' deaktiviert, werden die Datensätze während der Titelauswahl geprüft und unmittelbar verschoben.\n" + + "Diese werden Ihnen folglich nicht mehr zur Auswahl angeboten. Automatisch aussortierte Datensätze werden Ihnen jedoch gesondert in der unteren linken Ecke angezeigt und rot hinterlegt."; + public static String importSettingsText10 = "Hinweis: ist die Option 'Bestand nach Import prüfen?' aktiviert, werden die Datensätze unmittelbar nach dem Ladeprozess aussortiert.\n" + + "Ist die Funktion 'Bestand nach Import prüfen?' deaktiviert, werden die Datensätze während der Titelauswahl geprüft und unmittelbar verschoben.\n" + + "Diese werden Ihnen folglich nicht mehr zur Auswahl angeboten. Automatisch aussortierte Datensätze werden Ihnen jedoch gesondert in der unteren linken Ecke angezeigt und rot hinterlegt."; + public static String importSettingsText11 = "Passen Sie die Anzeige der Titeldatensätze Ihren Bedürfnissen an.\n" + + "Wichtig hierfür sind die Angaben im Feld 'Aktuelle Einstellungen'. Die Anzeige im Feld 'Felddefinition (aktueller Datensatz)' dient nur als Vorlage (bzw. zur Angabe aller Felddefinitionen), sollten Sie die Einstellungen grundlegend neu erstellen wollen.\n" + + "\n" + + "Wie passe ich die Einstellungen meinen Bedürfnissen an? (Einfache Einstellungen):\n" + + "- Laden Sie zunächst einen beliebigen Reihe-A-Datensatz, sodass die Felddefinitionen geladen werden können.\n" + + "- Kopieren Sie die Felddefinition in das Feld 'Aktuelle Einstellungen'.\n" + + "- Entfernen Sie nun ungewünschte Felder oder verändern Sie die Reihenfolge.\n" + + "- Eine Vorschau, abhängig vom aktuellen Titeldatensatz, wird Ihnen im Feld 'Vorschau' angezeigt.\n" + + "\n" + + "Wie passe ich die Einstellungen meinen Bedürfnissen an? (Erweiterte Einstellungen):\n" + + "- Laden Sie zunächst einen beliebigen Reihe-A-Datensatz, sodass die Felddefinitionen geladen werden können.\n" + + "- Kopieren Sie die Felddefinition in das Feld 'Aktuelle Einstellungen'.\n" + + "- Entfernen Sie nun ungewünschte Felder oder verändern Sie die Reihenfolge.\n" + + "- Verändern Sie nun die Tags nach Ihren Bedürfnissen. Vorsicht: Die Inhalte des Tags >Fieldname>Alias>Fieldname>InhaltsverzeichnisAlias>IHVFieldContent>Fieldname>InhaltsverzeichnisFieldContent>SPACEcr<' können Sie eine Leerzeile generieren, um beispielsweise eine Kurzversion des Titeldatensatzes gefolgt von einer ausführlichen Variante zu erzeugen."; + + + + + public static String importSettingsTooltip1 = "Angabe von erlaubten DDCs. Datensätze unter nicht angegebenen DDCs werden aussortiert."; + public static String importSettingsTooltip2 = "Angabe von unerwünschten Verlagen. Angegebene Verlage werden aussortiert."; + public static String importSettingsTooltip3 = "Datensätze mit identischen Werten im Feld 'ISBN' werden aussortiert."; + public static String importSettingsTooltip4 = "Datensätze mit identischen Titeln werden aussortiert."; + public static String importSettingsTooltip5 = "Benutzerdefinierte Suchanfragen ausgelöst durch Tastenkürzel. ([STRG/SHIFT] + F1-F4)"; + public static String importSettingsTooltip6 = "Angabe von Stichwörtern, die während der Auswahl von Titeldatensätzen hervorgehoben werden."; + public static String importSettingsTooltip7 = "Bestandsprüfung/Open-Access-Prüfung."; + public static String importSettingsTooltip8 = "Datensätze bereits während dem Ladeprozess auf Bestand/OA-Status prüfen und ggf. aussortieren."; + public static String importSettingsTooltip9 = "Titel, welche bereits in der vorliegenden Auflage im Bestand sind, werden automatisch aussortiert."; + public static String importSettingsTooltip10 = "Titel, welche bereits in der vorliegenden Auflage Open-Access verfügbar sind, werden automatisch aussortiert."; + public static String importSettingsTooltip11 = "Anpassen der Felddefinitionen (Reihenfolge, Alias, Inhalt) in der Titelauswahl."; + + + + public static String Kurzeinfuehrung = + "- Markieren Sie eine der drei Textboxen\r\n" + + "- Verschieben/navigieren Sie mithilfe der Pfeiltasten\r\n" + + "- Linke Spalte: Aussortierte/ungeeignete Titel\r\n" + + "- Rechte Spalte: Gewählte Titel\r\n" + + "- Exportiert werden die Titel auf der rechten Seite\r\n" + + "- Mit SHIFT + Mausrad können Sie durch die Listen scrollen\r\n" + + "- Mit +/- (Ziffernblock) können Sie die Schriftgröße anpassen" + ; + + public static String Kurzeinfuehrung_orderMode = + "- Markieren Sie eine der drei Textboxen\r\n" + + "- Verschieben/navigieren Sie mithilfe der Pfeiltasten\r\n" + + "- Linke Spalte: Zurückgestellte Titel\r\n" + + "- Rechte Spalte: Fertig bearbeitete Titel\r\n" + + "- Titel auf der rechten Seite werden beim erneuten Laden der Datensätze oder nach dem Beenden des Programms nicht länger angezeigt\r\n" + + "- Mit SHIFT + Mausrad können Sie durch die Listen scrollen\r\n" + + "- Mit +/- (Ziffernblock) können Sie die Schriftgröße anpassen" + ; + + public static String DefaultFont= "TimesRoman"; + public static String MonospaceFont ="Courier New"; + public static int DefaultFontSize = 14; +} diff --git a/src/var_reiheAPicker/Publishers.java b/src/var_reiheAPicker/Publishers.java new file mode 100644 index 0000000..6fd3d19 --- /dev/null +++ b/src/var_reiheAPicker/Publishers.java @@ -0,0 +1,4216 @@ +package var_reiheAPicker; + +import java.util.ArrayList; +import java.util.List; + +public class Publishers { + + public List publishersList; + + public Publishers() + { + this.publishersList = new ArrayList(); + String[] splitList = publishersListRaw.split("\r\n"); + for (String publisherAndAmount : splitList) + { + String[] splitListInner = publisherAndAmount.split(";"); + System.out.println(splitListInner[0]); + System.out.println(splitListInner[1]); + publishersList.add(new models_reiheAPicker.PublisherAmountBooksModel(splitListInner[0], Integer.parseInt(splitListInner[1]))); + } + } + private String publishersListRaw=""; + /*private String publishersListRaw= + "Universit;99999\r\n" + + "Hochschul;99999\r\n" + + "Pädagogische;99999\r\n" + + "Akademie;99999\r\n" + + "Wissenschaften;99999\r\n" + + "Kohlhammer;494\r\n" + + "Beck;209\r\n" + + "Lang;172\r\n" + + "Schneider;163\r\n" + + "wbg;146\r\n" + + "Gruyter;142\r\n" + + "Budrich;141\r\n" + + "Beltz;140\r\n" + + "Vandenhoeck;127\r\n" + + "Bundeszentrale;114\r\n" + + "Klett;113\r\n" + + "Fischer;96\r\n" + + "Attempto;92\r\n" + + "Springer;90\r\n" + + "Ernst;88\r\n" + + "Rowohlt;78\r\n" + + "Ruhr;74\r\n" + + "Dr. Kova;69\r\n" + + "Ernst Klett ;69\r\n" + + "Brill;66\r\n" + + "Klinkhardt;60\r\n" + + "Kiepenheuer & Witsch;57\r\n" + + "Routledge;56\r\n" + + "Königshausen;52\r\n" + + "Carl-Auer;51\r\n" + + "Meyer ;49\r\n" + + "Pädagogische Hochschule;45\r\n" + + "Ernst Klett;44\r\n" + + "Wiley-VCH;49\r\n" + + "Gräfe und Unzer;43\r\n" + + "Siebeck;40\r\n" + + "Hoffmann und Campe;39\r\n" + + "Links;39\r\n" + + "Matthias;37\r\n" + + "Frank & Timme;36\r\n" + + "Alber;35\r\n" + + "Logos;34\r\n" + + "V&R;34\r\n" + + "Dorling Kindersley;30\r\n" + + "EMF;30\r\n" + + "Erich Schmidt;27\r\n" + + "Haufe Group;25\r\n" + + "Wilhelm;25\r\n" + + "Bertelsmann;24\r\n" + + "Wagenbach;23\r\n" + + "modernes lernen;22\r\n" + + "wbv;21\r\n" + + "Bloomsbury;20\r\n" + + "Hatje;20\r\n" + + "Herbert von Halem;20\r\n" + + "Schott;20\r\n" + + "WVT;19\r\n" + + "Cambridge;18\r\n" + + "Auer;17\r\n" + + "Hanser;17\r\n" + + "Matthes ;17\r\n" + + "Christophorus;16\r\n" + + "Freies Geistesleben;16\r\n" + + "Audio;15\r\n" + + "Debus;15\r\n" + + "Kassel University ;15\r\n" + + "Paul;15\r\n" + + "wvb ;15\r\n" + + "Dampfboot;14\r\n" + + "Ferdinand;14\r\n" + + "Frankfurter Allgemeine ;14\r\n" + + "Handwerk und Technik;14\r\n" + + "Oxford;14\r\n" + + "BVK;13\r\n" + + "DuMont ;13\r\n" + + "Duncker;13\r\n" + + "Stiftung Warentest;13\r\n" + + "Westermann;13\r\n" + + "WTM ;13\r\n" + + "Eugen;12\r\n" + + "Lehmanns;12\r\n" + + "Religionspädagogik;12\r\n" + + "Don Bosco;11\r\n" + + "Jacoby & Stuart;11\r\n" + + "Cornelsen;10\r\n" + + "Deutscher Kunstverlag;10\r\n" + + "MAIRDUMONT;10\r\n" + + "Seminares;10\r\n" + + "NZZ;10\r\n" + + "Wochenschau;10\r\n" + + "Delius;9\r\n" + + "Hentrich;9\r\n" + + "Quelle & Meyer;9\r\n" + + "Thorbecke;9\r\n" + + "BoD;8\r\n" + + "Buchner;8\r\n" + + "Büchner;8\r\n" + + "Eusl-Verlagsgesellschaft ;8\r\n" + + "Guilford;8\r\n" + + "Klostermann;8\r\n" + + "Kremayr;8\r\n" + + "neue praxis;8\r\n" + + "Theater der Zeit;8\r\n" + + "Walther König;8\r\n" + + "Apollon;7\r\n" + + "Berliner Wissenschaft;7\r\n" + + "Das Neue Berlin;7\r\n" + + "Galiani;7\r\n" + + "innsbruck university;7\r\n" + + "Kein & Aber;7\r\n" + + "Klampen;7\r\n" + + "Kunstmann;7\r\n" + + "Matters;7\r\n" + + "Universitätsverlag;7\r\n" + + "Vollmer;7\r\n" + + "Wißner;7\r\n" + + "WTM;7\r\n" + + "Athena;6\r\n" + + "Brandes;6\r\n" + + "Eden;6\r\n" + + "Eugen Ulmer ;6\r\n" + + "Michael Imhof;6\r\n" + + "Müller;6\r\n" + + "Pustet;6\r\n" + + "Rother;6\r\n" + + "Schöffling;6\r\n" + + "Velbrück;6\r\n" + + "vivendi;6\r\n" + + "Wahhalla;6\r\n" + + "Becker Joest Volk;5\r\n" + + "BildungsEINS;5\r\n" + + "Carl Auer;5\r\n" + + "FAU University Press;5\r\n" + + "Füssli;5\r\n" + + "Gallimard Bande;5\r\n" + + "Grundschulverband ;5\r\n" + + "Josef Raabes;5\r\n" + + "Laurence;5\r\n" + + "Michael Müller;5\r\n" + + "Penguin;5\r\n" + + "Peter Hammer;5\r\n" + + "Rainer Hampp;5\r\n" + + "Rheinwerk;5\r\n" + + "Simon & Schuster;5\r\n" + + "Werkstatt;5\r\n" + + "Berg;4\r\n" + + "Das Kulturelle Gedächtnis;4\r\n" + + "Delta;4\r\n" + + "Deutscher Wissenschaftsverlag;4\r\n" + + "GdS Schulerfolg;4\r\n" + + "Hirzel;4\r\n" + + "Hülsbusch;4\r\n" + + "Kleine Gestalten;4\r\n" + + "Klotzhaus;4\r\n" + + "Leopold Stocker;4\r\n" + + "Peter Rump;4\r\n" + + "Pons;4\r\n" + + "Roderer;4\r\n" + + "Ullstein;4\r\n" + + "Andere Bibliothek;3\r\n" + + "Baobab;3\r\n" + + "Barbara Budrich;3\r\n" + + "Barth;3\r\n" + + "Basic Books;3\r\n" + + "Behr's;3\r\n" + + "Beuth;3\r\n" + + "Bildungsverlag;3\r\n" + + "Bock + Herchen;3\r\n" + + "Bundesverband;3\r\n" + + "ça ira;3\r\n" + + "Ch.A. Bachmann;3\r\n" + + "CRC Press;3\r\n" + + "Cross Cult;3\r\n" + + "das netz;3\r\n" + + "David & Charles;3\r\n" + + "der hospizverlag;3\r\n" + + "Deutsche Bibelgesellschaft;3\r\n" + + "Diesterweg;3\r\n" + + "Dietz;3\r\n" + + "E.A. Seemann;3\r\n" + + "Elisabeth Sandmann;3\r\n" + + "Ernst Kaufmann;3\r\n" + + "Familiar Faces;3\r\n" + + "Felix;3\r\n" + + "Fink;3\r\n" + + "Fraunhofer;3\r\n" + + "für Polizeiwissenschaft;3\r\n" + + "GABAL;3\r\n" + + "Herder;3\r\n" + + "IFB Deutsche Sprache;3\r\n" + + "K & S;3\r\n" + + "Konstanz University ;3\r\n" + + "Kröner;3\r\n" + + "Marta;3\r\n" + + "Metzler;3\r\n" + + "Ministerium;3\r\n" + + "National Geographic;3\r\n" + + "Oberfranken;3\r\n" + + "Pabst;3\r\n" + + "Politische Bildung;3\r\n" + + "readbox unipress;3\r\n" + + "Rowman & Littlefield;3\r\n" + + "Schnell + Steiner;3\r\n" + + "Schöningh;3\r\n" + + "Schroedel;3\r\n" + + "Schubi;3\r\n" + + "Shaker;3\r\n" + + "Technische Universität;3\r\n" + + "The MIT Press;3\r\n" + + "Theologischer Zürich;3\r\n" + + "Trafo;3\r\n" + + "Turia + Kant;3\r\n" + + "University of Bamberg;3\r\n" + + "Urs Engeler;3\r\n" + + "Vincentz;3\r\n" + + "Vitra;3\r\n" + + "W. Kohlhammer;3\r\n" + + "zu Klampen;3\r\n" + + "am Goetheanum;2\r\n" + + "am Park;2\r\n" + + "American Psychological Association;2\r\n" + + "Arc Humanities Press;2\r\n" + + "Aulis in Friedrich;2\r\n" + + "BeBra Wissenschaft;2\r\n" + + "Berufs- und Fachverbands;2\r\n" + + "Bibliographisches Institut;2\r\n" + + "Bohem Press;2\r\n" + + "Borgmann Media;2\r\n" + + "Bundesanstalt für Landwirtschaft und Ernährung;2\r\n" + + "Butzon & Bercker;2\r\n" + + "Copress Sport;2\r\n" + + "Das Wunderhorn GmbH;2\r\n" + + "Der Hörverlag;2\r\n" + + "Deutscher Hochschulverband;2\r\n" + + "dgvt-Verlag, Deutsche Gesellschaft für Verhaltenstherapie;2\r\n" + + "Die Andere Bibliothek;2\r\n" + + "Die Buchmacherei;2\r\n" + + "Dr. Cantzschesgesellschaft mbH & Co. KG;2\r\n" + + "Dr. Dieter Winkler;2\r\n" + + "Duke University Press;2\r\n" + + "Edel Books;2\r\n" + + "Egmont;2\r\n" + + "Facet Publishing;2\r\n" + + "Farrar, Straus and Giroux;2\r\n" + + "Feldhaus Edition Hamburger Buchwerkstatt;2\r\n" + + "Ferdinand Schöningh;2\r\n" + + "Fillibach bei Klett;2\r\n" + + "Friedenauer Presse;2\r\n" + + "Harvard Education Press;2\r\n" + + "J.H.W. Dietz Nachf. GmbH;2\r\n" + + "Kallmeyer in Verbindung mit Klett;2\r\n" + + "Kamphausen Media GmbH;2\r\n" + + "Katholisches Bibelwerk;2\r\n" + + "Kestner Gesellschaft;2\r\n" + + "Kieler Institut für Gymnastik und Tanz;2\r\n" + + "Klemm + Oelschläger;2\r\n" + + "Knesebeck;2\r\n" + + "KOHL Der mit dem Baum;2\r\n" + + "Königshausen u. Neumann;2\r\n" + + "Kösel;2\r\n" + + "Krapp & Gutknecht;2\r\n" + + "Landesamt für Denkmalpflege;2\r\n" + + "Laurence King Publishing;2\r\n" + + "Lektora GmbH;2\r\n" + + "Lisa M. Stybor;2\r\n" + + "Markt + Technik;2\r\n" + + "Meiner, F;2\r\n" + + "MSB Matthes & Seitz Berlinsgesellschaft mbH;2\r\n" + + "Nagel & Kimche;2\r\n" + + "Narr Francke Attempo;2\r\n" + + "new academic press;2\r\n" + + "Nünnerich-Asmus & Media GmbH;2\r\n" + + "Oetinger Taschenbuch;2\r\n" + + "öffentliche und private Fürsorge;2\r\n" + + "P.I.E. Peter Lang;2\r\n" + + "Park Books;2\r\n" + + "Paulo Freire;2\r\n" + + "Penguin JUNIOR;2\r\n" + + "Persen in der AAP Lehrerwelt GmbH;2\r\n" + + "Rainsource Press;2\r\n" + + "readbox publishing;2\r\n" + + "Readbox Unipress in der Readbox Publishing GmbH;2\r\n" + + "Rock the boat;2\r\n" + + "RPA religionspädagogischer Arbeitshilfen;2\r\n" + + "SCM R. Brockhaus;2\r\n" + + "selbstbestimmtes leben;2\r\n" + + "Spector Books;2\r\n" + + "Stark GmbH;2\r\n" + + "Südpol GmbH;2\r\n" + + "Suhrkamp, Jüdischer;2\r\n" + + "The Belknap Press of Harvard University Press;2\r\n" + + "The University of Chicago Press;2\r\n" + + "Trafalgar Square;2\r\n" + + "Universität Paderborn;2\r\n" + + "Universitätsbibliothek Dortmund;2\r\n" + + "V&A Publishing;2\r\n" + + "VDE GmbH;2\r\n" + + "vdf HochschulAG an der ETH Zürich;2\r\n" + + "Verlagsgesellschaft Stumpf + Kossendey mbH;2\r\n" + + "Verlagshaus Berlin;2\r\n" + + "Vincentz Network GmbH & Co. KG;2\r\n" + + "Von Hacht;2\r\n" + + "VS für Sozialwissenschaften;2\r\n" + + "VWB - für Wissenschaft und Bildung;2\r\n" + + "vwh, Werner Hülsbusch, Fachfür Medientechnik und -wirtschaft;2\r\n" + + "Weidler Buchverlag;2\r\n" + + "Werner Hülsbusch;2\r\n" + + "Westarp Science Fachverlag;2\r\n" + + "Westdeutscher Universitätsverlag, Europäischer Universitätsverlag;2\r\n" + + "Westend GmbH;2\r\n" + + "William Collins;2\r\n" + + "Wochenschau Studium;2\r\n" + + "World Scientific;2\r\n" + + "WTM - für wissenschaftliche Texte und Medien;2\r\n" + + "wvb Wissenschaftlicher;2\r\n" + + "Yale University Press;2\r\n" + + "ZS ein der Edelsgruppe;2\r\n" + + "Aenne Burda;1\r\n" + + "Akademie der Künste;1\r\n" + + "Akademie der Wissenschaften und der Literatur;1\r\n" + + "Akademische Arbeitsgemeinschaft;1\r\n" + + "ALA Editions;1\r\n" + + "Alfred A. Knopf Canada;1\r\n" + + "Alison Green Books;1\r\n" + + "Allen Lane;1\r\n" + + "Alma Marta;1\r\n" + + "am Klosterhof;1\r\n" + + "Amalthea Signum;1\r\n" + + "Amazon Fulfillment;1\r\n" + + "an der Ruhe;1\r\n" + + "Anikkänbrö & Knetemelk;1\r\n" + + "Anne Roerkohl dokumentARfilm GmbH;1\r\n" + + "Antilopen Geldwäsche;1\r\n" + + "Antja Kunstmann;1\r\n" + + "AOL, scolix in der AAP Lehrerwelt GmbH;1\r\n" + + "Arche Literatur;1\r\n" + + "Ars Scribendi;1\r\n" + + "Art d'Ameublement;1\r\n" + + "Artemis & Winkler;1\r\n" + + "Assoziation A;1\r\n" + + "Aufbau Taschenbuch;1\r\n" + + "Aurinia Transformation;1\r\n" + + "BALANCE;1\r\n" + + "Bananenblau;1\r\n" + + "Bavarian Prints;1\r\n" + + "Bayerischer Landwirtschaftsverlag;1\r\n" + + "Beacon Press;1\r\n" + + "Bei Schmitz;1\r\n" + + "BenBella;1\r\n" + + "Berenberg GmbH;1\r\n" + + "Berlin Story;1\r\n" + + "Berlin University;1\r\n" + + "Bertz und Fischer;1\r\n" + + "Bildung Plus;1\r\n" + + "BIS Publishers;1\r\n" + + "Böhmer & Mundloch;1\r\n" + + "Breitkopf & Härtel;1\r\n" + + "Brunnen GmbH;1\r\n" + + "buch & netz;1\r\n" + + "Büchergilde Gutenberg;1\r\n" + + "Buchkunst Berlin;1\r\n" + + "Budrich Academic Press GmbH;1\r\n" + + "Bund Deutscher Orgelbaumeister;1\r\n" + + "Bundesamt für Naturschutz;1\r\n" + + "Bundesinstitut für Bau-, Stadt- und Raumforschung;1\r\n" + + "Bundeszentrale für politische Bildung;1\r\n" + + "Bürger fürs BADEHAUS;1\r\n" + + "Burkhard Fehrlen;1\r\n" + + "C.W. Leske;1\r\n" + + "Cadmos GmbH;1\r\n" + + "Candlewick Press;1\r\n" + + "Carl Gerber GmbH;1\r\n" + + "Carlsen GmbH;1\r\n" + + "Carola Hartmann Miles-Verlag;1\r\n" + + "CEP Europäischesanstalt;1\r\n" + + "Chatto and Windus;1\r\n" + + "Christian Brandstätter;1\r\n" + + "Christian GmbH;1\r\n" + + "Christian Rieck;1\r\n" + + "Clarkson Potter;1\r\n" + + "Common Ground Research Networks;1\r\n" + + "Conrad Stein GmbH;1\r\n" + + "Corgi Books;1\r\n" + + "Cornell University Press;1\r\n" + + "Correctiv - und Vertrieb für die Gesellschaft;1\r\n" + + "Daniel Funk;1\r\n" + + "Delacorte Press;1\r\n" + + "Delphin GmbH;1\r\n" + + "demokratischer Wissenschaflterinnen;1\r\n" + + "der Franckeschen Stiftungen;1\r\n" + + "DETAIL Business Information GmbH;1\r\n" + + "Deutsche Gesellschaft für Ernährung e.V. (DGE);1\r\n" + + "Deutsche Gesellschaft für Lesen und Schreiben;1\r\n" + + "Deutsche Gesellschaft für Technische Bildung e.V;1\r\n" + + "Deutsche Gesellschaft für Verhaltenstherapie;1\r\n" + + "Deutsche Grammophon;1\r\n" + + "Deutscher für Kunstwissenschaft;1\r\n" + + "Deutscher Gemeindeverlag;1\r\n" + + "Deutscher Kulturrat e.V.;1\r\n" + + "Deutscher Psychologen GmbH;1\r\n" + + "Deutsches Kulturforum Östliches Europa;1\r\n" + + "Die Blaue Eule;1\r\n" + + "Die Gestalten;1\r\n" + + "Dietz, J.H.W.;1\r\n" + + "DLeV, Deutscher Levante;1\r\n" + + "Dokument Press;1\r\n" + + "Dölling und Galitz;1\r\n" + + "DOM publishers;1\r\n" + + "Dr. Felix Büchner, Handwerk und Technik;1\r\n" + + "Dr. Götz Schmidt;1\r\n" + + "Dr. H.H. Driesen GmbH;1\r\n" + + "Dr. Köster;1\r\n" + + "Dr. Rainer Wild-Stiftung;1\r\n" + + "Dr.-Ing. Paul Christiani GmbH & Co. KG;1\r\n" + + "Dt. Taschenbuch-Verl.;1\r\n" + + "düsseldorf university press;1\r\n" + + "düsseldorf university press ;1\r\n" + + "Dutton Books;1\r\n" + + "DUZ Medienhaus;1\r\n" + + "DUZs- und Medienhaus GmbH;1\r\n" + + "Eagle Books;1\r\n" + + "ecomed Medizin;1\r\n" + + "Edward Elgar Publishing;1\r\n" + + "Eerdmans Books for Young Readers;1\r\n" + + "Eigensinn Publishing;1\r\n" + + "ellermann im Dressler;1\r\n" + + "Ellert & Richter;1\r\n" + + "Elster & Salis AG;1\r\n" + + "Erlanger für Mission und Ökumene;1\r\n" + + "Ernst Klett GmbH;1\r\n" + + "Ernst Klett, Programmbereich Klett-Auer;1\r\n" + + "Erzdiözese Freiburg;1\r\n" + + "Esterbauer GmbH;1\r\n" + + "Eugen Ulmer;1\r\n" + + "Europa Lehrmittel, Nourney, Vollmer;1\r\n" + + "Europäisches Hansemuseum;1\r\n" + + "Eusl, Eusl-Verlagsgesellschaft mbH;1\r\n" + + "Evangelischesanstalt Leipzig;1\r\n" + + "Faber & Faber;1\r\n" + + "FachbuchWeber & Weidemeyer;1\r\n" + + "Fachdes deutschen Bestattungsgewerbes;1\r\n" + + "FachhochschulFrankfurt a.M., Der für angewandte Wissenschaft;1\r\n" + + "Fachmedien Otto Schmidt;1\r\n" + + "FBV, FinanzBuch;1\r\n" + + "FEL Forschung - Entwicklung - Lehre;1\r\n" + + "FeuerTrutz, RM Rudolf Müller;1\r\n" + + "ff Publishers;1\r\n" + + "Flatiron Books;1\r\n" + + "Floh Stiftung Lernen;1\r\n" + + "FLUSS e.V;1\r\n" + + "Forum Godesberg;1\r\n" + + "Forum Herkert GmbH;1\r\n" + + "Forum Politische Bildung;1\r\n" + + "Franz Vahlen GmbH;1\r\n" + + "Fromm + Rasch;1\r\n" + + "für Kultur und Wissenschaft, Culture and Science Publ. Dr. Thomas Schirrmacher;1\r\n" + + "für pädagogische medien;1\r\n" + + "für Pädagogische Medien, Ernst Klett GmbH;1\r\n" + + "für systemische Forschung im Carl-Auer;1\r\n" + + "für Systemische Konzepte;1\r\n" + + "für Vergnügliches Lernen;1\r\n" + + "für wissenschaftliche Literatur;1\r\n" + + "G. P. Probst;1\r\n" + + "Gabriel in der Thienemann-Esslinger GmbH;1\r\n" + + "Gabriele Schäfer;1\r\n" + + "Germanisches Nationalmuseum;1\r\n" + + "Gesunde Entwicklung;1\r\n" + + "GIA Publications, Inc;1\r\n" + + "Grafisches Centrum Cuno;1\r\n" + + "Greystone Books;1\r\n" + + "Grundschulverband;1\r\n" + + "Gustav Bosse GmbH & Co. KG;1\r\n" + + "Haffmans & Tolkemitt;1\r\n" + + "Harper Collins;1\r\n" + + "Harper, an imprint of HarperCollins Publishers;1\r\n" + + "HarperCollins Publishers;1\r\n" + + "Hartmann Books;1\r\n" + + "Hase und Igel;1\r\n" + + "Haus der Wannseekonferenz, Gedenk- und Bildungsstätte;1\r\n" + + "HEEL GmbH;1\r\n" + + "Heidelberg University Publishing;1\r\n" + + "Helbing Lichtenhahn;1\r\n" + + "HENRIS Edition;1\r\n" + + "Hep AG;1\r\n" + + "Herbert Press;1\r\n" + + "Hermann Schmidt;1\r\n" + + "Hinz & Kunzt;1\r\n" + + "Hogrefe GmbH & Co. KG;1\r\n" + + "HPB University Press;1\r\n" + + "Humanities Online;1\r\n" + + "Hurst & Company;1\r\n" + + "Hutchinson Heinemann;1\r\n" + + "Huttenscher 507;1\r\n" + + "IfeM - Institut für elementare Musikerziehung GmbH;1\r\n" + + "Ille & Riemer;1\r\n" + + "in Kommission beim C.H. Beck;1\r\n" + + "Info 3;1\r\n" + + "Information Bibliothek;1\r\n" + + "Institut für Grenzgebiete der Psychologie und Psychohygiene e.V.;1\r\n" + + "Institut für Religionspädagogik;1\r\n" + + "Johannes Einsiedeln;1\r\n" + + "John Murray;1\r\n" + + "jos fritz buchhandlung-antiquariat-gmbh;1\r\n" + + "Jüdischer im Suhrkamp;1\r\n" + + "Jugend & Volk westermann;1\r\n" + + "Julius Klinkhardt;1\r\n" + + "Jünger Medien;1\r\n" + + "Jutta Höch-Corona & Christian Corona;1\r\n" + + "k, n;1\r\n" + + "Kairos, PM;1\r\n" + + "Karl Rauch;1\r\n" + + "kasseluniversity press;1\r\n" + + "Katholisches Bibelwerk GmbH;1\r\n" + + "Klassik Stiftung Weimar;1\r\n" + + "Klimawandel;1\r\n" + + "Knabe Weimar;1\r\n" + + "Knaur MensSana;1\r\n" + + "Knaur Taschenbuch;1\r\n" + + "Kolchis GmbH;1\r\n" + + "Kommunal- und Schul-GmbH & Co. KG;1\r\n" + + "Kremayr & Scheriau;1\r\n" + + "Kriminologische Zentralstelle;1\r\n" + + "Kunst Museum;1\r\n" + + "Kupido Literaturverlag;1\r\n" + + "La Découverte;1\r\n" + + "Langen Müller;1\r\n" + + "Leipziger UniversitätsGmbH;1\r\n" + + "les Fourmis rouges;1\r\n" + + "Lexington Books;1\r\n" + + "Libri ad vitam;1\r\n" + + "Lifestyle BusseSeewald;1\r\n" + + "LINCOM GmbH;1\r\n" + + "Little, Brown and Company;1\r\n" + + "Loewenstein Bücher & Medien GmbH;1\r\n" + + "Löwenzahn in der StudienGes.m.b.H;1\r\n" + + "LV. Buch;1\r\n" + + "m, Midas;1\r\n" + + "Macmillan Children's Books;1\r\n" + + "Macmillan International Higher Education;1\r\n" + + "Madrugada Music AS uinder exclusive license to Warner Music Norway AS.;1\r\n" + + "Mandelbaum kritik & utopie;1\r\n" + + "Manuela Kinzel;1\r\n" + + "mdv aktuell;1\r\n" + + "Median-von Killisch-Horn;1\r\n" + + "Medizinisch Wissenschaftlichesgesellschaft;1\r\n" + + "Mémoire d'encrier;1\r\n" + + "Merian ein Imprint von GRÄFE UND UNZER GmbH;1\r\n" + + "Methuen Drama;1\r\n" + + "Meyer & Meyer;1\r\n" + + "Meyer & Meyer Sport;1\r\n" + + "mgo Fachverlage;1\r\n" + + "Michael Wiese Productions;1\r\n" + + "migo im Friedrich Oetinger;1\r\n" + + "Mildenberger GmbH;1\r\n" + + "mitps GmbH & Co. KG;1\r\n" + + "Moon Notes;1\r\n" + + "Müller, Michael;1\r\n" + + "Münchner Philharmoniker;1\r\n" + + "Museum der bildenden Künste Leipzig;1\r\n" + + "Museum Frieder Burda;1\r\n" + + "Museum Wiesbaden;1\r\n" + + "MWV Medizinisch Wissenschaftlichesgesellschaft;1\r\n" + + "nap - new academic press;1\r\n" + + "nap new academic press;1\r\n" + + "narr, francke, attempto;1\r\n" + + "National Geographic Deutschland;1\r\n" + + "Nationalgalerie, Staatliche Museen zu Berlin;1\r\n" + + "Natural History Museum;1\r\n" + + "nChandos Publishing;1\r\n" + + "Neue Deutsche Schulesgesellschaft mbH;1\r\n" + + "Neuer Merkur GmbH;1\r\n" + + "New Society Publishers;1\r\n" + + "Nomos;2\r\n" + + "Nord Süd;1\r\n" + + "Novo Argumente;1\r\n" + + "oekom, Gesellschaft für ökologische Kommunikation mbH;1\r\n" + + "Oertel + Spörer;1\r\n" + + "Oetinger Media GmbH;1\r\n" + + "Oldenbourg Schulbuchverlag;1\r\n" + + "OlWIR, Oldenburger für Wirtschaft, Informatik und Recht;1\r\n" + + "One Signal Publishers/Atria Books;1\r\n" + + "Oni Press;1\r\n" + + "Orgshop GmbH;1\r\n" + + "Orlanda GmbH;1\r\n" + + "Österreichischen Gewerkschaftsbunde;1\r\n" + + "Pädagogische Forschungsstelle beim Bund der Freien Waldorfschulen;1\r\n" + + "Pädagogische Hochschule Freiburg;1\r\n" + + "Palgrave Macmillan;1\r\n" + + "Panico Alpinverlag;1\r\n" + + "Panini comics;1\r\n" + + "Paninis GmbH;1\r\n" + + "Pantheon Books;1\r\n" + + "Parthas Berlin;1\r\n" + + "Peace Knowledge Press;1\r\n" + + "peace press;1\r\n" + + "Pearson Deutschland GmbH;1\r\n" + + "Penguin Books, an imprint of Penguin Random House LLC;1\r\n" + + "Peter Lang;1\r\n" + + "Peter Lang GmbH;1\r\n" + + "Peter Lang GmbH, Internationaler der Wissenschaften;1\r\n" + + "Peter Lang Publishing Inc;1\r\n" + + "Piet Meyer;1\r\n" + + "Pitchstone Publishing;1\r\n" + + "Plaza & Janés;1\r\n" + + "Plume, Penguin Random House LLC;1\r\n" + + "Policy Press;1\r\n" + + "Princeton Architectural Press;1\r\n" + + "Princeton University Press;1\r\n" + + "PRO Kita;1\r\n" + + "Projekte Hahn;1\r\n" + + "\"Projektgruppe Gruppenaspekte besser verstehen\"\"\"\"\";1\r\n" + + "Promopress, Hoaki Books, S.L.;1\r\n" + + "PROverbis e.U.;1\r\n" + + "Prufrock Press Inc;1\r\n" + + "Psychiatrie und Geschichte;1\r\n" + + "Puffin Books;1\r\n" + + "Quill Tree;1\r\n" + + "Quintessenz Publishing;1\r\n" + + "Random House;1\r\n" + + "Random House Children's Books;1\r\n" + + "Reclam, Philipp;1\r\n" + + "Red Globe Press;1\r\n" + + "Reflexe Edition;1\r\n" + + "Reguvis Fachmedien GmbH;1\r\n" + + "Reise Know-How;1\r\n" + + "Reise Know-How GmbH;1\r\n" + + "Reise Know-How Peter Rump GmbH;1\r\n" + + "RIBA Publishing;1\r\n" + + "Ries & Erler;1\r\n" + + "RM, Rudolf Müller;1\r\n" + + "rombach wissenschaft;1\r\n" + + "Roost Books;1\r\n" + + "Routledge & Francis Group;1\r\n" + + "Routledge Taylor $ Francis Group;1\r\n" + + "Routledge Taylor & Fracis;1\r\n" + + "Routledge Taylor & Fracis Group;1\r\n" + + "Routledge Taylor & Francis;1\r\n" + + "Routledge, Earthscan;1\r\n" + + "Routledge, Taylor and Francis Group, Earthscan from Routledge;1\r\n" + + "rowohlts enzyklopädie im Rowohlt Taschenbuch;1\r\n" + + "rüffer & rub cares;1\r\n" + + "rüffer & rub SachbuchGmbH;1\r\n" + + "Running Press;1\r\n" + + "rw rombach wissenschaft;1\r\n" + + "SAGE reference;1\r\n" + + "Scheidegger & Spiess;1\r\n" + + "Schneider bei wbv;1\r\n" + + "Scholastic Inc.;1\r\n" + + "Schöningh westermann;1\r\n" + + "Schöningh, Westermann;1\r\n" + + "Schriftbild GmbH;1\r\n" + + "SCHUBI Lernmedien;1\r\n" + + "Schwager & Steinlein GmbH;1\r\n" + + "SCM R.Brockhaus;1\r\n" + + "Scripta Mercaturae;1\r\n" + + "Search Press;1\r\n" + + "Secession Berlin;1\r\n" + + "Secession für Literatur;1\r\n" + + "SelbstFach Geographie der Universität Passau;1\r\n" + + "Seven Stories Press;1\r\n" + + "Shaker Media GmbH;1\r\n" + + "Signature Tastes;1\r\n" + + "Simon für Bibliothekswissen;1\r\n" + + "Ski Media in Wulff GmbH;1\r\n" + + "Sony Music;1\r\n" + + "spck, Society for Promoting Christian Knowledge;1\r\n" + + "speak low;1\r\n" + + "STABILO International GmbH;1\r\n" + + "Stadtarchiv Freiburg im Breisgau;1\r\n" + + "Stadtgrün Bern;1\r\n" + + "Steidl Pocket;1\r\n" + + "Strzelecki Books;1\r\n" + + "Süddeutsche Zeitung Edition;1\r\n" + + "Süddeutscher Pädagogischer, spv;1\r\n" + + "Susanna Rieder;1\r\n" + + "Talisa Kinderbuch-Verlag;1\r\n" + + "Taylor & Francis Group;1\r\n" + + "team tietge;1\r\n" + + "The Bodley Head;1\r\n" + + "The Fernweh Collective;1\r\n" + + "The Metropolitan Museum of Art;1\r\n" + + "The Museum of Modern Art;1\r\n" + + "Thiemo Graf;1\r\n" + + "Thiemo Graf, Der Fahrradverlag;1\r\n" + + "Tiroler Landesmuseen-Betriebsgesellschaft m.b.H.;1\r\n" + + "Topple Books/Little A;1\r\n" + + "Trauner + Buchservice GmbH;1\r\n" + + "Trauner Universität;1\r\n" + + "Tuttle Publishing;1\r\n" + + "TVZ Theologischer Zürich;1\r\n" + + "TVZ, Theologischer Zürich;1\r\n" + + "TVZ, Theoloigscher Zürich;1\r\n" + + "Uitgeverij Huys;1\r\n" + + "Ullstein Buchverlage;1\r\n" + + "Ullstein Taschenbuch;1\r\n" + + "United Soft Media;1\r\n" + + "universi - Universitätsverlag;1\r\n" + + "universi, UniversitätsSiegen;1\r\n" + + "Universität Pécs;1\r\n" + + "Universitätsder TU Berlin;1\r\n" + + "UniversitätsRhein-Ruhr KG;1\r\n" + + "UniversitätsWinter GmbH - Edition S;1\r\n" + + "University of Minnesota Press;1\r\n" + + "Un-Label e.V;1\r\n" + + "Urbane Abenteuer;1\r\n" + + "UVW Universitäts Webler;1\r\n" + + "V & R unipress, UniversitätsOsnabrück;1\r\n" + + "V&R unipress, Vienna University Press;1\r\n" + + "Vagator Productions;1\r\n" + + "VAKs GmbH;1\r\n" + + "vdf HochschulAG;1\r\n" + + "vdf Hochschulverlag;1\r\n" + + "Ventil UG (haftungsbeschränkt) & Co. KG;1\r\n" + + "Verein für Essentielle Gestaltarbeit;1\r\n" + + "VerlagEuropa-Lehrmittel Nourney, Vollmer GmbH & Co. KG;1\r\n" + + "Verlagshaus Jacoby & Stuart GmbH;1\r\n" + + "Verlagshaus Schlosser Pliening;1\r\n" + + "Villingen-Schwenningen;1\r\n" + + "Virgin Books;1\r\n" + + "Visual Ink Publishing;1\r\n" + + "VIZ Media;1\r\n" + + "VML Marie Leidorf;1\r\n" + + "VML Marie Leidorf GmbH;1\r\n" + + "vml, modernes lernen;1\r\n" + + "von Loeper Literaturverlag;1\r\n" + + "Vorwerk 8;1\r\n" + + "VS Verl. für Sozialwissenschaften;1\r\n" + + "VVB Laufersweiler;1\r\n" + + "vwh Werner Hülsbusch, Fachfür Medientechnik und -wirtschaft;1\r\n" + + "vwh, Werner Hülsbusch;1\r\n" + + "W. W. Norton & Company;1\r\n" + + "Wagenbach, K;1\r\n" + + "Walhalla u. Praetoria GmbH & Co. KG;1\r\n" + + "Walhalla und Praetoria;1\r\n" + + "Walker Books Ltd.;1\r\n" + + "wamiki/Was mit Kindern GmbH;1\r\n" + + "Was mit Kindern;1\r\n" + + "Waterside Productions;1\r\n" + + "Weber AG;1\r\n" + + "Weidenfeld & Nicolson;1\r\n" + + "Weidler BuchBerlin;1\r\n" + + "Weimarersgesellschaft in dershaus Römerweg GmbH;1\r\n" + + "Werd & Weber;1\r\n" + + "Werner Hülsbusch, Fachfür Medientechnik und -wirtschaft;1\r\n" + + "Westermann;2\r\n" + + "White Star;1\r\n" + + "Wilhelm Fink;1\r\n" + + "Wilhelm Fink, Brill;1\r\n" + + "Windmühle;2\r\n" + + "Wochenschau Academy;1\r\n" + + "Wochenschau Dr. Kurt Debus GmbH;1\r\n" + + "Woodhead Publishing;1\r\n" + + "Woow Books;1\r\n" + + "Worth Publishing;1\r\n" + + "Wüstenrot Stiftung;1\r\n" + + "wvh, Werner Hülsbusch, Fachfür Medientechnik und -wirtschaft;1\r\n" + + "Yellow Kite;1\r\n" + + "Zentralen für politische Bildung;1\r\n" + + "ZLL21 e.V.;1\r\n" + + "ZpB, Zentralen für politische Bildung;1\r\n" + + "ZS GmbH;1\r\n" + + "Linde;1\r\n" + + "Chronos;1\r\n" + + "transcript;126\r\n" + + "oekom;4\r\n" + + "Harrassowitz;5\r\n" + + "Waxmann;128\r\n" + + "Tectum;12\r\n" + + "Echter;9\r\n" + + "Aschendorff;7\r\n" + + "Echter;9\r\n" + + "Diaphanes;2\r\n" + + "O'Reilly;6\r\n" + + "Campus Verlag;42\r\n" + + "Lit;129\r\n" + + "Böhlau;6\r\n" + + "[Boorberg, Edition] Moll;1\r\n" + + "[Easy Readers];1\r\n" + + "[Engeler];1\r\n" + + "[Fraunhofer-Verl.];1\r\n" + + "[Frech];1\r\n" + + "[Frechverlag GmbH];1\r\n" + + "[Stadt];1\r\n" + + "[transcript];5\r\n" + + "[Urs Engeler];1\r\n" + + "[Wallraf, das Museum];1\r\n" + + "1. Aufl.;2\r\n" + + "2., durchges. Aufl.;1\r\n" + + "3. überarbeitete Auflage;1\r\n" + + "A. Francke Verlag;29\r\n" + + "A. Francke Verlag Tübingen;1\r\n" + + "AAP Lehrerfachverlag;1\r\n" + + "AAP Lehrerfachverlage GmbH;3\r\n" + + "AB - Die Andere Bibliothek;11\r\n" + + "AB - Die Andere Bibliothek GmbH & Co. KG;6\r\n" + + "ABW Wissenschaftsverlag;7\r\n" + + "Academia Verl.;1\r\n" + + "Academia Verlag;4\r\n" + + "Academia-L'Harmattan;1\r\n" + + "Academic Internet Publ.;1\r\n" + + "Academic Press Fribourg;2\r\n" + + "Actes Sud;1\r\n" + + "ADAC-Verl.;10\r\n" + + "Addison Wesley;5\r\n" + + "Addison Wesley ein Imprint von Pearson Deutschland;1\r\n" + + "Addison-Wesley;6\r\n" + + "Addison-Wesley/Pearson;1\r\n" + + "Afrikawunderhorn;1\r\n" + + "AG SPAK Bücher;2\r\n" + + "Agentur und Verlag Rubikon Rolf Kickuth;1\r\n" + + "Agrimedia;1\r\n" + + "AG-SPAK-Bücher;2\r\n" + + "AHRQ;4\r\n" + + "aid;9\r\n" + + "aid infodienst Ernährung, Landwirtschaft, Verbraucherschutz;7\r\n" + + "aid infodienst Ernährung, Landwirtschaft, Verbraucherschutz e. V.;2\r\n" + + "aid infodienst Ernährung, Landwirtschaft, Verbraucherschutz e.V.;1\r\n" + + "aid infodienst Verbraucherschutz, Ernährung, Landwirtschaft;2\r\n" + + "aid infodienst Verbraucherschutz, Ernährung, Landwirtschaft e.V.;1\r\n" + + "AID-Infodienst;2\r\n" + + "Aid-Infodienst Ernährung, Landwirtschaft, Verbraucherschutz;3\r\n" + + "AID-Infodienst Ernährung, Landwirtschaft, Verbraucherschutz e.V.;2\r\n" + + "Aisthesis Verlag;6\r\n" + + "Aisthesis-Verl.;3\r\n" + + "Akad. für Geowissenschaften und Geotechnologien;1\r\n" + + "Akad. für Lehrerfortbildung und Personalführung;1\r\n" + + "Akad.-Verl.;7\r\n" + + "Akademie der Wissenschaften und der Literatur;2\r\n" + + "Akademie Verl.;1\r\n" + + "Akademie Verlag;3\r\n" + + "Akademie-Verl.;6\r\n" + + "Akademische Verlagsgemeinschaft München;1\r\n" + + "Alber;8\r\n" + + "Albert A. Gächter;2\r\n" + + "Albin Michel;1\r\n" + + "Alcorde Verlag;1\r\n" + + "Alfar;1\r\n" + + "Alfred Kröner Verlag;18\r\n" + + "Alibri Verlag;3\r\n" + + "Allen & Unwin;1\r\n" + + "Allgemeiner Cäcilien-Verband für Deutschland;1\r\n" + + "Allitera Verl.;1\r\n" + + "Allitera Verlag;4\r\n" + + "Allitera-Verl.;1\r\n" + + "Allitera-Verlag;1\r\n" + + "alpha-press, Verlag für Neuzeitliche Pädagogik und moderne Psychotechniken;1\r\n" + + "Alpstein Tourismus;1\r\n" + + "ALS-Verl.;1\r\n" + + "ALS-Verlag GmbH;1\r\n" + + "AltaMira Press;1\r\n" + + "American Psychological Assoc.;3\r\n" + + "American Psychological Association;1\r\n" + + "Amsterdam University Press;1\r\n" + + "Anaconda;1\r\n" + + "Andersen;1\r\n" + + "Angelika Lenz Verlag;2\r\n" + + "Angewandte Theaterforschung;2\r\n" + + "Annick Press;2\r\n" + + "Anton Hiersemann;2\r\n" + + "Anton Hiersemann Verlag;1\r\n" + + "AOL Verl.;1\r\n" + + "AOL Verl., AAP Lehrerfachverl.;3\r\n" + + "AOL Verlag;38\r\n" + + "AOL Verlag, scolix in der AAP Lehrerwelt GmbH;1\r\n" + + "AOL-Verl.;11\r\n" + + "AOL-Verl. in der Persen-Verlag-GmbH;1\r\n" + + "AOL-Verl., AAP Lehrerfachverl.;4\r\n" + + "AOL-Verlag;4\r\n" + + "AOL-Verlag in der AAP Lehrerfachverlage GmbH;1\r\n" + + "Apollon University Press;5\r\n" + + "Apprimus Verlag;1\r\n" + + "Apprimus-Verl.;1\r\n" + + "Apress, Springer;1\r\n" + + "Arbeitsgemeinschaft der Evang. Jugend;1\r\n" + + "Arbeitsstelle Rechtsextremismus und Gewalt;1\r\n" + + "Arbor-Verl.;2\r\n" + + "Arc Humanities Press;1\r\n" + + "Archiv-der-Jugendkulturen-Verl.;1\r\n" + + "Arena;11\r\n" + + "Arena-Verl.;4\r\n" + + "Argument;2\r\n" + + "Argument Hamburg;1\r\n" + + "Argument Verlag;2\r\n" + + "Argument-Verl.;7\r\n" + + "Arkana;1\r\n" + + "Armand Colin;2\r\n" + + "Arnoldsche;1\r\n" + + "Ars Scribendi Uitgeverij;1\r\n" + + "Ars Scribendi Verlag;1\r\n" + + "ars vivendi;7\r\n" + + "ars vivendi-Verl.;1\r\n" + + "ArsEd;1\r\n" + + "ArsEd.;1\r\n" + + "arsEdition;4\r\n" + + "arsEdition$;1\r\n" + + "art&print;1\r\n" + + "Artemis & Winkler;3\r\n" + + "Asanger;1\r\n" + + "Asanger Verl.;1\r\n" + + "Aschendorff;3\r\n" + + "Aschendorff Verlag;7\r\n" + + "Ashgate;2\r\n" + + "Ashgate Variorum;1\r\n" + + "Association pour l'Histoire Vivante;1\r\n" + + "Assoziation A;1\r\n" + + "AT Verlag;1\r\n" + + "ATHENA;51\r\n" + + "Athena Verl.;1\r\n" + + "Athena, wbv;1\r\n" + + "Athena, wbv Media;1\r\n" + + "Athena-Verl.;26\r\n" + + "ATHENA-Verlag;7\r\n" + + "Atlantis;2\r\n" + + "Atrium Verl.;1\r\n" + + "AT-Verl.;1\r\n" + + "Auer;398\r\n" + + "Auer Donauwörth;3\r\n" + + "Auer in AAP Lehrerfachverl.;1\r\n" + + "Auer Verl.;8\r\n" + + "Auer Verl. in AAP Lehrerfachverl.;1\r\n" + + "Auer Verl. in AAP Lehrerfachverlag;1\r\n" + + "Auer Verl. in der AAP Lehrerfachverl. GmbH;1\r\n" + + "Auer Verlag;51\r\n" + + "Auer Verlag GmbH;1\r\n" + + "Auer Verlag in AAP Lehrerfachverlag;3\r\n" + + "Auer Verlag in AAP Lehrerfachverlage;1\r\n" + + "Auer Verlag in der AAP Lehrerfachverlage;1\r\n" + + "Auer Verlag in der AAP Lehrerfachverlage GmbH;20\r\n" + + "Auer Verlag in der AAP Lehrerwelt GmbH;5\r\n" + + "Auer Verlag, AAP Lehrerfachverlage;1\r\n" + + "Auer Verlag, AAP Lehrerfachverlage GmbH;2\r\n" + + "Auer, AAP Fachverlage;1\r\n" + + "Auer, AAP Lehrerfachverl.;3\r\n" + + "Auer, AAP Lehrerfachverlage;1\r\n" + + "Auer, AAP-Lehrerfachverlage;1\r\n" + + "Auer-Verl.;3\r\n" + + "Auer-Verlag;1\r\n" + + "Aufbau;2\r\n" + + "Aufbau Taschenbuch;3\r\n" + + "Aufbau Verlag;1\r\n" + + "Aufbau-Taschenbuch;3\r\n" + + "Aufbau-Taschenbuch-Verl.;2\r\n" + + "Aufbau-Verl.;5\r\n" + + "August Verlag;1\r\n" + + "Aulis;3\r\n" + + "Aulis Verl.;1\r\n" + + "Aulis Verl. Deubner;1\r\n" + + "Aulis Verl. in der Stark Verl.-Ges.;1\r\n" + + "Aulis Verlag;13\r\n" + + "Aulis Verlag in der Stark Verlagsgesellschaft;1\r\n" + + "Aulis Verlag in der STARK Verlagsgesellschaft mbH & Co. KG;2\r\n" + + "Aulis-Verl.;22\r\n" + + "Aulis-Verl. Deubner;8\r\n" + + "Aulis-Verl. in der Stark-Verl.-Ges.;2\r\n" + + "Aulis-Verl. ko*5106029;1\r\n" + + "Aulis-Verlag in der Stark Verlagsgesellschaft;1\r\n" + + "Aulis-Verlag Deubner;1\r\n" + + "Autismusverlag;1\r\n" + + "Autrement;1\r\n" + + "AV Akademikerverlag;1\r\n" + + "AV Auer;7\r\n" + + "AV, Auer;1\r\n" + + "avd, Aulis Verlag;1\r\n" + + "AVM;2\r\n" + + "AVM, Martin Meidenbauer Verlagsbuchhandlung;1\r\n" + + "B & S Siebenhaar;1\r\n" + + "b.i.t.verlag gmbh;4\r\n" + + "Bächle;2\r\n" + + "Bachmann;3\r\n" + + "Bad Heilbrunn;1\r\n" + + "Baden-Baden;2\r\n" + + "Baden-Württemberg-Stiftung;2\r\n" + + "Badisches Landesmuseum;3\r\n" + + "Baedeker;6\r\n" + + "Bahçe±ehir Üniversitesi Yayinlari;2\r\n" + + "BALANCE buch + medien verlag;5\r\n" + + "Balance Buch+Medien Verlag;1\r\n" + + "Balance-Buch + Medien Verlag;1\r\n" + + "Balance-Buch-+-Medien-Verl.;1\r\n" + + "Baltmannsweiler;6\r\n" + + "Bamboo édition;1\r\n" + + "Bananenblau;2\r\n" + + "Bananenblau-Verl.;1\r\n" + + "Bange;28\r\n" + + "Bange Verlag;7\r\n" + + "Bange, C;1\r\n" + + "Bantam Books trade paperbacks;1\r\n" + + "Baobab Books;2\r\n" + + "Barbara Budrich Publishers;2\r\n" + + "Bärenreiter;13\r\n" + + "Bärenreiter-Verl.;2\r\n" + + "Barmer [u.a.];5\r\n" + + "Barmer GEK [u.a.];4\r\n" + + "Bassermann;2\r\n" + + "Bassermann Inspiration;1\r\n" + + "Bastei Lübbe;2\r\n" + + "Bastei Lübbe Taschenbuch;2\r\n" + + "Bauhaus-Universitätsverlag im Jonas Verlag für Kunst und Literatur;1\r\n" + + "Baumhaus Verlag;2\r\n" + + "Bautz;2\r\n" + + "Bayerische Landeszentrale für Politische Bildungsarbeit;1\r\n" + + "Bayerischer Schulbuchverl.;1\r\n" + + "Bayerischer Schulbuch-Verl.;4\r\n" + + "Bayerischer Schulbuchverlag;3\r\n" + + "bbp, Bundeszentrale für politische Bildung;1\r\n" + + "be.bra verlag;1\r\n" + + "be.bra wissenschaft verlag;1\r\n" + + "Beacon Press;1\r\n" + + "Beck;223\r\n" + + "Beck, C H;2\r\n" + + "Behr;14\r\n" + + "Behr' s Verlag;1\r\n" + + "Behr´s Verlag;2\r\n" + + "Behr's;1\r\n" + + "Behr's Verlag;7\r\n" + + "Belin;2\r\n" + + "Belin Éducation;1\r\n" + + "Belser;9\r\n" + + "Beltz;404\r\n" + + "Beltz & Gelberg;38\r\n" + + "Beltz Juventa;306\r\n" + + "Beltz Nikolo;2\r\n" + + "Beltz PVU;1\r\n" + + "Beltz Test;1\r\n" + + "Beltz Verlag;3\r\n" + + "Beltz, J;1\r\n" + + "BeltzJuventa;10\r\n" + + "Beltz-Juventa;6\r\n" + + "Benjamins;5\r\n" + + "Benjamins Publ.;1\r\n" + + "Benjamins Publ. Co.;1\r\n" + + "Beobachter-Edition;1\r\n" + + "Berghahn;1\r\n" + + "Bergmann + Helbig;5\r\n" + + "Bergmann + Helbig Verlag;1\r\n" + + "Bergsson-Billing-Wiedenhöft, Progressus-Verl. für Pädag. Praxis;1\r\n" + + "Bergverl. Rother;3\r\n" + + "Bergverlag Rother;3\r\n" + + "Bergverlag Rother GmbH;13\r\n" + + "Berlin;4\r\n" + + "Berliner Taschenbuch. Verl.;1\r\n" + + "Berliner Taschenbuch-Verl.;3\r\n" + + "Berliner Wissenschafts-Verl.;1\r\n" + + "Berliner Wissenschafts-Verlag;1\r\n" + + "Bernhard AlbertGreiner;1\r\n" + + "Bernstein;1\r\n" + + "Bertelsmann;98\r\n" + + "Bertelsmann [u.a.];1\r\n" + + "Bertelsmann Stiftung;3\r\n" + + "Bertelsmann Verlag GmbH & Co. KG;2\r\n" + + "Bertelsmann, W;2\r\n" + + "Bertelsmann, wbv;1\r\n" + + "Bertelsmann-Stiftung;1\r\n" + + "Bertuch;1\r\n" + + "Bertz + Fischer;5\r\n" + + "Bertz und Fischer;1\r\n" + + "Berufsverband Information Bibliothek e.V. (BIB);1\r\n" + + "Betz;1\r\n" + + "Betzold;1\r\n" + + "Beuth;14\r\n" + + "Beuth Verlag GmbH;8\r\n" + + "Beyer;1\r\n" + + "BHP Verlag;4\r\n" + + "BHP Verlag - Berufs- und Fachverbands GmbH, Bundesgeschäftsstelle;1\r\n" + + "BHP Verlag, Berufs- und Fachverbands GmbH;1\r\n" + + "BHP-Verl.;3\r\n" + + "bhv;2\r\n" + + "bhv, Verl.-Gruppe Hüthig, Jehle, Rehm;1\r\n" + + "bhv-Verl.;2\r\n" + + "bi:libri;1\r\n" + + "Biberacher Verlagsdruckerei GmbH & Co. KG;1\r\n" + + "Bibliographisches Institut;2\r\n" + + "Bibliothek für Bildungsgeschichtliche Forschung;1\r\n" + + "BibSpider;5\r\n" + + "Bielefeld;3\r\n" + + "Bildschriftenverlag Hannover;2\r\n" + + "Bildungshaus Schulbuchverl.;3\r\n" + + "Bildungshaus Schulbuchverlage;12\r\n" + + "Bildungshaus Schulbuchverlage Diesterweg;2\r\n" + + "Bildungshaus Schulbuchverlage Schöningh Westermann;2\r\n" + + "Bildungshaus Schulbuchverlage Schroedel;3\r\n" + + "Bildungshaus Schulbuchverlage Westermann;4\r\n" + + "Bildungshaus Schulbuchverlage Westermann [u.a.];1\r\n" + + "Bildungshaus Schulbuchverlage Westermann Schroedel Diesterweg Schöningh Winklers GmbH;4\r\n" + + "Bildungsverl. EINS;47\r\n" + + "Bildungsverl. EINS - Stam;1\r\n" + + "Bildungsverl. EINS Konkordia;1\r\n" + + "Bildungsverlag EINS;43\r\n" + + "Bildungsverlag EINS GmbH;3\r\n" + + "Bildungsverlag EINS westermann;12\r\n" + + "Bildungsverlag EINS, Westermann;1\r\n" + + "Bildungsverlag Lemberger;1\r\n" + + "Bilingual Press/Editorial Bilingüe;1\r\n" + + "Birkhäuser;6\r\n" + + "BIS-Verl. der Carl von Ossietzky Univ.;2\r\n" + + "BIS-Verl. der Carl-von-Ossietzky-Univ.;2\r\n" + + "BIS-Verl. der Carl-von-Ossietzky-Univ. Oldenburg;1\r\n" + + "BIS-Verlag der Carl von Ossietzky Universität;1\r\n" + + "Black Cat, Cideb;1\r\n" + + "Black Swan;1\r\n" + + "Blackwell;1\r\n" + + "Blanvalet;1\r\n" + + "Blinden- und Sehbehindertenverband Niedersachsen;1\r\n" + + "Bloomoon;1\r\n" + + "Bloomsbury;5\r\n" + + "Bloomsbury Academic;4\r\n" + + "Bloomsbury Academic, an imprint of Bloomsbury Publishing Plc;2\r\n" + + "Bloomsbury Academic, an imprint of Bloomsbury Publishing, Plc;1\r\n" + + "Bloomsbury Adademic;1\r\n" + + "Bloomsbury Berlin, Berlin Verlag;1\r\n" + + "Bloomsbury Kinderbücher & Jugendbücher;2\r\n" + + "Bloomsbury USA Academic;1\r\n" + + "Bloomsbury Visual Arts;2\r\n" + + "Blumhardt-Verl.;2\r\n" + + "BLV;8\r\n" + + "BLV Buchverlag;3\r\n" + + "BMFSFJ;1\r\n" + + "Bochumer Universitätsverlag Westdeutscher Universitätsverlag;1\r\n" + + "Bock + Herchen;2\r\n" + + "Bock + Herchen Verlag;4\r\n" + + "BoD - Books on Demand;1\r\n" + + "BOD - Books on Demand GmbH;1\r\n" + + "BoD, Books on Demand;5\r\n" + + "Böhlau;56\r\n" + + "Böhlau Verlag;56\r\n" + + "Böhlau Wien;1\r\n" + + "Böhlau-Verl.;5\r\n" + + "Boje;1\r\n" + + "Bonifatius;1\r\n" + + "Bonn;1\r\n" + + "Bookhouse, a Salariya Imprint;1\r\n" + + "Books on Demand;17\r\n" + + "Booq;1\r\n" + + "Boorberg;4\r\n" + + "Borgmann Media;1\r\n" + + "Börm Bruckmeier;1\r\n" + + "Borntraeger;11\r\n" + + "Bornträger;1\r\n" + + "Bosse;8\r\n" + + "Bosse Verlag;1\r\n" + + "Bosse Verlag Musik und Pädagogik;5\r\n" + + "Bosse, G;1\r\n" + + "Bosworth;1\r\n" + + "Bosworth Edition;1\r\n" + + "bpb;1\r\n" + + "bpb Bundeszentrale für Politische Bildung;14\r\n" + + "bpb, Bonn Bundeszentrale für Politische Bildung;1\r\n" + + "bpb, Bundeszentrale für Polit. Bildung;2\r\n" + + "bpb, Bundeszentrale für politische Bildung;119\r\n" + + "bpb, Bundeszentrale für poltische Bildung;1\r\n" + + "bpb,Bundeszentrale für politische Bildung;1\r\n" + + "bpb: Bundeszentrale für Politische Bildung;27\r\n" + + "bpp, Bundeszentrale für Politische Bildung;2\r\n" + + "Brandeis University Press;1\r\n" + + "Brandes & Apsel;22\r\n" + + "Brandstätter;2\r\n" + + "Brandstätter Verlag;1\r\n" + + "Braumüller;3\r\n" + + "Braun;5\r\n" + + "Braunschweig;1\r\n" + + "Breitkopf & Härtel;5\r\n" + + "Bremerhaven;1\r\n" + + "Brepols;1\r\n" + + "Brigg;9\r\n" + + "Brigg Pädagogik;22\r\n" + + "Brigg Pädagogik-Verl.;3\r\n" + + "Brigg Verl. Büchler;1\r\n" + + "Brigg Verlag;7\r\n" + + "Brigg-Pädagogik;1\r\n" + + "Brigg-Pädagogik-Verl.;2\r\n" + + "Brill;7\r\n" + + "Brill, Ferdinand Schöningh;4\r\n" + + "Brinkmann.Meyhöfer;22\r\n" + + "British Museum Press;1\r\n" + + "Brockhaus;1\r\n" + + "Brockhaus, Wissenmedia;4\r\n" + + "Brockhaus/wissenmedia;1\r\n" + + "Brockhaus/wissenmedia in der inmediaONE;1\r\n" + + "Bruckmann;9\r\n" + + "Bruckmann Verlag GmbH;1\r\n" + + "BRUETERICH PRESS;3\r\n" + + "Brunnen Verlag GmbH;1\r\n" + + "Brunnen-Verl.;2\r\n" + + "btb;18\r\n" + + "btb Verlag (TB);1\r\n" + + "btb-Verl.;1\r\n" + + "Buch + Musik;2\r\n" + + "buch + musik, ejw-Service;1\r\n" + + "Buch 2000;1\r\n" + + "Buch Verl. Kempen (BVK);3\r\n" + + "Buch Verlag Kempen;3\r\n" + + "buch+musik;1\r\n" + + "Buchheimer Druck- u. Verl.-Ges.;1\r\n" + + "Buchner;5\r\n" + + "Büchner;5\r\n" + + "Buchner, C.C.;1\r\n" + + "Büchner, Handwerk und Technik;4\r\n" + + "Büchner, Handwerk und Technik-Verl.;1\r\n" + + "Büchner-Verl.;1\r\n" + + "Buchverl. für die Frau;1\r\n" + + "Budrich;89\r\n" + + "Budrich Academic Press;1\r\n" + + "Budrich Uni. Press;1\r\n" + + "Budrich UniPress;12\r\n" + + "Budrich UniPress Ltd.;4\r\n" + + "Budrich, Barbara;3\r\n" + + "Bundesakademie für Kulturelle Bildung;1\r\n" + + "Bundesamt für Naturschutz;10\r\n" + + "Bundesanstalt für Landwirtschaft und Ernährung;2\r\n" + + "Bundesanzeiger;1\r\n" + + "Bundesanzeiger Verlag;5\r\n" + + "Bundesanzeiger-Verl.;1\r\n" + + "Bundesinst. für Berufsbildung;1\r\n" + + "Bundesinstitut für Bau-, Stadt- und Raumforschung im Bundesamt für Bauwesen und Raumordnung;1\r\n" + + "Bundesinstitut für Berufsbildung;3\r\n" + + "Bundesinstitut für Berufsbildung BIBB;1\r\n" + + "Bundeskunsthalle;6\r\n" + + "Bundesministerium für Familie, Senioren, Frauen u. Jugend;1\r\n" + + "Bundesverband Musikunterricht;1\r\n" + + "Bundeszentrale für politische Bildung;1\r\n" + + "Bundeszentrale für Gesundheitliche Aufklärung;1\r\n" + + "Bundeszentrale für politische Bildung;355\r\n" + + "Bundeszentrale für Politische Bildung, BpB;2\r\n" + + "Bundeszentrale für politische Bundeszentrale;1\r\n" + + "Bundeszentralfe für politische Bildung;1\r\n" + + "Bund-Verl.;4\r\n" + + "Bund-Verlag;5\r\n" + + "Burckhardthaus;1\r\n" + + "Burckhardthaus-Laetare;8\r\n" + + "Burckhardthaus-Laetare-Verl.;2\r\n" + + "BusinessVillage;2\r\n" + + "Buske;4\r\n" + + "BusseCollection;1\r\n" + + "Butzon & Bercker;2\r\n" + + "BVK;1\r\n" + + "BVK Buch Verlag Kempen;3\r\n" + + "BVK Buch Verlag Kempen GmbH;2\r\n" + + "BVK Buch-Verlag Kempen;1\r\n" + + "BVK, Buch Verlag Kempen;7\r\n" + + "BVK, Buch-Verl.;1\r\n" + + "BVK, Buch-Verl. Kempen;8\r\n" + + "BVK, Buch-Verlag Kempen;1\r\n" + + "BWV, Berliner Wiss.-Verl.;2\r\n" + + "BWV, Berliner Wissenschafts-Verlag;5\r\n" + + "C. C. Buchner;2\r\n" + + "C. F. Müller;2\r\n" + + "C. F. Peters;1\r\n" + + "C. H. Beck;12\r\n" + + "C.C. Buchner;18\r\n" + + "C.C. Buchner Verlag;3\r\n" + + "C.C.Buchner;1\r\n" + + "C.F. Müller;6\r\n" + + "C.H. Beck;185\r\n" + + "C.H.Beck;34\r\n" + + "Cadmos Verlag;1\r\n" + + "Cadmos Verlag GmbH;1\r\n" + + "Cadmos-Verl.;1\r\n" + + "Calwer;28\r\n" + + "Calwer [u.a.];1\r\n" + + "Calwer Verl.;37\r\n" + + "Calwer Verl. [u.a.];1\r\n" + + "Calwer Verlag;38\r\n" + + "Calwer Verlag GmbH Bücher und Medien;1\r\n" + + "Calwer-Verl.;1\r\n" + + "Cambridge Univ. Pr.;3\r\n" + + "Cambridge Univ. Press;31\r\n" + + "Cambridge Univ. Press [u.a.];1\r\n" + + "Cambridge University Press;27\r\n" + + "Cambridge Univiversity Press;1\r\n" + + "Camden House;1\r\n" + + "Campus;3\r\n" + + "Campus Verl.;1\r\n" + + "Campus Verlag;70\r\n" + + "Campus-Verl.;29\r\n" + + "Campus-Verlag;1\r\n" + + "Canongate;1\r\n" + + "Care-Line;1\r\n" + + "Carl Auer Systeme Verlag;1\r\n" + + "Carl Auer Verl.;3\r\n" + + "Carl Auer Verlag;2\r\n" + + "Carl Hanser Verlag;12\r\n" + + "Carl Link;99\r\n" + + "Carl-Auer;2\r\n" + + "Carl-Auer Systeme Verlag GmbH;1\r\n" + + "Carl-Auer Verlag;15\r\n" + + "Carl-Auer Verlag GmbH;54\r\n" + + "Carl-Auer-Systeme;1\r\n" + + "Carl-Auer-Systeme Verl.;1\r\n" + + "Carl-AuerSysteme Verlag;1\r\n" + + "Carl-Auer-Systeme Verlag;17\r\n" + + "Carl-Auer-Systeme Verlag und Verlagsbuchhandlung GmbH;4\r\n" + + "Carl-Auer-Systeme-Verl.;25\r\n" + + "Carl-Auer-Systeme-Verlag;1\r\n" + + "Carl-Auer-Verl.;29\r\n" + + "Carl-Auer-Verlag;7\r\n" + + "Carlsen;54\r\n" + + "Carlsen Klartext;1\r\n" + + "Carus;20\r\n" + + "Carus-Verl.;7\r\n" + + "Carus-Verlag;29\r\n" + + "Carus-Verlag Reclam;1\r\n" + + "Cátedra;1\r\n" + + "cbj;7\r\n" + + "cbt;2\r\n" + + "Centaurus;10\r\n" + + "Centaurus Verl.;3\r\n" + + "Centaurus Verlag & Media;6\r\n" + + "Centaurus Verlag & Media UG;1\r\n" + + "Centaurus-Verl.;13\r\n" + + "Centaurus-Verl. & Media;7\r\n" + + "Centaurus-Verlag & Media;2\r\n" + + "Centre international d'études pédagogiques;1\r\n" + + "CEP Europäische Verlagsanstalt;1\r\n" + + "Ch. Links Verlag;6\r\n" + + "Chandeigne;1\r\n" + + "Chandos Publishing;4\r\n" + + "Château des ducs de Bretagne-Musée d'histoire de Nantes;1\r\n" + + "Chemie-Verbände Baden-Württemberg;4\r\n" + + "CHF-Verl.;1\r\n" + + "Christian Brandstätter Verlag GmbH & Co KG;2\r\n" + + "Christine;1\r\n" + + "Christliche Verlagsgesellschaft;4\r\n" + + "Christoph Merian Verlag;2\r\n" + + "Christophhorus;1\r\n" + + "Christoph-Merian-Verl.;1\r\n" + + "Christophorus;6\r\n" + + "Christophorus-Verl.;7\r\n" + + "Chronos;6\r\n" + + "Chronos Verlag;1\r\n" + + "Chronos-Verl.;2\r\n" + + "Cideb;2\r\n" + + "CIP-Medien;1\r\n" + + "CIP-Medien im Psychosozial-Verlag;1\r\n" + + "Cividale Verlag;1\r\n" + + "Classicus Verl.;1\r\n" + + "CLE Internat.;1\r\n" + + "Cle International;7\r\n" + + "Clé International;8\r\n" + + "Colin;3\r\n" + + "Collège des Bernardins;1\r\n" + + "Comenius-Inst.;1\r\n" + + "comeniusverlag;1\r\n" + + "Common Ground Research Networks;1\r\n" + + "Compact;4\r\n" + + "Compact Verlag;1\r\n" + + "Compendio Bildungsmedien;1\r\n" + + "ConBrio;2\r\n" + + "ConBrio Verl.-Ges.;2\r\n" + + "ConBrio Verlagsgesellschaft;3\r\n" + + "ConBrio-Verl.-Ges.;2\r\n" + + "Concadora-Verl.;1\r\n" + + "Connewitzer Verlagsbuchhandlung Peter Hinke;1\r\n" + + "Conrad Stein Verlag GmbH;2\r\n" + + "Continuum;2\r\n" + + "cook & shoot GbR;1\r\n" + + "Coppenrath;9\r\n" + + "Copress Verlag;2\r\n" + + "Cornelsen;1066\r\n" + + "Cornelsen [u.a.];2\r\n" + + "Cornelsen bei Verlag an der Ruhr GmbH;2\r\n" + + "Cornelsen Pädagogik;1\r\n" + + "Cornelsen Schulbuchverlage GmbH;1\r\n" + + "Cornelsen Schulverl.;12\r\n" + + "Cornelsen Schulverlage;7\r\n" + + "Cornelsen Schulverlage GmbH;8\r\n" + + "Cornelsen Scriptor;174\r\n" + + "Cornelsen Scriptor, Bibliogr. Inst.;1\r\n" + + "Cornelsen Scriptor, Bibliogr. Institut;1\r\n" + + "Cornelsen Verl.;1\r\n" + + "Cornelsen Verl. Scriptor;1\r\n" + + "Cornelsen Verlag;53\r\n" + + "Cornelsen Verlag GmbH;5\r\n" + + "Cornelsen Verlag GmbH (Kösel Schulbuch);1\r\n" + + "Cornelsen Verlag Scriptor;2\r\n" + + "CornelsenScriptor;1\r\n" + + "Cornelsen-Scriptor;9\r\n" + + "Cornelsen-Verl. Scriptor;1\r\n" + + "CornelsenVerlag;1\r\n" + + "CornelsenVerlag GmbH;1\r\n" + + "Corvinus Presse;1\r\n" + + "Covadonga Verlag;1\r\n" + + "CRC Press;3\r\n" + + "CRC Press, Taylor and Francis Group;1\r\n" + + "Curious Fox;2\r\n" + + "Cuvillier;8\r\n" + + "Cuvillier Verlag;5\r\n" + + "CV;1\r\n" + + "Czernin Verlag;1\r\n" + + "Czwalina;1\r\n" + + "D.E.A. Almhofer & Cie;1\r\n" + + "Data Becker;6\r\n" + + "Data-Becker;3\r\n" + + "dbv;1\r\n" + + "de @Gruyter;1\r\n" + + "De Boeck;1\r\n" + + "de Gruyter;341\r\n" + + "De Gruyter Akademie Forschung;1\r\n" + + "de Gruyter Mouton;10\r\n" + + "De Gruyter Oldenbourg;54\r\n" + + "de Gruyter Saur;37\r\n" + + "De Gruyter, Mouton;1\r\n" + + "De Gruyter, Saur;2\r\n" + + "de Gruyter/Saur;1\r\n" + + "Debus;1\r\n" + + "Debus Pädagogik;16\r\n" + + "Debus Pädagogik Verlag;8\r\n" + + "Debus Pädagogik-Verl.;1\r\n" + + "DEFA-Stiftung;1\r\n" + + "Delagrave;1\r\n" + + "Delius Klasing;2\r\n" + + "Delius Klasing Verlag;5\r\n" + + "Delta Publ.;3\r\n" + + "Delta Publishing;4\r\n" + + "Der Andere Verl.;1\r\n" + + "Der Andere Verlag;2\r\n" + + "Der Hörverlag;1\r\n" + + "Der Hospiz Verlag;1\r\n" + + "Der Kleine Buch-Verlag;1\r\n" + + "Detail Business Information GmbH;1\r\n" + + "Deuticke;2\r\n" + + "Deutsche Akademie der Naturforscher Leopoldina - Nationale Akademie der Wissenschaften;1\r\n" + + "Deutsche Bibelgesellschaft;1\r\n" + + "Deutsche Gesellschaft für Bildungsverwaltung;1\r\n" + + "Deutsche Gesellschaft für Lesen und Schreiben;7\r\n" + + "Deutsche Gesellschaft für Technische Bildung e.V;1\r\n" + + "Deutsche Gesellschaft für Technische Bildung e.V.;3\r\n" + + "Deutsche Gesellschaft für Verhaltenstherapie;3\r\n" + + "Deutsche Grammophon;2\r\n" + + "Deutsche Kinder- und Jugendstiftung;1\r\n" + + "Deutsche Verlags-Anstalt;2\r\n" + + "Deutsche Welle;1\r\n" + + "Deutscher Architektur Verlag;1\r\n" + + "Deutscher Ärzte-Verl.;1\r\n" + + "Deutscher Ärzte-Verlag;2\r\n" + + "Deutscher Fachverl.;1\r\n" + + "Deutscher Fachverlag;2\r\n" + + "Deutscher Katecheten-Verein;1\r\n" + + "Deutscher Kunstverl.;1\r\n" + + "Deutscher Kunstverlag;6\r\n" + + "Deutscher Sparkassenverlag;1\r\n" + + "Deutscher Taschenbuch Verl.;1\r\n" + + "Deutscher Taschenbuch Verlag;5\r\n" + + "Deutscher Taschenbuch-Verl.;5\r\n" + + "Deutscher Theaterverlag;1\r\n" + + "Deutscher Verein für öffentliche und private Fürsorge;3\r\n" + + "Deutscher Verein für öffentliche und private Fürsorge e.V.;2\r\n" + + "Deutscher Wissenschafts-Verlag (DWV);3\r\n" + + "Deutsches Institut für Urbanistik;2\r\n" + + "Deutsches Institut für Urbanistik gGmbH;1\r\n" + + "Deutsches Jugendinstitut;2\r\n" + + "Deutsches Jugendinstitut e.V.;1\r\n" + + "Deutsches Jugendinstitut e.V., Weiterbildungsinitiative Frühpädagogische Fachkräfte;1\r\n" + + "DGTV-Verl.;1\r\n" + + "DGVT Deutsche Gesellschaft f. Verhaltenstherapie;1\r\n" + + "DGVT Deutsche Gesellschaft für Verhaltenstherapie;1\r\n" + + "dgvt Verlag;2\r\n" + + "dgvt-Verl.;9\r\n" + + "Dgvt-Verlag;4\r\n" + + "dgvt-Verlag, Deutsche Gesellschaft für Verhaltenstherapie;2\r\n" + + "Dialogverl.;1\r\n" + + "Diana-Verl.;1\r\n" + + "Diaphanes;7\r\n" + + "Didaktisches Zentrum der Univ.;1\r\n" + + "Didaktisches Zentrum, Carl von Ossietzky Universität Oldenburg;1\r\n" + + "Didaktisches Zentrum, Carl-von-Ossietzky-Universität;1\r\n" + + "Didaktisches Zentrum, Univ. Oldenburg;1\r\n" + + "Didier;9\r\n" + + "Didier [u.a.];1\r\n" + + "Die Blaue Eule;2\r\n" + + "Die Kinderschutz-Zentren;1\r\n" + + "Die Zeit;1\r\n" + + "Dieck;3\r\n" + + "Diesterweg;158\r\n" + + "Diesterweg [u.a.];1\r\n" + + "Diesterweg westermann;11\r\n" + + "Diesterweg, M;1\r\n" + + "Diesterweg, Westermann;5\r\n" + + "Dietz;11\r\n" + + "Dietz Berlin;1\r\n" + + "Difusión;1\r\n" + + "Dike;1\r\n" + + "Dike-Verl.;1\r\n" + + "DIN Deutsches Institut für Normung e.V.;1\r\n" + + "Dinges & Frick;4\r\n" + + "Diogenes;10\r\n" + + "diVerl. Franzbecker;2\r\n" + + "Dix-Verl;1\r\n" + + "DiZ;1\r\n" + + "DJI;3\r\n" + + "DK;8\r\n" + + "DK Dorling Kindersley;1\r\n" + + "DK, Dorling Kindersley;1\r\n" + + "DK, Dorling Kindersley Verlag GmbH;3\r\n" + + "DLG-Verl.;1\r\n" + + "dnf-Verl.;1\r\n" + + "Dohr;2\r\n" + + "DohrmannVerlag;1\r\n" + + "dohrmannVerlag.berlin;4\r\n" + + "DOM publishers;2\r\n" + + "Don Bosco;31\r\n" + + "Don Bosco Medien;33\r\n" + + "Donat Verlag;1\r\n" + + "Donauwörth;2\r\n" + + "Don-Bosco-Medien;2\r\n" + + "Don-Bosco-Medien-GmbH;1\r\n" + + "Don-Bosco-Verl.;3\r\n" + + "Dorling Kindersley;9\r\n" + + "Dorling Kindersley Reiseführerverl.;1\r\n" + + "Dorling Kindersley Verlag GmbH;8\r\n" + + "Dorling-Kindersley;2\r\n" + + "Dort-Hagenhausen-Verlag;1\r\n" + + "Douglas & McIntyre;1\r\n" + + "dpunkt;1\r\n" + + "dpunkt.verlag;4\r\n" + + "Dpunkt-Verl.;4\r\n" + + "Dr. Felix Büchner - Handwerk und Technik;4\r\n" + + "Dr. Felix Büchner, Handwerk und Technik;1\r\n" + + "Dr. Felix Büchner, Verlag Handwerk und Technik;1\r\n" + + "Dr. Josef Raabe Verlags-GmbH;6\r\n" + + "Dr. Kova†;2\r\n" + + "Dr. Kovac Verlag;1\r\n" + + "Dr. Ludwig Reichert Verlag;1\r\n" + + "Dr. Oetker Verlag;1\r\n" + + "Dr.-Ing. Paul Christiani GmbH & Co. KG;1\r\n" + + "Drachenhaus Verlag;1\r\n" + + "Drava;1\r\n" + + "Drawn & Quarterly;1\r\n" + + "Dressler;2\r\n" + + "Dressler Verlag;1\r\n" + + "Droemer;5\r\n" + + "Droemer Taschenbuch;1\r\n" + + "Droschl;1\r\n" + + "Droste;1\r\n" + + "Droste Verlag;3\r\n" + + "DRW-Verl.;1\r\n" + + "DSV;3\r\n" + + "Dt. Akad. der Naturforscher Leopoldina - Nationale Akad. der Wiss.;1\r\n" + + "Dt. Ärzte-Verl.;1\r\n" + + "Dt. Fachverl.;1\r\n" + + "Dt. Ges. für Lesen und Schreiben;3\r\n" + + "Dt. Inst. für Urbanistik;2\r\n" + + "Dt. Jugendinst.;2\r\n" + + "Dt. Kinder- und Jugendstiftung;1\r\n" + + "Dt. Klassiker-Verl.;2\r\n" + + "Dt. Kunstverl.;4\r\n" + + "Dt. Psychologen Verlag;1\r\n" + + "Dt. Skiverband e.V.;1\r\n" + + "Dt. Sparkassenverl.;2\r\n" + + "Dt. Taschenbuch Verl.;3\r\n" + + "Dt. Taschenbuch-Verl;2\r\n" + + "Dt. Taschenbuchverl.;2\r\n" + + "Dt. Taschenbuch-Verl.;93\r\n" + + "Dt. Taschenbuch-Verl. [u.a.];1\r\n" + + "Dt. Theaterverl.;2\r\n" + + "Dt. Verl.-Anstalt;1\r\n" + + "Dt. Wiss.-Verl.;1\r\n" + + "dtv;99\r\n" + + "dtv Verlagsgesellschaft;4\r\n" + + "DTV, Dt. Taschenbuch-Verl.;1\r\n" + + "Duden;1\r\n" + + "Duden Paetec;4\r\n" + + "Duden Schulbuch;1\r\n" + + "Duden Schulbuchverl.;2\r\n" + + "Duden-Paetec;1\r\n" + + "Duden-Paetec-GmbH;2\r\n" + + "Duden-Paetec-Schulbuchverlag;1\r\n" + + "Duden-Schulbuchverl.;34\r\n" + + "Duden-Schulbuchverl. [u.a.];1\r\n" + + "Dudenverl.;21\r\n" + + "Duden-Verl.;1\r\n" + + "Dudenverlag;45\r\n" + + "Duke University Press;2\r\n" + + "DuMont;9\r\n" + + "DuMont Buchverlag;1\r\n" + + "DuMont Reiseverlag;11\r\n" + + "DuMont-Buchverl.;3\r\n" + + "DuMont-Reiseverl.;7\r\n" + + "DuMont-Reiseverlag;2\r\n" + + "Duncker & Humblot;30\r\n" + + "dup;1\r\n" + + "Duschl;2\r\n" + + "düsseldorf university press dup;1\r\n" + + "DUZ Verlags- und Medienhaus GmbH;5\r\n" + + "DVO Druck und Verlag Obermayer;1\r\n" + + "DVO, Dr. und Verl. Obermayer;1\r\n" + + "E. @Reinhardt;1\r\n" + + "E. A. Seemann;1\r\n" + + "E. Doerner;3\r\n" + + "E. Reinhardt;2\r\n" + + "E. Schmidt;1\r\n" + + "E.A. Seemann;2\r\n" + + "E.A. Seemann in der Seemann Henschel GmbH & Co. KG;2\r\n" + + "E.A. Seemann Verlag;1\r\n" + + "EAG.LE;1\r\n" + + "Ebersbach & Simon;1\r\n" + + "EBV, EB-Verl.;1\r\n" + + "EB-Verl.;1\r\n" + + "EBVerlag;1\r\n" + + "EB-Verlag;3\r\n" + + "Echter;8\r\n" + + "Echter Verl.;1\r\n" + + "Echter Verlag;2\r\n" + + "Echter-Verl.;2\r\n" + + "École des Loisirs;1\r\n" + + "Ecole polytechnique;1\r\n" + + "ecomed MEDIZIN;1\r\n" + + "ecomed Sicherheit;1\r\n" + + "Ed. Assemblage;1\r\n" + + "Ed. bi:libri;6\r\n" + + "Ed. bilibri;1\r\n" + + "Ed. bi-libri;2\r\n" + + "Ed. de L'Aube;1\r\n" + + "Éd. de l'École Polytechnique;1\r\n" + + "Ed. der Arno-Schmidt-Stiftung im Suhrkamp-Verl.;6\r\n" + + "Éd. du Seuil;1\r\n" + + "Ed. Dux;1\r\n" + + "Ed. Ferrimontana;1\r\n" + + "Ed. Fischer;8\r\n" + + "Ed. Imorde;2\r\n" + + "Ed. Kirchhof & Franke;1\r\n" + + "Ed. Körber-Stiftung;2\r\n" + + "Ed. Lumière;4\r\n" + + "Ed. Maritim;2\r\n" + + "Ed. MoPäd, Persen;1\r\n" + + "Ed. Nautilus;1\r\n" + + "Ed. Olms;1\r\n" + + "Ed. Paideia;2\r\n" + + "Ed. Paideia, IKS;1\r\n" + + "Ed. Paideia, Verl. IKS Garamond;1\r\n" + + "Ed. Reichenberger;1\r\n" + + "Ed. Ruprecht;1\r\n" + + "Ed. Sigma;2\r\n" + + "Ed. Sozio-Publ.;1\r\n" + + "Ed. SZH/CSPS;1\r\n" + + "Ed. Tenschert bei Hanser;3\r\n" + + "Ed. text + kritik;9\r\n" + + "Ed. Text + Kritik im Boorberg-Verl.;3\r\n" + + "Ed. Tranvía, Verl. Frey;1\r\n" + + "Ed. Va Bene;1\r\n" + + "Ed. Winterwork;4\r\n" + + "Edel;3\r\n" + + "Edel Books - ein Verlag der Edel Germany GmbH;1\r\n" + + "Edel Books, Edel Germany;2\r\n" + + "Edel Germany;11\r\n" + + "edelsa;3\r\n" + + "Edi. Sigma;1\r\n" + + "Edilingua;1\r\n" + + "Edinburgh University Press;1\r\n" + + "edition + plus;4\r\n" + + "edition 8;1\r\n" + + "Edition Assemblage;2\r\n" + + "Edition bi:libri;4\r\n" + + "Edition Converso;1\r\n" + + "Edition DUX;3\r\n" + + "edition ebersbach;1\r\n" + + "Edition Esspapier;1\r\n" + + "Edition Forsbach;1\r\n" + + "Edition Hochparterre;1\r\n" + + "Edition Imorde;1\r\n" + + "Edition ITP-Kompass;1\r\n" + + "Edition Konturen;2\r\n" + + "Edition Körber;1\r\n" + + "Edition Kunstschrift im Residenz Verlag;2\r\n" + + "edition lumière;1\r\n" + + "Edition Michael Fischer;3\r\n" + + "Edition Michael Fischer GmbH;1\r\n" + + "Edition Mnemosyne;1\r\n" + + "Edition Nautilus;5\r\n" + + "Edition Nautilus Verl.;1\r\n" + + "Edition Olms;1\r\n" + + "Edition Orient;5\r\n" + + "Edition Paideia;2\r\n" + + "Edition Patrick Frey;1\r\n" + + "edition riedenburg;2\r\n" + + "Edition Rugerup;3\r\n" + + "Edition Ruprecht;1\r\n" + + "Edition S - Universitätsverlag Winter;1\r\n" + + "edition sigma in der Nomos Verlagsgesellschaft;1\r\n" + + "edition sonblom;1\r\n" + + "Edition Stifterverband Verwaltungsges. für Wissenschaftspflege;1\r\n" + + "Edition Temmen;1\r\n" + + "Edition Tenschert bei Rowohlt;1\r\n" + + "edition text + kritik;24\r\n" + + "edition text+kritik;1\r\n" + + "edition TIAMAT;3\r\n" + + "Edition tranvia, Verlag Walter Frey;1\r\n" + + "edition tranvía, Verlag Walter Frey;2\r\n" + + "edition waldorf;1\r\n" + + "edition winterwork;2\r\n" + + "Editiones Maison des Langues;1\r\n" + + "Éditions AfricAvenir;1\r\n" + + "Éditions de l'Aube;1\r\n" + + "Éditions Ouest-France;1\r\n" + + "EdMF;1\r\n" + + "Eduversum;4\r\n" + + "Edward Elgar Publishing$h;1\r\n" + + "eFeF-Verlag;1\r\n" + + "Egmont;1\r\n" + + "Egmont Comic Collection;2\r\n" + + "Egmont Schneiderbuch;1\r\n" + + "EHP;2\r\n" + + "EHP Edition Humanistische Psychologie;5\r\n" + + "EHP, Kohlhage;1\r\n" + + "EHP-Verl.;1\r\n" + + "Eichborn;1\r\n" + + "Eichstaett Acad. Press;1\r\n" + + "Eigenverlag Kriminologische Zentralstelle e.V.;1\r\n" + + "Einhorn-Verlag;1\r\n" + + "ejw-Service;1\r\n" + + "EK-Verl;1\r\n" + + "Elbe & Krueger Verlag;1\r\n" + + "Elektor;1\r\n" + + "Elektor Verlag GmbH;1\r\n" + + "Elena Plaksina Verlag;1\r\n" + + "Elfenbein;1\r\n" + + "ELI;11\r\n" + + "ellipses;1\r\n" + + "Elmwood Press;5\r\n" + + "Elsevier;21\r\n" + + "Elsevier, Urban & Fischer;30\r\n" + + "EME;1\r\n" + + "Emerald Group Publ.;1\r\n" + + "EMF;8\r\n" + + "EMF, Edition Michael Fischer GmbH;8\r\n" + + "Emons;3\r\n" + + "Emons Verlag;1\r\n" + + "Empirische Pädagogik e.V.;2\r\n" + + "emu-Verl.;1\r\n" + + "ENS Éditions;1\r\n" + + "Enst Klett Verlag;2\r\n" + + "eos;1\r\n" + + "EOS-Ed.;1\r\n" + + "Equinox;1\r\n" + + "Ergon;2\r\n" + + "Ergon Verlag;28\r\n" + + "Ergon-Verl.;27\r\n" + + "Ergon-Verlag;1\r\n" + + "Erich Schmidt;1\r\n" + + "Erich Schmidt Verlag;46\r\n" + + "Erko;1\r\n" + + "Erlbaum;1\r\n" + + "Ernst Klett Sprachen;50\r\n" + + "Ernst Klett Sprachen GmbH;16\r\n" + + "Ernst Klett Verlag;225\r\n" + + "Ernst Klett Verlag GmbH;29\r\n" + + "Ernst Klett Verlag, Programmbereich Klett-Auer;2\r\n" + + "Ernst Reinhardt;1\r\n" + + "Ernst Reinhardt Verlag;145\r\n" + + "Erzdiözese Freiburg;1\r\n" + + "Esser-Druck;3\r\n" + + "Esslinger;1\r\n" + + "Esterbauer;1\r\n" + + "et + k, Ed. Text + Kritik;1\r\n" + + "Eugen Ulmer KG;1\r\n" + + "Eul;1\r\n" + + "Eul Verlag;1\r\n" + + "Europäischer Univ.-Verl. [u.a.];1\r\n" + + "Europäischer Universitätsverlag;2\r\n" + + "Europa-Lehrmittel;6\r\n" + + "Europa-Universität Flensburg;1\r\n" + + "Eusl;2\r\n" + + "Eusl, Eusl-Verlagsgesellschaft mbH;1\r\n" + + "Eusl-Verl.-Ges,;1\r\n" + + "Eusl-Verlagsgesellschaft mbH;15\r\n" + + "Evang. Verl.-Anst.;17\r\n" + + "Evang. Verl.-Anstalt;1\r\n" + + "Evangelische Landeskirche in Baden;3\r\n" + + "Evangelische Verlagsanstalt;48\r\n" + + "Evangelische Verlagsanstalt GmbH;1\r\n" + + "expert;1\r\n" + + "expert verlag;3\r\n" + + "Expert-Verl.;6\r\n" + + "Expressum-Verl.;1\r\n" + + "FAB;1\r\n" + + "Faber Music;1\r\n" + + "Fabouda-Verlag;3\r\n" + + "Fachbibliothek Verlag;2\r\n" + + "Fachbuchverl. Leipzig im Carl-Hanser-Verl.;2\r\n" + + "Fachbuchverlag;1\r\n" + + "Fachbuchverlag Weber & Weidemeyer;1\r\n" + + "Fachhochschulverlag, Der Verlag für angewandte Wissenschaften;2\r\n" + + "Fachverl. NW in der Carl Schünemann Verl. GmbH;1\r\n" + + "Fachverl. Unsere Kinder;1\r\n" + + "Fackelträger Verlag GmbH;1\r\n" + + "facultas;32\r\n" + + "Facultas Univ.-Verl.;1\r\n" + + "Facultas.wuv;21\r\n" + + "facultas.wuv [u.a.];1\r\n" + + "Facultas-Verl.;2\r\n" + + "fairaend;1\r\n" + + "Falter Verlag;1\r\n" + + "FAU University Press;7\r\n" + + "FAZ-Inst. für Management-, Markt- und Medieninformationen;1\r\n" + + "FBV;1\r\n" + + "FBV, FinanzBuch Verlag;1\r\n" + + "Featherstone Education;1\r\n" + + "FEL;1\r\n" + + "FEL Verlag;1\r\n" + + "FEL Verlag Forschung - Entwicklung - Lehre;1\r\n" + + "FEL Verlag Forschung - Entwicklung - Lehre;4\r\n" + + "FEL Verlag Forschung-Entwicklung-Lehre;1\r\n" + + "FEL, Verl. Forschung, Entwicklung, Lehre;3\r\n" + + "Feldhaus;9\r\n" + + "Feldhaus Eddition Czwalina;1\r\n" + + "Feldhaus, Ed. Czwalina;11\r\n" + + "Feldhaus, Ed. Hamburger Buchwerkstatt;3\r\n" + + "Feldhaus, Edition Czwalina;17\r\n" + + "Feldhaus, Edition Hamburger Buchwerkstatt;4\r\n" + + "Felix;1\r\n" + + "Felix Meiner Verlag;8\r\n" + + "FEL-Verl.;2\r\n" + + "FEL-Verl., Forschung - Entwicklung - Lehre;2\r\n" + + "FEL-Verlag Forschung-Entwicklung-Lehre;6\r\n" + + "Fe-Medienverlags Gmbh;1\r\n" + + "Ferdinand Schöningh;150\r\n" + + "Ferdinand Schöningh, ein Imprint der Brill-Gruppe;1\r\n" + + "FID Verlag;2\r\n" + + "FID Verlag GmbH;1\r\n" + + "FIDELITY Verlag GmbH;1\r\n" + + "Fidula;9\r\n" + + "Fidula-Verl.;1\r\n" + + "Fidula-Verlag;2\r\n" + + "Fillibach;1\r\n" + + "Fillibach bei Klett;8\r\n" + + "Fillibach Verlag;1\r\n" + + "Fink;60\r\n" + + "Fink Verlag;1\r\n" + + "Finken;6\r\n" + + "Finken Verlag;5\r\n" + + "Finken-Verlag GmbH;6\r\n" + + "Fischer;29\r\n" + + "Fischer Digital;1\r\n" + + "FISCHER Duden Kinderbuch;1\r\n" + + "FISCHER Kinder- und Jugendtaschenbuch;2\r\n" + + "Fischer KJB;1\r\n" + + "Fischer Klassik;1\r\n" + + "Fischer Sauerländer;1\r\n" + + "FISCHER Taschenbuch;89\r\n" + + "Fischer Taschenbuch Verl.;3\r\n" + + "Fischer Taschenbuch Verlag;5\r\n" + + "Fischer Taschenbuchverl.;1\r\n" + + "Fischer Taschenbuch-Verl.;3\r\n" + + "FISCHER Tor;1\r\n" + + "Fischer-KJB;1\r\n" + + "Fischer-Meyers-Kinderbuch;2\r\n" + + "Fischer-Taschenbuch;2\r\n" + + "Fischer-Taschenbuch Verlag;1\r\n" + + "Fischer-Taschenbuch-Verl;1\r\n" + + "Fischer-Taschenbuch-Verl.;58\r\n" + + "Fischer-Taschenbuch-Verlag;2\r\n" + + "Fischer-Verl.;2\r\n" + + "Fische-Taschenbuch-Verl.;1\r\n" + + "Flammarion;2\r\n" + + "Flensburg Univ. Press;1\r\n" + + "Flensburg University Press;2\r\n" + + "Folio Verlag;3\r\n" + + "Förderkreis Kreatives Schreiben und Musik;1\r\n" + + "Fordham University Press;2\r\n" + + "Format GmbH Publ., Garamond-Verl.;1\r\n" + + "Format, Garamond-Verl.;1\r\n" + + "Forschungsinst. für Mathematikdidaktik;4\r\n" + + "Forschungsinstitut für Mathematikdidaktik;2\r\n" + + "Forschungsinstitut für Mathematikdidaktik e.V.;1\r\n" + + "Forschungsstelle NS-Pädagogik, Fachbereich Erziehungswissenschaften, Goethe-Universität Frankfurt am Main;21\r\n" + + "Francke;35\r\n" + + "Francke Verl.;1\r\n" + + "francke Verlag;2\r\n" + + "Franckh-Kosmos;2\r\n" + + "Franckh-Kosmos Verlags-GmbH & Co. KG;1\r\n" + + "Franckh-Kosmos-Verl.;1\r\n" + + "Franck-Kosmos;1\r\n" + + "Frank & Timme;21\r\n" + + "Frank & Timme Verlag für wissenschaftliche Literatur;2\r\n" + + "Frank & Timme, Verl. für Wiss. Literatur;1\r\n" + + "Frank & Timme, Verlag für wissenschafltiche Literatur;1\r\n" + + "Frank & Timme, Verlag für wissenschaftliche Literatur;39\r\n" + + "Frank Steiner Verlag;1\r\n" + + "Frankfurt am Main;11\r\n" + + "Frankfurter Allgemeine Buch;3\r\n" + + "Frankfurter Geographische Gesellschaft;1\r\n" + + "Frankfurter Literaturverl.;1\r\n" + + "Frankfurter Societäts-Medien;1\r\n" + + "Frankfurter Societäts-Medien GmbH;1\r\n" + + "Frankfurter-Allgemeine-Buch;1\r\n" + + "Frankh-Kosmos Verlags-GmbH & Co. KG;1\r\n" + + "Franz Steiner Verlag;69\r\n" + + "Franzbecker;34\r\n" + + "Franzis;18\r\n" + + "Franzis Verlag;1\r\n" + + "Franzis-Verl.;1\r\n" + + "Fraunhofer IRB Verlag;3\r\n" + + "Fraunhofer IRB-Verl.;1\r\n" + + "Fraunhofer IRB-Verlag;2\r\n" + + "Fraunhofer Verl.;1\r\n" + + "Fraunhofer Verlag;6\r\n" + + "Frech;28\r\n" + + "Frechverl;2\r\n" + + "Frechverl.;24\r\n" + + "Frech-Verl.;21\r\n" + + "Frechverlag;7\r\n" + + "Frech-Verlag;1\r\n" + + "Frechverlag GmbH;60\r\n" + + "Frederking & Thaler Verlag;1\r\n" + + "Freiburger Verl.;2\r\n" + + "Freies Geistesleben;1\r\n" + + "Friedenauer Presse;2\r\n" + + "Friedrich;14\r\n" + + "Friedrich Verl.;1\r\n" + + "Friedrich Verlag;3\r\n" + + "Friedrich Verlag GmbH;5\r\n" + + "Friedrich, Aulis;4\r\n" + + "Friedrich-Alexander Univ., Philos. Fak. und Fachbereich Theologie;1\r\n" + + "Friedrich-Schiller-Univ., Lehrstuhl für Sozialgeographie, Selbstverl.;1\r\n" + + "Friedrich-Verl.-Medien;2\r\n" + + "G & G Kinder- u. Jugendbuch;1\r\n" + + "G&S;1\r\n" + + "G&S Verlag GmbH;1\r\n" + + "G-&-S-Verl.;1\r\n" + + "GABAL;14\r\n" + + "GABALVerl.;1\r\n" + + "Gabler;7\r\n" + + "Gabler Verl., Springer Fachmedien;1\r\n" + + "Gabriel;2\r\n" + + "Gabriele Schäfer Verlag;5\r\n" + + "Galileo Press;14\r\n" + + "Galli;1\r\n" + + "Gallimard;5\r\n" + + "Gallimard Bande dessinée;6\r\n" + + "Galore Park Publ.;3\r\n" + + "Ganymed Edition;1\r\n" + + "Garamond;1\r\n" + + "Garamond ein Imprint der FORMAT Druckerei & Verlagsgesellschaft;1\r\n" + + "Garamond Verl.;1\r\n" + + "Garamond Verlag;1\r\n" + + "Garamond, der Wissenschaftsverlag;3\r\n" + + "Garamond, Ed. Paideia;1\r\n" + + "Garamond-Verl.;4\r\n" + + "GDI;1\r\n" + + "GdS Schulerfolg GmbH;3\r\n" + + "Gebr. Borntraeger Verlagsbuchhandlung;1\r\n" + + "Generaldirektion der Staatlichen Archive Bayerns;1\r\n" + + "Geographisches Institut Johannes Guntenberg-Universität;1\r\n" + + "Geological Society of America;1\r\n" + + "Georg Olms Verlag;21\r\n" + + "Georg Thieme Verlag;25\r\n" + + "Georg Thieme Verlag KG;1\r\n" + + "Georg Westermann Verlag GmbH;4\r\n" + + "Geospace GmbH;2\r\n" + + "German Historical Institute;1\r\n" + + "Gerstenberg;8\r\n" + + "Ges. Erwachsenenbildung und Behinderung;1\r\n" + + "GESIS;1\r\n" + + "Gestalten;3\r\n" + + "GEW;2\r\n" + + "GEW, Hauptvorstand, Vorstandsbereich Frauenpolitik;2\r\n" + + "Gewalt Akademie Villigst, Mobile Beratung gegen Rechtsextremismus im Regierungsbezirk Arnsberg;1\r\n" + + "Gewerkschaft Erziehung und Wiss.;1\r\n" + + "Gewerkschaft Erziehung und Wissenschaft;3\r\n" + + "Gilles & Francke;4\r\n" + + "Gilles & Francke Verlag;4\r\n" + + "Glasgow Magazines;1\r\n" + + "Gmeiner;2\r\n" + + "Gmeiner-Verlag GmbH;3\r\n" + + "Goldegg Verlag;6\r\n" + + "Goldmann;31\r\n" + + "Goldmann Verlag;1\r\n" + + "Göttingen;1\r\n" + + "Gräfe u. Unzer;1\r\n" + + "Gräfe und Unzer;11\r\n" + + "Gräfe und Unzer Edition;2\r\n" + + "Gräfe und Unzer Verlag;1\r\n" + + "GRÄFE UND UNZER Verlag GmbH;5\r\n" + + "Gräfe ung Unzer;1\r\n" + + "Grasset;5\r\n" + + "Grazer Univ.-Verl.;1\r\n" + + "Grazer Univ.-Verl. [u.a.];1\r\n" + + "Grazer Universitätsverlag - Leykam - Karl-Franzens-Universität Graz;1\r\n" + + "Green;1\r\n" + + "Greenpeace Media GmbH;1\r\n" + + "Greenwood;2\r\n" + + "GRIN-Verl.;2\r\n" + + "Groos;7\r\n" + + "Groos Verl. Narr;1\r\n" + + "Grundschulverb.;2\r\n" + + "Grundschulverband;4\r\n" + + "Grundschulverband - Arbeitskreis Grundschule e.V.;7\r\n" + + "Grundschulverband e.V.;16\r\n" + + "Gruner + Jahr;3\r\n" + + "Gruner + Jahr GmbH & Co KG;2\r\n" + + "Guilford Press;2\r\n" + + "Gustav Bosse Verlag;1\r\n" + + "Gütersloher Verl.-Haus;2\r\n" + + "Gütersloher Verlagshaus;23\r\n" + + "Gutleut Verlag;2\r\n" + + "h.f.ullmann publishing;1\r\n" + + "Hachette;9\r\n" + + "Hachette Éducation;1\r\n" + + "Hachette Australia;1\r\n" + + "Hachette Éducation;3\r\n" + + "Hachette Français Langue Étrangère;1\r\n" + + "Hachette Supérieur;1\r\n" + + "Hädecke;2\r\n" + + "Hal Leonard;3\r\n" + + "Hal Leonard Corporation;1\r\n" + + "Halbscheffel;1\r\n" + + "Hamburg;2\r\n" + + "Hamburger Ed.;1\r\n" + + "Hamburger Edition;6\r\n" + + "Hamish Hamilton;1\r\n" + + "Hammer;1\r\n" + + "Hampp;4\r\n" + + "Hampp Media GmbH;3\r\n" + + "Hampton Press;1\r\n" + + "Hampton Press, Inc.;1\r\n" + + "Handwerk und Technik;16\r\n" + + "Hanns-Seidel-Stiftung;6\r\n" + + "Hansa Verlag;1\r\n" + + "Hansa-Verl.;1\r\n" + + "Hans-Böckler-Stiftung;1\r\n" + + "Hans-Bredow-Institut für Medienforschung an der Universität Hamburg;1\r\n" + + "Hanser;16\r\n" + + "Hanser, Carl;2\r\n" + + "Hansisches Druck- und Verlagshaus;2\r\n" + + "Hardie Grant Egmont;1\r\n" + + "Harmattan;2\r\n" + + "HarperCollins;3\r\n" + + "HarperCollins Children's Books;1\r\n" + + "HarperCollins Publ.;1\r\n" + + "HarperCollins Publishers;4\r\n" + + "Harrassowitz;10\r\n" + + "Harrassowitz Verlag;13\r\n" + + "Harrassowitz Verlag in Kommission;2\r\n" + + "Hartung-Gorre;1\r\n" + + "Hartung-Gorre Verlag;2\r\n" + + "Harvard Education Press;1\r\n" + + "Harvard Univ. Press;1\r\n" + + "Hase und Igel;3\r\n" + + "Hase und Igel Verlag;2\r\n" + + "Hase-und-Igel-Verl.;1\r\n" + + "Hase-und-Igel-Verlag;1\r\n" + + "Hatier;4\r\n" + + "Hatje Cantz;10\r\n" + + "Haufe;18\r\n" + + "Haufe Group;1\r\n" + + "Haufe Gruppe;2\r\n" + + "Haufe-Gruppe;1\r\n" + + "Haufe-Lexware;6\r\n" + + "Haufe-Lexware GmbH & Co. KG;1\r\n" + + "Haug;2\r\n" + + "Haupt;86\r\n" + + "Haupt Gestalten;1\r\n" + + "Haupt Verl.;5\r\n" + + "Haupt Verlag;77\r\n" + + "Haupt-Verl.;1\r\n" + + "Haus der Bayerischen Geschichte;1\r\n" + + "Haus der Musik;1\r\n" + + "Hauschka;6\r\n" + + "Hauschka Verlag;1\r\n" + + "Haymon;2\r\n" + + "Haymon Taschenbuch;1\r\n" + + "Hebelbund Lörrach;1\r\n" + + "Heel;2\r\n" + + "Heidelberg University Publishing;1\r\n" + + "Heinrich-Böll-Stiftung;2\r\n" + + "Heinz;1\r\n" + + "Heise;2\r\n" + + "Helbling;135\r\n" + + "Helbling Languages;5\r\n" + + "Helbling Verl. [u.a.];1\r\n" + + "Helbling Verlag;1\r\n" + + "Helmer;1\r\n" + + "Helmut-Schmidt-Universität - Universität der Bundeswehr Hamburg;1\r\n" + + "Hempen Verlag;2\r\n" + + "Henry Holt;1\r\n" + + "Henschel;4\r\n" + + "Henschel Schauspiel;1\r\n" + + "Hentrich & Hentrich;5\r\n" + + "Hentrich und Hentrich;1\r\n" + + "Hentrich&Hentrich;1\r\n" + + "hep;8\r\n" + + "hep , der bildungsverlag;1\r\n" + + "hep der bildungsverlag;19\r\n" + + "hep verlag;2\r\n" + + "hep verlag ag;1\r\n" + + "hep, der Bildugnsverlag;1\r\n" + + "Hep, der Bildungsverl;1\r\n" + + "hep, der Bildungsverl.;14\r\n" + + "hep, der Bildungsverlag;34\r\n" + + "hep-Verl.;5\r\n" + + "Herbert Utz;1\r\n" + + "Herbert Utz Varlag;1\r\n" + + "Herbert Utz Verlag;19\r\n" + + "Herbert Utz Verlag GmbH;1\r\n" + + "Herbert von Halem Verlag;15\r\n" + + "Herder;303\r\n" + + "Herdt;3\r\n" + + "Hermagoras;1\r\n" + + "Hermann;1\r\n" + + "Heyne;18\r\n" + + "Heyne fliegt;1\r\n" + + "hgd Hochschulverband für Geographiedidaktik;1\r\n" + + "Hiersemann;5\r\n" + + "Hildesheim, Zürich [u.a.];1\r\n" + + "Hinstorff;2\r\n" + + "Hirmer;3\r\n" + + "Hirmer Verlag;1\r\n" + + "Hirnkost KG;1\r\n" + + "Hirzel;8\r\n" + + "Hirzel Verlag;1\r\n" + + "HIS;1\r\n" + + "Hochschule der Bundesagentur für Arbeit;1\r\n" + + "Hochschulverlag;1\r\n" + + "Hochschulverlag Merseburg;2\r\n" + + "Hodder and Stoughton;1\r\n" + + "Hodder Children's Books;1\r\n" + + "Hoffmann und Campe;3\r\n" + + "hofmann;88\r\n" + + "Hofmann Verlag;1\r\n" + + "Hofmann.;2\r\n" + + "Hofmann-Verlag;4\r\n" + + "Hogrefe;282\r\n" + + "Hogrefe Publishing;1\r\n" + + "Hogrefe Verl.;1\r\n" + + "Hogrefe Verlag;8\r\n" + + "Hogrefe, Verl. für Psychologie;4\r\n" + + "Hohenrain;2\r\n" + + "Holland + Josenhans;2\r\n" + + "Holland + Josenhans/Handwerk und Technik;1\r\n" + + "Holzhausen;1\r\n" + + "Holzhausen Verlag;1\r\n" + + "Holzmann Medien;1\r\n" + + "HolzWerken;9\r\n" + + "HolzWerken, Vincentz;1\r\n" + + "Horlemann;1\r\n" + + "Houghton Mifflin Harcourt;1\r\n" + + "HPB University Press;2\r\n" + + "Huber;77\r\n" + + "Huber [u.a.];4\r\n" + + "Hueber;64\r\n" + + "Hueber [u.a.];2\r\n" + + "Hueber Verlag;68\r\n" + + "Hug;10\r\n" + + "Hülsbusch;17\r\n" + + "Humanities Online;1\r\n" + + "humboldt;12\r\n" + + "Humboldt-Universität zu Berlin;1\r\n" + + "Husum Verlag;1\r\n" + + "Huter & Roth;1\r\n" + + "Hüthig;2\r\n" + + "Hyperion Books for Children;1\r\n" + + "Hyppocrene Books, Inc.;3\r\n" + + "I.B. Tauris;1\r\n" + + "ibidem;2\r\n" + + "Ibidem Verl., Ed. Noe͏̬ma;1\r\n" + + "ibidem Verlag;3\r\n" + + "Ibidem-Verl.;27\r\n" + + "ibidem-Verlag;28\r\n" + + "IBS;3\r\n" + + "Igel Verlag;1\r\n" + + "IGFH, Internationale Ges. für Erzieherische Hilfen;1\r\n" + + "IGfH-Eigenverlag;1\r\n" + + "ikon Verlags GesmbH;1\r\n" + + "ikon VerlagsGesmbH;1\r\n" + + "ikon VerlagsGmbH;1\r\n" + + "Ikon-Verl.GesmbH;1\r\n" + + "IKS Garamond;15\r\n" + + "IKS Garamond, Edition Paideia;1\r\n" + + "IKS-Garamond-Verl.;1\r\n" + + "Ill., graph. Darst.;1\r\n" + + "Imago Mundi;1\r\n" + + "Imhof;1\r\n" + + "Imorde;1\r\n" + + "in Kommission bei Franz Steiner Verlag;1\r\n" + + "In Via Verlag;1\r\n" + + "Information Age Publ.;2\r\n" + + "Information Age Publishing, Inc;1\r\n" + + "Information Science Reference;2\r\n" + + "INGOLDVerlag;11\r\n" + + "Innsbruck Univ. Press;4\r\n" + + "innsbruck university press;11\r\n" + + "Insel Verl.;4\r\n" + + "Insel Verlag;36\r\n" + + "Insel-Verl.;24\r\n" + + "Insel-Verlag;2\r\n" + + "Inst. der Dt. Wirtschaft Köln Medien GmbH;1\r\n" + + "Inst. f. Religionspädagogik d. Erzdiözese Freiburg;1\r\n" + + "Inst. für elementare Musikerziehung;2\r\n" + + "Inst. für Geographie der Univ. Hamburg;1\r\n" + + "Inst. für Religionspädagogik;2\r\n" + + "Inst. für Religionspädagogik d. Erzdiözese Freiburg;4\r\n" + + "Inst. für Strukturforschung und Planung in agrarischen Intensivgebieten (ISPA);1\r\n" + + "Instinctively Limited;1\r\n" + + "Institut für internationale Architektur-Dokumentation GmbH & Co. KG;1\r\n" + + "Institut für Angewandte Kulturforschung;1\r\n" + + "Institut für Angewandte Kulturforschung e.V.;1\r\n" + + "Institut für Deutsche Sprache;1\r\n" + + "Institut für Friedenspädagogik e.V./WSD Pro Child e.V.;1\r\n" + + "Institut für Friedenspädagogik Tübingen;2\r\n" + + "Institut für Geographie der Universität Hamburg;3\r\n" + + "Institut für Medizinische Psychologie;2\r\n" + + "Institut für Religionspädagogik;15\r\n" + + "Institut für Religionspädagogik der Erzdiözese Freiburg;27\r\n" + + "Institut für Zeitgeschichte München - Berlin;2\r\n" + + "InTakt;1\r\n" + + "Inter.Kultura.Verlag;1\r\n" + + "interact;1\r\n" + + "interconnections;1\r\n" + + "Interdisziplinäres Zentrum für Universitäres Lehren und Lernen (IZuLL), Schwerpunktbereich Digitales Lehren und Lernen (DLL);1\r\n" + + "International Group for the Psychology of Mathematics Education;2\r\n" + + "Internationale Gesellschaft für erzieherische Hilfen;3\r\n" + + "IRP;4\r\n" + + "isb-Fachverlag;1\r\n" + + "Isensee;1\r\n" + + "Isensee Verlag;1\r\n" + + "iskopress;1\r\n" + + "ISPA, Inst. für Strukturforschung und Planung in agrarischen Intensivgebieten;1\r\n" + + "Iudicium;4\r\n" + + "IVM² - der Wissenschaftsverlag;1\r\n" + + "J. B. Metzler Verlag;1\r\n" + + "J. Kamphausen Mediengruppe GmbH;1\r\n" + + "J.B. Metzler;1\r\n" + + "J.B. Metzler Verlag;11\r\n" + + "J.Ch. Mellinger Verlag GmbH;1\r\n" + + "Jacobs Verl.;1\r\n" + + "J'ai Lu;1\r\n" + + "Jan Thorbecke Verlag;13\r\n" + + "Jan Thorbecke Verlag der Schwabenverlag AG;1\r\n" + + "Jandorfverlag;12\r\n" + + "Jedermann-Verl.;1\r\n" + + "Jenior;1\r\n" + + "Jingo Wobbly;1\r\n" + + "jmb-Verlag;1\r\n" + + "John Benjamins Publishing Company;8\r\n" + + "Johns Hopkins Univ. Press;1\r\n" + + "Jonas Verl. für Kunst und Literatur GmbH;1\r\n" + + "Jonas-Verl.;1\r\n" + + "Jos-Fritz-Verl.;2\r\n" + + "Jossey-Bass;2\r\n" + + "jovis;1\r\n" + + "Jugend & Volk;1\r\n" + + "Jugend mit Zukunft;2\r\n" + + "Julius Beltz GmbH & Co. KG;1\r\n" + + "Junfermann;23\r\n" + + "Junfermann Verl.;1\r\n" + + "Junfermann Verlag;49\r\n" + + "Junge Gemeinde;1\r\n" + + "Junius;61\r\n" + + "Junius Verl.;1\r\n" + + "Junius Verlag GmbH;3\r\n" + + "Junius-Verl.;16\r\n" + + "Justus Perthes Vrl. Gotha;1\r\n" + + "Juventa;9\r\n" + + "Juventa Verl.;2\r\n" + + "Juventa Verlag;17\r\n" + + "Juventa Verlag ein Imprint der Julius Beltz GmbH & Co. KG;1\r\n" + + "Juventa-Verl.;55\r\n" + + "Kairos, PM;1\r\n" + + "Kalam Verlag KG;2\r\n" + + "Kallmeyer;18\r\n" + + "Kallmeyer in Verb. mit Klett;7\r\n" + + "Kallmeyer in Verbindung mit Klett;3\r\n" + + "Kallmeyer in Verbindung mit Klett Friedrich Verlag;1\r\n" + + "Kantonales Museum für Urgeschichte;2\r\n" + + "Karger;3\r\n" + + "Karl Alber Verlag;1\r\n" + + "Karl F. Haug Verlag;3\r\n" + + "Karl-May-Verlag;1\r\n" + + "Karlsruhe;1\r\n" + + "Karlstads Univ.;1\r\n" + + "Kartoffeldruck-Verlag;1\r\n" + + "Kassel Univ. Press;27\r\n" + + "Kassel University Press;20\r\n" + + "kassel university press GmbH;1\r\n" + + "Kastner;2\r\n" + + "Kastner AG - das Medienhaus;1\r\n" + + "KATAPULT;1\r\n" + + "KATAPULT Verlag;1\r\n" + + "Katholisches Bibelwerk;4\r\n" + + "Kaufmann;2\r\n" + + "kbw Bibelwerk;2\r\n" + + "kbw, Bibelwerk;3\r\n" + + "Keicher;1\r\n" + + "Keltenmuseum;1\r\n" + + "Kerber;4\r\n" + + "Kerber Art;1\r\n" + + "Kerber Culture;1\r\n" + + "Kerber Verlag;3\r\n" + + "Kerber, Christof;1\r\n" + + "Kerns;1\r\n" + + "Kettler;1\r\n" + + "Kiel;4\r\n" + + "Kieler Inst. für Gymnastik und Tanz;5\r\n" + + "Kieler Institut für Gymnastik und Tanz;4\r\n" + + "Kiepenheuer & Witsch;46\r\n" + + "Kiga-Fachverlag GmbH;1\r\n" + + "Kinderkino;1\r\n" + + "Kindermann;1\r\n" + + "Kindermann Verlag;1\r\n" + + "Kirchheim;10\r\n" + + "Kirschbaum;1\r\n" + + "Klar'sche Textilarchiv;1\r\n" + + "Klartext;9\r\n" + + "Klartext Verl.;1\r\n" + + "Klartext Verlag;5\r\n" + + "Klartext-Verl.;9\r\n" + + "Klaus Münstermann Verlag;2\r\n" + + "Klaus Schwarz Verlag;1\r\n" + + "Kleine Vennekate, J;1\r\n" + + "Kleinheinrich;1\r\n" + + "Kleist-Archiv Sembdner;1\r\n" + + "Kleist-Museum;1\r\n" + + "Klemm;1\r\n" + + "Klemm + Oelschläger;4\r\n" + + "Klemm u. Oelschläger;1\r\n" + + "Klemm+Oelschläger;1\r\n" + + "Klett;666\r\n" + + "Klett /Kallmeyer;2\r\n" + + "Klett [u.a.];1\r\n" + + "Klett [Vertrieb];2\r\n" + + "Klett | Kallmeyer;13\r\n" + + "Klett Grundschulverl.;2\r\n" + + "Klett Kallmeyer;17\r\n" + + "Klett Kita;2\r\n" + + "Klett Kita GmbH;17\r\n" + + "Klett Kolibri;1\r\n" + + "Klett Lernen und Wissen;1\r\n" + + "Klett Lerntraining;26\r\n" + + "Klett MINT;1\r\n" + + "Klett MINT [u.a.];1\r\n" + + "Klett Schulbuchverl.;4\r\n" + + "Klett Sprachen;95\r\n" + + "Klett Sprachen [Vertrieb];1\r\n" + + "Klett Sprachen GmbH;2\r\n" + + "Klett und Balmer;7\r\n" + + "Klett und Balmer Verlag;6\r\n" + + "Klett Verlag GmbH;1\r\n" + + "Klett, Kallmeyer;20\r\n" + + "Klett, Verl. für Pädag. Medien;1\r\n" + + "Klett/Kallmeyer;45\r\n" + + "Klett|Kallmeyer;3\r\n" + + "Klett-Cotta;170\r\n" + + "Klett-Kallmeyer;1\r\n" + + "Klett-Kinderbuch;1\r\n" + + "Klett-Langenscheidt;37\r\n" + + "Klett-Lernen-und-Wissen;1\r\n" + + "Klett-Lerntraining;14\r\n" + + "Klett-Perthes;6\r\n" + + "Klett-Schulbuchverl.;6\r\n" + + "Klett-Sprachen;2\r\n" + + "Klett-Verl. für Wissen und Bildung;1\r\n" + + "Klever;1\r\n" + + "Klever Verlag;1\r\n" + + "KLHE;1\r\n" + + "Klinger;2\r\n" + + "Klinkhardt;139\r\n" + + "Klinkhardt, Julius;1\r\n" + + "Klippert;1\r\n" + + "Klippert Medien;1\r\n" + + "Klippert Medien, AAP Lehrerfachverlage;1\r\n" + + "Klippert Medien, AAP Lehrerfachverlage GmbH;3\r\n" + + "Klöpfer & Meyer;1\r\n" + + "Klostermann;2\r\n" + + "Kluwer;2\r\n" + + "Kluwer Academic Publ.;1\r\n" + + "KMK;1\r\n" + + "Knabe Verlag;1\r\n" + + "Knabe Verlag Weimar;1\r\n" + + "Knaur;11\r\n" + + "Knaur Taschenbuch;4\r\n" + + "Knaur Verlag;2\r\n" + + "Knaur-Taschenbuch;4\r\n" + + "Knaur-Taschenbuch-Verl.;2\r\n" + + "Knaus;3\r\n" + + "Knesebeck;1\r\n" + + "Kohl;32\r\n" + + "Kohl Verl.;1\r\n" + + "Kohl Verlag;16\r\n" + + "KOHL VERLAG Der Verlag mit dem Baum;2\r\n" + + "Kohlhammer;254\r\n" + + "Kohlverl.;1\r\n" + + "Kohl-Verl.;5\r\n" + + "Kohl-Verl., Der Verlag mit dem Baum;1\r\n" + + "Kohl-Verlag;5\r\n" + + "Kolleg für polnische Sprache und Kultur;1\r\n" + + "Kommissionsverlag, Konrad Theiss Verlag;1\r\n" + + "Kommunal- und Schul-Verl.;2\r\n" + + "Kommunal- und Schul-Verlag;2\r\n" + + "Kommunal- und Schul-Verlag GmbH & Co. KG;1\r\n" + + "Kommunal- und Schul-Verlag Wiesbaden;2\r\n" + + "Kommunalverband für Jugend und Soziales Baden-Württemberg;2\r\n" + + "KOMPASS-Karten;3\r\n" + + "Kompetenzzentrum Technik - Diversity - Chancengleichheit;3\r\n" + + "König;2\r\n" + + "Königshausen & Neumann;66\r\n" + + "Königshausen u. Neumann;2\r\n" + + "Königshausen und Neumann;1\r\n" + + "Konrad Theiss Verlag;2\r\n" + + "Konstanz University Press;6\r\n" + + "Kontakte-Musikverl. [u.a.];1\r\n" + + "Kontrast Verlag;1\r\n" + + "kook;1\r\n" + + "Kookbooks;6\r\n" + + "kopaed;179\r\n" + + "kopaed verlags GmbH, Fachverlag für Medien/pädagogik usw.;1\r\n" + + "kopaed verlagsgmbh;1\r\n" + + "kopaed-Verl.;15\r\n" + + "Körber-Stiftung;1\r\n" + + "Kösel;30\r\n" + + "Kösel Schulbuch;7\r\n" + + "Kosmos;49\r\n" + + "Köster;1\r\n" + + "Kova†;183\r\n" + + "Kovac;10\r\n" + + "Kovac, Dr. Verlag;6\r\n" + + "KovÇŽc;1\r\n" + + "Krämer;1\r\n" + + "Krapp & Gutknecht;8\r\n" + + "Kreisjugendring Esslingen;2\r\n" + + "Kreuz;2\r\n" + + "Kreuz Verlag;4\r\n" + + "Kreuz-Verl.;5\r\n" + + "Kröner;13\r\n" + + "ksv-Verl.;1\r\n" + + "KTK;1\r\n" + + "Kugelberg Verlag;4\r\n" + + "Kugelberg-Verl.;1\r\n" + + "kula Verlag, Dr. Edgar Bönisch;1\r\n" + + "Kulturmaschinen;1\r\n" + + "Kulturverl. Kadmos;1\r\n" + + "Kulturverlag Kadmos;2\r\n" + + "Kulturverlag Kadmos Berlin;2\r\n" + + "Kultusministerium Baden-Württemberg;1\r\n" + + "Kunstverl. Fink;2\r\n" + + "Kunstverlag Peda;1\r\n" + + "Kunstwerk Sammlung Klein;2\r\n" + + "Kursbuch Kulturstiftung gGmbH;1\r\n" + + "Kynos Verlag;1\r\n" + + "Kyusho-Verlag;1\r\n" + + "Laaber;13\r\n" + + "Laaber-Verl.;23\r\n" + + "Laaber-Verlag;10\r\n" + + "Laborschule;2\r\n" + + "Ladybird;5\r\n" + + "Lahn-Verl.;1\r\n" + + "Lahn-Verlag in der Butzon & Bercker GmbH;1\r\n" + + "LAIKA Verlag;3\r\n" + + "Laika-Verl.;3\r\n" + + "Lambert Schneider;3\r\n" + + "Lambert Schneider, ein Imprint der WBG;1\r\n" + + "Lambertus;15\r\n" + + "Landbeck Verl.;1\r\n" + + "Landesamt für Denkmalpflege;1\r\n" + + "Landesamt für Denkmalpflege im Regierungspräsidium Stuttgart;3\r\n" + + "Landesarchiv Baden-Württemberg;1\r\n" + + "Landesinstitut für Schulentwicklung;11\r\n" + + "Landesinstitut für Schulentwicklung (LS);2\r\n" + + "Landesstelle der Kath. Landjugend Bayerns;1\r\n" + + "Landeszentrale für Politische Bildung;2\r\n" + + "Landeszentrale für politische Bildung Baden-Württemberg;7\r\n" + + "Landwirtschaftsverl.;2\r\n" + + "Landwirtschaftsverlag;2\r\n" + + "Landwirtschaftsverlag GmbH;2\r\n" + + "Landwirtschaftsvlg Münster;2\r\n" + + "Lang;341\r\n" + + "Lang Ed.;4\r\n" + + "Lang Edition;4\r\n" + + "Lang, Peter;1\r\n" + + "Lang, Peter Frankfurt;4\r\n" + + "Lang, Peter New York;3\r\n" + + "Lang-Ed.;13\r\n" + + "Langenscheid;1\r\n" + + "Langenscheidt;82\r\n" + + "Langenscheidt [u.a.];1\r\n" + + "Langenscheidt bei Klett;1\r\n" + + "Langenscheidt bei PONS;3\r\n" + + "Langenscheidt ELT;5\r\n" + + "Langenscheidt-Longman;2\r\n" + + "Langewiesche Nachf. Köster;1\r\n" + + "Lars Müller Publishers;1\r\n" + + "L'Artilleur;1\r\n" + + "Lau;1\r\n" + + "Lau Verlag;4\r\n" + + "Lauinger Verlag;1\r\n" + + "Laurenti;1\r\n" + + "Lau-Verlag;3\r\n" + + "Lavori;1\r\n" + + "Le Figaro;1\r\n" + + "Le Monde Diplomatique/TAZ Verl.- und Vertriebs-GmbH;1\r\n" + + "Lebenshilfe-Verlag;2\r\n" + + "L'école des loisirs;4\r\n" + + "Left Coast Pr.;1\r\n" + + "Lehmanns;1\r\n" + + "Lehmanns Media;16\r\n" + + "Lehmanns Media GmbH;2\r\n" + + "Lehrerselbstverlag, Sokrates & Freunde;1\r\n" + + "Lehrmittelverl.;1\r\n" + + "Lehrmittelverl. Zürich;2\r\n" + + "Lehrmittelverlag des Kantons Zürich;30\r\n" + + "Lehrmittelverlag Zürich;19\r\n" + + "Lehrstuhl für Schulpädagogik, Friedrich-Alexander-Univ.;1\r\n" + + "Lehrstuhl für Schulpädagogik, Friedrich-Alexander-Univ. Erlangen-Nürnberg;1\r\n" + + "Leidorf;2\r\n" + + "Leipziger Literaturverlag;1\r\n" + + "Leipziger Univ.-Verl;1\r\n" + + "Leipziger Univ.-Verl.;5\r\n" + + "Leipziger Univ.-Verlag;2\r\n" + + "Leipziger Uni-Verl.;1\r\n" + + "Leipziger Universitätsverl.;2\r\n" + + "Leipziger Universitätsverlag;9\r\n" + + "Leipziger Universitätsverlag GmbH;3\r\n" + + "Leopold Stocker Verlag;1\r\n" + + "Lernbiene;2\r\n" + + "Lernbiene Verlag GmbH;2\r\n" + + "Lernbiene-Verl.;1\r\n" + + "Lernbiene-Verl. Kaminsky;1\r\n" + + "Leutner;1\r\n" + + "Leu-Verl.;1\r\n" + + "Lexika Verl.;1\r\n" + + "Lexika-Verl.;1\r\n" + + "Lexington Books;1\r\n" + + "LexisNexis;5\r\n" + + "LexisNexis ARD ORAC;1\r\n" + + "Leykam;23\r\n" + + "L'Harmattan;4\r\n" + + "Libelle;1\r\n" + + "LIBRUM Publishers & Editors LLC;1\r\n" + + "Limbus Verlag;1\r\n" + + "Limpert;16\r\n" + + "Limpert Verlag;32\r\n" + + "LINCOM;1\r\n" + + "LINCOM GmbH;2\r\n" + + "Linde;4\r\n" + + "Linde Verlag;1\r\n" + + "Linde-Verl.;1\r\n" + + "Lingen;2\r\n" + + "Link;91\r\n" + + "Link Wolters Kluwer Deutschland;1\r\n" + + "Link/DKV;1\r\n" + + "LinkLuchterhand;2\r\n" + + "Links;4\r\n" + + "Linz;1\r\n" + + "List;4\r\n" + + "Lit;489\r\n" + + "Lit Verl.;6\r\n" + + "Lit Verlag;13\r\n" + + "Lit Verlag Dr. W. Hopf;1\r\n" + + "Lit. Verl.;1\r\n" + + "Little, Brown;1\r\n" + + "Little-Tiger-Verl.;1\r\n" + + "LIT-Verl;1\r\n" + + "LIT-Verl.;113\r\n" + + "LIT-Verlag;4\r\n" + + "Löcker;15\r\n" + + "Löcker Verlag;1\r\n" + + "Loewe;13\r\n" + + "LOGO;1\r\n" + + "LOGO Lern-Spiel-Verlag;1\r\n" + + "Logophon;1\r\n" + + "Logos;3\r\n" + + "Logos Berlin;11\r\n" + + "Logos Verl.;12\r\n" + + "Logos Verlag;118\r\n" + + "Logos Verlag Berlin;39\r\n" + + "Logos Verlag Berlin GmbH;35\r\n" + + "Logos Verlag GmbH;1\r\n" + + "Logos Verlag$h;1\r\n" + + "Logos-Verl.;48\r\n" + + "Logos-Verlag;3\r\n" + + "Longman;8\r\n" + + "Longman [u.a.];1\r\n" + + "Longman, Pearson Education;1\r\n" + + "LpB;1\r\n" + + "Luchterhand;4\r\n" + + "Luchterhand in Wolters Kluwer Deutschland;1\r\n" + + "Luchterhand Verlag;3\r\n" + + "Lucius & Lucius;10\r\n" + + "Ludwig;1\r\n" + + "Ludwig Doblinger (Bernhard Herzmansky) KG;1\r\n" + + "Lugert;7\r\n" + + "Lukas Verlag;2\r\n" + + "Luther-Verlag;2\r\n" + + "Luxbooks;2\r\n" + + "LV Publikumsmedien GmbH & Co. KG;1\r\n" + + "LV-Buch im Landwirtschaftsverlag GmbH;1\r\n" + + "LVH;1\r\n" + + "M. @Müller;2\r\n" + + "M. Müller;4\r\n" + + "Mabuse-Verl.;2\r\n" + + "Mabuse-Verlag;2\r\n" + + "Macmillan;4\r\n" + + "Macmillan Children's;1\r\n" + + "Macmillan Education;1\r\n" + + "Macmillan Education - Palgrave;1\r\n" + + "Magellan;4\r\n" + + "Magnard;2\r\n" + + "MairDumont;8\r\n" + + "MAIRDUMONT GmbH & Co. KG;10\r\n" + + "MAIRDUMONT GmbH & Co.KG;1\r\n" + + "Malik;1\r\n" + + "managerSeminare;1\r\n" + + "ManagerSeminare Verl.-Ges.;1\r\n" + + "managerSeminare Verl.-GmbH;1\r\n" + + "managerSeminare Verlags GmbH;25\r\n" + + "managerSeminare Verlags GmbH, Edition Training aktuell;1\r\n" + + "ManagerSeminare-Verl.-Ges.;1\r\n" + + "ManagerSeminare-Verl.-GmbH;4\r\n" + + "ManagerSeminare-Verlags GmbH;1\r\n" + + "managerSeminare-Verlags-GmbH;1\r\n" + + "managerSerminare Verlags GmbH - Edition Training aktuell;1\r\n" + + "MANA-Verlag;1\r\n" + + "Mandelbaum;17\r\n" + + "Mandelbaum kritik & utopie;3\r\n" + + "mandelbaum verlag;8\r\n" + + "Mandelbaum.-Verl.;1\r\n" + + "Mandelbaum-Verl.;3\r\n" + + "Manesse Verlag;1\r\n" + + "Manuscriptum;1\r\n" + + "Manuscriptum Verlagsbuchhandlung;1\r\n" + + "Manz;3\r\n" + + "Manz-Verl. Schulbuch;1\r\n" + + "Mardaga supérieur;1\r\n" + + "marixverl. in der Verl.-Haus Römerweg;1\r\n" + + "marixverlag;4\r\n" + + "Markt & Technik;1\r\n" + + "Markt & Technik ein Imprint von Pearson Deutschland;1\r\n" + + "Markt & Technik in Pearson Education Deutschland;1\r\n" + + "Markt + Technik;1\r\n" + + "Markt + Technik-Verl.;2\r\n" + + "Markt+Technik;2\r\n" + + "Markt+Technik-Verl.;1\r\n" + + "Markt-+-Technik-Verl.;4\r\n" + + "Markt+Technik-Verl., Pearson;1\r\n" + + "Maro;2\r\n" + + "MaroVerlag;1\r\n" + + "Marta Press;8\r\n" + + "Martin MeidenbauerVerlagsbuchhandlung;1\r\n" + + "Maternus;6\r\n" + + "Mathematical Association of America;1\r\n" + + "Mattes;3\r\n" + + "Mattes Verl.;2\r\n" + + "Mattes Verlag;4\r\n" + + "Matthes & Seitz;15\r\n" + + "Matthes & Seitz Berlin;13\r\n" + + "Matthias Grünewald Verlag;4\r\n" + + "Matthias-Grünewald Verlag;1\r\n" + + "Matthias-Grünewald-Verl.;1\r\n" + + "Maximilian Verlag;1\r\n" + + "Maximilian-Verl.;1\r\n" + + "mbv, Mensch-und-Buch-Verl.;2\r\n" + + "McFarland;1\r\n" + + "Mcgraw-Hill;1\r\n" + + "McGraw-Hill, Open University Press;1\r\n" + + "McGraw-Hill, Society for Research into Higher Education & Open University Press;1\r\n" + + "medhochzwei;6\r\n" + + "medhochzwei Verlag;2\r\n" + + "medhochzwei-Verl.;1\r\n" + + "medhochzwei-Verlag;1\r\n" + + "Mediadidact;1\r\n" + + "Median-Verl. von Killisch-Horn;1\r\n" + + "Mediengruppe Oberfranken Fachverlage;6\r\n" + + "Mediengruppe Oberfranken, Fachverlage;1\r\n" + + "Medien-Verl.;1\r\n" + + "Medizinisch Wiss. Verl.-Ges.;1\r\n" + + "Medizinisch Wissenschaftliche Verlagsgesellschaft;2\r\n" + + "Medizinisch-Wissenschaftl. Verl.-Ges.;1\r\n" + + "Meidenbauer;4\r\n" + + "Meiner;8\r\n" + + "Mellinger;1\r\n" + + "Mensch & Buch;1\r\n" + + "Mensch und Buch;1\r\n" + + "Mensch und Buch Verlag;1\r\n" + + "Mentis;4\r\n" + + "Mentis Verl.;1\r\n" + + "Mentis-Verl;1\r\n" + + "Merkur Verlag;2\r\n" + + "Merkur Verlag Rinteln;1\r\n" + + "Merkur-Verl.;5\r\n" + + "Merve;1\r\n" + + "Merve Verlag;2\r\n" + + "merz & solitude;1\r\n" + + "Metropol;10\r\n" + + "Metropolis-Verl.;1\r\n" + + "Metropolis-Verlag;8\r\n" + + "Metropol-Verl.;4\r\n" + + "Metropol-Verlag;1\r\n" + + "Metzler;20\r\n" + + "Meyer;1\r\n" + + "Meyer & Meyer;45\r\n" + + "Meyer & Meyer Fachverlag und Buchhandel GmbH;1\r\n" + + "Meyer & Meyer Verlag;70\r\n" + + "Meyer und Meyer Verlag;1\r\n" + + "Meyers;1\r\n" + + "Meyers, Bibliogr. Inst.;1\r\n" + + "mgo Fachverlage;1\r\n" + + "Michael Imhof Verlag;1\r\n" + + "Michael Müller Verlag;3\r\n" + + "Michael Müller Verlag GmbH;8\r\n" + + "Michael Neugebauer Edition;1\r\n" + + "Michael Neugebauer Edition GmbH;1\r\n" + + "Microsoft Press;6\r\n" + + "Midas;2\r\n" + + "Milan jeunesse;1\r\n" + + "Mildenberger;131\r\n" + + "Mildenberger, K;1\r\n" + + "Militzke;4\r\n" + + "Militzke Verlag;2\r\n" + + "Mille Tre Verl.;1\r\n" + + "Mined.;1\r\n" + + "Ministerium für Ernährung und Ländlichen Raum und Verbraucherschutz;1\r\n" + + "mitp;10\r\n" + + "mitp Verlag;1\r\n" + + "mitp, Verl.-Gruppe Hüthig, Jehle, Rehm;1\r\n" + + "Mitteldeutscher Verlag;3\r\n" + + "Mitteldeutscher WissenschaftsVerlag;3\r\n" + + "Mitteldt. Wiss.-Verl.;2\r\n" + + "Mixtvision;1\r\n" + + "Modo-Verl.;1\r\n" + + "Mohr Siebeck;57\r\n" + + "Mohr Siebeck [u.a.];1\r\n" + + "Monika Waigand;1\r\n" + + "Monsenstein und Vannerdat;13\r\n" + + "Monsenstein und Vannerdat OHG Münster;1\r\n" + + "Moritz;1\r\n" + + "Moritz Verlag;1\r\n" + + "Moritz-Verl.;1\r\n" + + "Mouton de Gruyter;1\r\n" + + "MSB Matthes & Seitz Berlin;1\r\n" + + "MSB Matthes & Seitz Berlin Verlagsgesellschaft mbH;2\r\n" + + "Müller;14\r\n" + + "Multilingual Matters;42\r\n" + + "Multlingual Matters;1\r\n" + + "München;1\r\n" + + "Münstermann;5\r\n" + + "Murken-Altrogge;1\r\n" + + "Museum der Universität Tübingen - MUT;1\r\n" + + "Musikverl. Muth;2\r\n" + + "Musik-Verl. Nepomuk;1\r\n" + + "Musikverlag Burkhard Muth, Musikautorenverlag;1\r\n" + + "Musikverlag Doblinger;1\r\n" + + "Musikverlag Gert Walter;1\r\n" + + "MV Wissenschaft;1\r\n" + + "MV Wissenschaft, Verlagshaus Monsenstein und Vannerdat OHG;1\r\n" + + "mvg Verlag;1\r\n" + + "mvgverlag;1\r\n" + + "MV-Verl. Wissenschaft, Verl.-Haus Monsenstein und Vannerdat;1\r\n" + + "MWV Medizinisch Wissenschaftliche Verlagsgesellschaft;1\r\n" + + "Mykum;2\r\n" + + "Myrtel Team;1\r\n" + + "Myrtel-Team;1\r\n" + + "nap new academic press;1\r\n" + + "nap, New Acad. Press;1\r\n" + + "nap, new academic press;3\r\n" + + "Narr;55\r\n" + + "Narr Francke Attempo Verlag;1\r\n" + + "Narr Francke Attempto;116\r\n" + + "Narr Francke Attempto Verlag;18\r\n" + + "Narr Francke Attempto Verlag GmbH;3\r\n" + + "Narr Francke Attempto Verlag GmbH + Co. KG;5\r\n" + + "Narr Verl.;1\r\n" + + "Narr Verlag;26\r\n" + + "Nathan;6\r\n" + + "National Council of Teachers of Mathematics;1\r\n" + + "National Council of Teachers of Mathematics, Inc.;1\r\n" + + "National Council of Teachers of English;2\r\n" + + "National Council of Teachers of Mathematics;4\r\n" + + "National Curriculum and Textbook Board;2\r\n" + + "National Geographic Deutschland;5\r\n" + + "National Geographic Deutschland (G+J/RBA);2\r\n" + + "National Geographic Learning;1\r\n" + + "National Geographic Learning, a part of Cengage Learning;1\r\n" + + "National Geographic Learning/Heinle, Cengage, Learning;1\r\n" + + "Natur und Tier - Verlag GmbH;1\r\n" + + "Naturhistorisches Museum Wien;1\r\n" + + "Naturpark Südschwarzwald;3\r\n" + + "NAT-Verlag;1\r\n" + + "Naumann & Göbel Verlagsgesellschaft mbH;3\r\n" + + "NCTM, National Council of Teachers of Mathematics;2\r\n" + + "Neckar-Verl.;3\r\n" + + "Neckar-Verlag GmbH;2\r\n" + + "Neisse-Verl.;1\r\n" + + "Neue Deutsche Schule Verlagsgesellschaft mbH;1\r\n" + + "Neue Dt. Schule Verl.-Ges.;2\r\n" + + "Neue Zürcher Zeitung NZZ Libro;1\r\n" + + "Neue Zürcher Zeitung, NZZ Libro;1\r\n" + + "Neukirchener Aussaat;4\r\n" + + "Neukirchener Theologie;10\r\n" + + "Neukirchener Verl.;4\r\n" + + "Neukirchener Verl.-Ges.;7\r\n" + + "Neukirchener Verlagsges.;1\r\n" + + "New Acad. Press;1\r\n" + + "new academic press;8\r\n" + + "New York Review Books;1\r\n" + + "New York University Press;1\r\n" + + "NG Buchverlag GmbH;1\r\n" + + "NGV;1\r\n" + + "Nicolai;1\r\n" + + "Nicolai Publishing & Intelligence GmbH;1\r\n" + + "Niemeyer;3\r\n" + + "Niggli;1\r\n" + + "Nimbus;1\r\n" + + "Noetzel;1\r\n" + + "Noetzel, Heinrichshofen-Bücher;1\r\n" + + "Nomos;149\r\n" + + "Nomos [u.a.];2\r\n" + + "Nomos Verl.-Ges.;4\r\n" + + "Nomos Verlag;1\r\n" + + "Nomos, Ed. Fischer;1\r\n" + + "Nomos, edition sigma;2\r\n" + + "Nomos, Edititon Reinhard Fischer;1\r\n" + + "Nomos-Verl.;2\r\n" + + "Nomos-Verl.Ges.;1\r\n" + + "Nomos-Verl.-Ges.;23\r\n" + + "Nomos-Verl.-Ges. [u.a.];1\r\n" + + "Nomos-Verl.-Ges., Ed. Fischer;1\r\n" + + "NordSüd;1\r\n" + + "NordSüd Verl.;3\r\n" + + "NordSüd, Edition bi:libri;1\r\n" + + "Norton;1\r\n" + + "Nova Science;1\r\n" + + "Novello;1\r\n" + + "Novo Argumente Verlag;1\r\n" + + "NP&I;1\r\n" + + "NS-Dokumentationszentrum;1\r\n" + + "Nünnerich-Asmus;1\r\n" + + "nwb STUDIUM;2\r\n" + + "NWB-Verl.;1\r\n" + + "NWV;2\r\n" + + "NZZ Libro;1\r\n" + + "O´Reilly;1\r\n" + + "Oberon Books;2\r\n" + + "Oberstebrink;1\r\n" + + "Observatoire européen du plurilinguisme;2\r\n" + + "OECD;6\r\n" + + "OECD Programme for International Student Assessment;1\r\n" + + "OECD Publ.;1\r\n" + + "oekom;14\r\n" + + "oekom Verl.;1\r\n" + + "oekom verlag;18\r\n" + + "oekom verlag, Gesellschaft für ökologische Kommunikation mbH;6\r\n" + + "oekom, Gesellschaft für ökologische Kommunikation mbH;4\r\n" + + "Oekom-Verl.;4\r\n" + + "Oesterreichische Computer Gesellschaft;1\r\n" + + "Oetinger;11\r\n" + + "Oetinger Taschenbuch;4\r\n" + + "Oetinger-Taschenbuch;1\r\n" + + "Offizin;1\r\n" + + "Offizin-Verl.;4\r\n" + + "ÖGB Verlag;3\r\n" + + "Ökotopia;2\r\n" + + "Ökotopia Verl.;1\r\n" + + "Ökotopia Verlag;5\r\n" + + "Ökotopia-Verl.;16\r\n" + + "Ökotopia-Verlag;1\r\n" + + "Oldenbourg;149\r\n" + + "Oldenbourg Schulbuchverl.;16\r\n" + + "Oldenbourg Schulbuch-Verl.;13\r\n" + + "Oldenbourg Schulbuchverlag;48\r\n" + + "Oldenbourg Verlag;9\r\n" + + "Oldenbourg-Industrieverlag;1\r\n" + + "Oldenbourg-Schulbuchverl;1\r\n" + + "Oldenbourg-Schulbuchverl.;2\r\n" + + "Oldenbourg-Schulbuchverlag;1\r\n" + + "Oldenbourg-Verl.;3\r\n" + + "Olms;21\r\n" + + "Olms, Georg;1\r\n" + + "Olms-Weidmann;1\r\n" + + "Olzog;9\r\n" + + "Olzog Verlag;1\r\n" + + "Oneworld;1\r\n" + + "Open Source Press;4\r\n" + + "Open Univ. Press;1\r\n" + + "Open University Press;1\r\n" + + "Ophrys;1\r\n" + + "Opladen [u.a.];1\r\n" + + "Optimedien;1\r\n" + + "Optimus;2\r\n" + + "Orchard Books;1\r\n" + + "O'Reilly;13\r\n" + + "Orell Füssli Verlag;5\r\n" + + "Orell Füssli Verlag AG;1\r\n" + + "OREP éd;1\r\n" + + "OREP Éd.;1\r\n" + + "Orion Children's Books;1\r\n" + + "Orlanda;1\r\n" + + "Ortadogu;1\r\n" + + "OsirisDr.;1\r\n" + + "Österreichischer Integrationsfonds;2\r\n" + + "OsteuropaZentrum Berlin-Verlag;1\r\n" + + "ott der sachbuchverlag;2\r\n" + + "Oxbow Books;1\r\n" + + "Oxford Univ. Pr.;2\r\n" + + "Oxford Univ. Press;23\r\n" + + "Oxford University Press;38\r\n" + + "OZ creativ;3\r\n" + + "P.I.E. Peter Lang;5\r\n" + + "p.machinery Haitel;1\r\n" + + "Pabst;1\r\n" + + "Pabst Press;1\r\n" + + "Pabst Science Publ.;1\r\n" + + "Pabst Science Publishers;9\r\n" + + "Packt Publ.;2\r\n" + + "Packt Publishing;1\r\n" + + "Pädag. Forschungsstelle beim Bund der Freien Waldorfsch.;1\r\n" + + "Pädag. Hochsch.;1\r\n" + + "Pädag. Hochsch. Freiburg;1\r\n" + + "Pädagog. Forschungsstelle beim Bund der Freien Waldorfschulen;1\r\n" + + "Pädagogische Forschungsstelle beim Bund der Freien Waldorfschulen;2\r\n" + + "Pädagogische Hochschule;1\r\n" + + "Pädagogische Lehr- und Lernmittel;1\r\n" + + "Paderborn;2\r\n" + + "PAIS-Verl.;1\r\n" + + "PAL;1\r\n" + + "Palgrave Macmillan;14\r\n" + + "Palgrave Macmillan UK;1\r\n" + + "Palmedia Publ. Services;1\r\n" + + "Panini Comics;1\r\n" + + "Panini Verlags GmbH;3\r\n" + + "Pano-Verl. [u.a.];1\r\n" + + "Pantheon Books;1\r\n" + + "PAN-Ver.;1\r\n" + + "Papercutz;1\r\n" + + "Papierfresserchens MTM-Verlag GbR;4\r\n" + + "PapyRossa Verlag;21\r\n" + + "PapyRossa-Verl.;2\r\n" + + "Paradigm Publ.;1\r\n" + + "parasitenpresse;1\r\n" + + "Parodos;1\r\n" + + "Parodos-Verl.;1\r\n" + + "Parragon;1\r\n" + + "Passagen;2\r\n" + + "Passagen Verlag;6\r\n" + + "Passagen Verlage;1\r\n" + + "Passagen-Verl.;3\r\n" + + "Patmos;16\r\n" + + "Patmos Verlag;5\r\n" + + "Patmos, Oldenbourg;3\r\n" + + "Patmos-Verl.;1\r\n" + + "Paul Zsolnay Verlag;6\r\n" + + "Paulo Freire Verlag;8\r\n" + + "Paulo-Freire-Verl.;7\r\n" + + "Paulusverl.;1\r\n" + + "pb-Verl.;1\r\n" + + "peace press;2\r\n" + + "Pearson;48\r\n" + + "Pearson Assessment and Information;1\r\n" + + "Pearson Deutschland;1\r\n" + + "Pearson Deutschland GmbH;2\r\n" + + "Pearson Education;8\r\n" + + "Pearson Higher Education;4\r\n" + + "Pearson Longman;1\r\n" + + "Pearson Prentice Hall;1\r\n" + + "Pearson Schule;1\r\n" + + "Pearson Studium;18\r\n" + + "Pearson Studium ein Imprint der Pearson Education;2\r\n" + + "Pearson Studium ein Imprint von Pearson Deutschland;1\r\n" + + "Pearson, Higher Education;6\r\n" + + "Pearson/Longman;3\r\n" + + "Penguin;1\r\n" + + "Penguin Books;7\r\n" + + "Penguin Verlag;3\r\n" + + "Persen;305\r\n" + + "Persen Verl.;5\r\n" + + "Persen Verl., AAP Lehrerfachverl.;71\r\n" + + "Persen Verl., AAP Lehrerfachverlag;1\r\n" + + "Persen Verl., AAP Lehrerfachverlage;3\r\n" + + "Persen Verlag;10\r\n" + + "Persen Verlag in AAP Lehrerfachverlag;4\r\n" + + "Persen Verlag in der AAP Lehrerfachverlag;1\r\n" + + "Persen Verlag in der AAP Lehrerfachverlage GmbH;5\r\n" + + "Persen Verlag in der AAP Lehrerwelt GmbH;1\r\n" + + "Persen Verlag, AAP Lehrerfachverlag;2\r\n" + + "Persen Verlag, AAP Lehrerfachverlage;2\r\n" + + "Persen Verlag, AAP Lehrerfachverlage GmbH;3\r\n" + + "Persen, AAP Lehrerfachverlage;2\r\n" + + "Persenl;1\r\n" + + "Persen-Verl.;2\r\n" + + "PersenVerl., AAP Lehrerfachverl.;1\r\n" + + "Persen-Verl., AAP Lehrerfachverl.;1\r\n" + + "Peter Lang;146\r\n" + + "Peter Lang Ed.;2\r\n" + + "Peter Lang Edition;141\r\n" + + "Peter Lang GmbH;2\r\n" + + "Peter Lang GmbH, Internationaler Verlag der Wissenschaften;2\r\n" + + "Peter Lang Internationaler Verlag der Wissenschaften;4\r\n" + + "Peter Lang Ltd, International Academic Publishers;1\r\n" + + "Peter Lang Publishing;1\r\n" + + "Peter Lang Publishing Inc. New York;1\r\n" + + "Peter Lang Publishing, Inc;1\r\n" + + "Peter Lang, Internationaler Verlag der Wissenschaften;8\r\n" + + "Peter-Lang Edition;1\r\n" + + "Peter-Lang-Ed.;2\r\n" + + "Peters;7\r\n" + + "Peters Edition LTD;1\r\n" + + "Pfahlbaumuseum Unteruhldingen;1\r\n" + + "Pfeil;1\r\n" + + "pfv;1\r\n" + + "Phaidon;6\r\n" + + "Philipp Reclam jun.;13\r\n" + + "Philipp von Zabern;3\r\n" + + "Philippka;2\r\n" + + "Philippka Sportverl.;1\r\n" + + "Philippka Sportverlag;5\r\n" + + "Philippka-Sportverl.;2\r\n" + + "Philippka-Sportverlag;3\r\n" + + "Philippka-Sportverlag GmbH & Co. KG;3\r\n" + + "Phillip Reclam jun.;1\r\n" + + "Physica-Verl.;1\r\n" + + "Picus;1\r\n" + + "Picus Verlag;1\r\n" + + "PIE Lang;2\r\n" + + "Pietsch;2\r\n" + + "Piper;75\r\n" + + "Piper Verlag;1\r\n" + + "Piper Verlag GmbH;1\r\n" + + "PL Acad. Research;1\r\n" + + "PL Academic Research;3\r\n" + + "PL Acad. Research;6\r\n" + + "PL Academic Research;16\r\n" + + "PL Academic Reseearch;1\r\n" + + "PLURAL Publications GmbH;1\r\n" + + "Pluto Press;2\r\n" + + "PMI;1\r\n" + + "Poetenladen;3\r\n" + + "Policy Press;3\r\n" + + "Polity Press;3\r\n" + + "PONS;5\r\n" + + "PONS GmbH;4\r\n" + + "Posth Verlag;2\r\n" + + "Praesens;4\r\n" + + "Praesens Verl.;2\r\n" + + "Praesens Verlag;10\r\n" + + "Praesens-Verl.;1\r\n" + + "Praesens-Verlag;1\r\n" + + "Praxium-Verl.;1\r\n" + + "Prensas de la Universidad de Zaragoza;1\r\n" + + "Presse de l'Univ. de Montréal;1\r\n" + + "Presses Univ. de France;1\r\n" + + "Presses Universitaires de France;2\r\n" + + "Presses universitaires de Grenoble;2\r\n" + + "Presses universitaires de Provence;1\r\n" + + "Presses Universitaires de Rennes;2\r\n" + + "Prestel;11\r\n" + + "Primat Verlag;1\r\n" + + "Primus-Verl.;1\r\n" + + "Princeton Univ. Press;1\r\n" + + "Princeton University Press;1\r\n" + + "Pro Business;1\r\n" + + "pro mente edition;6\r\n" + + "Prodos Verlag;1\r\n" + + "Prodos-Verl.;1\r\n" + + "Profil;2\r\n" + + "Profil-Verl.;2\r\n" + + "Projekt Verlag;2\r\n" + + "Projektverl;2\r\n" + + "Projektverl.;4\r\n" + + "Projekt-Verl.;2\r\n" + + "Projektverlag;13\r\n" + + "Projektverlerlag.;1\r\n" + + "Projekverl.;1\r\n" + + "Prolog Verlag;2\r\n" + + "Prolog-Verl.;20\r\n" + + "Prolog-Verlag;24\r\n" + + "Promo-Verl.;1\r\n" + + "Protagoras Academicus;6\r\n" + + "Psychiatrie Verlag;11\r\n" + + "Psychiatrie-Verl.;1\r\n" + + "Psychology Press;2\r\n" + + "Psychosozial - Verl.;1\r\n" + + "Psychosozial-Verl.;19\r\n" + + "Psychosozial-Verlag;65\r\n" + + "Publ.-Stelle d. PH Zürich;1\r\n" + + "PUF;1\r\n" + + "Puffin;1\r\n" + + "Puffin Books;1\r\n" + + "PUG;4\r\n" + + "Purdue University Press;1\r\n" + + "Pustet;5\r\n" + + "Quelle & Meyer;20\r\n" + + "Quelle & Meyer Verlag;6\r\n" + + "Quintus-Verlag;1\r\n" + + "R. Müller;1\r\n" + + "Raabe;28\r\n" + + "Raabe Fachverlag für Bildungsmanagement;4\r\n" + + "Raabe Verlag;1\r\n" + + "Raabe, Dr Josef Raabe Verlags GmbH;1\r\n" + + "Raabe, Fachverlag für Bildungsmanagement;3\r\n" + + "Raabe, J Stuttgart;1\r\n" + + "Raabe];1\r\n" + + "RabenStück Verlag;1\r\n" + + "RabenStück-Verl.;1\r\n" + + "Rainer Hampp Verlag;9\r\n" + + "Random House;1\r\n" + + "Rauner;1\r\n" + + "Ravensburger;2\r\n" + + "Ravensburger Buchverl;1\r\n" + + "Ravensburger Buchverl.;11\r\n" + + "Ravensburger Buchverl. Maier;12\r\n" + + "Ravensburger Buchverlag;13\r\n" + + "Ravensburger Buchverlag Maier;1\r\n" + + "RCA;1\r\n" + + "Re Di Roma-Verlag;1\r\n" + + "readbox publishing;3\r\n" + + "readbox unipress;3\r\n" + + "readbox unipress in der readbox publishing GmbH;10\r\n" + + "Reader's Digest Deutschland, Schweiz, Österreich;1\r\n" + + "Reclam;497\r\n" + + "Reclam, Philipp;5\r\n" + + "Red Fox;1\r\n" + + "Redaktion Obst;1\r\n" + + "Re-Di-Roma-Verl.;1\r\n" + + "Redleaf Press;2\r\n" + + "Regener;3\r\n" + + "Regioverl.;1\r\n" + + "Rehm;3\r\n" + + "Reichardt;1\r\n" + + "Reichert;8\r\n" + + "Reichert Verl.;1\r\n" + + "Reichert Verlag;2\r\n" + + "Reimer;3\r\n" + + "Reinhardt;94\r\n" + + "Reinhardt, Ernst;2\r\n" + + "Reinhold Krämer Verlag;1\r\n" + + "Reise Know-How;2\r\n" + + "Reise Know-How Verlag Hermann;1\r\n" + + "Reise Know-How Verlag Peter Rump GmbH;5\r\n" + + "Reise-Know-How-Verl. Rump;3\r\n" + + "Religionspädagogisches Institut Karlsruhe;1\r\n" + + "Religionspädagogisches Institut Loccum;1\r\n" + + "Reprodukt;5\r\n" + + "Residenz Verlag;4\r\n" + + "Residenz-Verl.;3\r\n" + + "Retz;2\r\n" + + "Rex-Verl.;1\r\n" + + "Rheinische-Post-Verl.-Ges.;1\r\n" + + "Rheinwerk;3\r\n" + + "Rheinwerk Computing;1\r\n" + + "Rheinwerk Computing;6\r\n" + + "Rheinwerk Design;5\r\n" + + "Rheinwerk Verlag;18\r\n" + + "Rheinwerk Verlag GmbH;9\r\n" + + "Rieder;3\r\n" + + "Ritter Literatur;1\r\n" + + "Ritterbach;22\r\n" + + "Ritterbach Verlag;1\r\n" + + "riva;1\r\n" + + "Riveneuve éditions;1\r\n" + + "Riverside;3\r\n" + + "Roaring Brook Press;1\r\n" + + "Roderer;8\r\n" + + "Roderer, S;1\r\n" + + "Rodopi;2\r\n" + + "Rogan House;1\r\n" + + "Rohr Verlag;1\r\n" + + "Röhrig;2\r\n" + + "Röhrig Univ.-Verl.;4\r\n" + + "Röhrig Universitätsverl.;1\r\n" + + "Röhrig Universitätsverlag;8\r\n" + + "Rombach;22\r\n" + + "Rombach Druck- und Verlagshaus;1\r\n" + + "Rombach Verlag;22\r\n" + + "Rombach Verlag KG;2\r\n" + + "Rombach-Ed.;1\r\n" + + "Rotpunktverlag;1\r\n" + + "roughbooks;2\r\n" + + "Routledge;118\r\n" + + "Routledge Taylor & Francis Group;6\r\n" + + "Routledge, an imprint of the Taylor & Francis Group;1\r\n" + + "Routledge, Taylor & Francis;1\r\n" + + "Routledge, Taylor & Francis Group;37\r\n" + + "Routledge, Taylor and Francis Group, Earthscan from Routledge;1\r\n" + + "Routledge,Taylor & Francis Group;1\r\n" + + "Routlege;1\r\n" + + "Rowman & Littlefield;6\r\n" + + "Rowman & Littlefield International;1\r\n" + + "Rowman & Littlefield Publishers;1\r\n" + + "Rowohlt;29\r\n" + + "Rowohlt Hundert Augen;1\r\n" + + "Rowohlt Polaris;2\r\n" + + "Rowohlt Repertoire;2\r\n" + + "Rowohlt Taschenbuch;2\r\n" + + "Rowohlt Taschenbuch Verl.;6\r\n" + + "Rowohlt Taschenbuch Verlag;62\r\n" + + "Rowohlt Taschenbuch-Verl.;11\r\n" + + "Rowohlt Verlag;1\r\n" + + "rowohlts enzyklopädie im Rowohlt Taschenbuch Verlag;2\r\n" + + "Rowohlt-Taschenbuch Verl.;1\r\n" + + "Rowohlt-Taschenbuch-Verl.;78\r\n" + + "Rowohlt-Taschenbuch-Verl. [u.a.];1\r\n" + + "Rowohlt-Taschenbuch-Verlag;3\r\n" + + "Rowolt-Taschenbuch-Verl.;1\r\n" + + "S. Fischer;37\r\n" + + "S. Fischer Verlag;4\r\n" + + "S. Fischer Verlag GmbH;1\r\n" + + "S. Hirzel Verlag;4\r\n" + + "S. Roderer Verlag;6\r\n" + + "SAC-Verl.;1\r\n" + + "Sadifa-Media-Verl.-GmbH;2\r\n" + + "SAGE;38\r\n" + + "Sage Publ.;1\r\n" + + "SAGE reference;1\r\n" + + "Sandmann Ed.;1\r\n" + + "Sandstein Verlag;3\r\n" + + "Sauerländer;5\r\n" + + "Sauerländer Cornelsen;1\r\n" + + "Schäffer-Poeschel;3\r\n" + + "Schäffer-Poeschel Verlag;6\r\n" + + "Schattauer;24\r\n" + + "Schattauer [u.a.];1\r\n" + + "Schauenburg Verl.;1\r\n" + + "Scheidegger & Spiess;2\r\n" + + "Schibri-Verl.;5\r\n" + + "Schibri-Verlag;3\r\n" + + "Schiele & Schön;1\r\n" + + "Schilling;1\r\n" + + "Schillinger;2\r\n" + + "Schirmer, Mosel;1\r\n" + + "Schlebrügge.Ed.;1\r\n" + + "Schlieker & Koth Verlag;1\r\n" + + "Schlütersche;2\r\n" + + "Schlütersche Verlagsgesellschaft mbH & Co. KG;1\r\n" + + "Schmetterling Verlag;3\r\n" + + "Schmetterling-Verl.;1\r\n" + + "Schmidt;26\r\n" + + "Schmidt-Römhild;1\r\n" + + "Schneider;2\r\n" + + "Schneider Verl. Hohengehren;1\r\n" + + "Schneider Hohengehren;18\r\n" + + "Schneider Hohengehren GmbH;1\r\n" + + "Schneider Verl. Hohengehren;1\r\n" + + "Schneider Verl. Hohengehren;51\r\n" + + "Schneider Verlag;1\r\n" + + "Schneider Verlag Hohengehren;49\r\n" + + "Schneider Verlag Hohengehren GmbH;202\r\n" + + "Schneider Verlag HohengehrenGmbH;1\r\n" + + "Schneiderbuch Egmont;1\r\n" + + "Schneider-Verl. Hohengehren;2\r\n" + + "Schneider-Verl. Hohengehren;177\r\n" + + "Schneider-Verl.-Hohengehren;1\r\n" + + "Schneider-Verlag Hohengehren;1\r\n" + + "Schneider-Verlag Hohengehren;2\r\n" + + "Schneider-Verlag Hohengehren GmbH;2\r\n" + + "Schnell & Steiner;2\r\n" + + "Schnell + Steiner;2\r\n" + + "Schnell + Steiner [u.a.];2\r\n" + + "Scholastic;6\r\n" + + "Schöneworth;7\r\n" + + "SchöneworthVerl.;1\r\n" + + "Schöneworth-Verl.;1\r\n" + + "SchöneworthVerlag;20\r\n" + + "Schöning;1\r\n" + + "Schöningh;276\r\n" + + "Schöningh [u.a.];1\r\n" + + "Schöningh Verlag;1\r\n" + + "Schöningh Verlag im Westermann Schulbuchverlag;8\r\n" + + "Schöningh Westermann;17\r\n" + + "Schöningh, Westermann;11\r\n" + + "Schott;72\r\n" + + "Schott Music;33\r\n" + + "Schott Music GmbH & Co KG;1\r\n" + + "Schott Music GmbH & Co. KG;3\r\n" + + "Schreiber & Leser;1\r\n" + + "Schriftbild GmbH;1\r\n" + + "Schrift-Kultur, Forschungsstelle Sprachliche und Literarische Bildung und Sozialisation im Kindesalter;1\r\n" + + "Schroedel;210\r\n" + + "Schroedel [u.a.];3\r\n" + + "Schroedel Westermann;32\r\n" + + "Schroedel, Diesterweg, Klinkhardt;1\r\n" + + "Schroedel, Westermann;21\r\n" + + "Schroedel-Schulbuchverl.;2\r\n" + + "Schubert;4\r\n" + + "Schubert Leipzig;1\r\n" + + "SCHUBI;13\r\n" + + "Schubi Lernmedien;7\r\n" + + "SCHUBI Lernmedien AG;9\r\n" + + "Schuh;9\r\n" + + "Schulbuchverl. Anadolu;10\r\n" + + "Schulbuchverlag Anadolu;5\r\n" + + "Schüling Verlag;3\r\n" + + "Schultheaterverl.;2\r\n" + + "Schulverl. Plus;8\r\n" + + "Schulverlag Plus;12\r\n" + + "Schulverlag plus AG;5\r\n" + + "Schulz-Kirchner;14\r\n" + + "Schulz-Kirchner Verlag;15\r\n" + + "Schulz-Kirchner Verlag***5108900;1\r\n" + + "Schulz-Kirchner-Verl.;1\r\n" + + "Schüren;19\r\n" + + "Schüren-Verl.;1\r\n" + + "Schwabe;11\r\n" + + "Schwabe Basel;2\r\n" + + "Schwabe Verlag;6\r\n" + + "Schwabenverlag;4\r\n" + + "Schwäbische Druckerei GmbH;1\r\n" + + "Schwäbischer Albverein e.V. [SAV];1\r\n" + + "Schwalbach am Taunus;1\r\n" + + "Schwarz;1\r\n" + + "Schwarzkopf & Schwarzkopf;1\r\n" + + "Schweizerbart;2\r\n" + + "Schweizerbart Science Publishers;1\r\n" + + "Schweizerisches Jugendschriftenwerk;1\r\n" + + "Sciences humaines éd.;1\r\n" + + "Scientia Bonnensis;2\r\n" + + "Scripta Mercaturae Verlag;1\r\n" + + "Scriptor;1\r\n" + + "SDBB-Verl.;1\r\n" + + "Secession Verlag für Literatur;1\r\n" + + "Seeberger;1\r\n" + + "Seemann;4\r\n" + + "Seemann Henschel;2\r\n" + + "Seilnacht Verlag & Atelier;2\r\n" + + "Seismo;3\r\n" + + "Selbstverl. der Inst. für Physische Geographie und Kulturgeographie der Univ.;1\r\n" + + "Selbstverl. des Faches Geographie an der Univ. Passau;1\r\n" + + "Selbstverl. des Hochschulverbandes für Geographie und ihre Didaktik;3\r\n" + + "Selbstverl. des Hochschulverbandes für Geographie und ihre Didaktik e.V.;1\r\n" + + "Selbstverl. des Inst. für Umweltsozialwiss. und Geographie der Albert-Ludwigs Univ.;1\r\n" + + "Selbstverl. des Instituts für Umweltsozialwissenschaften und Geographie der Albert-Ludwigs-Universität Freiburg;2\r\n" + + "Selbstverl. Fach Geographie der Univ. Passau;1\r\n" + + "Selbstverlag Fach Geographie der Universität Passau;2\r\n" + + "Selbstverlag Fach Geographie der Univiversität Passau;1\r\n" + + "Sencon-Verlag;1\r\n" + + "Sense Publ.;3\r\n" + + "Sense Publishers;9\r\n" + + "Sepia;1\r\n" + + "Serpent's Tail;1\r\n" + + "Setzer;1\r\n" + + "Seven Stories Press;3\r\n" + + "SGEL;2\r\n" + + "SGV Verlag;1\r\n" + + "Shaker;89\r\n" + + "Shaker Verl.;2\r\n" + + "Shaker Verlag;51\r\n" + + "Shaker-Verl.;4\r\n" + + "Sicht-Verl.;1\r\n" + + "Siedler;1\r\n" + + "Silberburg-Verl.;4\r\n" + + "Silberburg-Verlag;1\r\n" + + "Silberburg-Verlag GmbH;1\r\n" + + "Sinnreich & Schweitzer;1\r\n" + + "Ski Media in Wulff GmbH;1\r\n" + + "smp, SWB Media Publishing;1\r\n" + + "Societas;1\r\n" + + "Societas Verl.-Ges.;1\r\n" + + "Societäts-Verlag;1\r\n" + + "SOL-Verlag;1\r\n" + + "Sonnenberg;1\r\n" + + "Sony Music;1\r\n" + + "Sony Music Entertainment;1\r\n" + + "SOP O«wiatowiec Toru™;2\r\n" + + "SOS Kinderdorf, Sozialpädag. Inst.;2\r\n" + + "SOS-Kinderdorf e.V.;1\r\n" + + "SOS-Kinderdorf, Sozialpädagogisches Inst.;1\r\n" + + "Southern Illinois Univ. Press;1\r\n" + + "Sozialpädag. Inst. im SOS-Kinderdorf;1\r\n" + + "Sozialpädagog. Inst. [u.a.];1\r\n" + + "Spektrum Akad. Verl.;10\r\n" + + "Spektrum Akademischer Verl.;8\r\n" + + "Spektrum Akademischer Verlag;13\r\n" + + "Spektrum, Akad. Verl.;2\r\n" + + "Spektrum, Akademischer Verlag;1\r\n" + + "Spektrum, Akad. Verl.;19\r\n" + + "Spektrum, Akademischer Verlag;6\r\n" + + "Spiegel Online;1\r\n" + + "Spiegel-Verlag;1\r\n" + + "Spielzeug Welten Museum;1\r\n" + + "Spitta Verlag GmbH & Co. KG;1\r\n" + + "Splitter-Verlag;2\r\n" + + "spomedis;3\r\n" + + "Sportverl. Strauß;5\r\n" + + "Sportverlag Strauß;7\r\n" + + "Springer;164\r\n" + + "Springer VS;1\r\n" + + "Springer Campus;2\r\n" + + "Springer Fachmedien;5\r\n" + + "Springer Fachmedien Wiesbaden;2\r\n" + + "Springer Fachmedien Wiesbaden GmbH;12\r\n" + + "Springer Gabler;106\r\n" + + "Springer Reference;2\r\n" + + "Springer Science+Business Media;1\r\n" + + "Springer Spektrum;233\r\n" + + "Springer Spektrum [u.a.];1\r\n" + + "Springer Spektrum, Vieweg + Teubner;1\r\n" + + "Springer Sprektrum;1\r\n" + + "Springer Vieweg;46\r\n" + + "Springer VS;79\r\n" + + "Springer VS Verlag für Sozialwissenschaften;1\r\n" + + "Springer VS, Verlag für Sozialwissenschaften;1\r\n" + + "Springer-Gabler;2\r\n" + + "Springer-Spektrum;10\r\n" + + "Springer-Vieweg;3\r\n" + + "Staatsanzeiger-Verl.;1\r\n" + + "Stadt Freiburg im Breisgau, Amt für Bürgerservice und Informationsverarbeitung;1\r\n" + + "Stadt Villingen-Schwenningen;1\r\n" + + "Stadtarchiv;3\r\n" + + "Stadtarchiv Freiburg im Breisgau;2\r\n" + + "Stämpfli Verlag;1\r\n" + + "Stark;21\r\n" + + "Stark Verlagsges.;1\r\n" + + "Stark-Verl.-Ges.;1\r\n" + + "Stauffenburg;4\r\n" + + "Stauffenburg Verlag;33\r\n" + + "Stauffenburg-Verl.;16\r\n" + + "Steidl;11\r\n" + + "Steidl Göttingen;1\r\n" + + "Steidl Verl.;1\r\n" + + "Steiner;34\r\n" + + "Stekovics;1\r\n" + + "Sterling Children's Books;1\r\n" + + "Sternberg Press;2\r\n" + + "Sternchenverlag;33\r\n" + + "Stiebner;5\r\n" + + "Stiftung Forum für Verantwortung [u.a.];1\r\n" + + "Stiftung Mitarbeit;1\r\n" + + "Stiftung Pflegeheim Hamburgische Wohnstifte, Hesse-Diederichsen-Heim;1\r\n" + + "Stiftung Warentest;41\r\n" + + "Stocker;1\r\n" + + "Stroemfeld;2\r\n" + + "Strube;2\r\n" + + "Studia Univ.-Verl.;1\r\n" + + "Studia Universitätsverlag;1\r\n" + + "Studien Verl.;3\r\n" + + "Studien Verlag;17\r\n" + + "Studienverl.;7\r\n" + + "Studien-Verl.;5\r\n" + + "Studien-Verl..;1\r\n" + + "StudienVerlag;29\r\n" + + "Studien-Verlag;1\r\n" + + "Stuttgart;4\r\n" + + "Stylus Publ.;1\r\n" + + "Styria;1\r\n" + + "Süddeutsche Zeitung;2\r\n" + + "Süddeutsche Zeitung Ed.;1\r\n" + + "Süddeutsche Zeitung Edition;4\r\n" + + "Süddeutsche Zeitung GmbH;2\r\n" + + "Süddt. Zeitung;4\r\n" + + "Süddt. Zeitung Edition;1\r\n" + + "Süddt. Zeitung GmbH;5\r\n" + + "Südpol;1\r\n" + + "Suhrkamp;446\r\n" + + "Suhrkamp Verlag;24\r\n" + + "Suhrkamp-Taschenbuch-Verl.;2\r\n" + + "Sutton;1\r\n" + + "Sutton Verlag GmbH;1\r\n" + + "Sven Murmann Verlagsgesellschaft mbH;1\r\n" + + "symposion;2\r\n" + + "Symposium Books;7\r\n" + + "Synchron;2\r\n" + + "Synchron, Wissenschaftsverl. der Autoren;1\r\n" + + "Synergia;1\r\n" + + "Syntagma-Verl.;1\r\n" + + "Systemed;1\r\n" + + "SZH CSPS Edition;1\r\n" + + "Talisa;1\r\n" + + "TASCHEN;29\r\n" + + "Taschen GmbH;2\r\n" + + "taz Verlags- und Vertriebs GmbH;1\r\n" + + "Taz-Verl.-und-Vertriebs-GmbH;1\r\n" + + "Teachers College Press;7\r\n" + + "Teachers College Press [u.a.];1\r\n" + + "Teachers College Press, GLSEN;1\r\n" + + "Teachers College Press, Teachers College, Columbia University;1\r\n" + + "Teachers College, Columbia University;3\r\n" + + "Teachers of English to Speakers of Other Languages;1\r\n" + + "Techn. Univ. Kaiserslautern;1\r\n" + + "Technische Universität;1\r\n" + + "Tectum;17\r\n" + + "Tectum Verl.;3\r\n" + + "Tectum Verlag;72\r\n" + + "Tectum Wissenschaftsverlag;1\r\n" + + "Tectum-Verl.;53\r\n" + + "Tectum-Verlag;1\r\n" + + "telc;6\r\n" + + "telc gGmbH;5\r\n" + + "Télémaque;1\r\n" + + "Tempus Corporate;1\r\n" + + "Terzio;15\r\n" + + "TESOL International Association;3\r\n" + + "Tessloff;14\r\n" + + "Teubner;8\r\n" + + "Textile Geschichten;1\r\n" + + "The Guilford Press;6\r\n" + + "The MIT Press;3\r\n" + + "The Modern Language Association of America;2\r\n" + + "The National Council of Teachers of Mathematics;1\r\n" + + "The Univ. of Chicago Press;1\r\n" + + "The University of Chicago Press;1\r\n" + + "Theater der Zeit;23\r\n" + + "Theiss;18\r\n" + + "Theiss in Komm.;1\r\n" + + "Theiss Verlag;1\r\n" + + "Theiss, Konrad;2\r\n" + + "Thelem;11\r\n" + + "Theol. Verl.;1\r\n" + + "Theologischer Verl. Zürich;1\r\n" + + "Theologischer Verlag Zürich;7\r\n" + + "Thieme;20\r\n" + + "Thienemann;3\r\n" + + "Thomas-Morus-Akad. Bensberg;1\r\n" + + "Thomson, Heinle;1\r\n" + + "Thorbecke;7\r\n" + + "Thorbecke-Verl.;1\r\n" + + "Tibia-Press;1\r\n" + + "TibiaPress Verlag GmbH;1\r\n" + + "Times Books;1\r\n" + + "TKMmedia;1\r\n" + + "tologo Verlag;3\r\n" + + "Topos plus;1\r\n" + + "Tosa;1\r\n" + + "TOUCHDOWN Mathe;2\r\n" + + "Touchdown Mathe GmbH & Co KG;1\r\n" + + "trafo Wissenschaftsverlag;6\r\n" + + "transcript;385\r\n" + + "Transcript Verl.;9\r\n" + + "Transcript- Verl.;1\r\n" + + "transcript Verlag;15\r\n" + + "transcript-Verl.;153\r\n" + + "Transcript-Verlag;3\r\n" + + "Traugott Bautz;1\r\n" + + "Trauner;15\r\n" + + "Trauner Verl.;1\r\n" + + "Trauner Verlag;11\r\n" + + "Trauner Verlag Universität;1\r\n" + + "Trauner-Verlag Universität;1\r\n" + + "Travel House Media GmbH;4\r\n" + + "Tredition;4\r\n" + + "tredition Gmbh;1\r\n" + + "TRIAS;5\r\n" + + "Tropen;11\r\n" + + "Tropen-Verl.;1\r\n" + + "TUDpress;3\r\n" + + "TUDpress Verl. d. Wiss.;1\r\n" + + "TUDpress Verlag der Wissenschaften Dresden;1\r\n" + + "Tulipan;1\r\n" + + "Tulipan Verlag;1\r\n" + + "Tulipan-Verl.;1\r\n" + + "TVV Touristik-Verlag GmbH;1\r\n" + + "tvv, Tübinger Vereinigung für Volkskunde e.V.;1\r\n" + + "TVZ;1\r\n" + + "TVZ Theologischer Verlag Zürich;2\r\n" + + "TVZ, Theol. Verl.;1\r\n" + + "TVZ, Theolog. Verl.;2\r\n" + + "TVZ, Theologischer Verl. Zürich;3\r\n" + + "TVZ, Theologischer Verlag;1\r\n" + + "TVZ, Theologischer Verlag Zürich;7\r\n" + + "TZ-Verl.;1\r\n" + + "Ueberreuter;5\r\n" + + "UKV Verlag;1\r\n" + + "Ullstein;24\r\n" + + "Ullstein Buchverlage;1\r\n" + + "Ullstein Taschenbuch Verlag;1\r\n" + + "Ulmer;31\r\n" + + "Umschau Zeitschriftenverl.;1\r\n" + + "Umschau Zeitschriftenverlag;2\r\n" + + "Umschau Zeitschriftenverlag GmbH;1\r\n" + + "Umschau-Zeitschr.-Verl. Breidenstein;1\r\n" + + "Umschau-Zeitschriftenverl.;2\r\n" + + "uni-edition;3\r\n" + + "United Kingdom Literacy Association;1\r\n" + + "Unitel;1\r\n" + + "Univ.;2\r\n" + + "Univ. of California Press;1\r\n" + + "Univ. of Chicago Press;1\r\n" + + "Univ. of North Carolina Press;1\r\n" + + "Univ. Pr.;1\r\n" + + "Univ. Press;1\r\n" + + "Univ., Abt. Deutsch als fremde Sprache;5\r\n" + + "Univ., Abt. Dt. als Fremde Sprache;2\r\n" + + "Univ., Fachgebiet Pädagogik;1\r\n" + + "Univ., FB Sozial- und Wirtschaftswiss., Fachgebiet Pädagogik;1\r\n" + + "Univ.-Verl.;4\r\n" + + "Univ.-Verl. der TU Berlin;1\r\n" + + "Univ.-Verl. der TU, Univ.-Bibliothek;1\r\n" + + "Univ.-Verl. Göttingen;9\r\n" + + "Univ.-Verl. Ilmenau;1\r\n" + + "Univ.-Verl. Trauner;1\r\n" + + "Univ.-Verl. Winter;4\r\n" + + "Univeristätsverlag Rhein-Ruhr;1\r\n" + + "Univeritätsverlag Göttingen;1\r\n" + + "universaar;1\r\n" + + "Universal Edition;13\r\n" + + "Universal Edition A.G.;1\r\n" + + "Universal-Ed.;1\r\n" + + "Universal-Edition;3\r\n" + + "Universi;4\r\n" + + "universi - Universitätsverlag Siegen;3\r\n" + + "universi Universitätsverlag Siegen;1\r\n" + + "Universi, Universitätsverlag;1\r\n" + + "universi, Universitätsverlag Siegen;2\r\n" + + "Universität;2\r\n" + + "Universität Erlangen-Nürnberg Erziehungswiss. Fak.;1\r\n" + + "Universität Frankfurt Institut f. Schulpädagogik u. Didaktik;1\r\n" + + "Universität Freiburg, Heilpädagogisches Institut;1\r\n" + + "Universität Paderborn;1\r\n" + + "Universität Pécs;1\r\n" + + "Universität, Abteilung Deutsch als fremde Sprache;1\r\n" + + "Universitätsverl. Winter;5\r\n" + + "Universitätsverlag;3\r\n" + + "Universitäts-Verlag;1\r\n" + + "Universitätsverlag Brockmeyer;1\r\n" + + "Universitätsverlag der TU Berlin;2\r\n" + + "Universitätsverlag Göttingen;12\r\n" + + "Universitätsverlag Hildesheim;4\r\n" + + "Universitätsverlag Potsdam;6\r\n" + + "Universitätsverlag Rhein-Ruhr;7\r\n" + + "Universitätsverlag Rhein-Ruhr KG;1\r\n" + + "Universitätsverlag Rhein-Ruhr OHG;1\r\n" + + "Universitätsverlag Webler;1\r\n" + + "Universitätsverlag Winter;58\r\n" + + "University of Bamberg Press;8\r\n" + + "University of California Press;1\r\n" + + "University of Chicago Press;2\r\n" + + "University of Michigan Press;2\r\n" + + "University of Pennsylvania Press;2\r\n" + + "University of Texas Press;1\r\n" + + "University of Toronto Press;1\r\n" + + "Universtitätsverlag Göttingen;1\r\n" + + "Universum Kommunikation und Medien AG;1\r\n" + + "Universum Verlag;1\r\n" + + "Universum Verlag GmbH;1\r\n" + + "UniWiND;1\r\n" + + "Unrast;10\r\n" + + "Unrast Verlag;2\r\n" + + "Unrast-Verl.;7\r\n" + + "UNRAST-Verlag;1\r\n" + + "UPG;1\r\n" + + "Urachhaus;2\r\n" + + "Urania;3\r\n" + + "Urania-Verl.;2\r\n" + + "URAST-Verlag;1\r\n" + + "Urban & Fischer in Elsevier;1\r\n" + + "Urgeschichtliches Museum;1\r\n" + + "Usborne;1\r\n" + + "Usborne Verlag;1\r\n" + + "UTB;14\r\n" + + "Utz;32\r\n" + + "Utz, Herbert;1\r\n" + + "utzverlag;4\r\n" + + "UVK;3\r\n" + + "UVK Lucius;1\r\n" + + "UVK Universitätsverlag;1\r\n" + + "UVK Verl.-Ges.;10\r\n" + + "UVK Verl.-Ges. [u.a.];4\r\n" + + "UVK Verlag;31\r\n" + + "UVK Verlagesgesellschaft mbH;1\r\n" + + "UVK Verlagsgesellschaft;15\r\n" + + "UVK Verlagsgesellschaft Konstanz;1\r\n" + + "UVK Verlagsgesellschaft mbH;54\r\n" + + "UVK Verlagsgesellschaft mbH mit UVK Lucius;1\r\n" + + "UVK Verlagsgesellschaft mbH mit UVK/Lucius;2\r\n" + + "UVK, Universitätsverlag Konstanz GmbH;1\r\n" + + "UVK/Lucius;6\r\n" + + "UVK-Verl.-Ges [u.a.];1\r\n" + + "UVK-Verl.-Ges.;42\r\n" + + "UVK-Verl.-Ges. [u.a.];12\r\n" + + "UVK-Verlagsges.;6\r\n" + + "UVK-Verlagsgesellschaft;4\r\n" + + "UVK-Verlagsgesellschaft [u.a.];1\r\n" + + "UVK-Verlagsgesellschaft mbH;1\r\n" + + "UVK-Verl-Ges.;1\r\n" + + "UVW Univ.-Verl. Webler;1\r\n" + + "UVW Universitäts Verlag Webler;2\r\n" + + "UVW Universitätsverl. Webler;1\r\n" + + "UVW UniversitätsVerlag;1\r\n" + + "UVW UniversitätsVerlag Webler;1\r\n" + + "UVW UniversitätsVerlagWebler;2\r\n" + + "UVW, Univ.-Verl. Weber;1\r\n" + + "UVW, Universitätsverlag Webler;1\r\n" + + "UVW, Universitäts-Verlag Webler;1\r\n" + + "UVW, UniversitätsVerlagWebler;2\r\n" + + "V & R Unipress;36\r\n" + + "V & R Unipress [u.a.];1\r\n" + + "V & R unipress, Bonn University Press;1\r\n" + + "V & R unipress, Universitätsverlag Osnabrück;4\r\n" + + "V & R Unipress, Vienna Univ. Press;5\r\n" + + "V & R Unipress, Vienna University Press;1\r\n" + + "V&R unipress;39\r\n" + + "V&R unipress,;1\r\n" + + "V&R unipress, Bonn University Press;1\r\n" + + "V&R unipress, Universitätsverlag Osnabrück;1\r\n" + + "V&R unipress, University Press;1\r\n" + + "V&R unipress, Vienna University Press;2\r\n" + + "Vahlen;5\r\n" + + "VAK- Verl.-GmbH;2\r\n" + + "VAK-Verlags-GmbH;1\r\n" + + "Vandenhoeck & Ruprecht;284\r\n" + + "Vandenhoeck & Ruprecht GmbH;1\r\n" + + "Vandenhoeck & Ruprecht, Neukirchener Theologie;4\r\n" + + "Vandenhoeck und Ruprecht;3\r\n" + + "VAS;3\r\n" + + "VAS Verlag für Akademische Schriften;1\r\n" + + "VAS-Verl.;4\r\n" + + "VAS-Verl. für Akademische Schriften;1\r\n" + + "vbw;1\r\n" + + "VDE Verl.;1\r\n" + + "VDE Verlag GmbH;4\r\n" + + "vdf Hochschulverl.;1\r\n" + + "vdf Hochschulverlag AG an der ETH Zürich;1\r\n" + + "vdf, Hochsch.-Verl. an der ETH;1\r\n" + + "vdf, Hochschulverlag AG an der ETH Zürich;1\r\n" + + "Vechtaer Dr. und Verl.;2\r\n" + + "VEG;1\r\n" + + "Velbrück Wissenschaft;4\r\n" + + "Ventil Verlag;1\r\n" + + "Verband katholischer Kindertageseinrichtungen Bayern e.V.;1\r\n" + + "Verband Katholischer Tageseinrichtungen f. Kinder;2\r\n" + + "Verband Katholischer Tageseinrichtungen für Kinder;1\r\n" + + "Verband Katholischer Tageseinrichtungen für Kinder (KTK);2\r\n" + + "Verband katholischer Tageseinrichtungen für Kinder (KTK) - Bundesverband e.V.;2\r\n" + + "Verbraucher-Zentrale NRW;1\r\n" + + "Verbrecher Verlag;3\r\n" + + "Verein für Essentielle Gestaltarbeit;1\r\n" + + "Verein für Konsumenteninformation (VKI);1\r\n" + + "Verein für Mehrsprachigkeit an Kindertageseinrichtungen;1\r\n" + + "Verein zur Förderung der sozialpolitischen Arbeit;1\r\n" + + "Veris-Verl.;1\r\n" + + "Veritas;5\r\n" + + "Veritas-Verl.;2\r\n" + + "Verl. an der Ruhr;1\r\n" + + "Verl. Europa-Lehrmittel;2\r\n" + + "Verl. für Pädag. Medien im Ernst Klett Verlag;1\r\n" + + "Verl. tredition;1\r\n" + + "Verl. an der Ruhr;39\r\n" + + "Verl. Bertelsmann Stiftung;3\r\n" + + "Verl. Bertelsmann-Stiftung;1\r\n" + + "Verl. Bildung Plus;1\r\n" + + "Verl. Das Netz;33\r\n" + + "Verl. der Franckeschen Stiftungen;1\r\n" + + "Verl. der Franckeschen Stiftungen Halle;1\r\n" + + "Verl. der Ges. für Kulturhistorische Dokumentation;1\r\n" + + "Verl. der Weltreligionen;2\r\n" + + "Verl. des Deutschen Vereins für öffentliche und private Fürsorge;1\r\n" + + "Verl. des Germanischen Nationalmuseums;1\r\n" + + "Verl. des Kantons Basel-Landschaft;1\r\n" + + "Verl. Deutsches Jugendinst.;1\r\n" + + "Verl. Die Blaue Eule;14\r\n" + + "Verl. Die Werkstatt;1\r\n" + + "Verl. Dr. Hut;1\r\n" + + "Verl. Dt. Jugendinst.;1\r\n" + + "Verl. Ed. Thaleia;1\r\n" + + "Verl. Empirische Pädagogik;7\r\n" + + "Verl. Europa-Lehrmittel;13\r\n" + + "Verl. Europa-Lehrmittel Nourney, Vollmer;29\r\n" + + "Verl. Europa-Lehrmittel, Nourney, Vollmer;4\r\n" + + "Verl. Freies Geistesleben;7\r\n" + + "Verl. Freiheitsbaum;1\r\n" + + "Verl. für Brandschutzpraxis;1\r\n" + + "Verl. für islamische Bildung und Erziehung (VIBE);1\r\n" + + "Verl. für Jugendarbeit und Jugendpolitik;1\r\n" + + "Verl. für Kognitive Lernförderung;1\r\n" + + "Verl. für Kultur und Wiss.;3\r\n" + + "Verl. für Polizeiwiss.;2\r\n" + + "Verl. für Systemische Forschung im Carl-Auer-Verl.;1\r\n" + + "Verl. Gustav-Siewerth-Ges.;1\r\n" + + "Verl. Handwerk und Technik;6\r\n" + + "Verl. IKS Garamond;7\r\n" + + "Verl. Junge Gemeinde;1\r\n" + + "Verl. Kath. Bibelwerk;3\r\n" + + "Verl. Katholisches Bibelwerk;1\r\n" + + "Verl. modernes lernen;4\r\n" + + "Verl. Neue Zürcher Zeitung;2\r\n" + + "Verl. Österreich;1\r\n" + + "Verl. Pestalozzianum;2\r\n" + + "Verl. Pro Schule;4\r\n" + + "Verl. Recht und Wirtschaft;1\r\n" + + "Verl. Regionalkultur;1\r\n" + + "Verl. Saarkultu®;1\r\n" + + "Verl. Sozial, Raum, Management;1\r\n" + + "Verl. Theater der Zeit;2\r\n" + + "Verl. Unsere Kinder;1\r\n" + + "Verl. Westfälisches Dampfboot;5\r\n" + + "Verl. Wissenschaft & Praxis;1\r\n" + + "Verl.-Gemeinschaft Topos plus;2\r\n" + + "Verl.-Haus Monsenstein und Vannerdat;34\r\n" + + "Verlag Dr. Kova†;1\r\n" + + "Verlag am Goetheanum;1\r\n" + + "Verlag an der Ruhr;122\r\n" + + "Verlag Anton Pustet;4\r\n" + + "Verlag Barbara Budrich;197\r\n" + + "Verlag Basel-Landschaft;1\r\n" + + "Verlag Bernhardt-Witten;1\r\n" + + "Verlag Bertelsmann Stiftung;3\r\n" + + "Verlag Bertelsmann-Stiftung;1\r\n" + + "Verlag beruf & leben GbR;1\r\n" + + "Verlag C. H. Beck;12\r\n" + + "Verlag C.H. Beck;138\r\n" + + "Verlag C.H. Beck oHG;2\r\n" + + "Verlag C.H.Beck;11\r\n" + + "verlag das netz;3\r\n" + + "Verlag Das Wunderhorn;1\r\n" + + "Verlag Das Wunderhorn GmbH;1\r\n" + + "Verlag Dashöfer;1\r\n" + + "Verlag Dashöfer GmbH;1\r\n" + + "Verlag der Akademie Gemeinnütziger Wissenschaften zu Erfurt;1\r\n" + + "Verlag der Autoren;4\r\n" + + "Verlag der Buchhandlung Walther König;3\r\n" + + "Verlag der Franckeschen Stiftungen zu Halle;1\r\n" + + "Verlag Der Islam;1\r\n" + + "Verlag der Weltreligionen;1\r\n" + + "Verlag des Deutschen Vereins für Öffentliche und Private Fürsorge;1\r\n" + + "Verlag des Deutschen Vereins für Öffentliche und Private Fürsorge e.V.;3\r\n" + + "Verlag des Germanischen Nationalmuseums;1\r\n" + + "Verlag des Instituts für Europäische Ethnologie;1\r\n" + + "Verlag Deutsche Polizeiliteratur;1\r\n" + + "Verlag Deutsche Polizeiliteratur GmbH;2\r\n" + + "Verlag Deutsches Jugendinstitut;5\r\n" + + "Verlag Die Blaue Eule;6\r\n" + + "Verlag Die Werkstatt;1\r\n" + + "Verlag Doblinger;1\r\n" + + "Verlag Dohr;3\r\n" + + "Verlag Dr. Dieter Winkler;1\r\n" + + "Verlag Dr. Felix Büchner, Handwerk und Technik;1\r\n" + + "Verlag Dr. Friedrich Pfeil;1\r\n" + + "Verlag Dr. Götz Schmidt;1\r\n" + + "Verlag Dr. Köster;2\r\n" + + "Verlag Dr. Kova†;191\r\n" + + "Verlag Dr. Kovac;10\r\n" + + "Verlag Dr. KovacÌŒ;1\r\n" + + "Verlag Dr. KovÇŽc;1\r\n" + + "Verlag Dr.Kova†;1\r\n" + + "Verlag edition erlebnispädagogik;1\r\n" + + "Verlag Empirische Pädagogik;3\r\n" + + "Verlag Ernst Kaufmann;1\r\n" + + "Verlag Esterbauer;4\r\n" + + "Verlag Eugen Ulmer;21\r\n" + + "Verlag Europa-Lehrmittel;6\r\n" + + "Verlag Europa-Lehrmittel - Nourney, Vollmer GmbH & Co. KG;2\r\n" + + "Verlag Europa-Lehrmittel Nourney, Vollmer;1\r\n" + + "Verlag Europa-Lehrmittel Nourney, Vollmer GmbH & Co KG;1\r\n" + + "Verlag Europa-Lehrmittel Nourney, Vollmer GmbH & Co. KG;30\r\n" + + "Verlag Europa-Lehrmittel, nourney, vollmer GmbH & Co. KG;6\r\n" + + "Verlag Europa-Lehrmittel, Nourney, Vollmer GmbH & Co.KG;1\r\n" + + "Verlag Ferdinand Schöningh;1\r\n" + + "Verlag Franz Philipp Rutzen;1\r\n" + + "Verlag Franz Vahlen;5\r\n" + + "Verlag Franzbecker;12\r\n" + + "Verlag Freies Geistesleben;11\r\n" + + "Verlag Friedrich Oetinger;4\r\n" + + "Verlag Friedrich Pustet;15\r\n" + + "Verlag für Kultur und Wissenschaft, Cukture and Science Publ., Dr. Thomas Schirrmacher;1\r\n" + + "Verlag für Kultur und Wissenschaft, Culture and Science Publ. Dr. Thomas Schirrmacher;4\r\n" + + "Verlag für Kultur und Wissenschaft, Culture and Science Publ., Dr. Thomas Schirrmacher;2\r\n" + + "Verlag für Nationalökonomie, Management und Politikberatung (NMP);1\r\n" + + "Verlag für Pädagogische Medien;10\r\n" + + "Verlag für Pädagogische Medien (VPM);1\r\n" + + "Verlag für pädagogische Medien im Ernst Klett Verlag;4\r\n" + + "Verlag für Pädagogische Medien, Ernst Klett Verlag GmbH;1\r\n" + + "Verlag für Polizeiwissenschaft;3\r\n" + + "Verlag für Polizeiwissenschaft, Prof. Dr. Clemens Lorei;2\r\n" + + "Verlag für Regionalgeschichte;2\r\n" + + "Verlag für Systemische Forschung im Carl-Auer Verlag;1\r\n" + + "Verlag für Systemische Forschung im Carl-Auer Verlag, Carl-Auer-Systeme;1\r\n" + + "Verlag für Verwaltungswissenschaft;2\r\n" + + "Verlag für Wissenschaftlich Texte und Medien;1\r\n" + + "Verlag Handwerk und Technik;5\r\n" + + "Verlag Hans Huber;26\r\n" + + "Verlag HansHuber;1\r\n" + + "Verlag Herder;29\r\n" + + "Verlag Herder GmbH;4\r\n" + + "Verlag Hermann Schmidt;1\r\n" + + "Verlag J. B. Metzler;3\r\n" + + "Verlag J.B. Metzler;19\r\n" + + "Verlag J.H.W. Dietz Nachf.;1\r\n" + + "Verlag J.H.W. Dietz Nachf. GmbH;1\r\n" + + "Verlag Julius Klinckhardt;1\r\n" + + "Verlag Julius Klinkhardt;153\r\n" + + "Verlag Karl Alber;32\r\n" + + "Verlag Karl Baedeker;2\r\n" + + "Verlag Karl Heinrich Bock;1\r\n" + + "Verlag Katholisches Bibelwerk;1\r\n" + + "Verlag Katholisches Bibelwerk GmbH;4\r\n" + + "Verlag Kettler;3\r\n" + + "Verlag Klaus Seeberger;2\r\n" + + "Verlag Klaus Wagenbach;19\r\n" + + "Verlag Klemm + Oelschläger;1\r\n" + + "Verlag Klemm+Oelschläger;2\r\n" + + "verlag modernes lernen;8\r\n" + + "Verlag Murken-Altrogge;1\r\n" + + "Verlag neue praxis;12\r\n" + + "Verlag Neue Zürcher Zeitung;1\r\n" + + "Verlag Österreich;2\r\n" + + "Verlag Perlen-Reihe;1\r\n" + + "Verlag Philipp von Zabern;1\r\n" + + "Verlag Ralf Liebe;1\r\n" + + "Verlag Rathaus Ebringen;1\r\n" + + "Verlag readbox publishing GmbH - readbox unipress;2\r\n" + + "verlag regionalkultur;8\r\n" + + "Verlag selbstbestimmtes Leben;2\r\n" + + "Verlag Sozial, Raum, Management;1\r\n" + + "Verlag Theater der Zeit;4\r\n" + + "Verlag Traugott Bautz;3\r\n" + + "Verlag Turia + Kant;5\r\n" + + "Verlag UNSERE KINDER;1\r\n" + + "Verlag W. Kohlhammer;484\r\n" + + "Verlag W.Kohlhammer;8\r\n" + + "Verlag Werner Hülsbusch;3\r\n" + + "Verlag Werner Hülsbusch, Fachverlag für Medientechnik und -wirtschaft;1\r\n" + + "Verlag Winfried Jenior;1\r\n" + + "Verlag Wissen-Kompakt GmbH;1\r\n" + + "Verlag: Dinges & Frick;2\r\n" + + "Verlag: Dinges & Frick GmbH;1\r\n" + + "Verlagsgemeinschaft topos plus;6\r\n" + + "Verlagshaus Berlin;3\r\n" + + "Verlagshaus Gruber;1\r\n" + + "Verlagshaus J. Frank;1\r\n" + + "Verlagshaus Jacoby & Stuart;3\r\n" + + "Verlagshaus Monsenstein und Vannerdat;4\r\n" + + "Verlagshaus Monsenstein und Vannerdat OHG;3\r\n" + + "Verlagshaus Monsenstein und Vannerdat OHG Münster;1\r\n" + + "Verlagshaus Würzburg [Stürtz];1\r\n" + + "VerlagsKG Wolf;1\r\n" + + "Versus;1\r\n" + + "Via Verbis Verlag;1\r\n" + + "Vienna Univ. Press;1\r\n" + + "Vierfarben;1\r\n" + + "Vieweg & Teubner;5\r\n" + + "Vieweg & Teubner [u.a.];1\r\n" + + "Vieweg + Teubner;41\r\n" + + "Vieweg + Teubner Research;1\r\n" + + "Vincentz;5\r\n" + + "Vincentz Network;18\r\n" + + "Vincentz Network GmbH & Co. KG;3\r\n" + + "Vintage;1\r\n" + + "Vintage Books;1\r\n" + + "Vistas;3\r\n" + + "VISTAS Verlag;1\r\n" + + "Vistas-Verl.;7\r\n" + + "Vistas-Verl. [u.a.];1\r\n" + + "Vittorio Klostermann;2\r\n" + + "Vittorio Klostermann GmbH;10\r\n" + + "vml, verlag modernes lernen;1\r\n" + + "VÖGB;1\r\n" + + "Vogel;2\r\n" + + "Vogel Business Media;1\r\n" + + "Volk und Wissen;4\r\n" + + "Volk und Wissen Verlag;2\r\n" + + "Volk Verlag;1\r\n" + + "von @Oemis;1\r\n" + + "von Bockel Verlag;1\r\n" + + "von Halem;4\r\n" + + "von Kleist;1\r\n" + + "von Loeper Literaturverlag;6\r\n" + + "von Oemis;1\r\n" + + "von Zabern;3\r\n" + + "von-Loeper-Literaturverl.;1\r\n" + + "von-Loeper-Literaturverlag;1\r\n" + + "Vorwerk 8;1\r\n" + + "vpm;7\r\n" + + "vpm, Verlag für Pädagogische Medien;4\r\n" + + "VPM, Verlag für pädagogische Medien, Klett;6\r\n" + + "VS Verl.;1\r\n" + + "VS Verl. für Sozialwiss.;7\r\n" + + "VS Verl. für Sozialwissenschaften;4\r\n" + + "VS Verlag;3\r\n" + + "VS Verlag für Sozialwiss.;1\r\n" + + "VS Verlag für Sozialwissenschaften;20\r\n" + + "VS, Verl. für Sozialwiss.;31\r\n" + + "VS, Verl. für Sozialwissenschaften;1\r\n" + + "VS, Verlag;1\r\n" + + "VS, Verlag für Sozialwissenschaften;3\r\n" + + "VS, Verlag für Sozialwissenschaften, Springer Fachmedien GmbH;1\r\n" + + "VSA: Verlag;4\r\n" + + "VSA: Verlag Hamburg;1\r\n" + + "VS-Verl.;2\r\n" + + "VS-Verl. für Sozialwissenschaften;1\r\n" + + "vth, Verl. für Technik und Handwerk neue Medien;1\r\n" + + "vth, Verlag für Technik und Handwerk neue Medien GmbH;1\r\n" + + "VVB Laufersweiler Verlag;1\r\n" + + "VVSWF, Vechtaer Verl. für Studium, Wiss. und Forschung;1\r\n" + + "VWB - Verlag für Wissenschaft und Bildung;2\r\n" + + "VWB, Verl. für Wiss. und Bildung;1\r\n" + + "vwh Hülsbusch;1\r\n" + + "vwh Verlag Werner Hülsbusch;3\r\n" + + "vwh Verlag Werner Hülsbusch Fachverlag für Medientechnik und -wirtschaft;1\r\n" + + "vwh Verlag Werner Hülsbusch, Fachverlag für Medientechnik und -wirtschaft;1\r\n" + + "vwh, Hülsbusch;6\r\n" + + "vwh, Verlag Werner Hülsbusch;1\r\n" + + "vwh, Verlag Werner Hülsbusch, Fachverlag für Medientechnik und -wirtschaft;10\r\n" + + "vwh-Verl. Hülsbusch;1\r\n" + + "Vwh-Verl., Hülsbusch;1\r\n" + + "W Fink;1\r\n" + + "W. Bertelsmann GmbH & Co. KG;1\r\n" + + "W. Bertelsmann Verlag;3\r\n" + + "W. Bertelsmann Verlag GmbH & Co. KG;15\r\n" + + "W. Kohlhammer Verlag;9\r\n" + + "W. Zuckschwerdt Verlag;1\r\n" + + "w.e.b. Univ.-Verl.;1\r\n" + + "W.W. Norton & Company;1\r\n" + + "w_orten & meer;1\r\n" + + "W3L-Verl.;1\r\n" + + "W3L-Verlag;1\r\n" + + "wa wettbewerbe aktuell Verlagsgesellschaft mbH;1\r\n" + + "Wachholtz;2\r\n" + + "Wagenbach;5\r\n" + + "Wagner;1\r\n" + + "Waldschlösschen Verlag;1\r\n" + + "Walhalla;26\r\n" + + "Walhalla Fachverl.;2\r\n" + + "Walhalla u. Praetoria Verlag GmbH & Co. KG;1\r\n" + + "Walhalla und Praetoria;14\r\n" + + "Walhalla und Praetoria Verl.;1\r\n" + + "Walhalla und Praetoria Verlag GmbH Co. KG;1\r\n" + + "Walhalla-Fachverl;1\r\n" + + "Walhalla-Fachverl.;5\r\n" + + "Walhalla-Fachverlag;1\r\n" + + "Walker Books;1\r\n" + + "Wallstein;8\r\n" + + "Wallstein Verlag;63\r\n" + + "Wallstein-Verl.;15\r\n" + + "Wallstein-Verlag;1\r\n" + + "Walter Warmuth Verlag;1\r\n" + + "wamiki;4\r\n" + + "Was mit Kindern;2\r\n" + + "Waxmann;626\r\n" + + "Waxmann Verlag;1\r\n" + + "WBG;34\r\n" + + "WBG (Wiss. Buchges.);60\r\n" + + "WBG (Wiss. Buchgesellschaft);1\r\n" + + "WBG (Wissenschaftiche Buchgesellschaft);1\r\n" + + "WBG (Wissenschaftliche Buchgesellschaft);37\r\n" + + "wbg Academic;10\r\n" + + "wbg Theiss;4\r\n" + + "WBG Wissen verbindet;3\r\n" + + "WBG,;1\r\n" + + "WBG, (Wiss. Buchges.);10\r\n" + + "WBG, (Wissenschaftliche Buchgesellschaft);1\r\n" + + "WBG, (Wissenschaftliche Buchgesellschaft);2\r\n" + + "wbg, Philipp von Zabern;1\r\n" + + "WBG, Wiss. Buchges.;16\r\n" + + "WBG, Wiss. Buchgesellschaft;1\r\n" + + "WBG, Wissen verbindet;1\r\n" + + "WBG, Wissenschaftliche Buchges.;1\r\n" + + "WBG, Wissenschaftliche Buchgesellschaft;4\r\n" + + "wbv;73\r\n" + + "wbv (W. Bertelsmann Verlag GmbH & Co. KG);1\r\n" + + "wbv Bertelsmann;1\r\n" + + "wbv Die;1\r\n" + + "wbv Media;2\r\n" + + "wbv Media GmbH & Co. KG;2\r\n" + + "wbv Publikation;2\r\n" + + "wbv W. Bertelsmann Verlag;1\r\n" + + "wbv, Bertelsmann;4\r\n" + + "wbv, Bertelsmann-Verl.;1\r\n" + + "wbv, W. Bertelsmann Verlag GmbH & Co. KG;2\r\n" + + "wbv-Verl.;1\r\n" + + "Weber;1\r\n" + + "Wehrhahn Verlag;1\r\n" + + "Weidler;3\r\n" + + "Weidler Buchverlag;1\r\n" + + "Weimarer Verlagsgesellschaft in der Verlagshaus Römerweg GmbH;1\r\n" + + "Weissdorn-Verlag;1\r\n" + + "WEKA MEDIA GmbH & Co. KG;1\r\n" + + "WEKA-Media;1\r\n" + + "Westarp Verlagsservicegesellschaft mbH;3\r\n" + + "Westarp Wiss.Verl.-Ges.;1\r\n" + + "Westarp-Wiss.;1\r\n" + + "Westarp-Wiss.-Verl.-Ges.;1\r\n" + + "Westdeutscher Universitätsverlag;2\r\n" + + "Westdeutscher Universitätsverlag, Europäischer Universitätsverlag;2\r\n" + + "Westermann;324\r\n" + + "Westermann Schroedel Diesterweg;2\r\n" + + "Westermann Schroedel Diesterweg Schöningh Winklers GmbH;1\r\n" + + "Westermann Schulbuchverlag;19\r\n" + + "Westermann Schulbuchverlage;1\r\n" + + "Westermann, Bildungshaus Schulbuchverlage;1\r\n" + + "Westermann-Schulbuchverl.;1\r\n" + + "Westfälische Verlagsbuchhandlung Mocker & Jahn;1\r\n" + + "Westfälisches Dampfboot;23\r\n" + + "Weyel Biologie;1\r\n" + + "WGB (Wissenschaftliche Buchgesellschaft);1\r\n" + + "WGB, Wissenschaftliche Buchgesellschaft;1\r\n" + + "Whitechapel Art Gallery;1\r\n" + + "Wienand;1\r\n" + + "Wieser;1\r\n" + + "Wieser Verlag;7\r\n" + + "Wiley;16\r\n" + + "Wiley Blackwell;3\r\n" + + "Wiley, Wiley-VCH Verlag GmbH & Co. KGaA;11\r\n" + + "Wiley-Blackwell;9\r\n" + + "Wiley-VCH;55\r\n" + + "Wiley-VCH Verlag;1\r\n" + + "Wiley-VCH Verlag GmbH & Co. KGaA;1\r\n" + + "Wiley-VCH Verlag GmbH & C. KGaA;1\r\n" + + "Wiley-VCH Verlag GmbH & Co KGaA;1\r\n" + + "Wiley-VCH Verlag GmbH & Co. KG;1\r\n" + + "Wiley-VCH Verlag GmbH & Co. KG Aa;2\r\n" + + "Wiley-VCH Verlag GmbH & Co. KGaA;85\r\n" + + "Wiley-VCH Verlag GmbH & KGaA;1\r\n" + + "Wiley-VCH Verlag und GmbH & Co. KGaA;2\r\n" + + "WILEY-VCH, Verlag GmbH & Co. KGaA;1\r\n" + + "Wiley-VCH-Verl;2\r\n" + + "Wiley-VCH-Verl.;14\r\n" + + "Wiley-VCH-Verlag;1\r\n" + + "Wiley-VCH-Verlag GmbH & Co. KGaA;1\r\n" + + "Wilhelm Fink;54\r\n" + + "Wilhelm Fink Verlag;1\r\n" + + "Wilhelm Heyne Verlag;5\r\n" + + "Windmühle;1\r\n" + + "Windmühle-Verl.;7\r\n" + + "Winklers;1\r\n" + + "Winter;24\r\n" + + "Wiss. Buchges;1\r\n" + + "Wiss. Buchges.;29\r\n" + + "Wiss. Verl.;2\r\n" + + "Wiss. Verl. Berlin;1\r\n" + + "Wiss. Verl. Trier;3\r\n" + + "Wiss. Verl.-Ges.;1\r\n" + + "Wissenmedia;1\r\n" + + "Wissen-Media-Verl.;1\r\n" + + "Wissenschaftl. Buchges.;1\r\n" + + "Wissenschaftliche Buchgesellschaft;12\r\n" + + "Wissenschaftliche Buchgesellschaft (WBG);1\r\n" + + "Wissenschaftliche Verlagsgesellschaft;2\r\n" + + "Wissenschaftlicher Verl.;1\r\n" + + "Wissenschaftlicher Verlag Berlin;4\r\n" + + "Wissenschaftlicher Verlag Trier;3\r\n" + + "Wissenschatliche Buchgessellschaft;1\r\n" + + "Wißner;33\r\n" + + "Wißner Musikbuch;4\r\n" + + "Wißner-Musikbuch;1\r\n" + + "Wißner-Verl.;1\r\n" + + "Wißner-Verlag;20\r\n" + + "Wochenschau;10\r\n" + + "Wochenschau Geschichte;4\r\n" + + "Wochenschau Studium;1\r\n" + + "Wochenschau Verl.;20\r\n" + + "Wochenschau- Verl.;1\r\n" + + "Wochenschau Verlag;204\r\n" + + "Wochenschau Verlag Dr. Kurt Debus GmbH;7\r\n" + + "Wochenschau Verlag, Dr. Kurt Debus GmbH;5\r\n" + + "Wochenschau Verlag, Wochenschau Geschichte;1\r\n" + + "Wochenschau Wissenschaft;12\r\n" + + "Wochenschau-Verl;2\r\n" + + "Wochenschau-Verl.;118\r\n" + + "Wochenschau-Verlag;34\r\n" + + "Wolf;1\r\n" + + "Wolke-Verl.;1\r\n" + + "Wolters Kluwer;4\r\n" + + "Wolters Kluwer / Carl Link;1\r\n" + + "Wolters Kluwer Deutschland;1\r\n" + + "Wolters Kluwer Deutschland GmbH;2\r\n" + + "Wolters Kluwer Deutschland GmbH, Carl Link;2\r\n" + + "Works & Nights;1\r\n" + + "WTM - Verl.;1\r\n" + + "WTM - Verlag für wissenschaftliche Texte und Medien;4\r\n" + + "WTM Verlag für wissenschaftliche Texte und Medien;19\r\n" + + "WTM, Verl. für wiss. Texte und Medien;13\r\n" + + "WTM, Verl. für wissenschaftliche Texte und Medien;1\r\n" + + "WTM, Verlag für wissenschaftliche Texte und Medien;23\r\n" + + "WTM-Verl.;2\r\n" + + "WTM-Verlag;3\r\n" + + "WTM-Verlag für wissenschaftliche Texte und Medien;1\r\n" + + "wvb Wissenschaftlicher Verlag;1\r\n" + + "wvb Wissenschaftlicher Verlag Berlin;3\r\n" + + "wvb, Wiss. Verl.;1\r\n" + + "wvb, Wissenschaftlicher Verlag Berlin;1\r\n" + + "WVG, Wissenschaftliche Verlagsgesellschaft;1\r\n" + + "wvh, Verlag Werner Hülsbusch, Fachverlag für Medientechnik und -wirtschaft;1\r\n" + + "WVT;1\r\n" + + "WVT Wissenschaftlicher Verl.;1\r\n" + + "WVT Wissenschaftlicher Verlag;1\r\n" + + "WVT Wissenschaftlicher Verlag Trier;19\r\n" + + "WVT, Wiss. Verl. Trier;1\r\n" + + "WVT, Wiss. Verl.;2\r\n" + + "WVT, Wiss. Verl. Trier;9\r\n" + + "WVT, Wissenschaftl. Verl. Trier;1\r\n" + + "WVT, Wissenschaftlicher Verl.;1\r\n" + + "WVT, Wissenschaftlicher Verlag;2\r\n" + + "WVT, Wissenschaftlicher Verlag Trier;1\r\n" + + "www.kopaed.de;1\r\n" + + "Xanthippe;1\r\n" + + "Zaglossus;3\r\n" + + "Zahlenland Prof. Preiß;1\r\n" + + "ZAKKA WORKSHOP;1\r\n" + + "Zeitpunkt Musik, Reichert;1\r\n" + + "Zeitverlag Gerd Bucerius;16\r\n" + + "Zentrum für interdisziplinäres erfahrungsorientiertes Lernen;1\r\n" + + "Zentrum für Planung und Evaluation Sozialer Dienste;1\r\n" + + "ZIEL;25\r\n" + + "ZIEL - Zentrum für interdisziplinäres erfahrungsorientiertes Lernen;2\r\n" + + "ZIEL - Zentrum für interdisziplinäres erfahrungsorientiertes Lernen GmbH;1\r\n" + + "ZIEL-Verl;1\r\n" + + "ZIEL-Verl.;7\r\n" + + "ZIEL-Verlag;1\r\n" + + "Zsolnay;1\r\n" + + "zu Klampen;7\r\n" + + "zu Klampen Verlag;1\r\n" + + "zu Klampen!;1\r\n" + + "Zukunftsinstitut;1\r\n" + + "Zukunftsinstitut GmbH;1\r\n" + + "Zürcher Hochschule der Künste;2\r\n"; + */ + +} diff --git a/target/.gitignore b/target/.gitignore new file mode 100644 index 0000000..840e7d3 --- /dev/null +++ b/target/.gitignore @@ -0,0 +1 @@ +/classes/ diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..1f5ea23 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,37 @@ +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_reiheAPicker\UpdateDataApiRunable.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_vivi\HelpTextModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_reiheAPicker\HistoryTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_reiheAPicker\PickerTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_reiheAPicker\DdcWhiteListModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_vivi\SingleApiCallTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\launcher\MainWindow.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_vivi\PropertyFileHandler.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_reiheAPicker\PropertiesFileModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_reiheAPicker\PropertyFileHandler.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_reiheAPicker\CustomTextAreaPickerTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_vivi\HelpTextFileHandler.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_vivi\ApiMultiCallModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_vivi\Gui.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_vivi\ImpressumTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_reiheAPicker\PropertyModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_vivi\ImportExportFileHandler.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_vivi\ConvenienceTools.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_vivi\JsonParser.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_reiheAPicker\ImportSettingsTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_reiheAPicker\ImportExportFileHandler.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_reiheAPicker\ExportTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\launcher\Startup.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_reiheAPicker\TitleModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_vivi\PropertiesFileModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_reiheAPicker\ListEnum.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_vivi\PropertiesTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_reiheAPicker\ApiCallerClass.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_reiheAPicker\GetButtonPics.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\models_vivi\PropertyModel.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\var_reiheAPicker\copy\Constants.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_vivi\MultiApiCallTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\userInterface_reiheAPicker\ISBNCheckerTab.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_vivi\ApiCaller.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_vivi\MultiApiCallTabRunnableThread.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\module-info.java +C:\Eclipse\git\pickAChoose\reiheAPicker\src\logic_reiheAPicker\QueueManager.java diff --git a/testdb.db b/testdb.db new file mode 100644 index 0000000..7747828 Binary files /dev/null and b/testdb.db differ diff --git a/viviconfig.properties b/viviconfig.properties new file mode 100644 index 0000000..f0ada30 --- /dev/null +++ b/viviconfig.properties @@ -0,0 +1,16 @@ +#Properties +#Thu Feb 17 14:00:05 CET 2022 +exportColumnWhiteListFilterColumnTextField= +importFileTypeComboBox=Tab/Komma getrennte Datei (CSV/TSV) +importFileTypeeISSNColumn= +SingleApiCallByTitleIfNoIssnFound=true +SingleApiCallDisplayConditionsIfNoTagContained=true +MultiApiCallWhiteListColumn= +importFileTypeTitleColumn= +importFileTypeISSNColumn=issn +MultiApiCallExportConditionsInSeparateColumns=true +SherpaKey=A5DE415A-D230-11EA-A786-E19DC54AD0EC +MultiApiCallByTitleIfNoIssnFound=false +MultiApiCallWhiteListCheckbox=false +MultiApiCallWhiteListFilter= +SherpaApiAdress=https\://v2.sherpa.ac.uk/cgi.com/