From 1f575165cab32a40e9fe95e705c1f1a8b901b85c Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof <jspricke@debian.org> Date: Sun, 21 Nov 2021 21:22:16 +0100 Subject: [PATCH] New upstream version 2.10.1+dfsg --- .cvsignore | 3 - .gitignore | 149 +++++++++++++++++- README.md | 83 +++++++++- build.gradle | 49 ++++++ build/BUILD | 4 +- build/ChangeLog | 11 +- build/Info-aarch64.plist | 28 ++++ build/build.properties | 25 +-- build/build.xml | 58 +++++-- build/jameica-macosaarch64.sh | 30 ++++ build/jameica.service | 14 ++ build/jameica.sh | 3 - build/rcjameica-systemd | 13 ++ download.gradle | 46 +++--- plugin.xml | 4 +- src/de/willuhn/jameica/Main.java | 19 ++- .../willuhn/jameica/gui/AbstractControl.java | 2 +- src/de/willuhn/jameica/gui/GUI.java | 4 +- .../dialogs/AbstractCertificateDialog.java | 2 +- .../jameica/gui/dialogs/AbstractDialog.java | 49 +++--- .../jameica/gui/dialogs/ListDialog.java | 2 +- .../gui/dialogs/NewPasswordDialog.java | 16 +- .../jameica/gui/dialogs/PasswordDialog.java | 39 +++-- .../jameica/gui/dialogs/WaitDialog.java | 16 +- .../jameica/gui/extension/Extension.java | 9 +- .../jameica/gui/extension/package.html | 32 ++-- .../jameica/gui/input/AbstractInput.java | 63 +++----- .../jameica/gui/input/ButtonInput.java | 39 ++--- .../willuhn/jameica/gui/input/ColorInput.java | 15 +- .../willuhn/jameica/gui/input/DateInput.java | 73 +++------ .../jameica/gui/input/DecimalInput.java | 14 +- .../jameica/gui/input/DialogInput.java | 45 +++--- .../willuhn/jameica/gui/input/FontInput.java | 12 +- src/de/willuhn/jameica/gui/input/Input.java | 20 ++- .../jameica/gui/input/IntegerInput.java | 14 +- .../willuhn/jameica/gui/input/LabelInput.java | 35 ++-- .../willuhn/jameica/gui/input/LinkInput.java | 43 ++--- .../jameica/gui/input/SearchInput.java | 60 +++---- .../jameica/gui/input/SelectInput.java | 73 ++++----- .../gui/internal/action/ChangePassword.java | 4 +- .../jameica/gui/internal/action/Print.java | 4 +- .../internal/controller/SettingsControl.java | 2 +- .../jameica/gui/parts/AbstractTablePart.java | 28 ++-- .../gui/parts/CheckedContextMenuItem.java | 6 +- src/de/willuhn/jameica/gui/parts/Column.java | 11 +- .../jameica/gui/parts/ContextMenuItem.java | 24 +-- .../gui/parts/TableChangeListener.java | 9 +- .../willuhn/jameica/gui/parts/TablePart.java | 70 +++----- .../jameica/messaging/LookupService.java | 22 +-- .../jameica/messaging/MessageConsumer.java | 5 +- src/de/willuhn/jameica/messaging/package.html | 2 +- .../jameica/plugin/ConsumerDescriptor.java | 5 +- src/de/willuhn/jameica/plugin/Dependency.java | 43 +++-- .../jameica/plugin/ExtensionDescriptor.java | 11 +- src/de/willuhn/jameica/plugin/Manifest.java | 109 ++++++++----- .../jameica/plugin/MessageDescriptor.java | 5 +- .../jameica/plugin/PlaceholderPlugin.java | 36 ++--- src/de/willuhn/jameica/plugin/Plugin.java | 2 +- .../willuhn/jameica/plugin/PluginLoader.java | 33 ++-- .../jameica/plugin/ServiceDescriptor.java | 20 ++- src/de/willuhn/jameica/reminder/Reminder.java | 12 +- .../reminder/ReminderStorageProvider.java | 16 +- .../jameica/search/SearchProvider.java | 10 +- .../security/JameicaAuthenticator.java | 11 +- .../jameica/security/JameicaTrustManager.java | 12 +- .../willuhn/jameica/security/SSLFactory.java | 21 ++- src/de/willuhn/jameica/security/Wallet.java | 16 +- .../jameica/services/ClassService.java | 2 +- .../jameica/services/SearchService.java | 22 ++- .../jameica/system/ApplicationCallback.java | 77 +++++---- .../jameica/system/BackgroundTask.java | 4 +- src/de/willuhn/jameica/system/Config.java | 54 ++++--- src/de/willuhn/jameica/system/Platform.java | 21 +-- .../jameica/system/ServiceFactory.java | 16 +- .../willuhn/jameica/system/StartupParams.java | 20 ++- src/de/willuhn/jameica/util/XPathEmu.java | 5 +- 76 files changed, 1137 insertions(+), 849 deletions(-) delete mode 100755 .cvsignore create mode 100644 build.gradle create mode 100644 build/Info-aarch64.plist create mode 100755 build/jameica-macosaarch64.sh create mode 100644 build/jameica.service create mode 100755 build/rcjameica-systemd diff --git a/.cvsignore b/.cvsignore deleted file mode 100755 index 3ecc203..0000000 --- a/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -bin -releases -cfg diff --git a/.gitignore b/.gitignore index 0d9cfd5..2c9589e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,144 @@ -bin -releases -plugins -/test-bin -/.gradle/ +# Created by https://www.toptal.com/developers/gitignore/api/intellij+iml,eclipse,gradle +# Edit at https://www.toptal.com/developers/gitignore?templates=intellij+iml,eclipse,gradle + +### Eclipse ### +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# Java annotation processor (APT) +.factorypath + +# sbteclipse plugin +.target + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ +.apt_generated_test/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Uncomment this line if you wish to ignore the project description file. +# Typically, this file would be tracked if it contains build/dependency configurations: +.project + +### Eclipse Patch ### +# Spring Boot Tooling +.sts4-cache/ + +### Intellij+iml ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. +.idea/artifacts +.idea/compiler.xml +.idea/jarRepositories.xml +.idea/modules.xml +.idea/*.iml +.idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Intellij+iml Patch ### +# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 + +*.iml +modules.xml +.idea/misc.xml +*.ipr + +### Gradle ### +.gradle + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + +# End of https://www.toptal.com/developers/gitignore/api/intellij+iml,eclipse,gradle +/test-bin/ +/releases/ diff --git a/README.md b/README.md index 8f9f6e0..0f4477c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,82 @@ -jameica +Jameica  ======= +> If you do not unterstand German but want more information or to contribute, please try to contact [the maintainer or one of the contributors](https://github.com/willuhn/jameica/graphs/contributors). -Jameica is an Application-Platform written in Java containing a SWT-UI. It provides different services (GUI-Toolkit, Logging, Security, Backup, Lifecycle-Management, Message-Bus) to the installed plugins. It's a kind of runtime environment similar to OSGi. +Jameica ist eine _Application_-Plattform, die in Java geschrieben ist. +Sie bietet die Basisfunktionalität und GUI-Komponenten, um Dir dabei zu helfen, Dich auf Deine Idee zu konzentrieren! -# Developer Information +Es ist die Grundlage für Plugins wie [Hibiscus](https://github.com/willuhn/hibiscus) oder [JVerein](https://www.jverein.de/). -* [Issue Tracker (Bugzilla)](http://www.willuhn.de/bugzilla) -* [Developer Information (in German)](http://www.willuhn.de/products/jameica/dev.php) + + +Jameica nutzt SWT für die grafische Oberfläche und bietet als Plattform mehrere Services (GUI-Toolkit, Logging, Security, Backup, Lifecycle-Management, Message-Bus) für die installierten Plugins. +Die flexible Plugin-Arbeitsweise ist angelehnt an [OSGi](https://de.wikipedia.org/wiki/OSGi). + + + +Schnellstart +---------- +Hier eine Anleitung für alle, die direkt loslegen wollen. + +> :warning: Für Jameica muss [Java](https://adoptopenjdk.net/) installiert sein! +> Die notwendige Minimalversion ist [hier](https://www.willuhn.de/wiki/doku.php?id=start#kompatibilitaetsmatrix) einsehbar. +> Falls unsicher, überprüfe die Version auf Deinem Computer, indem Du `java -version` im Terminal/ der Kommandozeile ausführst. + +1. Lade das fertige Paket für Dein Betriebssystem. + + | 64bit | 32bit für alte Systeme | andere Wege | + | ----- | ----- | ---------- | + | [Linux](http://www.willuhn.de/products/jameica/releases/current/jameica/jameica-linux64.zip) | [Linux (32bit)](http://www.willuhn.de/products/jameica/releases/current/jameica/jameica-linux.zip) | [AUR, DEP, RPM, Launchpad, flatpak](https://www.willuhn.de/wiki/doku.php?id=support:bezugsquellen) | + | [macOS](http://www.willuhn.de/products/jameica/releases/current/jameica/jameica-macos64.zip) | [Mac OS X "Tiger" (10.4) - "Lion" (10.7))](http://www.willuhn.de/products/jameica/releases/current/jameica/jameica-macos32.zip) | [Homebrew](http://brew.sh/): `brew cask install jameica` | + | [Windows](http://www.willuhn.de/products/jameica/releases/current/jameica/jameica-win64.zip) | [ab Windows 7](http://www.willuhn.de/products/jameica/releases/current/jameica/jameica-win32.zip) | [Chocolatey](https://chocolatey.org/): `choco install jameica` | + + Es gibt auch eine [generische Version für weitere Betriebssysteme (OpenBSD, ...)](http://www.willuhn.de/products/jameica/releases/current/jameica/jameica.zip) zum Download. + +2. Entpacke den Inhalt der ZIP-Datei in einen Ordner auf der Festplatte. + +3. Starte die Applikation + * Windows: `jameica-win64.exe` + * Linux: `./jameica.sh` + * macOS: Doppelklick auf das Symbol + + > Jameica schreibt _alle_ Dinge (Einstellungen, Logdateien, Daten) in einen einzigen Ordner namens `.jameica` im Benutzerverzeichnis (`%USERPROFILE%` in Win, `~` in Unix/Linux/macOS). + +4. Installiere Plugins via _"Datei -> Plugins online suchen..."_. + In der angezeigte Auswahlliste wird das gewünschte Plugin mit einem Klick auf den Button "Installieren..." automatisch heruntergeladen und konfiguriert + + > Es gibt eine Übersicht über [alle Plugins](https://www.willuhn.de/wiki/doku.php?id=start#alle_bekannten_jameica-plugins) und deren Abhängigkeiten zu anderen Plugins. + +Dokumentation +------------- +Eine detaillierte Projektdokumentation ist im [Wiki des Autors](https://www.willuhn.de/wiki/) einsehbar. + +Dieses Wiki beinhaltet u.a. Informationen wie: +* Übersicht der mind. erforderlichen Java-Version je Releaseversion von Jameica +* [häufige Fragen/ FAQ](https://www.willuhn.de/wiki/doku.php?id=support:faq) +* [Anleitung für Updates](https://www.willuhn.de/wiki/doku.php?id=support:update) +* [Anleitung für Backups](https://www.willuhn.de/wiki/doku.php?id=support:backup) + +Mitmachen +--------- +### Du hast etwas gefunden, was verbessert werden sollte? +Super! Jedes Feedback hilft! +Bitte prüfe jedoch zuerst, ob es bereits im [OnlineBanking-Forum](https://homebanking-hilfe.de/forum/index.php?f=33) bekannt ist. +Vielleicht gibt es bereits eine (Übergangs-)Lösung für Dein Problem. +Falls nicht, so schaue bitte auf [dieser Website](https://www.willuhn.de/wiki/doku.php?id=support:fehlermelden) nach detaillierten Anweisungen für die nächsten Schritte. + +### Du kannst programmieren und möchtest helfen? +Nutze die Möglichkeiten von Github :-) +Erstelle einen _Fork_ von diesem Repository und sende einen _Pull-Request_ mit den Anpassungen. + +### Du möchtest Dein eigenes Jameica-Plugin programmieren? +Im Github-Projekt [Jameica Example Plugin](https://github.com/willuhn/jameica.example) findest Du alle Informationen. + +Lizenz +------ +Jameica steht unter GPLv2 (siehe [LICENSE](./LICENSE)) + +Danksagung +---------- +Jameica wird seit 2003 von Olaf Willuhn in seiner Freizeit entwickelt. + +Vielen Dank an [alle Mitwirkenden](https://github.com/willuhn/jameica/graphs/contributors), die dabei geholfen haben, diese Software ein bisschen besser zu machen! diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..cda363a --- /dev/null +++ b/build.gradle @@ -0,0 +1,49 @@ +plugins { + id 'my.java-application-conventions' + id 'my.java-oldschool-project-structure' + id 'my.encoding.8859-1' +} +apply from: "${rootProject.rootDir}/gradle/url_file.gradle" +apply from: "${rootProject.rootDir}/gradle/download_swt.gradle" + +group 'de.willuhn.jameica' +version '2.8-SNAPSHOT' + +application { + // Define the main class for the application. + mainClass = 'de.willuhn.jameica.Main' +} + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(8) + } +} + +dependencies { + implementation project(':lib:util') + implementation project(':lib:datasource') + + implementation libs.bundles.bouncycastle + implementation libs.bundles.javaee + implementation libs.apache.commons.lang + implementation libs.apache.commons.cli + implementation libs.apache.velocity + implementation libs.javax.annotation + implementation libs.eclipse.jface + implementation libs.eclipse.ui.forms + implementation libs.nanoxml + implementation swt.platform + + // Printing plug-in for SWT. See <https://code.google.com/archive/p/swt-paperclips/> (last update: 2009-08-12) + implementation urlFile('paperclips-1.0.4', 'https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/swt-paperclips/net.sf.paperclips_1.0.4.200908120926.jar') +} + +// solange noch die Logik des ANT-Builds benötigt wird, nutze einen Unterordner +buildDir = file("./build/gradle/") +jar { + baseName "de_willuhn_${project.name}" + manifest { + attributes "Main-Class": "de.willuhn.jameica.Main" + } +} diff --git a/build/BUILD b/build/BUILD index 9b498c6..94338c0 100644 --- a/build/BUILD +++ b/build/BUILD @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Fri Nov 27 13:56:27 CET 2020 -build.number=479 +#Fri Nov 19 11:54:54 CET 2021 +build.number=482 diff --git a/build/ChangeLog b/build/ChangeLog index 91ba87d..55a4932 100644 --- a/build/ChangeLog +++ b/build/ChangeLog @@ -1,8 +1,17 @@ +2021-11-19 Version 2.10.1 + + * NEW: 0142 Update auf SWT 4.20 für linux64, linux-arm64, win64, macos64 + * NEW: 0141 Support für Macos-aarch64 (SWT 4.20) + * NEW: 0140 JRE-Update für Windows und Mac auf 11.0.13_8 + * NEW: 0139 MySQL-Treiber auf 5.1.49 aktualisiert - siehe https://homebanking-hilfe.de/forum/topic.php?t=24614 + * NEW: 0138 Update auf SWT 4.19M3 für macos64 - das Druckproblem https://bugs.eclipse.org/bugs/show_bug.cgi?id=569185 scheint dort behoben zu sein + * NEW: 0137 Update auf SWT 4.18 für linux64, linux-arm64, win64 und macos64 + 2020-11-27 Version 2.10 * NEW: 0136 Neue Launcher für Windows mit aktualisierter Versionsnummer * NEW: 0135 JRE-Update für Windows und Mac auf 11.0.9.1_1 - * NEW: 0134 Update auf SWT 4.17 für für linux64, linux-arm64 (jetzt offiziell von Eclipse untestützt), win64 und macos64 + * NEW: 0134 Update auf SWT 4.17 für linux64, linux-arm64 (jetzt offiziell von Eclipse untestützt), win64 und macos64 * NEW: 0133 Parameter "-Dsun.security.smartcardio.library" zu jameica-macos64.sh hinzugefügt - für MacOS Big Sur nötig - siehe https://homebanking-hilfe.de/forum/topic.php?p=157884#real157884 * NEW: 0132 Fenster-Position auch im Maximiert-Zustand speichern - siehe https://homebanking-hilfe.de/forum/topic.php?p=157397#real157397 * NEW: 0131 Sprache wieder per Datei->Einstellungen konfigurierbar diff --git a/build/Info-aarch64.plist b/build/Info-aarch64.plist new file mode 100644 index 0000000..68c4400 --- /dev/null +++ b/build/Info-aarch64.plist @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>jameica-macosaarch64.sh</string> + <key>CFBundleGetInfoString</key> + <string>Jameica for Apple OS X</string> + <key>CFBundleIconFile</key> + <string>jameica-icon.icns</string> + <key>CFBundleIdentifier</key> + <string>de.willuhn.jameica</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>Jameica</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>1.3-0</string> + <key>CFBundleSignature</key> + <string>?????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>NSPrincipalClass</key> + <string>NSApplication</string> +</dict> +</plist> diff --git a/build/build.properties b/build/build.properties index e256010..3184978 100644 --- a/build/build.properties +++ b/build/build.properties @@ -10,6 +10,7 @@ define.jarfilename = ${define.projectname}.jar define.jarfilename.win32 = ${define.projectname}-win32.jar define.jarfilename.win64 = ${define.projectname}-win64.jar define.jarfilename.macos64 = ${define.projectname}-macos64.jar +define.jarfilename.macosaarch64 = ${define.projectname}-macos-aarch64.jar define.jarfilename.linux = ${define.projectname}-linux.jar define.jarfilename.linux64 = ${define.projectname}-linux64.jar define.jarfilename.linuxarm64 = ${define.projectname}-linuxarm64.jar @@ -59,29 +60,31 @@ project.javadoc = ${project.release}/javadoc project.zipdir = ${project.release}/${define.projectname} class.dir = ${project.tmp}/bin -project.zipfilename = ${define.projectname}-${system.version}.zip -project.zipfilename.win32 = ${define.projectname}-win32-${system.version}.zip -project.zipfilename.win64 = ${define.projectname}-win64-${system.version}.zip -project.zipfilename.linux = ${define.projectname}-linux-${system.version}.zip -project.zipfilename.linux64 = ${define.projectname}-linux64-${system.version}.zip -project.zipfilename.linuxarm64 = ${define.projectname}-linuxarm64-${system.version}.zip -project.zipfilename.macos64 = ${define.projectname}-macos64-${system.version}.zip -project.zipfilename.openbsd = ${define.projectname}-openbsd-${system.version}.zip +project.zipfilename = ${define.projectname}-${system.version}.zip +project.zipfilename.win32 = ${define.projectname}-win32-${system.version}.zip +project.zipfilename.win64 = ${define.projectname}-win64-${system.version}.zip +project.zipfilename.linux = ${define.projectname}-linux-${system.version}.zip +project.zipfilename.linux64 = ${define.projectname}-linux64-${system.version}.zip +project.zipfilename.linuxarm64 = ${define.projectname}-linuxarm64-${system.version}.zip +project.zipfilename.macos64 = ${define.projectname}-macos64-${system.version}.zip +project.zipfilename.macosaarch64 = ${define.projectname}-macosaarch64-${system.version}.zip +project.zipfilename.openbsd = ${define.projectname}-openbsd-${system.version}.zip classpath.win32 = ${define.jarfilename} lib/swt/win32/swt.jar ${define.commonlibs} classpath.win64 = ${define.jarfilename} lib/swt/win64/swt.jar ${define.commonlibs} classpath.linux = ${define.jarfilename} lib/swt/linux/swt.jar ${define.commonlibs} classpath.linux64 = ${define.jarfilename} lib/swt/linux64/swt.jar ${define.commonlibs} classpath.linuxarm64 = ${define.jarfilename} lib/swt/linux-arm64/swt.jar ${define.commonlibs} +classpath.macosaarch64 = ${define.jarfilename} lib/swt/macosaarch64/swt.jar ${define.commonlibs} classpath.macos64 = ${define.jarfilename} lib/swt/macos64/swt.jar ${define.commonlibs} classpath.openbsd = ${define.jarfilename} /usr/local/share/java/classes/swt.jar ${define.commonlibs} ## Wenn fuer Win32/Win64/MacOS64 ein JRE gebundelt werden soll, muss hier der Pfad zu der ZIP/TAR.GZ-Datei des JRE angegeben werden ## Ausserdem muss Ant dann mit dem Parameter "-Djre.embedd=true" aufgerufen werden ## Beispiel: -define.jre.win32 = ../jre/OpenJDK11U-jre_x86-32_windows_hotspot_11.0.9.1_1.zip -define.jre.win64 = ../jre/OpenJDK11U-jre_x64_windows_hotspot_11.0.9.1_1.zip -define.jre.macos64 = ../jre/OpenJDK11U-jre_x64_mac_hotspot_11.0.9.1_1.tar.gz +define.jre.win32 = ../jre/OpenJDK11U-jre_x86-32_windows_hotspot_11.0.13_8.zip +define.jre.win64 = ../jre/OpenJDK11U-jre_x64_windows_hotspot_11.0.13_8.zip +define.jre.macos64 = ../jre/OpenJDK11U-jre_x64_mac_hotspot_11.0.13_8.tar.gz signjar.keystore = /home/willuhn/.jameica/jameica.ca/jameica.ca.keystore signjar.storepass = /home/willuhn/.jameica/jameica.ca/jameica.ca.storepass diff --git a/build/build.xml b/build/build.xml index 274e194..da13d3a 100755 --- a/build/build.xml +++ b/build/build.xml @@ -1,13 +1,5 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!-- - $Revision: 1.78 $ - $Date: 2011/06/10 10:30:14 $ - $Author: willuhn $ - - All rights reserved ---> - <project basedir=".." default="all" name="All"> @@ -137,6 +129,10 @@ <param name="param.filename" value="${define.jarfilename.macos64}" /> <param name="param.classpath" value="${classpath.macos64}" /> </antcall> + <antcall target="sub_jar_create"> + <param name="param.filename" value="${define.jarfilename.macosaarch64}" /> + <param name="param.classpath" value="${classpath.macosaarch64}" /> + </antcall> <antcall target="sub_jar_create"> <param name="param.filename" value="${define.jarfilename.openbsd}" /> <param name="param.classpath" value="${classpath.openbsd}" /> @@ -157,11 +153,12 @@ <include name="*.sh" /> <include name="*.exe" /> <include name=".jameica" /> - <include name="rcjameica" /> + <include name="rcjameica*" /> + <include name="jameica.service" /> <include name="jameica-icon.png" /> <include name="jameica-icon.icns" /> <include name="README" /> - <include name="Info.plist" /> + <include name="Info*.plist" /> </fileset> <fileset dir="${basedir}"> <include name="LICENSE" /> @@ -196,6 +193,7 @@ <include name="${define.projectname}/README" /> <include name="${define.projectname}/.jameica" /> <include name="${define.projectname}/jameica-icon.png" /> + <include name="${define.projectname}/jameica.service" /> <include name="${define.projectname}/plugins" /> <include name="${define.projectname}/lib/**" /> @@ -225,6 +223,7 @@ <include name="${define.projectname}/README" /> <include name="${define.projectname}/.jameica" /> <include name="${define.projectname}/jameica-icon.png" /> + <include name="${define.projectname}/jameica.service" /> <include name="${define.projectname}/plugins" /> <include name="${define.projectname}/lib/**" /> @@ -333,9 +332,10 @@ <include name="plugins" /> <include name="jre-macos64/**" /> <include name="lib/**" /> + <exclude name="Info-aarch64.plist" /> <exclude name="lib/swt/win*/**" /> <exclude name="lib/swt/linux*/**" /> - <exclude name="lib/swt/macos/**" /> + <exclude name="lib/swt/macos-aarch64/**" /> </fileset> </copy> <zip destfile="${project.release}/${project.zipfilename.macos64}"> @@ -344,6 +344,35 @@ </zipfileset> </zip> + <!-- ZIP-File fuer MacOSAArch64 --> + <delete dir="${project.tmp}/${define.projectname}.app" /> + <mkdir dir="${project.tmp}/${define.projectname}.app" /> + <copy todir="${project.tmp}/${define.projectname}.app"> + <fileset dir="${project.release}/${define.projectname}"> + <include name="plugin.xml" /> + <include name="${define.jarfilename}" /> + <include name="${define.jarfilename.macosaarch64}" /> + <include name="LICENSE" /> + <include name="COPYING" /> + <include name="README" /> + <include name="Info-aarch64.plist" /> + <include name="jameica-macosaarch64.sh" /> + <include name="jameica-icon.icns" /> + <include name="plugins" /> + <include name="lib/**" /> + <exclude name="Info.plist" /> + <exclude name="lib/swt/win*/**" /> + <exclude name="lib/swt/linux*/**" /> + <exclude name="lib/swt/macos64/**" /> + </fileset> + </copy> + <move file="${project.tmp}/${define.projectname}.app/Info-aarch64.plist" tofile="${project.tmp}/${define.projectname}.app/Info.plist" /> + <zip destfile="${project.release}/${project.zipfilename.macosaarch64}"> + <zipfileset dir="${project.tmp}" filemode="755"> + <include name="${define.projectname}.app/**" /> + </zipfileset> + </zip> + <!-- ZIP-File fuer OpenBSD --> <zip destfile="${project.release}/${project.zipfilename.openbsd}" duplicate="fail"> <zipfileset dir="${project.release}"> @@ -375,7 +404,7 @@ <include name="${define.projectname}" /> <include name="${define.projectname}/**" /> <exclude name="${define.projectname}/*.sh" /> - <exclude name="${define.projectname}/rcjameica" /> + <exclude name="${define.projectname}/rcjameica*" /> </zipfileset> <zipfileset dir="${project.release}" filemode="755"> <include name="${define.projectname}/*.sh" /> @@ -447,6 +476,7 @@ <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.linux64}" /> <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.linuxarm64}" /> <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.macos64}" /> + <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.macosaarch64}" /> <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.openbsd}" /> <echo message="Creating PGP signatures" /> @@ -475,6 +505,9 @@ <exec executable="gpg" failonerror="true" timeout="60000"> <arg line="-asb --use-agent ${project.release}/${project.zipfilename.macos64}" /> </exec> + <exec executable="gpg" failonerror="true" timeout="60000"> + <arg line="-asb --use-agent ${project.release}/${project.zipfilename.macosaarch64}" /> + </exec> <exec executable="gpg" failonerror="true" timeout="60000"> <arg line="-asb --use-agent ${project.release}/${project.zipfilename.openbsd}" /> </exec> @@ -493,6 +526,7 @@ <copy file="${project.release}/${project.zipfilename.linux64}" todir="${project.nightly}" /> <copy file="${project.release}/${project.zipfilename.linuxarm64}" todir="${project.nightly}" /> <copy file="${project.release}/${project.zipfilename.macos64}" todir="${project.nightly}" /> + <copy file="${project.release}/${project.zipfilename.macosaarch64}" todir="${project.nightly}" /> <copy file="${project.release}/${project.zipfilename.win32}" todir="${project.nightly}" /> <copy file="${project.release}/${project.zipfilename.win64}" todir="${project.nightly}" /> <copy file="${project.release}/${project.zipfilename.openbsd}" todir="${project.nightly}" /> diff --git a/build/jameica-macosaarch64.sh b/build/jameica-macosaarch64.sh new file mode 100755 index 0000000..91b77df --- /dev/null +++ b/build/jameica-macosaarch64.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +TERM="xterm" + +JAVACMD="$JAVA_HOME/bin/java" + +if [ ! -x $JAVACMD ] && [ -x /usr/libexec/java_home ] && /usr/libexec/java_home -F 2> /dev/null; then + JAVACMD="`/usr/libexec/java_home 2> /dev/null`/bin/java" +fi + +if [ ! -x $JAVACMD ]; then + JAVACMD="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" +fi + +if [ ! -x "$JAVACMD" ]; then + JAVACMD="/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java" +fi + +if [ ! -x $JAVACMD ] && [ -h /Library/Java/Home ]; then + JAVACMD="/Library/Java/Home/bin/java" +fi + +if [ ! -x "$JAVACMD" ]; then + JAVACMD="`which java`" +fi + +BASEDIR=$(dirname "$0") +cd "${BASEDIR}" + +exec "${JAVACMD}" -Dsun.security.smartcardio.library=/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC -Xdock:name="Jameica" -Xmx512m -Xss64m -XstartOnFirstThread -jar "${BASEDIR}/jameica-macosaarch64.jar" -o "$@" >/dev/null diff --git a/build/jameica.service b/build/jameica.service new file mode 100644 index 0000000..d0d2d96 --- /dev/null +++ b/build/jameica.service @@ -0,0 +1,14 @@ +## Beispiel für ein systemd-Unit-File +[Unit] +Description=Jameica +After=mysql.service + +[Service] +Type=simple +ExecStart=/opt/jameica/rcjameica-systemd +User=jameica +ExecStop=kill $MAINPID +StandardOutput=file:/dev/null + +[Install] +WantedBy=multi-user.target diff --git a/build/jameica.sh b/build/jameica.sh index dc4f6a5..b389bfc 100755 --- a/build/jameica.sh +++ b/build/jameica.sh @@ -5,9 +5,6 @@ #_JCONSOLE="-Dcom.sun.management.jmxremote" -# https://www.willuhn.de/bugzilla/show_bug.cgi?id=774 -# https://www.willuhn.de/bugzilla/show_bug.cgi?id=798 - link=$(readlink -f "$0") dir=$(dirname "$link") cd "$dir" diff --git a/build/rcjameica-systemd b/build/rcjameica-systemd new file mode 100755 index 0000000..1238a69 --- /dev/null +++ b/build/rcjameica-systemd @@ -0,0 +1,13 @@ +#!/bin/sh + +BASEDIR=`dirname $0` + +. "$BASEDIR/.jameica" + +if [ -f "$WORKDIR/.jameica" ]; then + . "$WORKDIR/.jameica" +fi + +mkdir -p $WORKDIR +cd $BASEDIR +echo $PASSWORD | java -Djava.net.preferIPv4Stack=true -Xmx512m -jar jameica-linux.jar -d -f $WORKDIR diff --git a/download.gradle b/download.gradle index a0bde72..c3bf91c 100644 --- a/download.gradle +++ b/download.gradle @@ -5,37 +5,37 @@ sourceCompatibility = 1.7 compileJava.options.encoding = 'ISO-8859-1' eclipse { - classpath { - downloadSources = true - } + classpath { + downloadSources = true + } } repositories { - mavenCentral() + mavenCentral() } dependencies { - compile 'org.apache.xmlrpc:xmlrpc-client:+' - compile 'org.bouncycastle:bcprov-jdk15on:+' - compile 'org.bouncycastle:bcpkix-jdk15on:+' - compile 'com.h2database:h2:+' - compile 'commons-cli:commons-cli:+' - compile 'commons-lang:commons-lang:2.+' - compile 'commons-collections:commons-collections:3.+' // Version 3 brauchen wir noch wegen Velocity. - compile 'commons-logging:commons-logging:1.+' - compile 'com.mckoi:mckoisqldb:+' - compile 'mysql:mysql-connector-java:5.+' - compile 'be.cyberelf.nanoxml:nanoxml:+' - compile 'org.apache.velocity:velocity:+' - compile 'oro:oro:+' - + compile 'org.apache.xmlrpc:xmlrpc-client:+' + compile 'org.bouncycastle:bcprov-jdk15on:+' + compile 'org.bouncycastle:bcpkix-jdk15on:+' + compile 'com.h2database:h2:+' + compile 'commons-cli:commons-cli:+' + compile 'commons-lang:commons-lang:2.+' + compile 'commons-collections:commons-collections:3.+' // Version 3 brauchen wir noch wegen Velocity. + compile 'commons-logging:commons-logging:1.+' + compile 'com.mckoi:mckoisqldb:+' + compile 'mysql:mysql-connector-java:5.+' + compile 'be.cyberelf.nanoxml:nanoxml:+' + compile 'org.apache.velocity:velocity:+' + compile 'oro:oro:+' + // Java EE. Ab Java 11 nicht mehr in Java enthalten - compile 'javax.xml.ws:jaxws-api:2.3.1' - compile 'org.glassfish.jaxb:jaxb-runtime:2.4.0-b180830.0438' - compile 'org.glassfish.main.javaee-api:javax.jws:3.1.2.2' + compile 'javax.xml.ws:jaxws-api:2.3.1' + compile 'org.glassfish.jaxb:jaxb-runtime:2.4.0-b180830.0438' + compile 'org.glassfish.main.javaee-api:javax.jws:3.1.2.2' } task download(type: Copy) { - into "lib/download" - from configurations.runtime + into "lib/download" + from configurations.runtime } diff --git a/plugin.xml b/plugin.xml index 61c78c6..b5aa95b 100755 --- a/plugin.xml +++ b/plugin.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<system name="Jameica" version="2.10.0"> +<system name="Jameica" version="2.10.1"> <description>Jameica - Java based messages interchange</description> - <url>https://www.willuhn.de/products/jameica/releases/2.10/jameica/jameica-2.10.0.zip</url> + <url>https://www.willuhn.de/products/jameica/releases/2.10/jameica/jameica-2.10.1.zip</url> <homepage>https://www.willuhn.de/projects/jameica</homepage> <license>GPL - http://www.gnu.org/copyleft/gpl.html</license> diff --git a/src/de/willuhn/jameica/Main.java b/src/de/willuhn/jameica/Main.java index 815e8f0..125b77e 100644 --- a/src/de/willuhn/jameica/Main.java +++ b/src/de/willuhn/jameica/Main.java @@ -50,10 +50,12 @@ public class Main { * Wird kein Parameter angegeben, startet die Anwendung im Standalone-Mode. * </li> * </ul> - * Parameter 2 (-f): Optionales Datenverzeichnis. Das ist bei Linux + * + * <p>Parameter 2 (-f): Optionales Datenverzeichnis. Das ist bei Linux * standardmaessig <b>~/.jameica</b> und bei Windows * <b>C:\dokumente und Einstellungen\benutzername\.jameica</b>. - * Parameter 3 (-p): Optionales Passwort fuer die SSLFactory. Jameica + * + * <p>Parameter 3 (-p): Optionales Passwort fuer die SSLFactory. Jameica * erzeugt beim ersten Start einen Keystore und speichert darin X.509-Zertifikate * fuer die Verschluesselung von Daten. Zum Schutz des Keystore wird ein * Passwort benoetigt. Wird dieses nicht als Kommandozeilen-Option @@ -62,12 +64,13 @@ public class Main { * ueber die Kommando-Zeile abgefragt. Damit die Anwendung aber auch ohne * Benutzer-Interkation (z.Bsp. als Service) direkt beim Booten des * Betriebssystems startfaehig ist, kann das Passwort auch ueber diesen - * Parameter angegeben werden.<br/> - * Beispiele:<br/> - * <code>java de.willuhn.jameica.Main -server -f C:/jameica.work -p geheim</code><br/> - * <code>java de.willuhn.jameica.Main -client -f ~/.jameica.test</code><br/> - * <code>java de.willuhn.jameica.Main -standalone -f /tmp/jameicatest</code><br/> - * <code>java de.willuhn.jameica.Main</code> + * Parameter angegeben werden. + * + * <p>Beispiele:<br> + * {@code java de.willuhn.jameica.Main -server -f C:/jameica.work -p geheim}<br> + * {@code java de.willuhn.jameica.Main -client -f ~/.jameica.test}<br> + * {@code java de.willuhn.jameica.Main -standalone -f /tmp/jameicatest}<br> + * {@code java de.willuhn.jameica.Main} * @throws Throwable */ public static void main(final String[] args) throws Throwable diff --git a/src/de/willuhn/jameica/gui/AbstractControl.java b/src/de/willuhn/jameica/gui/AbstractControl.java index 4a9fadd..9f1e9b3 100644 --- a/src/de/willuhn/jameica/gui/AbstractControl.java +++ b/src/de/willuhn/jameica/gui/AbstractControl.java @@ -13,7 +13,7 @@ package de.willuhn.jameica.gui; /** * Diese Basis-Klasse ist das Bindeglied zwischen View und Model. - * Einem Dialog werden via <code>ButtonArea</code> Knoepfe hinzugefuegt. + * Einem Dialog werden via {@link de.willuhn.jameica.gui.parts.ButtonArea} Knoepfe hinzugefuegt. * Die Funktion zum Hinzufuegen von Knoepfen erwartet als Parameter * u.a. einen AbstractControl. Und genau dessen Methode handleIrgendwas() wird beim * Klick auf diesen Button dann ausgefuehrt. diff --git a/src/de/willuhn/jameica/gui/GUI.java b/src/de/willuhn/jameica/gui/GUI.java index 666e5cf..e7d892c 100644 --- a/src/de/willuhn/jameica/gui/GUI.java +++ b/src/de/willuhn/jameica/gui/GUI.java @@ -140,7 +140,7 @@ public class GUI implements ApplicationController Rectangle r = GUI.getDisplay().getBounds(); if (r.height < 800) { - Logger.info("display height smaller than 700px (" + r.width + "x" + r.width + ") - auto-activating netbook mode"); + Logger.info("display height smaller than 800px (" + r.width + "x" + r.width + ") - auto-activating netbook mode"); Customizing.SETTINGS.setAttribute("application.scrollview",true); } else if (Customizing.SETTINGS.getBoolean("application.scrollview.force",false)) @@ -153,7 +153,7 @@ public class GUI implements ApplicationController // Falls der Netbook-Mode schonmal aktiviert war, deaktivieren wir ihn automatisch wieder - das Display ist ja nun gross genug if (Customizing.SETTINGS.getString("application.scrollview",null) != null) { - Logger.info("display height larger than 700px (" + r.width + "x" + r.width + ") - disable netbook mode"); + Logger.info("display height larger than 800px (" + r.width + "x" + r.width + ") - disable netbook mode"); Customizing.SETTINGS.setAttribute("application.scrollview",(String)null); } } diff --git a/src/de/willuhn/jameica/gui/dialogs/AbstractCertificateDialog.java b/src/de/willuhn/jameica/gui/dialogs/AbstractCertificateDialog.java index 112078e..852dd26 100644 --- a/src/de/willuhn/jameica/gui/dialogs/AbstractCertificateDialog.java +++ b/src/de/willuhn/jameica/gui/dialogs/AbstractCertificateDialog.java @@ -315,7 +315,7 @@ public abstract class AbstractCertificateDialog extends AbstractDialog /** - * Liefert <code>null</code> zurueck. + * Liefert {@code null} zurueck. * Bitte ggf. ueberschreiben, um einen anderen Wert zurueckzuliefern. * @see de.willuhn.jameica.gui.dialogs.AbstractDialog#getData() */ diff --git a/src/de/willuhn/jameica/gui/dialogs/AbstractDialog.java b/src/de/willuhn/jameica/gui/dialogs/AbstractDialog.java index 15ce165..5e75830 100644 --- a/src/de/willuhn/jameica/gui/dialogs/AbstractDialog.java +++ b/src/de/willuhn/jameica/gui/dialogs/AbstractDialog.java @@ -37,29 +37,35 @@ import de.willuhn.logging.Logger; import de.willuhn.util.I18N; /** - * <p>Das ist die Basisklasse fuer modalen Dialogfenster.</p> + * Das ist die Basisklasse fuer modalen Dialogfenster. * <p>Modal heisst: Ist das Dialogfenster einmal geoeffnet, kann die * restliche Anwendung solange nicht mehr bedient werden, bis dieses - * Fenster geschlossen wurde.</p> + * Fenster geschlossen wurde. + * * <p>Diese abstrakte Implementierung schreibt keinen Inhalt in den Dialog * sondern stellt lediglich das Fenster mit einem definierten Design * zu Verfuegung, behandelt die Dispatch-Vorgaenge mit dem Benutzer - * und definiert einen Fenster-Titel.</p> - * <p>Der Dialog kann mittels der beiden Konstanten <code>POSITION_MOUSE</code> - * und <code>POSITION_CENTER</code> im Konstruktor entweder mittig auf dem - * Bildschirm oder an der momentanen Position der Mouse dargestellt werden.</p> - * <p>Ableitende Klassen muessen die Methode <code>paint(Composite)</code> - * implementieren und dort ihre darzustellenden Elemente reinmalen.</p> - * <p>Der Dialog wird mittels <code>open()</code> geoeffnet. Beim Schliessen - * des Dialogs wird die Methode <code>getData()</code> aufgerufen. Das ist - * gleichzeitig der Rueckgabewert von <code>open()</code>.</p> - * <p>Eine ableitende Klasse muss also z.Bsp. in <code>paint(Composite)</code> + * und definiert einen Fenster-Titel. + * + * <p>Der Dialog kann mittels der beiden Konstanten {@code POSITION_MOUSE} + * und {@code POSITION_CENTER} im Konstruktor entweder mittig auf dem + * Bildschirm oder an der momentanen Position der Mouse dargestellt werden. + * + * <p>Ableitende Klassen muessen die Methode {@code paint(Composite)} + * implementieren und dort ihre darzustellenden Elemente reinmalen. + * + * <p>Der Dialog wird mittels {@code open()} geoeffnet. Beim Schliessen + * des Dialogs wird die Methode {@code getData()} aufgerufen. Das ist + * gleichzeitig der Rueckgabewert von {@code open()}. + * + * <p>Eine ableitende Klasse muss also z.Bsp. in {@code paint(Composite)} * einen OK-Button erzeugen, einen Listener anhaengen, der auf Druecken * des Buttons reagiert, in der aufgerufenenen Methode des Listeners - * den zu uebergebenden Wert als Member speichern und danach <code>close()</code> - * aufrufen, um den Dialog zu schliessen.</p> + * den zu uebergebenden Wert als Member speichern und danach {@code close()} + * aufrufen, um den Dialog zu schliessen. + * * <p>Bsp.: - * <code><pre> + * <pre>{@code * protected void paint(Composite parent) throws Exception * { * // [...] @@ -77,9 +83,8 @@ import de.willuhn.util.I18N; * { * return this.enteredText; * } - * </pre> - * </code> - * </p> + * }</pre> + * * @author willuhn * @param <T> Der Typ des Objektes. */ @@ -331,8 +336,8 @@ public abstract class AbstractDialog<T> * ausgeloest wird. Ob das Schliessen nun durch Klick auf * den Schliessen-Button oder z.Bsp. durch Auswahl eines * Elements im Dialog stattfindet, ist egal. - * Dabei wird die Methode <code>handleEvent(Event)</code> des Listeners - * aufgerufen. Das ausgewaehlte Objekt befindet sich dann im Member <code>data</code> + * Dabei wird die Methode {@link Listener#handleEvent(Event)} des Listeners + * aufgerufen. Das ausgewaehlte Objekt befindet sich dann im Member {@code data} * des Events. * @param l zu registrierender Listener. */ @@ -392,7 +397,7 @@ public abstract class AbstractDialog<T> * Wird die Funktion nicht aufgerufen, dann wird der Dialog genauso gross * gemalt, wie der Inhalt. * Wenn eine der beiden Groessen nicht bekannt ist oder nicht gesetzt werden - * soll, kann man auch <code>SWT.DEFAULT</code> uebergeben. + * soll, kann man auch {@link SWT#DEFAULT} uebergeben. * @param width gewuenschte Breite. * @param height gewuenschte Hoehe. */ @@ -429,7 +434,7 @@ public abstract class AbstractDialog<T> * In dieser Funktion soll er sich bitte malen. * Sie wird anschliessend von open() ausgefuehrt. * @param parent das Composite, in dem der Dialog gemalt werden soll. - * Hinweis: Das Composite enthaelt bereits ein einspaltiges <code>GridLayout</code>. + * Hinweis: Das Composite enthaelt bereits ein einspaltiges {@link GridLayout}. * @throws Exception Kann von der abgeleiteten Klasse geworfen * werden. Tut sie das, wird der Dialog nicht angezeigt. */ diff --git a/src/de/willuhn/jameica/gui/dialogs/ListDialog.java b/src/de/willuhn/jameica/gui/dialogs/ListDialog.java index 495561f..9054543 100644 --- a/src/de/willuhn/jameica/gui/dialogs/ListDialog.java +++ b/src/de/willuhn/jameica/gui/dialogs/ListDialog.java @@ -29,7 +29,7 @@ import de.willuhn.util.ApplicationException; /** * Dialog, der eine Tabelle mit Daten aus einer Liste anzeigt. * Aus dieser Tabelle kann einer ausgewaehlt werden. Dieses Objekt - * wird dann von <code>open()</code> zurueckgegeben. + * wird dann von {@code open()} zurueckgegeben. * @author willuhn */ public class ListDialog extends AbstractDialog diff --git a/src/de/willuhn/jameica/gui/dialogs/NewPasswordDialog.java b/src/de/willuhn/jameica/gui/dialogs/NewPasswordDialog.java index b2c1573..ed36a11 100644 --- a/src/de/willuhn/jameica/gui/dialogs/NewPasswordDialog.java +++ b/src/de/willuhn/jameica/gui/dialogs/NewPasswordDialog.java @@ -29,7 +29,8 @@ import de.willuhn.util.ApplicationException; /** * Dialog zur Neuvergabe von Passworten. - * Die Klasse implementiert bereits die Funktion<code>checkPassword(String,String)</code> + * + * <p>Die Klasse implementiert bereits die Funktion {@link #checkPassword(String, String)} * und prueft dort, ob ueberhaupt Passworter eingegeben wurden und ob beide * uebereinstimmen. Sollen weitere Pruefungen vorgenommen werden, dann bitte * einfach diese Funktion ueberschreiben. @@ -85,11 +86,14 @@ public class NewPasswordDialog extends AbstractDialog * Speichert ein optionales Label fuer die zusaetzliche Eingabe eines * Usernamens. Wird hier ein Wert uebergeben, zeigt der Dialog neben * den beiden Passwort-Feldern extra noch ein Feld fuer den Usernamen an. - * Der da eingegebene Wert kann nach dem Aufruf von <code>open()</code> - * mit <code>getUsername()</code> ermittelt werden. - * Wenn das Eingabefeld fuer den Usernamen angezeigt wird, ist es auch Pflicht. + * + * <p>Der eingegebene Wert kann nach dem Aufruf von {@code open()} + * mit {@link #getUsername()} ermittelt werden. + * + * <p>Wenn das Eingabefeld fuer den Usernamen angezeigt wird, ist es auch Pflicht. * Es gibt also entweder gar keinen Usernamen oder ein verpflichtetenden. * Jedoch keinen optionalen Usernamen. + * * @param text das anzuzeigende Label vor dem Eingabefeld, insofern * es angezeigt werden soll. */ @@ -124,8 +128,8 @@ public class NewPasswordDialog extends AbstractDialog /** * Zeigt den uebergebenen Text rot markiert links neben dem OK-Button an. - * Diese Funktion sollte aus <code>checkPassword(String)</code> heraus - * aufgerufen werden, um dem benutzer zu zeigen, <b>warum</b> seine + * Diese Funktion sollte aus {@link #checkPassword(String, String)} heraus + * aufgerufen werden, um dem Benutzer zu zeigen, <b>warum</b> seine * Passwort-Eingabe falsch war. * @param text Der anzuzeigende Fehlertext. */ diff --git a/src/de/willuhn/jameica/gui/dialogs/PasswordDialog.java b/src/de/willuhn/jameica/gui/dialogs/PasswordDialog.java index c57bb23..f4a61f0 100644 --- a/src/de/willuhn/jameica/gui/dialogs/PasswordDialog.java +++ b/src/de/willuhn/jameica/gui/dialogs/PasswordDialog.java @@ -34,10 +34,10 @@ import de.willuhn.util.ApplicationException; /** * Dialog zu Passwort-Eingabe. - * Hinweis: Diese Klasse hat einen internen Zaehler, der die Anzahl - * der fehlgeschlagenen Aufrufe von <code>checkPassword(String)</code> - * zaehlt. Nach 3 Versuchen wird die Funktion <code>cancel()</code> - * aufgerufen und der Dialog geschlossen. + * + * <p>Hinweis: Diese Klasse hat einen internen Zaehler, der die Anzahl + * der fehlgeschlagenen Aufrufe von {@link #checkPassword(String)} + * zaehlt und nach {@link #MAX_RETRIES} Versuchen den Dialog schließt. */ public class PasswordDialog extends AbstractDialog { @@ -81,9 +81,7 @@ public class PasswordDialog extends AbstractDialog this.smallDisplay = Customizing.SETTINGS.getBoolean("application.scrollview",false); } - /** - * @see de.willuhn.jameica.gui.dialogs.AbstractDialog#onEscape() - */ + @Override protected void onEscape() { // Gibts hier nicht. Der User soll explizit auf "Abbrechen" klicken @@ -104,11 +102,13 @@ public class PasswordDialog extends AbstractDialog * Speichert ein optionales Label fuer die zusaetzliche Eingabe eines * Usernamens. Wird hier ein Wert uebergeben, zeigt der Dialog neben * den beiden Passwort-Feldern extra noch ein Feld fuer den Usernamen an. - * Der da eingegebene Wert kann nach dem Aufruf von <code>open()</code> - * mit <code>getUsername()</code> ermittelt werden. - * Wenn das Eingabefeld fuer den Usernamen angezeigt wird, ist es auch Pflicht. + * Der da eingegebene Wert kann nach dem Aufruf von {@code open()} + * mit {@link #getUsername()} ermittelt werden. + * + * <p>Wenn das Eingabefeld fuer den Usernamen angezeigt wird, ist es auch Pflicht. * Es gibt also entweder gar keinen Usernamen oder ein verpflichtetenden. * Jedoch keinen optionalen Usernamen. + * * @param text das anzuzeigende Label vor dem Eingabefeld, insofern * es angezeigt werden soll. */ @@ -131,7 +131,7 @@ public class PasswordDialog extends AbstractDialog /** * Zeigt den uebergebenen Text rot markiert an. - * Diese Funktion sollte aus <code>checkPassword(String)</code> heraus + * Diese Funktion sollte aus {@link #checkPassword(String)} heraus * aufgerufen werden, um dem benutzer zu zeigen, <b>warum</b> seine * Passwort-Eingabe falsch war. * @param text Der anzuzeigende Fehlertext. @@ -154,9 +154,7 @@ public class PasswordDialog extends AbstractDialog this.showPassword = show; } - /** - * @see de.willuhn.jameica.gui.dialogs.AbstractDialog#paint(org.eclipse.swt.widgets.Composite) - */ + @Override protected void paint(Composite parent) throws Exception { // Text @@ -292,9 +290,12 @@ public class PasswordDialog extends AbstractDialog /** * Prueft die Eingabe des Passwortes. - * Hinweis: Der Dialog wird erst geschlossen, wenn diese - * Funktion <code>true</code> zurueckliefert. - * Die Default-Implementierung liefert immer TRUE. + * + * <p>Hinweis: Der Dialog wird erst geschlossen, wenn diese + * Funktion {@code true} zurueckliefert. + * + * <p>Die Default-Implementierung liefert immer {@code true}. + * * @param password das gerade eingegebene Passwort. * @return true, wenn die Eingabe OK ist, andernfalls false. */ @@ -338,9 +339,7 @@ public class PasswordDialog extends AbstractDialog return (MAX_RETRIES - retries); } - /** - * @see de.willuhn.jameica.gui.dialogs.AbstractDialog#getData() - */ + @Override protected Object getData() throws Exception { return this.enteredPassword; diff --git a/src/de/willuhn/jameica/gui/dialogs/WaitDialog.java b/src/de/willuhn/jameica/gui/dialogs/WaitDialog.java index d3fee9d..1aaee7e 100644 --- a/src/de/willuhn/jameica/gui/dialogs/WaitDialog.java +++ b/src/de/willuhn/jameica/gui/dialogs/WaitDialog.java @@ -29,16 +29,18 @@ import de.willuhn.util.ApplicationException; /** * Warte-Dialog, der einen Text und einen Fortschrittsbalken fuer ein Timeout anzeigt. - * Zwei Anwendungsbeispiele: + * + * <p>Zwei Anwendungsbeispiele: * <ul> * <li>Der User soll einen USB-Stick mit einer Schluesseldatei einstecken. Waehrenddessen * wird dieser Dialog anagezeigt.</li> * <li>Der User soll eine PIN im Kartenleser eingeben.</li> * </ul> - * Die Klasse ist abstrakt, damit in der abgeleiteten Klasse die Funktion <code>check()</code> + * + * <p>Die Klasse ist abstrakt, damit in der abgeleiteten Klasse die Funktion {@link #check()} * implementiert wird. Der Rueckgabe-Wert der Funktion entscheidet darueber, ob der Dialog * geschlossen werden soll oder weiter gewartet wird. Diese Funktion wird nach Ablauf jeder Sekunde - * erneut aufgerufen. Solange, bis sie <code>true</code> zurueckliefert, oder das Timeout + * erneut aufgerufen. Solange, bis sie {@code true} zurueckliefert, oder das Timeout * abgelaufen ist. */ public abstract class WaitDialog extends AbstractDialog @@ -93,9 +95,9 @@ public abstract class WaitDialog extends AbstractDialog } /** - * Die Funktion liefert immer <code>null</code>. - * @see de.willuhn.jameica.gui.dialogs.AbstractDialog#getData() + * Die Funktion liefert immer {@code null}. */ + @Override protected Object getData() throws Exception { return null; @@ -120,9 +122,7 @@ public abstract class WaitDialog extends AbstractDialog */ protected abstract boolean check(); - /** - * @see de.willuhn.jameica.gui.dialogs.AbstractDialog#paint(org.eclipse.swt.widgets.Composite) - */ + @Override protected void paint(Composite parent) throws Exception { diff --git a/src/de/willuhn/jameica/gui/extension/Extension.java b/src/de/willuhn/jameica/gui/extension/Extension.java index dab5d60..4e4828e 100644 --- a/src/de/willuhn/jameica/gui/extension/Extension.java +++ b/src/de/willuhn/jameica/gui/extension/Extension.java @@ -12,17 +12,18 @@ package de.willuhn.jameica.gui.extension; /** * Basis-Interface aller Extensions. - * Jede Komponente, die in Jameica andere Komponenten (zB Context-Menus) + * + * <p>Jede Komponente, die in Jameica andere Komponenten (zB Context-Menus) * erweitern will, muss dieses Interface implementieren und einen - * parameterlosen Konstruktor mit dem Modifier <code>public</code> + * parameterlosen Konstruktor mit dem Modifier {@code public} * besitzen, um korrekt registriert zu werden. */ public interface Extension { /** * Diese Funktion wird von der ExtensionRegistry aufgerufen. - * Die Funktion erhaelt als Parameter die zu erweiternde Komponente. - * @param extendable + * + * @param extendable die zu erweiternde Komponente */ public void extend(Extendable extendable); } diff --git a/src/de/willuhn/jameica/gui/extension/package.html b/src/de/willuhn/jameica/gui/extension/package.html index 0ed48ba..6c6d271 100755 --- a/src/de/willuhn/jameica/gui/extension/package.html +++ b/src/de/willuhn/jameica/gui/extension/package.html @@ -36,7 +36,7 @@ keine eigene Navigation oder eigene Menus mitbringen sondern stattdessen die existierenden um Funktionen erweitern. - <br/> + <br> Genau für diesen Zweck existiert das Extension-System. </p> @@ -48,28 +48,26 @@ <code>Extension</code> implementieren), welche die Extendables um zusätzliche Funktionalität erweitern. </p> - + + <h3>Schritt 1 (Registrierung der Erweiterungen):</h3> <p> - <b>Schritt 1 (Registrierung der Erweiterungen):</b> - <br/> Bevor eine erweiterbare Komponente (also ein Extendable) erweitert werden kann, muss Jameica herausfinden, welche Erweiterungen überhaupt existieren. - <br/> + <br> Bsp.: Bevor der Navigations-Baum (linkes Frame in Jameica) gezeichnet wird, prüft Jameica für jedes Element des Baumes, ob Erweiterungen vorliegen. Ist dies der Fall, wird jeweils deren Methode <code>extend(Extendable)</code> aufgerufen. - <br/> + <br> Eine Extension muss im System registriert sein, um angesprochen werden zu können. Dies geschieht wiederrum automatisch (durch Definition der Erweiterungen in der Manifest-Datei (plugin.xml)) oder manuell durch Aufruf von <code>ExtensionRegistry#register(Extension e, String[] extendableIDs)</code>). - - <p> + <br> Format der Registrierung in plugin.xml: - -<pre> + </p> +<pre><code> <plugin> [...] <span class="unimportant"> @@ -91,21 +89,18 @@ </extensions> </span> </plugin> -</pre> - </p> - </p> - + </code></pre> + <h3>Schritt 2 (Durchführung der Erweiterung):</h3> <p> - <b>Schritt 2 (Durchführung der Erweiterung):</b> - <br/> Jedes Extendable besitzt eine ID (Funktion <code>getExtendableID()</code>), über die es in ganz Jameica eindeutig identifizierbar ist. Bevor die erweiterbare Komponente nun aktiviert wird (bei Context-Menus ist das z.Bsp. der Moment unmittelbar vor dem Zeichnen auf dem Bildschirm) muss sie der ExtensionRegistry Bescheid geben, dass sie nun noch erweitert werden kann. Bsp: - <pre> + </p> + <pre><code> public class AddressList extends ContextMenu implements Extendable { public AddressList() @@ -120,8 +115,7 @@ public class AddressList extends ContextMenu implements Extendable <span class="important">ExtensionRegistry.extend(this);</span> } } - </pre> - </p> + </code></pre> </body> </html> diff --git a/src/de/willuhn/jameica/gui/input/AbstractInput.java b/src/de/willuhn/jameica/gui/input/AbstractInput.java index 7c5d977..5a34f41 100644 --- a/src/de/willuhn/jameica/gui/input/AbstractInput.java +++ b/src/de/willuhn/jameica/gui/input/AbstractInput.java @@ -68,7 +68,7 @@ public abstract class AbstractInput implements Input } /** - * Liefert die Stylebits (GridData-Settings), welche zum Erstellen des Widgets + * Liefert die Stylebits ({@link GridData}-Settings), welche zum Erstellen des Widgets * verwendet werden. * @return die Style.Bits. */ @@ -77,17 +77,13 @@ public abstract class AbstractInput implements Input return GridData.FILL_HORIZONTAL; } - /** - * @see de.willuhn.jameica.gui.input.Input#addListener(org.eclipse.swt.widgets.Listener) - */ + @Override public void addListener(Listener l) { listeners.add(l); } - /** - * @see de.willuhn.jameica.gui.input.Input#setComment(java.lang.String) - */ + @Override public void setComment(String comment) { this.comment = comment; @@ -98,17 +94,13 @@ public abstract class AbstractInput implements Input } } - /** - * @see de.willuhn.jameica.gui.Part#paint(org.eclipse.swt.widgets.Composite) - */ + @Override public final void paint(Composite parent) { paint(parent,240); } - /** - * @see de.willuhn.jameica.gui.input.Input#paint(org.eclipse.swt.widgets.Composite, int) - */ + @Override public final void paint(Composite parent,int width) { boolean hasComment = this.comment != null; @@ -263,11 +255,13 @@ public abstract class AbstractInput implements Input * Definiert eine Liste von Zeichen, die eingegeben werden koennen. * Wird diese Funktion verwendet, dann duerfen nur noch die hier * angegebenen Zeichen eingegeben werden. - * Werden beide Funktionen <code>setValidChars</code> <b>und</b> - * <code>setInvalidChars</code> benutzt, kann nur noch die verbleibende + * + * <p>Werden beide Funktionen {@link #setValidChars(String)} <b>und</b> + * {@link #setInvalidChars(String)} benutzt, kann nur noch die verbleibende * Restmenge eingegeben werden. Das sind die Zeichen, die in validChars - * angegeben und in invalidChars nicht enthalten sind. - * @param chars + * angegeben und in invalidChars nicht enthalten sind. + * + * @param chars erlaubte Zeichen */ public void setValidChars(String chars) { @@ -278,16 +272,16 @@ public abstract class AbstractInput implements Input * Definiert eine Liste von Zeichen, die nicht eingegeben werden koennen. * Wird diese Funktion verwendet, dann duerfen die angegebenen Zeichen nicht * mehr verwendet werden. - * @param chars + * + * @param chars nicht-erlaubte Zeichen + * @see #setValidChars(String) */ public void setInvalidChars(String chars) { this.invalidChars = chars; } - /** - * @see de.willuhn.jameica.gui.input.Input#isMandatory() - */ + @Override public boolean isMandatory() { return this.mandatory && Application.getConfig().getMandatoryCheck(); @@ -331,9 +325,7 @@ public abstract class AbstractInput implements Input } } - /** - * @see de.willuhn.jameica.gui.input.Input#setMandatory(boolean) - */ + @Override public void setMandatory(boolean mandatory) { // Wenn das Control bereits gezeichnet wurde und @@ -354,17 +346,13 @@ public abstract class AbstractInput implements Input } } - /** - * @see de.willuhn.jameica.gui.input.Input#getName() - */ + @Override public String getName() { return this.name; } - /** - * @see de.willuhn.jameica.gui.input.Input#setName(java.lang.String) - */ + @Override public void setName(String name) { this.name = name; @@ -384,9 +372,7 @@ public abstract class AbstractInput implements Input } } - /** - * @see de.willuhn.jameica.gui.input.Input#hasChanged() - */ + @Override public boolean hasChanged() { Object newValue = getValue(); @@ -405,23 +391,18 @@ public abstract class AbstractInput implements Input } } - /** - * @see de.willuhn.jameica.gui.input.Input#setData(java.lang.String, java.lang.Object) - */ + @Override public void setData(String key, Object data) { this.data.put(key,data); } - /** - * @see de.willuhn.jameica.gui.input.Input#getData(java.lang.String) - */ + @Override public Object getData(String key) { return this.data.get(key); } - - + } /********************************************************************* diff --git a/src/de/willuhn/jameica/gui/input/ButtonInput.java b/src/de/willuhn/jameica/gui/input/ButtonInput.java index 911f4eb..d9057ab 100644 --- a/src/de/willuhn/jameica/gui/input/ButtonInput.java +++ b/src/de/willuhn/jameica/gui/input/ButtonInput.java @@ -54,9 +54,7 @@ public abstract class ButtonInput extends AbstractInput */ public abstract Control getClientControl(Composite parent); - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public final Control getControl() { if (comp != null && !comp.isDisposed()) @@ -117,11 +115,14 @@ public abstract class ButtonInput extends AbstractInput /** * Definiert den auf dem Button anzuzeigenden Text. - * Leider kann auf dem Button nicht Image <b>und</b> Text - * angezeigt werden. Wenn also sowohl <code>setButtonText</code> und - * <code>setButtonImage</code> gesetzt werden, wird nur das Image + * + * <p>Leider kann auf dem Button nicht Image <b>und</b> Text + * angezeigt werden. Wenn also sowohl {@link #setButtonText(String)} und + * {@link #setButtonImage(Image)} gesetzt werden, wird nur das Image * angezeigt. - * Wird nichts von beiden gesetzt, wird ein Image mit einer Lupe angezeigt. + * + * <p>Wird nichts von beiden gesetzt, wird ein Image mit einer Lupe angezeigt. + * * @param text auf dem Button anzuzeigender Text. */ public final void setButtonText(String text) @@ -153,9 +154,7 @@ public abstract class ButtonInput extends AbstractInput buttonListeners.add(l); } - /** - * @see de.willuhn.jameica.gui.input.Input#focus() - */ + @Override public final void focus() { this.focus = true; @@ -163,25 +162,19 @@ public abstract class ButtonInput extends AbstractInput clientControl.setFocus(); } - /** - * @see de.willuhn.jameica.gui.input.Input#disable() - */ + @Override public final void disable() { setEnabled(false); } - /** - * @see de.willuhn.jameica.gui.input.Input#enable() - */ + @Override public final void enable() { setEnabled(true); } - /** - * @see de.willuhn.jameica.gui.input.Input#setEnabled(boolean) - */ + @Override public void setEnabled(boolean enabled) { if (enabled) @@ -249,9 +242,7 @@ public abstract class ButtonInput extends AbstractInput } } - /** - * @see de.willuhn.jameica.gui.input.Input#isEnabled() - */ + @Override public boolean isEnabled() { return buttonEnabled && clientControlEnabled; @@ -259,9 +250,7 @@ public abstract class ButtonInput extends AbstractInput private boolean inUpdate = false; - /** - * @see de.willuhn.jameica.gui.input.AbstractInput#update() - */ + @Override protected void update() throws OperationCanceledException { if (inUpdate) diff --git a/src/de/willuhn/jameica/gui/input/ColorInput.java b/src/de/willuhn/jameica/gui/input/ColorInput.java index df97be3..f7eef7b 100644 --- a/src/de/willuhn/jameica/gui/input/ColorInput.java +++ b/src/de/willuhn/jameica/gui/input/ColorInput.java @@ -56,9 +56,7 @@ public class ColorInput extends ButtonInput }); } - /** - * @see de.willuhn.jameica.gui.input.ButtonInput#getClientControl(org.eclipse.swt.widgets.Composite) - */ + @Override public Control getClientControl(Composite parent) { label = GUI.getStyleFactory().createText(parent); @@ -77,18 +75,19 @@ public class ColorInput extends ButtonInput /** * Liefert die aktuell ausgewaehlte Farbe. - * Rueckgabewert vom Typ <code>Color</code>. - * @see de.willuhn.jameica.gui.input.Input#getValue() + * + * @return Rueckgabewert vom Typ {@link Color}. */ + @Override public Object getValue() { return color; } /** - * Erwartet ein Objekt vom Typ <code>Color</code>. - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) + * Erwartet ein Objekt vom Typ {@link Color}. */ + @Override public void setValue(Object value) { if (value == null) @@ -115,8 +114,8 @@ public class ColorInput extends ButtonInput /** * Leer ueberschrieben, weil wir hier keine Farbaenderungen wollen - * @see de.willuhn.jameica.gui.input.AbstractInput#update() */ + @Override protected void update() throws OperationCanceledException { } diff --git a/src/de/willuhn/jameica/gui/input/DateInput.java b/src/de/willuhn/jameica/gui/input/DateInput.java index 1a2ae72..260c872 100644 --- a/src/de/willuhn/jameica/gui/input/DateInput.java +++ b/src/de/willuhn/jameica/gui/input/DateInput.java @@ -101,8 +101,8 @@ public class DateInput implements Input /** * Deaktiviert das komplette Control (Button und Text). - * @see de.willuhn.jameica.gui.input.Input#disable() */ + @Override public void disable() { this.input.disable(); @@ -110,34 +110,30 @@ public class DateInput implements Input /** * Aktiviert das komplette Control (Button und Text). - * @see de.willuhn.jameica.gui.input.Input#enable() */ + @Override public void enable() { this.input.enable(); } - /** - * @see de.willuhn.jameica.gui.input.Input#focus() - */ + @Override public void focus() { this.input.focus(); } - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public Control getControl() { return this.input.getControl(); } /** - * Liefert ein Objekt vom Typ <code>java.util.Date</code> oder null, + * Liefert ein Objekt vom Typ {@link Date} oder {@code null}, * wenn das Datum nicht geparst werden konnte. - * @see de.willuhn.jameica.gui.input.Input#getValue() */ + @Override public Object getValue() { // Wir liefern grundsaetzlich den Text aus dem Eingabe-Feld, @@ -168,9 +164,7 @@ public class DateInput implements Input } } - /** - * @see de.willuhn.jameica.gui.input.Input#isEnabled() - */ + @Override public boolean isEnabled() { return this.input.isEnabled(); @@ -178,8 +172,8 @@ public class DateInput implements Input /** * Aktiviert oder deaktiviert das komplette Control (Button und Text). - * @see de.willuhn.jameica.gui.input.Input#setEnabled(boolean) */ + @Override public void setEnabled(boolean enabled) { this.input.setEnabled(enabled); @@ -201,9 +195,7 @@ public class DateInput implements Input this.input.disableClientControl(); } - /** - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) - */ + @Override public void setValue(Object value) { // Wenn nichts uebergeben wird, machen wir nur die Werte leer. @@ -257,26 +249,19 @@ public class DateInput implements Input this.dialog.setTitle(title); } - /** - * @see de.willuhn.jameica.gui.input.Input#addListener(org.eclipse.swt.widgets.Listener) - */ + @Override public final void addListener(Listener l) { this.input.addListener(l); } - /** - * @see de.willuhn.jameica.gui.input.Input#paint(org.eclipse.swt.widgets.Composite) - */ + @Override public final void paint(Composite parent) { this.input.setMandatory(this.isMandatory()); this.input.paint(parent); this.input.getControl().addFocusListener(new FocusAdapter() { - /** - * @see org.eclipse.swt.events.FocusAdapter#focusLost(org.eclipse.swt.events.FocusEvent) - */ @Override public void focusLost(FocusEvent e) { @@ -287,34 +272,26 @@ public class DateInput implements Input } - /** - * @see de.willuhn.jameica.gui.input.Input#paint(org.eclipse.swt.widgets.Composite, int) - */ + @Override public final void paint(Composite parent, int width) { this.input.setMandatory(this.isMandatory()); this.input.paint(parent,width); } - /** - * @see de.willuhn.jameica.gui.input.Input#setComment(java.lang.String) - */ + @Override public void setComment(String comment) { this.input.setComment(comment); } - /** - * @see de.willuhn.jameica.gui.input.Input#isMandatory() - */ + @Override public boolean isMandatory() { return this.mandatory; } - /** - * @see de.willuhn.jameica.gui.input.Input#setMandatory(boolean) - */ + @Override public void setMandatory(boolean mandatory) { // Wenn das Control bereits gezeichnet wurde und @@ -336,17 +313,13 @@ public class DateInput implements Input } } - /** - * @see de.willuhn.jameica.gui.input.Input#getName() - */ + @Override public String getName() { return this.name; } - /** - * @see de.willuhn.jameica.gui.input.Input#setName(java.lang.String) - */ + @Override public void setName(String name) { this.name = name; @@ -367,9 +340,7 @@ public class DateInput implements Input } - /** - * @see de.willuhn.jameica.gui.input.Input#hasChanged() - */ + @Override public boolean hasChanged() { Object newValue = this.input.getText(); @@ -388,17 +359,13 @@ public class DateInput implements Input } } - /** - * @see de.willuhn.jameica.gui.input.Input#setData(java.lang.String, java.lang.Object) - */ + @Override public void setData(String key, Object data) { this.data.put(key,data); } - /** - * @see de.willuhn.jameica.gui.input.Input#getData(java.lang.String) - */ + @Override public Object getData(String key) { return this.data.get(key); diff --git a/src/de/willuhn/jameica/gui/input/DecimalInput.java b/src/de/willuhn/jameica/gui/input/DecimalInput.java index 9f91509..e3fd267 100644 --- a/src/de/willuhn/jameica/gui/input/DecimalInput.java +++ b/src/de/willuhn/jameica/gui/input/DecimalInput.java @@ -86,9 +86,7 @@ public class DecimalInput extends TextInput }); } - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public Control getControl() { Control c = super.getControl(); @@ -144,10 +142,10 @@ public class DecimalInput extends TextInput } /** - * Die Funktion liefert ein Objekt des Typs java.lang.Double zurueck - * oder <code>null</code> wenn nicht eingegeben wurde. - * @see de.willuhn.jameica.gui.input.Input#getValue() + * Die Funktion liefert ein Objekt des Typs {@link java.lang.Double} zurueck + * oder {@code null}, wenn nichts eingegeben wurde. */ + @Override public Object getValue() { Number n = this.getNumber(); @@ -203,9 +201,9 @@ public class DecimalInput extends TextInput } /** - * Erwartet ein Objekt des Typs java.lang.Double. - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) + * Erwartet ein Objekt des Typs {@link java.lang.Double}. */ + @Override public void setValue(Object value) { if (value instanceof Number) diff --git a/src/de/willuhn/jameica/gui/input/DialogInput.java b/src/de/willuhn/jameica/gui/input/DialogInput.java index 60aff80..1a1c771 100644 --- a/src/de/willuhn/jameica/gui/input/DialogInput.java +++ b/src/de/willuhn/jameica/gui/input/DialogInput.java @@ -24,18 +24,19 @@ import de.willuhn.logging.Logger; /** * Eingabe-Feld, welches beim Klick auf den Button einen Dialog zur Auswahl * eines Objektes oeffnet. - * Achtung: Der Dialog liefert beim Schliessen ein lapidares <code>Object</code> + * + * <p>Achtung: Der Dialog liefert beim Schliessen ein lapidares {@link Object} * zurueck. Da das Text-Eingabefeld natuerlich nicht wissen kann, * wie es das anzeigen soll, wird der Rueckgabewert des Dialogs - * nicht ausgewertet. Stattdessen muss an den Dialog via <code>addCloseListener</code> + * nicht ausgewertet. Stattdessen muss an den Dialog via {@link #addListener(Listener)} * ein Listener angehangen werden, der beim Schliessen des Dialogs ausgeloest - * wird. In dessen <code>event.data</code> befindet sich dann das jeweilige - * Objekt. Das ist z.Bsp. bei <code>ListDialog</code> ein Fachobjekt aus der - * Datenbank oder bei <code>CalendarDialog</code> ein <code>java.util.Date</code>-Objekt. - * <p> - * Hinweis: Der Listener darf nicht an das Input-Feld selbst angehangen werden, + * wird. In dessen {@code event.data} befindet sich dann das jeweilige + * Objekt. Das ist z.Bsp. bei {@link de.willuhn.jameica.gui.dialogs.ListDialog} ein Fachobjekt aus der + * Datenbank oder bei {@link de.willuhn.jameica.gui.dialogs.CalendarDialog} ein {@link java.util.Date}-Objekt. + * + * <p>Hinweis: Der Listener darf nicht an das Input-Feld selbst angehangen werden, * denn die werden bei jedem Focus-Wechsel ausgeloest. - * </p> + * * @author willuhn */ public class DialogInput extends ButtonInput @@ -51,9 +52,10 @@ public class DialogInput extends ButtonInput /** * Erzeugt ein neues Eingabefeld und schreibt den uebergebenen Wert rein. - * Der dialog sollte anschliessend noch mittels setDialog() gesetzt werden. + * Der Dialog sollte anschliessend noch mittels {@link #setDialog(AbstractDialog)} gesetzt werden. * Dieser Konstruktor ist nur eine Convenience-Funktion, um den Dialog * auch nach der Erzeugung des Input-Objektes setzen zu koennen. + * * @param value der initial einzufuegende Wert fuer das Eingabefeld. */ public DialogInput(String value) @@ -104,8 +106,8 @@ public class DialogInput extends ButtonInput /** * Liefert das Objekt, welches in dem Dialog ausgewaehlt wurde. * Fuer gewoehnlich ist das ein Fach-Objekt. - * @see de.willuhn.jameica.gui.input.Input#getValue() */ + @Override public Object getValue() { return choosen; @@ -158,21 +160,21 @@ public class DialogInput extends ButtonInput } /** - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) - * Speichert jedoch nicht den anzuzeigenden Text sondern das FachObjekt. + * Wie {@link de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object)}, + * speichert jedoch nicht den anzuzeigenden Text sondern das FachObjekt. * Sprich: Das Objekt, welches auch geliefert wird, wenn der Dialog * zur Auswahl des Objektes verwendet werden wuerde. - * Soll der anzuzeigende Text geaendert werden, dann bitte die - * Funktion <code>setText(String)</code> verwenden. + * + * <p>Soll der anzuzeigende Text geaendert werden, dann bitte die + * Funktion {@link #setText(String)} verwenden. */ + @Override public void setValue(Object value) { this.choosen = value; } - /** - * @see de.willuhn.jameica.gui.input.ButtonInput#getClientControl(org.eclipse.swt.widgets.Composite) - */ + @Override public Control getClientControl(Composite parent) { text = GUI.getStyleFactory().createText(parent); if (value != null) @@ -183,9 +185,7 @@ public class DialogInput extends ButtonInput return text; } - /** - * @see de.willuhn.jameica.gui.input.AbstractInput#update() - */ + @Override protected void update() throws OperationCanceledException { super.update(); @@ -205,10 +205,7 @@ public class DialogInput extends ButtonInput text.setBackground(color); } - /** - * Ueberschrieben, weil nur der angezeigte Text interessiert. - * @see de.willuhn.jameica.gui.input.Input#hasChanged() - */ + @Override public boolean hasChanged() { Object newValue = getText(); diff --git a/src/de/willuhn/jameica/gui/input/FontInput.java b/src/de/willuhn/jameica/gui/input/FontInput.java index cee9c51..275c028 100644 --- a/src/de/willuhn/jameica/gui/input/FontInput.java +++ b/src/de/willuhn/jameica/gui/input/FontInput.java @@ -57,9 +57,7 @@ public class FontInput extends ButtonInput }); } - /** - * @see de.willuhn.jameica.gui.input.ButtonInput#getClientControl(org.eclipse.swt.widgets.Composite) - */ + @Override public Control getClientControl(Composite parent) { label = new CLabel(parent, SWT.NONE); @@ -104,18 +102,18 @@ public class FontInput extends ButtonInput /** * Liefert die aktuell ausgewaehlte Schriftart. - * Rueckgabewert vom Typ <code>org.eclipse.swt.graphics.Font</code>. - * @see de.willuhn.jameica.gui.input.Input#getValue() + * Rueckgabewert vom Typ {@link org.eclipse.swt.graphics.Font}. */ + @Override public Object getValue() { return font; } /** - * Erwartet ein Object vom Typ <code>org.eclipse.swt.graphics.Font</code>. - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) + * Erwartet ein Object vom Typ {@link org.eclipse.swt.graphics.Font}. */ + @Override public void setValue(Object value) { if (value == null) diff --git a/src/de/willuhn/jameica/gui/input/Input.java b/src/de/willuhn/jameica/gui/input/Input.java index 787ee80..28b3daf 100644 --- a/src/de/willuhn/jameica/gui/input/Input.java +++ b/src/de/willuhn/jameica/gui/input/Input.java @@ -40,25 +40,28 @@ public interface Input extends Part public void setValue(Object value); /** - * Prueft, ob sich der Wert von <code>getValue()</code> seit dem - * letzten Aufruf von <code>hasChanged</code> geaendert hat. - * @return true, wenn sich der Wert geaendert hat, sonstfalse. + * Prueft, ob sich der Wert von {@link #getValue()} seit dem + * letzten Aufruf von {@code hasChanged()} geaendert hat. + * @return {@code true}, wenn sich der Wert geaendert hat, sonst {@code false}. */ public boolean hasChanged(); /** * Liefert das eigentliche Eingabecontrol. Es muss von jeder * abgeleiteten Klasse implementiert werden und das Eingabe-Feld - * zurueckliefern. Da der Implementierer das Composite benoetigt, + * zurueckliefern. + * + * <p>Da der Implementierer das Composite benoetigt, * in dem das Control positioniert werden soll, kann er sich - * der Methode getParent() in dieser Klasse bedienen. + * der Methode {@link AbstractInput#getParent()} in dieser Klasse bedienen. + * * @return das zu zeichnende Control. */ public Control getControl(); /** * Fuegt dem Eingabe-Feld einen Listener hinzu, der bei jedem Focus-Wechsel ausgeloest wird. - * Besteht das Eingabe-Feld aus mehreren Teilen (z.Bsp. bei SearchInput aus Eingabe-Feld + * Besteht das Eingabe-Feld aus mehreren Teilen (z.Bsp. bei {@link SearchInput} aus Eingabe-Feld * + Knopf dahinter) dann wird der Listener bei Focus-Wechsel jedes dieser * Teile ausgeloest. * @param l zu registrierender Listener. @@ -68,10 +71,12 @@ public interface Input extends Part /** * Fuegt hinter das Eingabefeld noch einen Kommentar. * Existiert der Kommentar bereits, wird er gegen den neuen ersetzt. - * Hinweis: Wird die Funktion nicht aufgerufen, bevor das Eingabe-Feld + * + * <p>Hinweis: Wird die Funktion nicht aufgerufen, bevor das Eingabe-Feld * gemalt wird, dann wird es auch nicht angezeigt. Denn vorm Malen * muss bekannt sein, ob es angezeigt werden soll, damit der Platz * dafuer reserviert werden kann. + * * @param comment Kommentar. */ public void setComment(String comment); @@ -82,6 +87,7 @@ public interface Input extends Part * @param parent Das Composite, in dem das Eingabefeld gemalt werden soll. * @see de.willuhn.jameica.gui.Part#paint(org.eclipse.swt.widgets.Composite) */ + @Override public void paint(Composite parent); /** diff --git a/src/de/willuhn/jameica/gui/input/IntegerInput.java b/src/de/willuhn/jameica/gui/input/IntegerInput.java index df5a7b3..329bff0 100644 --- a/src/de/willuhn/jameica/gui/input/IntegerInput.java +++ b/src/de/willuhn/jameica/gui/input/IntegerInput.java @@ -42,9 +42,7 @@ public class IntegerInput extends TextInput super(value < 0 ? "" : "" +value); } - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public Control getControl() { Control c = super.getControl(); @@ -63,10 +61,10 @@ public class IntegerInput extends TextInput } /** - * Die Funktion liefert ein Objekt des Typs <code>java.lang.Integer</code> zurueck - * oder <code>null</code> wenn nichts eingegeben wurde. - * @see de.willuhn.jameica.gui.input.Input#getValue() + * Die Funktion liefert ein Objekt des Typs {@link java.lang.Integer} zurueck + * oder {@code null} wenn nichts eingegeben wurde. */ + @Override public Object getValue() { Object value = super.getValue(); @@ -83,9 +81,9 @@ public class IntegerInput extends TextInput } /** - * Erwartet ein Objekt des Typs <code>java.lang.Integer</code>. - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) + * Erwartet ein Objekt des Typs {@link java.lang.Integer}. */ + @Override public void setValue(Object value) { if (value == null) diff --git a/src/de/willuhn/jameica/gui/input/LabelInput.java b/src/de/willuhn/jameica/gui/input/LabelInput.java index 326e2f6..d342ba2 100644 --- a/src/de/willuhn/jameica/gui/input/LabelInput.java +++ b/src/de/willuhn/jameica/gui/input/LabelInput.java @@ -39,9 +39,7 @@ public class LabelInput extends AbstractInput this.value = value; } - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public Control getControl() { label = GUI.getStyleFactory().createLabel(getParent(),SWT.NONE); @@ -58,24 +56,21 @@ public class LabelInput extends AbstractInput } /** - * Liefert den angezeigten Text. - * @see de.willuhn.jameica.gui.input.Input#getValue() + * Liefert den angezeigten Text vom Typ {@link java.lang.String}. */ + @Override public Object getValue() { return value; } - /** - * @see de.willuhn.jameica.gui.input.Input#focus() - */ + @Override public void focus() { } /** - * Erwartet ein Objekt des Typs <code>java.lang.String</code>. - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) + * Erwartet ein Objekt des Typs {@link java.lang.String}. */ public void setValue(Object value) { @@ -100,38 +95,28 @@ public class LabelInput extends AbstractInput this.label.setForeground(this.color.getSWTColor()); } - /** - * @see de.willuhn.jameica.gui.input.Input#disable() - */ + @Override public void disable() { } - /** - * @see de.willuhn.jameica.gui.input.Input#enable() - */ + @Override public void enable() { } - /** - * @see de.willuhn.jameica.gui.input.Input#isEnabled() - */ + @Override public boolean isEnabled() { return false; } - /** - * @see de.willuhn.jameica.gui.input.Input#setEnabled(boolean) - */ + @Override public void setEnabled(boolean enabled) { } - /** - * @see de.willuhn.jameica.gui.input.AbstractInput#update() - */ + @Override protected void update() throws OperationCanceledException { // Wir machen hier nichts diff --git a/src/de/willuhn/jameica/gui/input/LinkInput.java b/src/de/willuhn/jameica/gui/input/LinkInput.java index 737727f..1d5cf86 100644 --- a/src/de/willuhn/jameica/gui/input/LinkInput.java +++ b/src/de/willuhn/jameica/gui/input/LinkInput.java @@ -41,9 +41,7 @@ public class LinkInput extends AbstractInput this.text = text; } - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public Control getControl() { if (this.link != null) @@ -67,17 +65,15 @@ public class LinkInput extends AbstractInput } /** - * Liefert den angezeigten Text. - * @see de.willuhn.jameica.gui.input.Input#getValue() + * Liefert den angezeigten Text vom Typ {@link java.lang.String}. */ + @Override public Object getValue() { return this.text; } - /** - * @see de.willuhn.jameica.gui.input.Input#focus() - */ + @Override public void focus() { this.focus = true; @@ -86,9 +82,9 @@ public class LinkInput extends AbstractInput } /** - * Erwartet ein Objekt des Typs <code>java.lang.String</code>. - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) + * Erwartet ein Objekt des Typs {@link java.lang.String}. */ + @Override public void setValue(Object value) { this.text = value != null ? value.toString() : ""; @@ -96,33 +92,25 @@ public class LinkInput extends AbstractInput this.link.setText(SWTUtil.escapeLabel(this.text)); } - /** - * @see de.willuhn.jameica.gui.input.Input#disable() - */ + @Override public void disable() { this.setEnabled(false); } - /** - * @see de.willuhn.jameica.gui.input.Input#enable() - */ + @Override public void enable() { this.setEnabled(true); } - /** - * @see de.willuhn.jameica.gui.input.Input#isEnabled() - */ + @Override public boolean isEnabled() { return this.enabled; } - /** - * @see de.willuhn.jameica.gui.input.Input#setEnabled(boolean) - */ + @Override public void setEnabled(boolean enabled) { this.enabled = enabled; @@ -131,18 +119,17 @@ public class LinkInput extends AbstractInput } /** - * @see de.willuhn.jameica.gui.input.AbstractInput#addListener(org.eclipse.swt.widgets.Listener) - * Ueberschrieben, weil die Listener in AbstractInput sonst an zu vielen Stellen - * (auch bei Focus-Wechsel ausgeloest werden wuerden. + * Methode {@link AbstractInput#addListener(org.eclipse.swt.widgets.Listener)} + * ueberschrieben, weil die Listener sonst an zu vielen Stellen + * (auch bei Focus-Wechsel) ausgeloest werden wuerden. */ + @Override public void addListener(Listener l) { this.listeners.add(l); } - /** - * @see de.willuhn.jameica.gui.input.AbstractInput#update() - */ + @Override protected void update() throws OperationCanceledException { // Wir machen hier nichts diff --git a/src/de/willuhn/jameica/gui/input/SearchInput.java b/src/de/willuhn/jameica/gui/input/SearchInput.java index b67d8e6..40c9201 100644 --- a/src/de/willuhn/jameica/gui/input/SearchInput.java +++ b/src/de/willuhn/jameica/gui/input/SearchInput.java @@ -33,12 +33,13 @@ import de.willuhn.logging.Logger; /** * Erzeugt eine Such-Box, in der man Text eingaben kann. - * Kann prima zur Erstellung eines Suchfeldes genutzt werden, + * + * <p>Kann prima zur Erstellung eines Suchfeldes genutzt werden, * welches bei jeder Eingabe eines Zeichens eine Liste mit * Vorschlaegen anzeigen kann. * - * Beispiel fuer die Verwendung: - * + * <p>Beispiel fuer die Verwendung: + * <pre>{@code * project = new SearchInput() { * public List startSearch(String text) { * try { @@ -57,6 +58,7 @@ import de.willuhn.logging.Logger; * } * }; * project.setValue(getTask().getProject()); + * }</pre> * * @author willuhn */ @@ -109,10 +111,12 @@ public class SearchInput extends AbstractInput /** * Legt den Namen des Attributes fest, welches von den Objekten angezeigt werden * soll. Bei herkoemmlichen Beans wird also ein Getter mit diesem Namen aufgerufen. - * Wird kein Attribut angegeben, wird bei Objekten des Typs <code>GenericObject</code> - * der Wert des Primaer-Attributes angezeigt, andernfalls der Wert von <code>toString()</code>. - * @param name Name des anzuzeigenden Attributes (muss im GenericObject - * via getAttribute(String) abrufbar sein). + * + * <p>Wird kein Attribut angegeben, wird bei Objekten des Typs {@link de.willuhn.datasource.GenericObject} + * der Wert des Primaer-Attributes angezeigt, andernfalls der Wert von {@link #toString()}. + * + * @param name Name des anzuzeigenden Attributes (muss via + * {@link de.willuhn.datasource.GenericObject#getAttribute(String)} abrufbar sein). */ public void setAttribute(String name) { @@ -122,7 +126,7 @@ public class SearchInput extends AbstractInput /** * Definiert die maximal eingebbare Menge von Zeichen. - * @param maxLength + * @param maxLength Anzahl */ public void setMaxLength(int maxLength) { @@ -134,7 +138,7 @@ public class SearchInput extends AbstractInput /** * Legt fest, ab wieviel eingegebenen Zeichen die Suche starten soll. * @param length Mindest-Anzahl von Zeichen, ab der die Suche starten soll. - * Werte <= 0 werden ignoriert. + * Werte ≤ 0 werden ignoriert. * Default: 1. */ public void setStartAt(int length) @@ -255,17 +259,13 @@ public class SearchInput extends AbstractInput return null; } - /** - * @see de.willuhn.jameica.gui.input.AbstractInput#addListener(org.eclipse.swt.widgets.Listener) - */ + @Override public void addListener(Listener l) { this.listeners.add(l); } - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public Control getControl() { if (this.text != null && !this.text.isDisposed()) @@ -389,6 +389,7 @@ public class SearchInput extends AbstractInput * initial uebergebene. * @see de.willuhn.jameica.gui.input.Input#getValue() */ + @Override public Object getValue() { if (this.text == null || this.text.isDisposed()) @@ -428,11 +429,7 @@ public class SearchInput extends AbstractInput } } - - - /** - * @see de.willuhn.jameica.gui.input.Input#focus() - */ + @Override public void focus() { this.focus = true; @@ -441,26 +438,19 @@ public class SearchInput extends AbstractInput text.setFocus(); } - - /** - * @see de.willuhn.jameica.gui.input.Input#disable() - */ + @Override public void disable() { setEnabled(false); } - /** - * @see de.willuhn.jameica.gui.input.Input#enable() - */ + @Override public void enable() { setEnabled(true); } - /** - * @see de.willuhn.jameica.gui.input.Input#setEnabled(boolean) - */ + @Override public void setEnabled(boolean enabled) { this.enabled = enabled; @@ -474,9 +464,7 @@ public class SearchInput extends AbstractInput } } - /** - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) - */ + @Override public void setValue(Object o) { this.value = o; @@ -506,9 +494,7 @@ public class SearchInput extends AbstractInput } } - /** - * @see de.willuhn.jameica.gui.input.Input#isEnabled() - */ + @Override public boolean isEnabled() { return enabled; @@ -516,8 +502,8 @@ public class SearchInput extends AbstractInput /** * BUGZILLA 743 - * @see de.willuhn.jameica.gui.input.AbstractInput#update() */ + @Override protected void update() throws OperationCanceledException { super.update(); diff --git a/src/de/willuhn/jameica/gui/input/SelectInput.java b/src/de/willuhn/jameica/gui/input/SelectInput.java index 80ad712..027e4d1 100644 --- a/src/de/willuhn/jameica/gui/input/SelectInput.java +++ b/src/de/willuhn/jameica/gui/input/SelectInput.java @@ -29,8 +29,8 @@ import de.willuhn.logging.Logger; /** * Ist zustaendig fuer Eingabefelder des Typs "Select" aka "Combo". - * Wird die Combo-Box mit einer Liste von GenericObjects erzeugt, - * dann wird dasPrimaer-Attribut eines jeden Objektes angezeigt. + * Wird die Combo-Box mit einer Liste von {@link GenericObject}s erzeugt, + * dann wird das Primaerattribut eines jeden Objektes angezeigt. * @author willuhn */ public class SelectInput extends AbstractInput @@ -49,14 +49,16 @@ public class SelectInput extends AbstractInput /** * Erzeugt eine neue Combo-Box und schreibt die Werte der uebergebenen Liste rein. - * Um Jameica von spezifischem Code aus de.willuhn.datasource zu befreien, - * sollte kuenftig besser der generische Konstruktor <code>List</code>,<code>Object</code> - * verwendet werden. Damit kann die Anwendung spaeter auch auf ein anderes Persistierungsframework - * umgestellt werden. + * * @param list Liste von Objekten. * @param preselected das Object, welches vorselektiert sein soll. Optional. * @throws RemoteException + * @deprecated Um Jameica von spezifischem Code aus de.willuhn.datasource zu befreien, + * sollte kuenftig besser {@link SelectInput#SelectInput(List, Object)} + * verwendet werden. Damit kann die Anwendung spaeter auch auf ein anderes Persistierungsframework + * umgestellt werden. */ + @Deprecated public SelectInput(GenericIterator list, GenericObject preselected) throws RemoteException { this(list != null ? PseudoIterator.asList(list) : null,preselected); @@ -125,7 +127,9 @@ public class SelectInput extends AbstractInput /** * Optionale Angabe eines Textes, der an Position 1 angezeigt werden soll. - * Bei Auswahl dieses Elements, wird null zurueckgeliefert. + * + * <p>Als Default wird {@code null} zurueckgeliefert. + * * @param choose Anzuzeigender "Bitte wählen..."-Text. */ public void setPleaseChoose(String choose) @@ -136,10 +140,10 @@ public class SelectInput extends AbstractInput /** * Legt den Namen des Attributes fest, welches von den Objekten angezeigt werden * soll. Bei herkoemmlichen Beans wird also ein Getter mit diesem Namen aufgerufen. - * Wird kein Attribut angegeben, wird bei Objekten des Typs <code>GenericObject</code> - * der Wert des Primaer-Attributes angezeigt, andernfalls der Wert von <code>toString()</code>. - * @param name Name des anzuzeigenden Attributes (muss im GenericObject - * via getAttribute(String) abrufbar sein). + * Wird kein Attribut angegeben, wird bei Objekten des Typs {@link GenericObject} + * der Wert des Primaer-Attributes angezeigt, andernfalls der Wert von {@link #toString()}. + * @param name Name des anzuzeigenden Attributes (muss via + * {@link GenericObject#getAttribute(String)} abrufbar sein). */ public void setAttribute(String name) { @@ -147,9 +151,7 @@ public class SelectInput extends AbstractInput this.attribute = name; } - /** - * @see de.willuhn.jameica.gui.input.Input#getControl() - */ + @Override public Control getControl() { if (this.combo != null) @@ -249,7 +251,7 @@ public class SelectInput extends AbstractInput /** * Liefert die komplette Liste der Fachobjekte in der Liste. - * @return die komplette Liste der Fachobjekte in der Liste. + * @return Liste der Fachobjekte. */ public List getList() { @@ -259,7 +261,7 @@ public class SelectInput extends AbstractInput /** * Formatiert die Bean passend fuer die Anzeige in der Combo-Box. * @param bean die Bean. - * @return String mit dem anzuzeigenden Wert. + * @return anzuzeigender Wert. */ protected String format(Object bean) { @@ -281,10 +283,11 @@ public class SelectInput extends AbstractInput } /** - * Liefert das ausgewaehlte GenericObject. - * Folglich kann der Rueckgabewert direkt nach GenericObject gecastet werden. + * Liefert das ausgewaehlte {@link GenericObject}. + * Folglich kann der Rueckgabewert direkt nach {@link GenericObject} gecastet werden. * @see de.willuhn.jameica.gui.input.Input#getValue() */ + @Override public Object getValue() { if (this.combo == null || this.combo.isDisposed()) @@ -311,9 +314,7 @@ public class SelectInput extends AbstractInput return combo.getText(); } - /** - * @see de.willuhn.jameica.gui.input.Input#focus() - */ + @Override public void focus() { if (this.combo == null || this.combo.isDisposed()) @@ -322,26 +323,19 @@ public class SelectInput extends AbstractInput combo.setFocus(); } - - /** - * @see de.willuhn.jameica.gui.input.Input#disable() - */ + @Override public void disable() { setEnabled(false); } - /** - * @see de.willuhn.jameica.gui.input.Input#enable() - */ + @Override public void enable() { setEnabled(true); } - /** - * @see de.willuhn.jameica.gui.input.Input#setEnabled(boolean) - */ + @Override public void setEnabled(boolean enabled) { this.enabled = enabled; @@ -350,8 +344,9 @@ public class SelectInput extends AbstractInput } /** - * Markiert die Combo-Box als editierbar. Wenn diese - * Option aktiviert ist, wird jedoch in <code>getValue()</code> + * Markiert die Combo-Box als editierbar. + * + * <p>Wenn diese Option aktiviert ist, wird jedoch in {@link #getValue()} * generell der angezeigte Text zurueckgeliefert statt des * Fachobjektes. Hintergrund: Normalerweise wird die Combo-Box * ja mit einer Liste von Fachobjekten/Beans gefuellt. @@ -366,25 +361,19 @@ public class SelectInput extends AbstractInput this.editable = editable; } - /** - * @see de.willuhn.jameica.gui.input.Input#setValue(java.lang.Object) - */ + @Override public void setValue(Object o) { this.setPreselected(o); } - /** - * @see de.willuhn.jameica.gui.input.Input#isEnabled() - */ + @Override public boolean isEnabled() { return enabled; } - /** - * @see de.willuhn.jameica.gui.input.AbstractInput#update() - */ + @Override protected void update() throws OperationCanceledException { // Wir machen hier nichts. diff --git a/src/de/willuhn/jameica/gui/internal/action/ChangePassword.java b/src/de/willuhn/jameica/gui/internal/action/ChangePassword.java index 94a21fc..6428b65 100644 --- a/src/de/willuhn/jameica/gui/internal/action/ChangePassword.java +++ b/src/de/willuhn/jameica/gui/internal/action/ChangePassword.java @@ -23,9 +23,9 @@ public class ChangePassword implements Action { /** - * Hier kann <code>null</code> uebergeben werden. - * @see de.willuhn.jameica.gui.Action#handleAction(java.lang.Object) + * Hier kann {@code null} uebergeben werden. */ + @Override public void handleAction(Object context) throws ApplicationException { try diff --git a/src/de/willuhn/jameica/gui/internal/action/Print.java b/src/de/willuhn/jameica/gui/internal/action/Print.java index 0c0bd9c..7f54106 100644 --- a/src/de/willuhn/jameica/gui/internal/action/Print.java +++ b/src/de/willuhn/jameica/gui/internal/action/Print.java @@ -31,9 +31,9 @@ import net.sf.paperclips.PrintJob; public class Print implements Action { /** - * Erwartet ein Objekt vom Typ <code>PrintSupport</code>. - * @see de.willuhn.jameica.gui.Action#handleAction(java.lang.Object) + * Erwartet ein Objekt vom Typ {@code PrintSupport}. */ + @Override public void handleAction(Object context) throws ApplicationException { if (context == null || !(context instanceof PrintSupport)) diff --git a/src/de/willuhn/jameica/gui/internal/controller/SettingsControl.java b/src/de/willuhn/jameica/gui/internal/controller/SettingsControl.java index 46a8d39..67ca715 100644 --- a/src/de/willuhn/jameica/gui/internal/controller/SettingsControl.java +++ b/src/de/willuhn/jameica/gui/internal/controller/SettingsControl.java @@ -47,7 +47,7 @@ import de.willuhn.util.ApplicationException; import de.willuhn.util.I18N; /** - * Controller fuer die Einstellungen unter Datei->Einstellungen + * Controller fuer die Einstellungen unter <i>Datei->Einstellungen</i> */ public class SettingsControl extends AbstractControl { diff --git a/src/de/willuhn/jameica/gui/parts/AbstractTablePart.java b/src/de/willuhn/jameica/gui/parts/AbstractTablePart.java index b960ff9..26ec8be 100644 --- a/src/de/willuhn/jameica/gui/parts/AbstractTablePart.java +++ b/src/de/willuhn/jameica/gui/parts/AbstractTablePart.java @@ -124,7 +124,7 @@ public abstract class AbstractTablePart implements Part /** * Liefert die Instanz des Features, insofern es hinzugefuegt wurde. * @param type der Typ des Features. - * @return das Feature oder NULL, wenn es nicht existiert. + * @return das Feature oder {@code null}, wenn es nicht existiert. */ public <T> T getFeature(Class<? extends Feature> type) { @@ -138,7 +138,7 @@ public abstract class AbstractTablePart implements Part * Prueft, ob das angegebene Feature das Event behandelt. * @param type das Feature. * @param e das Event. - * @return true, wenn das Feature dieses Event behandelt. + * @return {@code true}, wenn das Feature dieses Event behandelt. */ public boolean hasEvent(Class<? extends Feature> type, Feature.Event e) { @@ -222,7 +222,7 @@ public abstract class AbstractTablePart implements Part * @param field Name des Feldes aus dem dbObject, der angezeigt werden soll. * @param f Formatter, der fuer die Anzeige des Wertes verwendet werden soll. * @param changeable legt fest, ob die Werte in dieser Spalte direkt editierbar sein sollen. - * Wenn der Parameter true ist, dann sollte der Tabelle via <code>addChangeListener</code> + * Wenn der Parameter {@code true} ist, dann sollte der Tabelle via {@link TablePart#addChangeListener(TableChangeListener)} * ein Listener hinzugefuegt werden, der benachrichtigt wird, wenn der Benutzer einen * Wert geaendert hat. Es ist anschliessend Aufgabe des Listeners, den geaenderten * Wert im Fachobjekt zu uebernehmen. @@ -238,7 +238,7 @@ public abstract class AbstractTablePart implements Part * @param field Name des Feldes aus dem dbObject, der angezeigt werden soll. * @param f Formatter, der fuer die Anzeige des Wertes verwendet werden soll. * @param changeable legt fest, ob die Werte in dieser Spalte direkt editierbar sein sollen. - * Wenn der Parameter true ist, dann sollte der Tabelle via <code>addChangeListener</code> + * Wenn der Parameter {@code true} ist, dann sollte der Tabelle via {@link TablePart#addChangeListener(TableChangeListener)} * ein Listener hinzugefuegt werden, der benachrichtigt wird, wenn der Benutzer einen * Wert geaendert hat. Es ist anschliessend Aufgabe des Listeners, den geaenderten * Wert im Fachobjekt zu uebernehmen. @@ -265,7 +265,7 @@ public abstract class AbstractTablePart implements Part /** * Liefert die Sortierreihenfolge der Spalten. - * @return Int-Array mit der Reihenfolge oder <code>null</code>. + * @return Int-Array mit der Reihenfolge oder {@code null}. */ int[] getColumnOrder() { @@ -346,7 +346,7 @@ public abstract class AbstractTablePart implements Part /** * Liefert die markierten Objekte. - * Die Funktion liefert je nach Markierung <code>Object</code> oder <code>Object[]</code>. + * Die Funktion liefert je nach Markierung {@link Object} oder {@link Object}[]. * @return das/die markierten Objekte. */ public abstract Object getSelection(); @@ -387,7 +387,7 @@ public abstract class AbstractTablePart implements Part /** * Legt fest, ob sich die Tabelle die Spaltenbreiten merken soll. - * @param remember true, wenn sie sich die Spaltenbreiten merken soll. + * @param remember {@code true}, wenn sie sich die Spaltenbreiten merken soll. */ public void setRememberColWidths(boolean remember) { @@ -396,7 +396,7 @@ public abstract class AbstractTablePart implements Part /** * Legt fest, ob sich die Tabelle die Sortierreihenfolge merken soll. - * @param remember true, wenn sie sich die Reihenfolge merken soll. + * @param remember {@code true}, wenn sie sich die Reihenfolge merken soll. */ public void setRememberOrder(boolean remember) { @@ -405,7 +405,7 @@ public abstract class AbstractTablePart implements Part /** * Legt fest, ob sich die Tabelle die zuletzt markierten Objekte samt der Scrollposition merken soll. - * @param remember true, wenn sich die Tabelle Selektion und Position merken soll. + * @param remember {@code true}, wenn sich die Tabelle Selektion und Position merken soll. */ public void setRememberState(boolean remember) { @@ -414,7 +414,7 @@ public abstract class AbstractTablePart implements Part /** * Stellt den Zustand wieder her (markierte Objekte und Scroll-Position). - * Geschieht jedoch nur, wenn das Feature mit setRememberState(true) aktiviert wurde. + * Geschieht jedoch nur, wenn das Feature mit {@code setRememberState(true)} aktiviert wurde. * Das ist eine Dummy-Implementierung, die in den abgeleiteten Klassen ueberschrieben werden kann. */ public void restoreState() @@ -433,7 +433,7 @@ public abstract class AbstractTablePart implements Part /** * Legt fest, ob jede Zeile der Tabelle mit einer Checkbox versehen werden soll. - * Ist dies der Fall, liefert <code>getItems</code> nur noch die aktiven + * Ist dies der Fall, liefert {@link #getItems()} nur noch die aktiven * Elemente zurueck. * Default: false * @param checkable @@ -446,8 +446,10 @@ public abstract class AbstractTablePart implements Part /** * Wenn die Tabelle mit Checkboxen versehen ist, kann man damit bei einem Element * das Haeckchen setzen oder entfernen. - * Hinweis: Dies hier ist eine leere Dummy-Implementierung. Sie muss von + * + * <p>Hinweis: Dies hier ist eine leere Dummy-Implementierung. Sie muss von * abgeleiteten Klassen ueberschrieben werden. + * * @param objects Liste der zu checkenden Objekte. * @param checked true, wenn das Haekchen gesetzt werden soll. */ @@ -483,7 +485,7 @@ public abstract class AbstractTablePart implements Part public abstract void removeAll(); /** - * Hilfsmethode, um die RemoteException im Konstruktor zu vermeiden. + * Hilfsmethode, um die {@link RemoteException} im Konstruktor zu vermeiden. * @param iterator zu konvertierender Iterator. * @return Liste mit den Objekten. */ diff --git a/src/de/willuhn/jameica/gui/parts/CheckedContextMenuItem.java b/src/de/willuhn/jameica/gui/parts/CheckedContextMenuItem.java index e986eec..1e2e75e 100644 --- a/src/de/willuhn/jameica/gui/parts/CheckedContextMenuItem.java +++ b/src/de/willuhn/jameica/gui/parts/CheckedContextMenuItem.java @@ -14,7 +14,7 @@ import de.willuhn.jameica.gui.Action; /** * ContextMenu-Element, dass immer genau dann automatisch - * deaktiviert ist, wenn das aktuelle Objekt <code>null</code> ist. + * deaktiviert ist, wenn das aktuelle Objekt {@code null} ist. */ public class CheckedContextMenuItem extends ContextMenuItem { @@ -48,9 +48,7 @@ public class CheckedContextMenuItem extends ContextMenuItem super(text, a, icon); } - /** - * @see de.willuhn.jameica.gui.parts.ContextMenuItem#isEnabledFor(java.lang.Object) - */ + @Override public boolean isEnabledFor(Object o) { return o != null; diff --git a/src/de/willuhn/jameica/gui/parts/Column.java b/src/de/willuhn/jameica/gui/parts/Column.java index b55cdd4..1d699c5 100644 --- a/src/de/willuhn/jameica/gui/parts/Column.java +++ b/src/de/willuhn/jameica/gui/parts/Column.java @@ -151,7 +151,7 @@ public class Column implements Serializable /** * Prueft, ob die Spalte aenderbar ist. - * @return true, wenn sie aenderbar ist. + * @return {@code true}, wenn sie aenderbar ist. */ public boolean canChange() { @@ -169,7 +169,7 @@ public class Column implements Serializable /** * Liefert einen optionalen Formatter. - * @return ein Formatter oder <code>null</code>. + * @return ein Formatter oder {@code null}. */ public Formatter getFormatter() { @@ -209,17 +209,18 @@ public class Column implements Serializable /** * Liefert den Wert in der Form, wie er in der Tabelle angezeigt werden soll. - * Fuer die meisten Werte wird hier ein simples <code>value#toString</code> + * Fuer die meisten Werte wird hier ein simples {@code value#toString} * ausgefuehrt. + * * @param value Der Wert des Attributes der Bean. * @param context die Bean, aus der der Wert des Attributes stammt. * Die Bean wird fuer gewoehnlich nicht benoetigt, da der Attribut-Wert - * ja bereits in <code>value</code> vorliegt. Sie wird als Context-Information + * ja bereits in {@code value} vorliegt. Sie wird als Context-Information * dennoch uebergeben, damit eine ggf. von dieser Klasse abgeleitete Version * abhaengig von der Bean (und damit dem Context die Formatierung unterschiedlich * vornehmen kann. * @return der formatierte Wert des Attributes. - * Die Funktion sollte nie NULL zurueckliefern sondern hoechstens einen + * Die Funktion sollte nie {@code null} zurueckliefern sondern hoechstens einen * Leerstring, da der Wert 1:1 in die Tabelle uebernommen wird und es * dort unter Umstaenden zu einer NPE oder der Anzeige von "null" kommen koennte. * BUGZILLA 721 diff --git a/src/de/willuhn/jameica/gui/parts/ContextMenuItem.java b/src/de/willuhn/jameica/gui/parts/ContextMenuItem.java index 0e6d32c..fc1ac1c 100644 --- a/src/de/willuhn/jameica/gui/parts/ContextMenuItem.java +++ b/src/de/willuhn/jameica/gui/parts/ContextMenuItem.java @@ -80,7 +80,7 @@ public class ContextMenuItem /** * Legt fest, ob das Menu ein Separator sein soll. - * @param separator true, wenn es ein Separator sein soll. + * @param separator {@code true}, wenn es ein Separator sein soll. */ public void setSeparator(boolean separator) { @@ -89,7 +89,7 @@ public class ContextMenuItem /** * Prueft, ob das Element ein Separator ist. - * @return true, wenn es ein Separator ist. + * @return {@code true}, wenn es ein Separator ist. */ public boolean isSeparator() { @@ -152,8 +152,8 @@ public class ContextMenuItem } /** - * Liefert eine optionale Tastenkombi fuer den Short-Cut. - * @return Tastenkombi. + * Liefert eine optionale Tastenkombination fuer den Short-Cut. + * @return Tastenkombination. */ public String getShortcut() { @@ -161,7 +161,7 @@ public class ContextMenuItem } /** - * Speichert eine optionale Tastenkombi fuer den Short-Cut. + * Speichert eine optionale Tastenkombination fuer den Short-Cut. * @param shortcut */ public void setShortcut(String shortcut) @@ -175,15 +175,19 @@ public class ContextMenuItem * Diese Funktion wird fuer jedes MenuItem aufgerufen, wenn sich das Kontext-Menu oeffnet. * Folglich kann hier jedes MenuItem selbst bestimmen, ob es fuer das aktuelle * Objekt verfuegbar sein soll oder nicht. - * Diese Default-Implementierung liefert immer <code>true</code>. + * + * <p>Diese Default-Implementierung liefert immer {@code true}. * Soll das Item also bei Bedarf deaktiviert werden, muss von dieser * Klasse abgeleitet und diese Methode ueberschrieben werden. - * Alternativ kann auch bereits die abgeleitete Klasse CheckedContextMenuItem - * verwendet werden, die nur dann <code>true</code> liefert, wenn das Objekt nicht - * <code>null</code> ist. Sprich: Wenn nicht in leeren Raum geklickt wurde sondern + * + * <p>Alternativ kann auch bereits die abgeleitete Klasse {@link CheckedContextMenuItem} + * verwendet werden, die nur dann {@code true} liefert, wenn das Objekt nicht + * {@code null} ist. Sprich: Wenn nicht in leeren Raum geklickt wurde sondern * auf ein Objekt. + * * @param o das zu testende Objekt. - * @return true, wenn das Item angezeigt werden soll. Andernfalls <code>false</code>. + * @return {@code true}, wenn das Item angezeigt werden soll. Andernfalls {@code false}. + * @see CheckedContextMenuItem#isEnabledFor(Object) */ public boolean isEnabledFor(Object o) { diff --git a/src/de/willuhn/jameica/gui/parts/TableChangeListener.java b/src/de/willuhn/jameica/gui/parts/TableChangeListener.java index 94c168a..5cd5797 100644 --- a/src/de/willuhn/jameica/gui/parts/TableChangeListener.java +++ b/src/de/willuhn/jameica/gui/parts/TableChangeListener.java @@ -10,13 +10,14 @@ package de.willuhn.jameica.gui.parts; +import de.willuhn.jameica.gui.formatter.Formatter; import de.willuhn.util.ApplicationException; /** - * Ein Listener, der an eine Tabelle via <code>addChangeListener()</code> gehaengt werden kann, wenn einzelne - * Spalten direkt in der Tabelle aenderbar sein sollen. Die Spalten muessen - * mit der Funktion <code>table.addColumn(String title, String field, Formatter f, boolean changeable)</code> - * hinzugefuegt werden, wobei changeable=true sein muss um die Spalten als aenderbar + * Ein Listener, der an eine Tabelle via {@link TablePart#addChangeListener(TableChangeListener)} gehaengt werden kann, + * wenn einzelne Spalten direkt in der Tabelle aenderbar sein sollen. Die Spalten muessen + * mit der Funktion {@link TablePart#addColumn(String, String, Formatter, boolean)} + * hinzugefuegt werden, wobei {@code changeable=true} sein muss, um die Spalten als aenderbar * zu markieren. Sofern der Wert eines solchen Feldes vom Benutzer geaendert * wurde, werden alle registrieren TableChangeListener ueber die Aenderung * informiert. Es ist dann deren Aufgabe, den geaenderten Wert im Fachobjekt diff --git a/src/de/willuhn/jameica/gui/parts/TablePart.java b/src/de/willuhn/jameica/gui/parts/TablePart.java index dfbf1b3..16694c7 100644 --- a/src/de/willuhn/jameica/gui/parts/TablePart.java +++ b/src/de/willuhn/jameica/gui/parts/TablePart.java @@ -177,7 +177,7 @@ public class TablePart extends AbstractTablePart /** * Legt fest, ob eine Summenzeile am Ende angezeigt werden soll. - * @param show true, wenn die Summenzeile angezeigt werden soll (Default) oder false + * @param show {@code true}, wenn die Summenzeile angezeigt werden soll (Default) oder {@code false} * wenn sie nicht angezeigt werden soll. * @deprecated Bitte stattdessen {@link AbstractTablePart#addFeature(Feature)} verwenden. */ @@ -190,10 +190,7 @@ public class TablePart extends AbstractTablePart this.removeFeature(FeatureSummary.class); } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#getItems() - * Entspricht <code>getItems(true)</code> - */ + @Override public List getItems() throws RemoteException { return this.getItems(true); @@ -201,7 +198,7 @@ public class TablePart extends AbstractTablePart /** * Liefert die Fach-Objekte der Tabelle. - * @param onlyChecked true, falls bei Aktivierung des Features <code>setCheckable(true)</code> + * @param onlyChecked {@code true}, falls bei Aktivierung des Features {@code setCheckable(true)} * nur genau die Objekte geliefert werden sollen, bei denen das Haekchen gesetzt ist. * Die Objekte werden genau in der angezeigten Reihenfolge zurueckgeliefert. * @return die Liste der Objekte. @@ -244,9 +241,7 @@ public class TablePart extends AbstractTablePart table.setTopIndex(i); } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#removeAll() - */ + @Override public void removeAll() { if (table != null && !table.isDisposed()) @@ -261,7 +256,8 @@ public class TablePart extends AbstractTablePart /** * Entfernt das genannte Element aus der Tabelle. - * Wurde die Tabelle mit einer Liste von Objekten erzeugt, die von <code>DBObject</code> + * + * <p>Wurde die Tabelle mit einer Liste von Objekten erzeugt, die von {@link DBObject} * abgeleitet sind, muss das Loeschen nicht manuell vorgenommen werden. Die Tabelle * fuegt in diesem Fall automatisch jedem Objekt einen Listener hinzu, der * beim Loeschen des Objektes benachrichtigt wird. Die Tabelle entfernt @@ -360,7 +356,7 @@ public class TablePart extends AbstractTablePart /** * Fuegt der Tabelle am Ende ein Element hinzu. * @param object hinzuzufuegendes Element. - * @param checked true, wenn die Tabelle checkable ist und das Objekt gecheckt sein soll. + * @param checked {@code true}, wenn die Tabelle checkable ist und das Objekt gecheckt sein soll. * @throws RemoteException */ public void addItem(Object object, boolean checked) throws RemoteException @@ -525,9 +521,7 @@ public class TablePart extends AbstractTablePart this.featureEvent(Feature.Event.ADDED,object); } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#size() - */ + @Override public int size() { if (this.table == null || this.table.isDisposed()) @@ -535,9 +529,7 @@ public class TablePart extends AbstractTablePart return table.getItemCount(); } - /** - * @see de.willuhn.jameica.gui.Part#paint(org.eclipse.swt.widgets.Composite) - */ + @Override public synchronized void paint(Composite parent) throws RemoteException { @@ -1000,9 +992,7 @@ public class TablePart extends AbstractTablePart this.featureEvent(Feature.Event.PAINT,null); } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#getID() - */ + @Override String getID() throws Exception { if (this.id != null) @@ -1041,9 +1031,7 @@ public class TablePart extends AbstractTablePart return this.id; } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#select(java.lang.Object[]) - */ + @Override public void select(Object[] objects) { if (objects == null || objects.length == 0 || table == null) @@ -1094,9 +1082,7 @@ public class TablePart extends AbstractTablePart table.setFocus(); } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#setChecked(java.lang.Object[], boolean) - */ + @Override public void setChecked(Object[] objects, boolean checked) { if (objects == null || objects.length == 0 || !this.checkable) @@ -1136,9 +1122,7 @@ public class TablePart extends AbstractTablePart } } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#getSelection() - */ + @Override public Object getSelection() { if (table == null || table.isDisposed()) @@ -1185,8 +1169,8 @@ public class TablePart extends AbstractTablePart /** * Aktualisiert die Summenzeile. - * @deprecated Bitte künftig {@link AbstractTablePart#featureEvent(de.willuhn.jameica.gui.parts.table.Feature.Event, Object)} - * mit dem Event "REFRESH" verwenden. + * @deprecated Bitte künftig {@link AbstractTablePart#featureEvent(Feature.Event, Object)} + * mit dem Event {@link Feature.Event#REFRESH} verwenden. */ @Deprecated protected void refreshSummary() @@ -1200,8 +1184,7 @@ public class TablePart extends AbstractTablePart * @return anzuzeigender Text oder null, wenn nichts angezeigt werden soll. * @deprecated Bitte kuenftig stattdessen {@link AbstractTablePart#createFeatureEventContext(de.willuhn.jameica.gui.parts.table.Feature.Event, Object)} * ueberschreiben und dort die addon-Daten passend fuer FeatureSummary belegen: - * - * <code> + * <pre>{@code * protected Context createFeatureEventContext(Feature.Event e, Object data) * { * Context ctx = super.createFeatureEventContext(e, data); @@ -1209,7 +1192,7 @@ public class TablePart extends AbstractTablePart * ctx.addon.put(FeatureSummary.CTX_KEY_TEXT,"Anzuzeigender Summentext"); * return ctx; * } - * </code> + * }</pre> */ @Deprecated protected String getSummary() @@ -1256,9 +1239,7 @@ public class TablePart extends AbstractTablePart orderBy(this.sortedBy); } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#restoreState() - */ + @Override public void restoreState() { if (!this.rememberState) @@ -1286,7 +1267,7 @@ public class TablePart extends AbstractTablePart /** * Aktiviert oder deaktiviert die Tabelle. - * @param enabled true, wenn sie aktiv sein soll. + * @param enabled {@code true}, wenn sie aktiv sein soll. */ public void setEnabled(boolean enabled) { @@ -1297,7 +1278,7 @@ public class TablePart extends AbstractTablePart /** * Prueft, ob die Tabelle aktiv ist. - * @return true, wenn sie aktiv ist. + * @return {@code true}, wenn sie aktiv ist. */ public boolean isEnabled() { @@ -1386,7 +1367,7 @@ public class TablePart extends AbstractTablePart /** * Liefert den Namen der Spalte, nach der gerade sortiert ist * oder null, wenn die Tabelle nicht sortiert ist. - * @return name der Spalte oder null. + * @return name der Spalte oder {@code null}. */ private String getOrderedBy() { @@ -1406,7 +1387,7 @@ public class TablePart extends AbstractTablePart * @param row die Spalte. * @param item das Tabellen-Element. * @param oldValue der bisherige Wert. - * @return der Editor oder NULL, wenn das Bearbeiten nicht erlaubt werden soll. + * @return der Editor oder {@code null}, wenn das Bearbeiten nicht erlaubt werden soll. */ protected Control getEditorControl(int row, TableItem item, final String oldValue) { @@ -1430,9 +1411,6 @@ public class TablePart extends AbstractTablePart return ""; } - /** - * @see de.willuhn.jameica.gui.parts.AbstractTablePart#createFeatureEventContext(de.willuhn.jameica.gui.parts.table.Feature.Event, java.lang.Object) - */ @Override protected Context createFeatureEventContext(Feature.Event e, Object data) { @@ -1492,9 +1470,7 @@ public class TablePart extends AbstractTablePart private class DeleteListener implements de.willuhn.datasource.rmi.Listener { - /** - * @see de.willuhn.datasource.rmi.Listener#handleEvent(de.willuhn.datasource.rmi.Event) - */ + @Override public void handleEvent(final de.willuhn.datasource.rmi.Event e) throws RemoteException { try diff --git a/src/de/willuhn/jameica/messaging/LookupService.java b/src/de/willuhn/jameica/messaging/LookupService.java index 77ce83d..abc1aa3 100644 --- a/src/de/willuhn/jameica/messaging/LookupService.java +++ b/src/de/willuhn/jameica/messaging/LookupService.java @@ -66,25 +66,19 @@ public class LookupService implements MessageConsumer return Application.inServerMode() && Application.getConfig().getMulticastLookup(); } - /** - * @see de.willuhn.jameica.messaging.MessageConsumer#autoRegister() - */ + @Override public boolean autoRegister() { return enabled(); } - /** - * @see de.willuhn.jameica.messaging.MessageConsumer#getExpectedMessageTypes() - */ + @Override public Class[] getExpectedMessageTypes() { return new Class[]{SystemMessage.class}; } - /** - * @see de.willuhn.jameica.messaging.MessageConsumer#handleMessage(de.willuhn.jameica.messaging.Message) - */ + @Override public void handleMessage(Message message) throws Exception { if (!enabled()) @@ -125,9 +119,7 @@ public class LookupService implements MessageConsumer super(); } - /** - * @see de.willuhn.net.MulticastClient#received(java.net.DatagramPacket) - */ + @Override public void received(DatagramPacket packet) throws IOException { InetAddress sender = packet.getAddress(); @@ -171,7 +163,7 @@ public class LookupService implements MessageConsumer /** * Sucht im lokalen Netz nach einem Dienst mit dem angegeben Namen. * @param name Name des Dienstes. - * @return die URL des Dienstes oder <code>null</code>, wenn + * @return die URL des Dienstes oder {@code null}, wenn * er nicht gefunden wurde. */ public static synchronized String lookup(String name) @@ -256,9 +248,7 @@ public class LookupService implements MessageConsumer super.send(name.getBytes()); } - /** - * @see de.willuhn.net.MulticastClient#received(java.net.DatagramPacket) - */ + @Override public void received(DatagramPacket packet) throws IOException { InetAddress sender = packet.getAddress(); diff --git a/src/de/willuhn/jameica/messaging/MessageConsumer.java b/src/de/willuhn/jameica/messaging/MessageConsumer.java index 1bf2222..5bc2aad 100644 --- a/src/de/willuhn/jameica/messaging/MessageConsumer.java +++ b/src/de/willuhn/jameica/messaging/MessageConsumer.java @@ -12,7 +12,8 @@ package de.willuhn.jameica.messaging; /** * Dieses Interface muss implementiert werden, wenn man die Nachrichten * des Messaging-Systems erhalten will. - * WICHTIG: Alle Implementierungen dieses Interfaces muessen sich ueber + * + * <p><b>WICHTIG:</b> Alle Implementierungen dieses Interfaces muessen sich ueber * einen parameterlosen Konstruktor erzeugen lassen. * @author willuhn */ @@ -21,7 +22,7 @@ public interface MessageConsumer /** * Wenn der Message-Consumer nur ganz bestimmte Nachrichten * empfangen will, dann kann er hier die Liste der gewuenschten - * Arten angeben. Liefert die Funktion <code>null</code>, + * Arten angeben. Liefert die Funktion {@code null}, * werden alle Nachrichten an den Consumer zugestellt. * @return Liste der gewuenschten Nachrichtenarten. */ diff --git a/src/de/willuhn/jameica/messaging/package.html b/src/de/willuhn/jameica/messaging/package.html index 0dc692f..eec5ae6 100755 --- a/src/de/willuhn/jameica/messaging/package.html +++ b/src/de/willuhn/jameica/messaging/package.html @@ -23,7 +23,7 @@ implementieren. Beim Start von Jameica ermittelt die MessagingFactory selbstaendig alle existierenden Nachrichten-Verbraucher - und registriert diese.<br/> + und registriert diese.<br> Von nun an kann jede Klasse mittels <code>Application.getMessagingFactory().sendMessage(Message)</code>. eine Nachricht versenden. Alle registrierten diff --git a/src/de/willuhn/jameica/plugin/ConsumerDescriptor.java b/src/de/willuhn/jameica/plugin/ConsumerDescriptor.java index 36efb77..77d7381 100644 --- a/src/de/willuhn/jameica/plugin/ConsumerDescriptor.java +++ b/src/de/willuhn/jameica/plugin/ConsumerDescriptor.java @@ -14,12 +14,13 @@ import net.n3.nanoxml.IXMLElement; /** * Implementierung fuer die Beschreibungen eines Message-Consumers im Manifest. * Wird in der plugin.xml definiert. Beispiel: - * + * + * <pre>{@code * <messaging> * <consumer class="mein.package.MyMessageConsumer" queue="meine.queue" /> * <consumer class="mein.package.MyMessageConsumer" /> * </messaging> - + * }</pre> */ public class ConsumerDescriptor { diff --git a/src/de/willuhn/jameica/plugin/Dependency.java b/src/de/willuhn/jameica/plugin/Dependency.java index 73761ec..2cacc8c 100644 --- a/src/de/willuhn/jameica/plugin/Dependency.java +++ b/src/de/willuhn/jameica/plugin/Dependency.java @@ -29,9 +29,9 @@ public class Dependency implements Serializable * ct. * @param name Name des Plugins. * @param version Versionsnummer. - * Kann mit einem "+" oder "-" vor der Zahl angegeben werden, wenn mindestens - * oder hoechstens die angegebene Version vorliegen muss. - * Der Parameter kann <code>null</code> sein, wenn die Versionsnummer egal ist. + * Kann mit einem "+" oder "-" vor der Zahl angegeben werden, wenn mindestens + * oder hoechstens die angegebene Version vorliegen muss. + * Der Parameter kann {@code null} sein, wenn die Versionsnummer egal ist. */ public Dependency(String name, String version) { @@ -42,10 +42,10 @@ public class Dependency implements Serializable * ct. * @param name Name des Plugins. * @param version Versionsnummer. - * @param required true, wenn die Abhaengigkeit erfuellt sein MUSS (default). - * Kann mit einem "+" oder "-" vor der Zahl angegeben werden, wenn mindestens - * oder hoechstens die angegebene Version vorliegen muss. - * Der Parameter kann <code>null</code> sein, wenn die Versionsnummer egal ist. + * Kann mit einem "+" oder "-" vor der Zahl angegeben werden, wenn mindestens + * oder hoechstens die angegebene Version vorliegen muss. + * Der Parameter kann {@code null} sein, wenn die Versionsnummer egal ist. + * @param required {@code true}, wenn die Abhaengigkeit erfuellt sein MUSS (default). */ public Dependency(String name, String version, boolean required) { @@ -57,10 +57,7 @@ public class Dependency implements Serializable this.required = required; } - - /** - * @see java.lang.Object#toString() - */ + @Override public String toString() { return this.name + ": " + (this.version == null ? "<any>" : this.version.toString()); @@ -68,7 +65,7 @@ public class Dependency implements Serializable /** * Prueft, ob die Abhaengigkeit erfuellt ist. - * @return true, wenn sie erfuellt ist, sonst false. + * @return {@code true}, wenn sie erfuellt ist, sonst {@code false}. */ public boolean check() { @@ -110,8 +107,8 @@ public class Dependency implements Serializable } /** - * Liefert die benoetigte Versionsnummer oder NULL, wenn es egal ist. - * @return die benoetigte Versionsnummer oder NULL, wenn es egal ist. + * Liefert die benoetigte Versionsnummer + * @return Versionsnummer oder {@code null}, wenn es egal ist. */ public String getVersion() { @@ -119,9 +116,9 @@ public class Dependency implements Serializable } /** - * Liefert true, wenn es sich um eine obligatorische Abhaengigkeit handelt. - * Default: true - * @return true, wenn es sich um eine obligatorische Abhaengigkeit handelt. + * Prüft, ob es sich um eine obligatorische Abhaengigkeit handelt. + * <p>Default: {@code true} + * @return {@code true}, wenn es sich um eine obligatorische Abhaengigkeit handelt. */ public boolean isRequired() { @@ -130,10 +127,8 @@ public class Dependency implements Serializable return this.required; } - /** - * Generiert von Eclipse. - * @see java.lang.Object#hashCode() - */ + // autogenerated + @Override public int hashCode() { final int PRIME = 31; @@ -143,10 +138,8 @@ public class Dependency implements Serializable return result; } - /** - * Generiert von Eclipse. - * @see java.lang.Object#equals(java.lang.Object) - */ + // autogenerated + @Override public boolean equals(Object obj) { if (this == obj) diff --git a/src/de/willuhn/jameica/plugin/ExtensionDescriptor.java b/src/de/willuhn/jameica/plugin/ExtensionDescriptor.java index a78d9b3..30728b1 100644 --- a/src/de/willuhn/jameica/plugin/ExtensionDescriptor.java +++ b/src/de/willuhn/jameica/plugin/ExtensionDescriptor.java @@ -17,12 +17,15 @@ import net.n3.nanoxml.IXMLElement; * Ein Extension-Deskriptor beschreibt eine Extension, welche * bei einem Plugin beliegen kann, um die Funktionalitaet eines * anderen Plugins zu erweitern. - * Diese finden sich in der plugin.xml eines Plugins. - * Bsp.: + * Diese finden sich in der <i>plugin.xml</i> eines Plugins. + * + * <p>Bsp.: + * <pre>{@code * <extensions> * <extension class="de.willuhn.jameica.plugin.Extension1" extends="id.extendable.1,id.extendable.2" /> * <extension class="de.willuhn.jameica.plugin.Extension2" extends="id.extendable.3" /> * </extensions> + * }</pre> */ public class ExtensionDescriptor { @@ -58,7 +61,7 @@ public class ExtensionDescriptor * Liefert eine Liste von Extendable-IDs, welche diese Extension * erweitert. * @return Liste von Extendables. - * Die Funktion darf nie <code>null</code> liefern, da sie dann kein + * Die Funktion darf nie {@code null} liefern, da sie dann kein * Extendable erweitern wuerde. Die Extension waere damit nutzlos. */ public String[] getExtendableIDs() @@ -88,7 +91,7 @@ public class ExtensionDescriptor * Parst den Wert des genannten XML-Elements als Array aus einer * kommaseparierten Liste von Werten. * @param element Name des XML-Elements. - * @return Liste der Werte oder NULL. + * @return Liste der Werte oder {@code null}. */ private String[] parseArray(String element) { diff --git a/src/de/willuhn/jameica/plugin/Manifest.java b/src/de/willuhn/jameica/plugin/Manifest.java index 6e2e318..8438258 100644 --- a/src/de/willuhn/jameica/plugin/Manifest.java +++ b/src/de/willuhn/jameica/plugin/Manifest.java @@ -177,9 +177,11 @@ public class Manifest implements Comparable /** * Liefert die Build-Nummer, insofern sie ermittelbar ist. - * Da die Nummer nur im Manifest des Jars steht, kann sie nur dann + * + * <p>Da die Nummer nur im Manifest des Jars steht, kann sie nur dann * ermittelt werden, wenn die Anwendung in ein solches deployed wurde * und der entsprechende Parameter im Manifest des JARs existiert. + * * @return Build-Number. */ public final String getBuildnumber() @@ -189,9 +191,11 @@ public class Manifest implements Comparable /** * Liefert das Build-Datum, insofern es ermittelbar ist. - * Da das Datum nur im Manifest des Jars steht, kann es nur dann + * + * <p>Da das Datum nur im Manifest des Jars steht, kann es nur dann * ermittelt werden, wenn die Anwendung in ein solches deployed wurde * und der entsprechende Parameter im Manifest des JARs existiert. + * * @return Build-Datum. */ public final String getBuildDate() @@ -211,7 +215,7 @@ public class Manifest implements Comparable /** * Liefert den Klassen-Name des Plugins. - * @return Klassen-Name des Plugins oder das DefaultPlugin, wenn keines angegeben ist. + * @return Klassen-Name des Plugins oder vom {@link PlaceholderPlugin}, wenn keines angegeben ist. */ public String getPluginClass() { @@ -233,10 +237,10 @@ public class Manifest implements Comparable } /** - * Liefert true, wenn das Plugin ueber den globalen Classloader von Jameica geladen werden soll. - * @return true, wenn es ueber den globalen Classloader geladen werden soll. + * Liefert zurueck, ob das Plugin ueber den globalen Classloader von Jameica geladen werden soll. + * @return {@code true}, wenn es ueber den globalen Classloader geladen werden soll. * Andernfalls erhaelt es einen exlusiven Classloader. - * Default: True + * Default: {@code true} */ public boolean isShared() { @@ -244,8 +248,8 @@ public class Manifest implements Comparable } /** - * Liefert true, wenn es kein gewoehnliches Plugin-Manifest ist sondern das Manifest von Jameica selbst. - * @return true, wenn es kein gewoehnliches Plugin-Manifest ist sondern das Manifest von Jameica selbst. + * Pruefe, ob es sich um das Manifest von Jameica selbst handelt (und somit kein Plugin-Manifest). + * @return {@code true}, wenn es kein gewoehnliches Plugin-Manifest ist sondern das Manifest von Jameica selbst. */ public boolean isSystemManifest() { @@ -296,7 +300,7 @@ public class Manifest implements Comparable /** * Liefert das Icon des Plugins. * Sollte 64x64 Pixel gross sein. - * @return das Icon oder NULL, wenn keines definiert ist. + * @return das Icon oder {@code null}, wenn keines definiert ist. */ public String getIcon() { @@ -363,8 +367,8 @@ public class Manifest implements Comparable /** * Liefert eine Liste von Service-Desktriptoren zu diesem Plugin. - * @return Liste aller Service-Deskriptoren aus der plugin.xml oder - * <code>null</code> wenn keine definiert sind. + * @return Liste aller Service-Deskriptoren aus der <i>plugins.xml</i> oder + * {@code null} wenn keine definiert sind. */ public ServiceDescriptor[] getServices() { @@ -405,8 +409,8 @@ public class Manifest implements Comparable /** * Liefert eine Liste von Extension-Desktriptoren zu diesem Plugin. - * @return Liste aller Extension-Deskriptoren aus der plugin.xml oder - * <code>null</code> wenn keine definiert sind. + * @return Liste aller Extension-Deskriptoren aus der <i>plugin.xml</i> oder + * {@code null} wenn keine definiert sind. */ public ExtensionDescriptor[] getExtensions() { @@ -425,8 +429,8 @@ public class Manifest implements Comparable /** * Liefert eine Liste von Consumer-Desktriptoren zu diesem Plugin. - * @return Liste aller Consumer-Deskriptoren aus der plugin.xml oder - * <code>null</code> wenn keine definiert sind. + * @return Liste aller Consumer-Deskriptoren aus der <i>plugin.xml</i> oder + * {@code null} wenn keine definiert sind. */ public ConsumerDescriptor[] getMessageConsumers() { @@ -445,7 +449,7 @@ public class Manifest implements Comparable /** * Liefert eine Liste von Messages, die automatisch beim Start versendet werden sollen. - * @return Liste aller Messages oder <code>null</code> wenn keine definiert sind. + * @return Liste aller Messages oder {@code null} wenn keine definiert sind. */ public MessageDescriptor[] getMessages() { @@ -474,12 +478,14 @@ public class Manifest implements Comparable /** * Liste der Plugins, von denen dieses hier direkt abhaengig ist. - * Es werden also nur die direkt abhaengigen Plugins geliefert, nicht jedoch + * + * <p>Es werden also nur die direkt abhaengigen Plugins geliefert, nicht jedoch * die indirekten Abhaengigkeiten. * Wenn die komplette Liste der Abhaengigkeiten ermittelt werden soll (also incl. - * indirekter Abhaengigkeiten), dann muss "getDependencies()" verwendet werden. - * @return Liste von Abhaengigkeiten fuer dieses Plugin. - * Die Funktion liefert nie NULL sondern hoechstens ein leeres Array. + * indirekter Abhaengigkeiten), dann muss {@link #getDependencies()} verwendet werden. + * + * @return Liste von Abhaengigkeiten fuer dieses Plugin. + * Die Funktion liefert nie {@code null} sondern hoechstens ein leeres Array. */ public Dependency[] getDirectDependencies() { @@ -507,12 +513,14 @@ public class Manifest implements Comparable /** * Liste der Plugins, von denen dieses hier direkt oder indirekt abhaengig ist. - * Es werden also nicht nur die direkt abhaengigen Plugins geliefert sondern auch alle - * Plugins, die von diesen wiederrum benoetigt werden. + * + * <p>Es werden also nicht nur die direkt abhaengigen Plugins geliefert, sondern auch alle + * Plugins, die von diesen wiederum benoetigt werden. * Wenn nur die einfache Liste der Abhaengigkeiten ermittelt werden soll (also ohne - * indirekte Abhaengigkeiten), dann muss "getDirectDependencies()" verwendet werden. - * @return Liste von Abhaengigkeiten fuer dieses Plugin. - * Die Funktion liefert nie NULL sondern hoechstens ein leeres Array. + * indirekte Abhaengigkeiten), dann muss {@link #getDirectDependencies()} verwendet werden. + * + * @return Liste von Abhaengigkeiten fuer dieses Plugin. + * Die Funktion liefert nie {@code null} sondern hoechstens ein leeres Array. */ public Dependency[] getDependencies() { @@ -556,33 +564,48 @@ public class Manifest implements Comparable } return found.toArray(new Dependency[found.size()]); } + /** * Prueft, ob das Plugin installiert werden kann. - * Konkret wird hier geprueft: - * - * 1. Ist die richtige Jameica-Version installiert - * 2. Sind die Abhaengigkeiten zu anderen Plugins erfuellt. - * 3. Ist das Plugin ggf. schon installiert, wenn ja - * - kann es ueberschrieben werden? - * - ist die installierte Version nicht neuer als die zu installierende + * + * <p>Konkret wird hier geprueft: + * <ol> + * <li>Ist die richtige Jameica-Version installiert?</li> + * <li>Sind die Abhaengigkeiten zu anderen Plugins erfuellt?</li> + * <li>Ist das Plugin ggf. schon installiert und wenn ja ... + * <ul> + * <li>... kann es ueberschrieben werden?</li> + * <li>... ist die installierte Version nicht neuer als die zu installierende?</li> + * </ul> + * </li> + * </ol> + * * @throws ApplicationException wenn das Plugin nicht installiert werden kann. + * @see #canDeploy(boolean) */ public void canDeploy() throws ApplicationException { this.canDeploy(true); } - + /** * Prueft, ob das Plugin installiert werden kann. - * Konkret wird hier geprueft: - * - * 1. Ist die richtige Jameica-Version installiert - * 2. Sind die Abhaengigkeiten zu anderen Plugins erfuellt. - * 3. Ist das Plugin ggf. schon installiert, wenn ja - * - kann es ueberschrieben werden? - * - ist die installierte Version nicht neuer als die zu installierende - * @param checkDeps true, wenn die Abhaengigkeiten zu anderen Plugins geprueft werden sollen. + * + * <p>Konkret wird hier geprueft: + * <ol> + * <li>Ist die richtige Jameica-Version installiert?</li> + * <li>Sind die Abhaengigkeiten zu anderen Plugins erfuellt?</li> + * <li>Ist das Plugin ggf. schon installiert und wenn ja ... + * <ul> + * <li>... kann es ueberschrieben werden?</li> + * <li>... ist die installierte Version nicht neuer als die zu installierende?</li> + * </ul> + * </li> + * </ol> + * + * @param checkDeps {@code true}, wenn die Abhaengigkeiten zu anderen Plugins geprueft werden sollen. * @throws ApplicationException wenn das Plugin nicht installiert werden kann. + * @see #canDeploy() */ public void canDeploy(boolean checkDeps) throws ApplicationException { @@ -695,7 +718,7 @@ public class Manifest implements Comparable /** * Prueft, ob das Plugin geladen werden konnte. - * @return true, wenn es geladen werden konnte. + * @return {@code true}, wenn es geladen werden konnte. */ public boolean isLoaded() { @@ -785,7 +808,7 @@ public class Manifest implements Comparable { if (deps[i] == null) continue; // ueberspringen - if (otherName.equals(deps[i])) + if (otherName.equals(deps[i].getName())) { Logger.debug("7: " + otherName + " > " + name); return 1; // Wir haengen von dem anderen Plugin ab. Dann muss das andere zuerst geladen werden diff --git a/src/de/willuhn/jameica/plugin/MessageDescriptor.java b/src/de/willuhn/jameica/plugin/MessageDescriptor.java index 0079a72..73e74d3 100644 --- a/src/de/willuhn/jameica/plugin/MessageDescriptor.java +++ b/src/de/willuhn/jameica/plugin/MessageDescriptor.java @@ -20,13 +20,14 @@ import net.n3.nanoxml.IXMLElement; /** * Implementierung fuer die Beschreibungen einer Message im Manifest. * Wird in der plugin.xml definiert. Beispiel: - * + * + * <pre>{@code * <messaging> * <message queue="meine.queue"> * Text der Message * </message> * </messaging> - * + * }</pre> */ public class MessageDescriptor { diff --git a/src/de/willuhn/jameica/plugin/PlaceholderPlugin.java b/src/de/willuhn/jameica/plugin/PlaceholderPlugin.java index db7be89..1d7802c 100644 --- a/src/de/willuhn/jameica/plugin/PlaceholderPlugin.java +++ b/src/de/willuhn/jameica/plugin/PlaceholderPlugin.java @@ -25,7 +25,7 @@ import de.willuhn.util.ApplicationException; * Javascripts. Im Manifest dieser Plugins kann das Attribut "class" * des XML-Elements "plugin" dann einfach weggelassen werden. * Da diese Plugins dennoch eine Klasse bereitstellen muessen, die - * <code>Plugin</code> implementieren, wird dieses PlaceholderPlugin + * {@link Plugin} implementiert, wird dieses PlaceholderPlugin * verwendet. Es erzeugt via Reflection-Proxy dynamisch generierte * Klassen, die dieses Interface implementieren. */ @@ -44,7 +44,7 @@ public class PlaceholderPlugin implements Plugin } /** - * Erzeugt eine neue generische Platzhalter-Instanz, die von AbstractPlugin abgeleitet ist. + * Erzeugt eine neue generische Platzhalter-Instanz, die von {@link AbstractPlugin} abgeleitet ist. * @param manifest das Manifest des Platzhalter-Plugins. * @return die neue Plugin-Instanz. */ @@ -55,57 +55,43 @@ public class PlaceholderPlugin implements Plugin return (Plugin) Proxy.newProxyInstance(loader != null ? loader : Application.getClassLoader(),new Class[]{Plugin.class},handler); } - /** - * @see de.willuhn.jameica.plugin.Plugin#getResources() - */ + @Override public PluginResources getResources() { return this.res; } - /** - * @see de.willuhn.jameica.plugin.Plugin#getManifest() - */ + @Override public Manifest getManifest() { return this.manifest; } - /** - * @see de.willuhn.jameica.plugin.Plugin#init() - */ + @Override public void init() throws ApplicationException { Application.getMessagingFactory().getMessagingQueue("plugin." + this.manifest.getName() + ".init").sendSyncMessage(new QueryMessage(this)); } - /** - * @see de.willuhn.jameica.plugin.Plugin#install() - */ + @Override public void install() throws ApplicationException { Application.getMessagingFactory().getMessagingQueue("plugin." + this.manifest.getName() + ".install").sendSyncMessage(new QueryMessage(this)); } - /** - * @see de.willuhn.jameica.plugin.Plugin#update(de.willuhn.jameica.plugin.Version) - */ + @Override public void update(Version oldVersion) throws ApplicationException { Application.getMessagingFactory().getMessagingQueue("plugin." + this.manifest.getName() + ".update").sendSyncMessage(new QueryMessage(new Object[]{this,oldVersion})); } - /** - * @see de.willuhn.jameica.plugin.Plugin#shutDown() - */ + @Override public void shutDown() { Application.getMessagingFactory().getMessagingQueue("plugin." + this.manifest.getName() + ".shutdown").sendSyncMessage(new QueryMessage(this)); } - /** - * @see de.willuhn.jameica.plugin.Plugin#uninstall(boolean) - */ + @Override public void uninstall(boolean deleteUserData) throws ApplicationException { Application.getMessagingFactory().getMessagingQueue("plugin." + this.manifest.getName() + ".uninstall").sendSyncMessage(new QueryMessage(new Object[]{this,deleteUserData})); @@ -128,9 +114,7 @@ public class PlaceholderPlugin implements Plugin this.redirect = redirect; } - /** - * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) - */ + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return BeanUtil.invoke(redirect,method.getName(),args); diff --git a/src/de/willuhn/jameica/plugin/Plugin.java b/src/de/willuhn/jameica/plugin/Plugin.java index adf71b0..3816602 100644 --- a/src/de/willuhn/jameica/plugin/Plugin.java +++ b/src/de/willuhn/jameica/plugin/Plugin.java @@ -76,7 +76,7 @@ public interface Plugin public void shutDown(); /** - * Wird aufgerufen, wenn das Plugin ueber Datei->Einstellungen->Plugins + * Wird aufgerufen, wenn das Plugin ueber <i>Datei->Einstellungen->Plugins</i> * deinstalliert wird. Hier kann das Plugin bei Bedarf eigene Aufraeum-Arbeiten durchfuehren. * VOR dem Aufruf dieser Funktion wird "shutDown" aufgerufen. Falls dort also * z.Bsp. Datenbankverbindungen geschlossen wurden, dann stehen diese hier nicht diff --git a/src/de/willuhn/jameica/plugin/PluginLoader.java b/src/de/willuhn/jameica/plugin/PluginLoader.java index 70956ea..ab08cbf 100644 --- a/src/de/willuhn/jameica/plugin/PluginLoader.java +++ b/src/de/willuhn/jameica/plugin/PluginLoader.java @@ -52,22 +52,21 @@ import de.willuhn.util.ProgressMonitor; */ public final class PluginLoader { - // Liste von Plugins, die beim Laden ignoriert werden sollen, weil sie inzwischen Bestandteil von Jameica sind + /** Liste von Plugins, die beim Laden ignoriert werden sollen, weil sie inzwischen Bestandteil von Jameica sind */ private final static Set<String> obsoletePlugins = new HashSet<String>() {{ add("jameica.scripting"); add("jameica.update"); }}; - // Liste mit allen gefundenen Plugins. + /** Liste mit allen gefundenen Plugins. */ // Die Reihenfolge aus de.willuhn.jameica.system.Config.properties bleibt private List<Manifest> plugins = new ArrayList<Manifest>(); - // Initialisierungsmeldungen von Plugins. + /** Initialisierungsmeldungen von Plugins. */ private Map<Manifest,Throwable> initErrors = new HashMap<Manifest,Throwable>(); - // Den brauchen wir, damit wir Updates an Plugins triggern und deren - // Update-Methode aufrufen koennen. + /** Den brauchen wir, damit wir Updates an Plugins triggern und deren Update-Methode aufrufen koennen. */ private Settings updateChecker = null; /** @@ -463,7 +462,7 @@ public final class PluginLoader /** * Liefert eine Liste mit allen installierten Plugins. - * @return Liste aller installierten Plugins. Die Elemente sind vom Typ <code>AbstractPlugin</code>. + * @return Liste aller installierten Plugins. Die Elemente sind vom Typ {@link AbstractPlugin}. */ public List<Plugin> getInstalledPlugins() { @@ -563,7 +562,7 @@ public final class PluginLoader * Liefert die Instanz des Plugins mit der angegebenen Klasse. * @param <T> der Typ des Plugins. * @param plugin Klasse des Plugins. - * @return Instanz des Plugins oder <code>null</code> wenn es nicht + * @return Instanz des Plugins oder {@code null} wenn es nicht * installiert ist. */ public <T extends Plugin> T getPlugin(Class<? extends Plugin> plugin) @@ -577,7 +576,7 @@ public final class PluginLoader /** * Liefert die Instanz des Plugins mit der angegebenen Klassennamen. * @param pluginClass Klassenname des Plugins. - * @return Instanz des Plugins oder <code>null</code> wenn es nicht + * @return Instanz des Plugins oder {@code null} wenn es nicht * installiert ist. */ public Plugin getPlugin(String pluginClass) @@ -591,11 +590,13 @@ public final class PluginLoader /** * Versucht, anhand der Klasse herauszufinden, zu welchem Plugins sie gehoert. - * Falls die Klasse in mehreren Plugins enthalten ist und diese Plugins einen + * + * <p>Falls die Klasse in mehreren Plugins enthalten ist und diese Plugins einen * gemeinsamen Classloader nutzen (was bei den bisherigen und meisten Plugins * meist der Fall ist), kann das Ergebnis durchaus variieren. + * * @param c die zu testende Klasse. - * @return das Plugin oder <code>null</code>, wenn es nicht ermittelbar ist + * @return das Plugin oder {@code null}, wenn es nicht ermittelbar ist * oder zu einem Fehler fuehrte. Der Fehler wird im Jameica-Log protokolliert. */ public Plugin findByClass(Class c) @@ -646,12 +647,12 @@ public final class PluginLoader * Prueft, ob das angegebene Plugin installiert ist <b>und</b> erfolgreich * initialisiert ist. * @param pluginClass vollstaeniger Klassenname des Plugins. Warum hier nicht ein - * Class-Objekt uebergeben wird? Wuerde das Plugin mittels <code>PluginLoader.isInstalled(NeededPlugin.class)</code> - * pruefen wollen, ob das benoetigte Plugin installiert ist, dann wuerde bereits das <code>NeededPlugin.class</code> - * vom SystemClassLoader der JVM mit einer ClassNotFoundException aufgeben. Da wir es hier mit + * Class-Objekt uebergeben wird? Wuerde das Plugin mittels {@code PluginLoader.isInstalled(NeededPlugin.class)} + * pruefen wollen, ob das benoetigte Plugin installiert ist, dann wuerde bereits das {@code NeededPlugin.class} + * vom SystemClassLoader der JVM mit einer {@link ClassNotFoundException} aufgeben. Da wir es hier mit * dynamisch geladenen Klassen zu tun haben, sind die dem SystemClassLoader nicht bekannt sondern nur - * unserem eigenen, der via <code>Application.getClassLoder()</code> bezogen werden kann. - * @return true, wenn es installiert <b>und</b> aktiv ist. + * unserem eigenen, der via {@link Application#getClassLoader()} bezogen werden kann. + * @return {@code true}, wenn es installiert <b>und</b> aktiv ist. */ public boolean isInstalled(String pluginClass) { @@ -875,7 +876,7 @@ public final class PluginLoader } /** - * Deinstalliert ein Plugin nicht sofort sondern markiert es nur zur Loeschung. + * Deinstalliert ein Plugin nicht sofort, sondern markiert es nur zur Loeschung. * Das eigentliche Loeschen geschieht dann erst beim naechsten Start. * @param manifest das Plugin, welches zur Loeschung vorgemerkt wird. * @throws ApplicationException diff --git a/src/de/willuhn/jameica/plugin/ServiceDescriptor.java b/src/de/willuhn/jameica/plugin/ServiceDescriptor.java index a6335fc..8090cd9 100644 --- a/src/de/willuhn/jameica/plugin/ServiceDescriptor.java +++ b/src/de/willuhn/jameica/plugin/ServiceDescriptor.java @@ -19,13 +19,16 @@ import net.n3.nanoxml.IXMLElement; * eines Services, welcher von einem Plugin zur Verfuegung * gestellt werden kann. * Diese finden sich in der plugin.xml eines jeden Plugins. - * Bsp.: + * + * <p>Bsp.: + * <pre>{@code * <services> * <service name="service 1" class="de.willuhn.jameica.plugin.Service1" * autostart="true" depends="service 2" /> * <service name="service 2" class="de.willuhn.jameica.plugin.Service2" * autostart="false" /> * </services> + * }</pre> */ public class ServiceDescriptor { @@ -58,10 +61,12 @@ public class ServiceDescriptor /** * Liefert den Namen der Java-Klasse des Services. - * @return Name der Klasse. - * Hier muss keine Implementierung angegeben werden. Ist ein + * + * <p><b>HINWEIS:</b>Hier muss keine Implementierung angegeben werden. Ist ein * Interface eingetragen, sucht Jameica selbstaendig die * zugehoerige Implementierung. + * + * @return Name der Klasse. */ public String getClassname() { @@ -74,7 +79,7 @@ public class ServiceDescriptor /** * Legt fest, ob der Service beim Starten von Jameica automatisch * gestartet werden soll. - * @return true, wenn er automatisch gestartet werden soll. + * @return {@code true}, wenn er automatisch gestartet werden soll. */ public boolean autostart() { @@ -85,9 +90,8 @@ public class ServiceDescriptor /** * Liefert eine Liste von Service-Namen, von denen dieser Service * abhaengig ist. - * @return Liste von Services, die vorher instanziiert werden muessen. - * Kann <code>null</code> liefern, wenn der Service von keinen - * anderen Services abhaengig ist. + * @return Liste von Services, die vorher instanziiert werden muessen oder + * {@code null}, wenn der Service von keinen anderen Services abhaengig ist. */ public String[] depends() { @@ -114,7 +118,7 @@ public class ServiceDescriptor /** * Legt fest, ob der Service im Netzwerk freigegeben werden soll. - * @return true, wenn er freigegeben werden soll. + * @return {@code true}, wenn er freigegeben werden soll. */ public boolean share() { diff --git a/src/de/willuhn/jameica/reminder/Reminder.java b/src/de/willuhn/jameica/reminder/Reminder.java index 722ab70..eaffcb8 100644 --- a/src/de/willuhn/jameica/reminder/Reminder.java +++ b/src/de/willuhn/jameica/reminder/Reminder.java @@ -19,7 +19,7 @@ import java.util.Map; * Ein einzelner Reminder. * Das Erstellen und Speichern des Reminders geschieht beispielhaft so: * - * <pre> + * <pre>{@code * String channel = "mein.test.channel"; * Date due = new Date(System.currentTimeMillis() + (7 * 24 * 60 * 60 * 1000L)); * Map<String,Serializable> data = new HashMap<String,Serializable>(); @@ -30,11 +30,11 @@ import java.util.Map; * * ReminderService service = (ReminderService) Application.getBootloader().getBootable(ReminderService.class); * String uuid = service.getDefaultProvider().add(reminder); - * - * Die UUID kann verwendet werden, um den Reminder zu loeschen, bevor er ausgeloest wird. - * Bei Erreichen der Faelligkeit sendet der Reminder-Service eine QueryMessage - * mit den Nutzdaten an den angegebenen Channel. - * </pre> + * }</pre> + * + * Die UUID kann verwendet werden, um den Reminder zu loeschen, bevor er ausgeloest wird. + * Bei Erreichen der Faelligkeit sendet der Reminder-Service eine QueryMessage + * mit den Nutzdaten an den angegebenen Channel. */ public final class Reminder implements Serializable { diff --git a/src/de/willuhn/jameica/reminder/ReminderStorageProvider.java b/src/de/willuhn/jameica/reminder/ReminderStorageProvider.java index 5a97cae..f616ce8 100644 --- a/src/de/willuhn/jameica/reminder/ReminderStorageProvider.java +++ b/src/de/willuhn/jameica/reminder/ReminderStorageProvider.java @@ -53,7 +53,8 @@ public interface ReminderStorageProvider /** * Liefert eine Liste aller Reminder im angegebenen Zeitraum. - * Die Funktion findet auch wiederkehrende Reminder, insofern mindestens eine + * + * <p>Die Funktion findet auch wiederkehrende Reminder, insofern mindestens eine * geplante Ausfuehrung im angegebenen Zeitraum liegt. Befinden sich in dem Zeitraum * mehrere Termine fuer den Reminder, dann ist er in der Map dennoch nur einmal * enthalten, da alle weiteren Termine dieses Reminders ja die selbe UUID haben und in @@ -61,18 +62,19 @@ public interface ReminderStorageProvider * Es ist also Sache des Aufrufers, zu pruefen, ob unter den zurueckgelieferten Termine * welche mit Wiederholungen enthalten sind und diese eventuell ebenfalls noch im * Zeitfenster liegen. Das kann beispielsweise wie folgt geschehen: - * - * <code> + * + * <pre>{@code * ReminderInterval ri = reminder.getReminderInterval(); * if (ri != null) * { * List<Date> termine = ri.getDates(reminder.getDate(),from,to); * } - * </code> - * - * Wiederkehrende Reminder mit Ende-Datum werden hier noch nicht beruecksichtigt. + * }</pre> + * + * <p>Wiederkehrende Reminder mit Ende-Datum werden hier noch nicht beruecksichtigt. * Sie werden also mit zurueckgeliefert, als wenn sie kein Ende-Datum haetten. Es - * ist dann Aufgabe des Aufrufers, diese rauszufischen, wenn das Ende-Datum ueberschritten ist. + * ist dann Aufgabe des Aufrufers, diese rauszufischen, wenn das Ende-Datum ueberschritten ist. + * * @param queue Angabe der Queue, in dem sich die Reminder befinden muessen (optional). * Ist keine Queue angegeben, werden die Reminder aller Queues geliefert. * @param from Start-Datum des Zeitraumes (optional). diff --git a/src/de/willuhn/jameica/search/SearchProvider.java b/src/de/willuhn/jameica/search/SearchProvider.java index e4d1d48..73e04fe 100644 --- a/src/de/willuhn/jameica/search/SearchProvider.java +++ b/src/de/willuhn/jameica/search/SearchProvider.java @@ -18,10 +18,12 @@ import de.willuhn.util.ApplicationException; /** * Interface fuer einen Provider, der von der Suchmaschine abgefragt wird. - * Das Interface muss lediglich implementiert werden, um automatisch + * + * <p>Das Interface muss lediglich implementiert werden, um automatisch * in der Suchmaschine registriert zu werden. - * Die Implementierungen muessen einen parameterlosen Konstruktor mit - * dem Modifier "public" besitzen, um geladen werden zu koennen + * + * <p>Die Implementierungen muessen einen parameterlosen Konstruktor mit + * dem Modifier {@code public} besitzen, um geladen werden zu koennen * (Bean-Spezifikation). */ public interface SearchProvider @@ -35,7 +37,7 @@ public interface SearchProvider /** * Stellt eine Suchanfrage an den Provider. * @param search der Suchbegriff. - * @return Liste der Ergebnisse als Objekte vom Typ "Result" oder <code>null</code>, wenn nichts gefunden wurde. + * @return Liste der Ergebnisse als Objekte vom Typ {@link Result} oder {@code null}, wenn nichts gefunden wurde. * @throws RemoteException * @throws ApplicationException */ diff --git a/src/de/willuhn/jameica/security/JameicaAuthenticator.java b/src/de/willuhn/jameica/security/JameicaAuthenticator.java index fa42f06..b2475fc 100644 --- a/src/de/willuhn/jameica/security/JameicaAuthenticator.java +++ b/src/de/willuhn/jameica/security/JameicaAuthenticator.java @@ -89,14 +89,17 @@ public class JameicaAuthenticator extends Authenticator } /** - * Ueber diese Funktion koennen Properties des Authentifizierungs-Requqests - * abgefragt werden. Die unten aufgerufenen Funktionen sind leider alle - * protected final, sodass sie nur von abgeleiteten Klassen aufgerufen + * Ueber diese Funktion koennen Properties des Authentifizierungs-Requests + * abgefragt werden. + * + * <p>Die notwendigen Funktionen sind leider alle {@code protected final}, + * sodass sie nur von abgeleiteten Klassen aufgerufen * werden koennen. Wir wollen den Authentifizierungsdialog aber nicht * direkt hier drin sondern im Jameica-Callback implementieren. Daher machen * wir sie mit folgender Funktion auch von aussen abrufbar. + * * @param param Name des Parameters. - * @return der Wert des Parameters oder NULL, wenn er nicht existiert oder keinen Wert hat. + * @return der Wert des Parameters oder {@code null}, wenn Parameter nicht existiert oder keinen Wert hat. */ public Object getRequestParam(RequestParam param) { diff --git a/src/de/willuhn/jameica/security/JameicaTrustManager.java b/src/de/willuhn/jameica/security/JameicaTrustManager.java index 501b464..b76ee27 100644 --- a/src/de/willuhn/jameica/security/JameicaTrustManager.java +++ b/src/de/willuhn/jameica/security/JameicaTrustManager.java @@ -104,9 +104,7 @@ public class JameicaTrustManager implements X509TrustManager return this.systemTrustManager; } - /** - * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String) - */ + @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { if (this.parentTrustManager != null) @@ -131,9 +129,7 @@ public class JameicaTrustManager implements X509TrustManager } } - /** - * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String) - */ + @Override public void checkServerTrusted(X509Certificate[] certificates, String authType) throws CertificateException { if (this.parentTrustManager != null) @@ -282,9 +278,7 @@ public class JameicaTrustManager implements X509TrustManager } } - /** - * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers() - */ + @Override public X509Certificate[] getAcceptedIssuers() { try diff --git a/src/de/willuhn/jameica/security/SSLFactory.java b/src/de/willuhn/jameica/security/SSLFactory.java index 2d20a73..858341f 100644 --- a/src/de/willuhn/jameica/security/SSLFactory.java +++ b/src/de/willuhn/jameica/security/SSLFactory.java @@ -92,7 +92,6 @@ public class SSLFactory * * Siehe auch * https://www.willuhn.de/products/jameica/updates/jameica.update-pem.crt - * */ private final static String CERT_UPDATES = "-----BEGIN CERTIFICATE-----\n" + @@ -419,7 +418,8 @@ public class SSLFactory /** * Liefert das X.509-Zertifikat der Jameica-Installation. * @return X.509-Zertifikat. - * @throws Exception + * @throws java.security.KeyStoreException falls kein Zugriff auf Keystore + * @throws Exception siehe {@link #getKeyStore()} */ public synchronized X509Certificate getSystemCertificate() throws Exception { @@ -487,7 +487,8 @@ public class SSLFactory /** * Liefert eine Liste aller installierten Zertifikate <b>ausser</b> dem Jameica-eigenen System-Zertifikat. * @return Liste der installieren Zertifikate. - * @throws Exception + * @throws java.security.KeyStoreException falls kein Zugriff auf Keystore + * @throws Exception siehe {@link #getKeyStore()} */ public synchronized X509Certificate[] getTrustedCertificates() throws Exception { @@ -513,7 +514,8 @@ public class SSLFactory * kann stattdessen {@link SSLFactory#getSystemCertificate()} verwendet werden. * @param alias Alias des Zertifikats. * @return das Zertifikat oder NULL, wenn es nicht gefunden wurde. - * @throws Exception + * @throws java.security.KeyStoreException falls kein Zugriff auf Keystore + * @throws Exception siehe {@link #getKeyStore()} */ public X509Certificate getTrustedCertificate(String alias) throws Exception { @@ -575,7 +577,11 @@ public class SSLFactory /** * Liefert den Keystore mit dem Zertifikat. * @return Keystore - * @throws Exception + * @throws IOException falls Keystore nicht existiert oder kein Zugriff + * @throws java.security.KeyStoreException siehe {@link KeyStore#getInstance(String)} + * @throws java.security.NoSuchAlgorithmException falls es Probleme beim Integritaetscheck gab + * @throws java.security.cert.CertificateException falls Zertifikate nicht aus dem Keystore geladen werden konnten + * @throws Exception falls falsches Passwort (siehe {@link ApplicationCallback#getPassword()}) */ public synchronized KeyStore getKeyStore() throws Exception { @@ -697,7 +703,8 @@ public class SSLFactory /** * Liefert die Certificate-Factory. * @return die Certificate-Factory. - * @throws Exception + * @throws java.security.cert.CertificateException falls Algorithmus nicht unterstützt wird (siehe {@link CertificateFactory}) + * @throws java.security.NoSuchProviderException falls Provider nicht unterstützt wird (siehe {@link CertificateFactory}) */ public synchronized CertificateFactory getCertificateFactory() throws Exception { @@ -722,7 +729,7 @@ public class SSLFactory * Fuegt dem Keystore ein Zertifikat hinzu und uebernimmt dabei auch alle noetigen Sicherheitsabfragen. * @param cert das Zertifikat. * @return der Alias-Name, unter dem das Zertifikat im Keystore abgelegt wurde. - * Die Funktion liefert NIE NULL sondern wirft stattdessen eine {@link OperationCanceledException}. + * Die Funktion liefert NIE {@code null} sondern wirft stattdessen eine {@link OperationCanceledException}. * @throws Exception */ public synchronized String addTrustedCertificate(X509Certificate cert) throws Exception diff --git a/src/de/willuhn/jameica/security/Wallet.java b/src/de/willuhn/jameica/security/Wallet.java index 0111a1e..dc1ea13 100644 --- a/src/de/willuhn/jameica/security/Wallet.java +++ b/src/de/willuhn/jameica/security/Wallet.java @@ -35,15 +35,15 @@ import de.willuhn.logging.Logger; * Liefert eine Art Brieftasche, ueber die andere Klassen Daten * verschluesselt abspeichern koennen. * - * HINWEIS: Das Wallet verwendet zum Verschluesseln per Default den asymmetrischen + * <p><b>HINWEIS:</b> Das Wallet verwendet zum Verschluesseln per Default den asymmetrischen * RSA-Algorithmus (es sei denn, es wurde explizit eine andere Engine angegeben). * Es ist im Default-Fall also nicht fuer groessere Daten (Dateien, Streams, etc.) * geeignet sondern typischerweise fuer Passwoerter. * - * Will zum Beispiel ein Plugin irgendwelche Passwort-Informationen + * <p>Will zum Beispiel ein Plugin irgendwelche Passwort-Informationen * sicher speichern, dann kann es mittels folgenden Codes ein * Wallet erzeugen: - * <code> + * <pre>{@code * // erzeugt eine neue Wallet-Datei in ~/.jameica/cfg mit dem * // Dateinamen "beliebige.Klasse.wallet2" * Wallet wallet = new Wallet(beliebige.Klasse.class); @@ -51,7 +51,7 @@ import de.willuhn.logging.Logger; * wallet.set("passwort","geheim"); * // Auslesen des Passwortes "geheim". * String password = wallet.getString("passwort"); - * </code> + * }</pre> */ public final class Wallet { @@ -98,7 +98,7 @@ public final class Wallet * Speichert einen Datensatz verschluesselt in dem Wallet. * @param alias Alias-Name. * @param data Nutzdaten, die verschluesselt gespeichert werden sollen - * oder <code>null</code> wenn der Wet geloescht werden soll. + * oder {@code null} wenn der Wert geloescht werden soll. * @throws Exception */ public void set(String alias, Serializable data) throws Exception @@ -142,7 +142,7 @@ public final class Wallet /** * Loescht alle Nutzdaten, deren Alias-Name mit dem angegebenen beginnt. - * Wird als Prefix null oder ein Leerstring angegeben, wird das komplette + * Wird als Prefix {@code null} oder ein Leerstring angegeben, wird das komplette * Wallet geleert. * @param aliasPrefix Alias-Prefix. * @throws Exception @@ -172,10 +172,10 @@ public final class Wallet /** * Liefert alle Keys, deren Name mit dem Prefix beginnt. - * Wird null uebergeben, werden alle Keys zurueckgeliefert. - * Die Funktion liefert nie null sondern hoechstens ein leeres Array. + * Wird {@code null} uebergeben, werden alle Keys zurueckgeliefert. * @param aliasPrefix Alias-Prefix. * @return Liste der gefundenen Keys. + * Die Funktion liefert nie {@code null} sondern hoechstens ein leeres Array. * @throws Exception */ public synchronized String[] getAll(String aliasPrefix) throws Exception diff --git a/src/de/willuhn/jameica/services/ClassService.java b/src/de/willuhn/jameica/services/ClassService.java index 4fe40d1..246b7fd 100644 --- a/src/de/willuhn/jameica/services/ClassService.java +++ b/src/de/willuhn/jameica/services/ClassService.java @@ -134,7 +134,7 @@ public class ClassService implements Bootable Manifest mf = plugins.get(i); if (mf == null || manifest.getName().equals(mf.getName())) // sind wir selbst continue; - for (int k=0;k<deps.length;++i) + for (int k=0;k<deps.length;++k) { if (deps[k].getName().equals(mf.getName()) && mf.isLoaded()) { diff --git a/src/de/willuhn/jameica/services/SearchService.java b/src/de/willuhn/jameica/services/SearchService.java index 41d91e7..44f39f3 100644 --- a/src/de/willuhn/jameica/services/SearchService.java +++ b/src/de/willuhn/jameica/services/SearchService.java @@ -33,17 +33,13 @@ public class SearchService implements Bootable private ArrayList<SearchProvider> providers = null; private static Settings settings = new Settings(SearchService.class); - /** - * @see de.willuhn.boot.Bootable#depends() - */ + @Override public Class[] depends() { return new Class[]{PluginService.class}; } - /** - * @see de.willuhn.boot.Bootable#init(de.willuhn.boot.BootLoader, de.willuhn.boot.Bootable) - */ + @Override public void init(BootLoader loader, Bootable caller) throws SkipServiceException { this.providers = new ArrayList<SearchProvider>(); @@ -86,9 +82,7 @@ public class SearchService implements Bootable } } - /** - * @see de.willuhn.boot.Bootable#shutdown() - */ + @Override public void shutdown() { this.providers = null; @@ -96,8 +90,10 @@ public class SearchService implements Bootable /** * Fuehrt eine Suche ueber die Such-Provider durch. - * Aus Perfomanz-Gruenden beginnt die Suche nicht sofort + * + * <p>Aus Perfomanz-Gruenden beginnt die Suche nicht sofort * sondern erst, wenn die SearchResults vom Aufrufer ausgewertet werden. + * * @param text der Suchbegriff. * @return das Suchergebnis. * Jedes SearchResult enthaelt die Suchergebnisse fuer einen Provider. @@ -127,7 +123,7 @@ public class SearchService implements Bootable /** * Liefert eine Liste der SerchProvider. - * @return Liste der SearchProvider. Nie <code>null</code> sondern + * @return Liste der SearchProvider. Nie {@code null} sondern * hoechstens eine leere Liste. */ public SearchProvider[] getSearchProviders() @@ -140,7 +136,7 @@ public class SearchService implements Bootable /** * Aktiviert oder deaktiviert die Suche in einem einzelnen Searchprovider. * @param provider der Provider. - * @param enabled false, wenn die Suche in dem Provider deaktiviert werden soll, sonst true. + * @param enabled {@code false}, wenn die Suche in dem Provider deaktiviert werden soll, sonst {@code true}. */ public void setEnabled(SearchProvider provider,boolean enabled) { @@ -152,7 +148,7 @@ public class SearchService implements Bootable /** * Prueft, ob der angegebene Search-Provider aktiviert ist. * @param provider Search-Provider. - * @return true, wenn er aktiv ist, sonst false. + * @return {@code true}, wenn er aktiv ist, sonst {@code false}. */ public boolean isEnabled(SearchProvider provider) { diff --git a/src/de/willuhn/jameica/system/ApplicationCallback.java b/src/de/willuhn/jameica/system/ApplicationCallback.java index 702c1f9..6effdbd 100644 --- a/src/de/willuhn/jameica/system/ApplicationCallback.java +++ b/src/de/willuhn/jameica/system/ApplicationCallback.java @@ -21,9 +21,12 @@ import de.willuhn.util.ProgressMonitor; /** * Dieses Interface beschreibt Funktionen, die von Jameica * aufgerufen werden, um mit dem Benutzer zu interagieren. - * Dies betrifft Informationen, die den Jameica-Kern selbst + * + * <p>Dies betrifft Informationen, die den Jameica-Kern selbst * betreffen und daher sowohl im Server- als auch im GUI- - * Mode abgefragt werden muessen. Klassisches Beispiel: + * Mode abgefragt werden muessen. + * + * <p>Klassisches Beispiel: * Jameica legt beim Start ein Lock-File an, um sicherzustellen, * dass die Anwendung nicht zweimal gleichzeitig gestartet wird. * Existiert das Lock-File bereits, fragt Jameica den Benutzer, @@ -36,27 +39,28 @@ public interface ApplicationCallback * bereits existiert. Es ist Sache der Implementierung, dies * dem Benutzer darzulegen. * @param lockfile Pfad und Dateiname des Lockfiles. - * @return true, wenn der Start von Jameica dennoch forgesetzt - * werden soll. False, wenn der Start abgebrochen werden soll. + * @return {@code true}, wenn der Start von Jameica dennoch fortgesetzt + * werden soll. {@code false}, wenn der Start abgebrochen werden soll. */ public boolean lockExists(String lockfile); /** * Liefert den eingegebenen Benutzernamen, insofern der Start im * Masterpasswort-Dialog mit Benutzername erfolgte. - * @return der eingegebene Username oder NULL. - * Oder Customizing liefert die Funktion immer NULL. + * @return der eingegebene Username oder {@code null}. */ public String getUsername(); /** * Wird beim ersten Start von Jameica aufgerufen, um ein * neues Master-Passwort festzulegen. - * Es ist dabei der implementierenden Klasse ueberlassen, wie + * + * <p>Es ist dabei der implementierenden Klasse ueberlassen, wie * diese Abfrage aussieht. Sprich: Ob sie nun nur ein Eingabefeld * zur Vergabe des Passwortes anzeigt oder zwei, wovon letzteres - * zur Passwort-Wiederholung (Vermeidung von Tippfehlern), ist + * zur Passwort-Wiederholung (Vermeidung von Tippfehlern) dient, ist * der Implementierung ueberlassen. + * * @return das neu zu verwendende Passwort. * @throws Exception */ @@ -64,9 +68,11 @@ public interface ApplicationCallback /** * Liefert das Master-Passwort der Jameica-Installation. - * Es ist der implementierenden Klasse ueberlassen, das eingegebene + * + * <p>Es ist der implementierenden Klasse ueberlassen, das eingegebene * Passwort ueber die Dauer der aktuellen Jameica-Sitzung zu cachen, um den * Benutzer nicht dauernd mit der Neueingabe des Passwortes zu nerven. + * * @return das existierende Passwort. * @throws Exception */ @@ -74,9 +80,11 @@ public interface ApplicationCallback /** * Liefert das Master-Passwort der Jameica-Installation. - * Es ist der implementierenden Klasse ueberlassen, das eingegebene + * + * <p>Es ist der implementierenden Klasse ueberlassen, das eingegebene * Passwort ueber die Dauer der aktuellen Jameica-Sitzung zu cachen, um den * Benutzer nicht dauernd mit der Neueingabe des Passwortes zu nerven. + * * @param verifier optionaler Login-Verifier, der von der implementierenden Klasse * verwendet werden kann, um das Passwort zu auf Korrektheit pruefen, bevor * die Methode verlassen wird. @@ -87,15 +95,19 @@ public interface ApplicationCallback /** * Ueber diese Funktion kann das Passwort des Keystores geaendert werden. - * Alles, was die implementierende Klasse zu tun hat, ist einen + * + * <p>Alles, was die implementierende Klasse zu tun hat, ist einen * Dialog zur Passwort-Aenderung anzuzeigen und von nun an - * in der Funktion <code>getPassword()</code> das neue Passwort zu + * in der Funktion {@link #getPassword()} das neue Passwort zu * liefern. - * Nochmal: Es ist nicht Aufgabe des ApplicationCallbacks, das Passwort - * im System zu aendern sondern lediglich das neue Passwort vom Benutzer - * abzufragen und es anschliessend ueber <code>getPassword()</code> + * + * <p>Nochmal: Es ist <b>nicht</b> Aufgabe des ApplicationCallbacks, das Passwort + * im System zu aendern, sondern lediglich das neue Passwort vom Benutzer + * abzufragen und es anschliessend ueber {@link #getPassword()} * zur Verfuegung zu stellen. * @throws Exception + * @see #getPassword() + * @see #getPassword(LoginVerifier) */ public void changePassword() throws Exception; @@ -146,23 +158,25 @@ public interface ApplicationCallback /** * Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll. * @param question Die anzuzeigende Frage. - * @return true fuer ja, false fuer nein. + * @return {@code true} fuer ja, {@code false} fuer nein. * @throws Exception */ public boolean askUser(String question) throws Exception; /** * Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll. - * Hintergrund. Jameica speichert <code>question</code> als Key in einer Properties-Datei, + * + * <p>Hintergrund: Jameica speichert {@code question} als Key in einer Properties-Datei, * falls der User die Option "Frage nicht mehr anzeigen" aktiviert hat. Enthaelt die * Frage nun aber variablen Text, wuerde die selbe Frage immer wieder kommen - nur weil * ein paar Variablen anders sind und somit der Key in der Properties-Datei nicht mehr * uebereinstimmt. Daher kann man stattdessen diese Funktion hier verwenden. Im Text * benutzt man (wie bei {@link I18N#tr(String, String[])}) die Platzhalter "{0}","{1}",... * und uebergibt als String-Array die einzutragenden Variablen. + * * @param question Die anzuzeigende Frage. * @param variables mittels MessageFormat einzutragende Variablen. - * @return true fuer ja, false fuer nein. + * @return {@code true} fuer ja, {@code false} fuer nein. * @throws Exception */ public boolean askUser(String question, String[] variables) throws Exception; @@ -170,25 +184,27 @@ public interface ApplicationCallback /** * Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll. * @param question Die anzuzeigende Frage. - * @param storeAnswer true, wenn die Option "Diese Frage künftig nicht mehr anzeigen" angezeigt werden soll. - * @return true fuer ja, false fuer nein. + * @param storeAnswer {@code true}, wenn die Option "Diese Frage künftig nicht mehr anzeigen" angezeigt werden soll. + * @return {@code true} fuer ja, {@code false} fuer nein. * @throws Exception */ public boolean askUser(String question, boolean storeAnswer) throws Exception; /** * Wird von Jameica aufgerufen, wenn der Benutzer eine Frage mit Ja/Nein beantworten soll. - * Hintergrund. Jameica speichert <code>question</code> als Key in einer Properties-Datei, + * + * <p>Hintergrund. Jameica speichert {@code question} als Key in einer Properties-Datei, * falls der User die Option "Frage nicht mehr anzeigen" aktiviert hat. Enthaelt die * Frage nun aber variablen Text, wuerde die selbe Frage immer wieder kommen - nur weil * ein paar Variablen anders sind und somit der Key in der Properties-Datei nicht mehr * uebereinstimmt. Daher kann man stattdessen diese Funktion hier verwenden. Im Text * benutzt man (wie bei {@link I18N#tr(String, String[])}) die Platzhalter "{0}","{1}",... * und uebergibt als String-Array die einzutragenden Variablen. + * * @param question Die anzuzeigende Frage. * @param variables mittels MessageFormat einzutragende Variablen. - * @param storeAnswer true, wenn die Option "Diese Frage künftig nicht mehr anzeigen" angezeigt werden soll. - * @return true fuer ja, false fuer nein. + * @param storeAnswer {@code true}, wenn die Option "Diese Frage künftig nicht mehr anzeigen" angezeigt werden soll. + * @return {@code true} fuer ja, {@code false} fuer nein. * @throws Exception */ public boolean askUser(String question, String[] variables, boolean storeAnswer) throws Exception; @@ -206,8 +222,8 @@ public interface ApplicationCallback * dass er nicht in seinem Truststore hat. Der Benutzer soll dann entscheiden, * ob er dem Zertifikat vertraut. * @param cert das dem Benutzer anzuzeigende Zertifikat. - * @return true, wenn der TrustManager das Zertifikate akzeptieren und zum Truststore hinzufuegen soll. - * Andernfalls false. + * @return {@code true}, wenn der TrustManager das Zertifikate akzeptieren und zum Truststore hinzufuegen soll. + * Andernfalls {@code false}. * @throws Exception */ public boolean checkTrust(X509Certificate cert) throws Exception; @@ -219,16 +235,19 @@ public interface ApplicationCallback * ob der Hostname korrekt ist. * @param hostname der Hostname des Servers. * @param certs die Zertifikate des Servers. - * @return true, wenn der Hostname akzeptiert werden soll, andernfalls false. + * @return {@code true}, wenn der Hostname akzeptiert werden soll, andernfalls {@code false}. * @throws Exception */ public boolean checkHostname(String hostname, javax.security.cert.X509Certificate[] certs) throws Exception; /** * Liefert den Hostnamen des Systems. - * Dieser wird fuer die Erstellung des X.509-Zertifikats benoetigt. - * Die Funktion wirft nur dann eine Exception, wenn alle Stricke + * + * <p>Dieser wird fuer die Erstellung des X.509-Zertifikats benoetigt. + * + * <p>Die Funktion wirft nur dann eine Exception, wenn alle Stricke * reissen - auch die manuelle Eingabe des Hostnamens durch den User. + * * @return Hostname. * @throws Exception */ @@ -237,7 +256,7 @@ public interface ApplicationCallback /** * Fragt vom User ein Login ab. * @param authenticator der Authenticator. - * Er liefert Context-Infos zum abgefragten Login. + * Er liefert Context-Infos zum abgefragten Login. * @return das Login. * @throws Exception */ diff --git a/src/de/willuhn/jameica/system/BackgroundTask.java b/src/de/willuhn/jameica/system/BackgroundTask.java index 94033ae..14b8ed4 100644 --- a/src/de/willuhn/jameica/system/BackgroundTask.java +++ b/src/de/willuhn/jameica/system/BackgroundTask.java @@ -15,7 +15,7 @@ import de.willuhn.util.ProgressMonitor; /** * Klassen, die dieses Interface implementieren, koennen in * Jameica als Hintergrund-Task in einem separaten Thread ausgefuehrt werden. - * Sie werden ueber die Funktion <code>Application.getController().start(BackgroundTask)</code> gestartet. + * Sie werden ueber die Funktion {@code Application.getController().start(BackgroundTask)} gestartet. */ public interface BackgroundTask { @@ -36,7 +36,7 @@ public interface BackgroundTask /** * Prueft, ob der Task abgebrochen wurde. - * @return true, wenn er abgebrochen wurde. + * @return {@code true}, wenn er abgebrochen wurde. */ public boolean isInterrupted(); } diff --git a/src/de/willuhn/jameica/system/Config.java b/src/de/willuhn/jameica/system/Config.java index c824134..05fead6 100644 --- a/src/de/willuhn/jameica/system/Config.java +++ b/src/de/willuhn/jameica/system/Config.java @@ -24,7 +24,7 @@ import de.willuhn.logging.Logger; import de.willuhn.util.ApplicationException; /** - * Liest die System-Konfiguration aus config.xml. + * Liest die System-Konfiguration aus <i>config.xml</i>. * @author willuhn */ public final class Config @@ -55,7 +55,7 @@ public final class Config /** * Initialisiert die Konfiguration. - * @throws Exception + * @throws ApplicationException wenn das Benutzerverzeichnis nicht lesbar ist oder nicht erstellt werden konnte */ protected synchronized void init() throws Exception { @@ -177,7 +177,7 @@ public final class Config /** * Liefert einen ggf definierten Proxy, ueber den Jameica mit der Aussenwelt * kommunizieren soll. - * @return Hostname/IP des Proxy oder <code>null</code> wenn keiner definiert ist. + * @return Hostname/IP des Proxy oder {@code null} wenn keiner definiert ist. */ public String getProxyHost() { @@ -186,7 +186,7 @@ public final class Config /** * Liefert den TCP-Port des Proxys insofern einer definiert ist. - * @return TCP-Portnummer des Proxys oder -1, + * @return TCP-Portnummer des Proxys oder {@code -1}, */ public int getProxyPort() { @@ -209,6 +209,7 @@ public final class Config * @param port Port-Nummer. * @throws ApplicationException Bei Angabe eines ungueltigen Ports (kleiner 1 oder groesser 65535). * Es sei denn, es wurde "-1" angegeben. Der Wert steht fuer "nicht verwenden". + * @see #getProxyPort() */ public void setProxyPort(int port) throws ApplicationException { @@ -227,7 +228,7 @@ public final class Config /** * Liefert einen ggf definierten HTTPS-Proxy, ueber den Jameica mit der Aussenwelt * kommunizieren soll. - * @return Hostname/IP des Proxy oder <code>null</code> wenn keiner definiert ist. + * @return Hostname/IP des Proxy oder {@code null} wenn keiner definiert ist. */ public String getHttpsProxyHost() { @@ -236,7 +237,7 @@ public final class Config /** * Liefert den TCP-Port des HTTPS-Proxys insofern einer definiert ist. - * @return TCP-Portnummer des Proxys oder -1, + * @return TCP-Portnummer des Proxys oder {@code -1}, */ public int getHttpsProxyPort() { @@ -259,6 +260,7 @@ public final class Config * @param port Port-Nummer. * @throws ApplicationException Bei Angabe eines ungueltigen Ports (kleiner 1 oder groesser 65535). * Es sei denn, es wurde "-1" angegeben. Der Wert steht fuer "nicht verwenden". + * @see #getHttpsProxyPort() */ public void setHttpsProxyPort(int port) throws ApplicationException { @@ -276,7 +278,7 @@ public final class Config /** * Prueft, ob die Proxy-Einstellungen des Systems verwendet werden sollen. - * @return true, wenn die Default-Systemeinstellungen verwendet werden sollen. + * @return {@code true}, wenn die Default-Systemeinstellungen verwendet werden sollen. */ public boolean getUseSystemProxy() { @@ -285,7 +287,7 @@ public final class Config /** * Legt fest, ob die System-Einstellungen fuer den Proxy verwendet werden sollen. - * @param b true, wenn die System-Einstellungen des Betriebssystems verwendet werden sollen. + * @param b {@code true}, wenn die System-Einstellungen des Betriebssystems verwendet werden sollen. */ public void setUseSystemProxy(boolean b) { @@ -293,8 +295,8 @@ public final class Config } /** - * Liefert true, wenn den Aussteller-Zertifikaten der Java-Installation vertraut werden soll. - * @return true, wenn den Aussteller-Zertifikaten der Java-Installation vertraut werden soll. + * Prueft, ob den Aussteller-Zertifikaten der Java-Installation vertraut werden soll. + * @return {@code true}, wenn den Aussteller-Zertifikaten der Java-Installation vertraut werden soll. * Liefert per Default true. */ public boolean getTrustJavaCerts() @@ -304,7 +306,7 @@ public final class Config /** * Legt fest, ob den Aussteller-Zertifikaten der Java-Installation vertraut werden soll. - * @param b true, wenn den Aussteller-Zertifikaten der Java-Installation vertraut werden soll. + * @param b {@code true}, wenn den Aussteller-Zertifikaten der Java-Installation vertraut werden soll. */ public void setTrustJavaCerts(boolean b) { @@ -314,7 +316,7 @@ public final class Config /** * Prueft, ob im Server-Mode die Dienste nach aussen freigegeben werden sollen. * Der Parameter wird nur im Server-Mode interpretiert. - * @return true, wenn die Dienste freigegeben werden. + * @return {@code true}, wenn die Dienste freigegeben werden. */ public boolean getShareServices() { @@ -324,7 +326,7 @@ public final class Config /** * Prueft, ob im Server-Mode die Dienste via Multicast-Lookup im LAN announced werden sollen. * Der Parameter wird nur im Server-Mode interpretiert. - * @return true, wenn die Dienste via Multicast-Lookup announced werden sollen. + * @return {@code true}, wenn die Dienste via Multicast-Lookup announced werden sollen. */ public boolean getMulticastLookup() { @@ -383,7 +385,7 @@ public final class Config /** * Versucht das Locale zum angegebenen Text zu ermitteln. * @param s der Text. - * @return das Locale oder NULL, wenn es nicht existiert. + * @return das Locale oder {@code null}, wenn es nicht existiert. */ private static Locale findLocale(String s) { @@ -429,7 +431,7 @@ public final class Config } /** - * Liefert die in ~/.jameica/cfg/de.willuhn.jameica.system.Config.properties definierten + * Liefert die in <i>~/.jameica/cfg/de.willuhn.jameica.system.Config.properties</i> definierten * Pluginverzeichnisse. * @return Liste Plugin-Verzeichnisse. */ @@ -526,7 +528,7 @@ public final class Config /** * Liefert das User-Plugin-Verzeichnis. * Das ist jenes, welches sich im Work-Verzeichnis des Users befindet. - * In der Regel ist das ~/.jameica/plugins. + * In der Regel ist das <i>~/.jameica/plugins</i>. * @return das user-Plugin-Verzeichnis. */ public File getUserPluginDir() @@ -621,7 +623,7 @@ public final class Config /** * Legt fest, ob auch die Label vor Pflichtfeldern rot markiert werden sollen. - * @return true, wenn auch die Label rot markiert werden sollen. + * @return {@code true}, wenn auch die Label rot markiert werden sollen. */ public boolean getMandatoryLabel() { @@ -630,7 +632,7 @@ public final class Config /** * Legt fest, ob auch die Label vor Pflichtfeldern rot markiert werden sollen. - * @param check true, wenn auch die Label rot markiert werden sollen. + * @param check {@code true}, wenn auch die Label rot markiert werden sollen. */ public void setMandatoryLabel(boolean check) { @@ -765,7 +767,6 @@ public final class Config /** * Liefert die Anzahl zu erstellender Backups. - * Default-Wert: 10. * @return Anzahl der Backups. */ public int getBackupCount() @@ -778,9 +779,10 @@ public final class Config } return count; } - + /** * Speichert die Anzahl zu erstellender Backups. + * <p>Default-Wert: 10. * @param count Anzahl der Backups. */ public void setBackupCount(int count) @@ -789,9 +791,8 @@ public final class Config } /** - * Prueft, ob ueberhaupt Backups erstellt werden sollen. - * Default: true. - * @return true, wenn Backups erstellt werden sollen. + * Prueft, ob Backups erstellt werden sollen. + * @return {@code true}, wenn Backups erstellt werden sollen. */ public boolean getUseBackup() { @@ -799,8 +800,9 @@ public final class Config } /** - * Speichert, ob ueberhaupt Backups erstellt werden sollen. - * @param enabled true, wenn Backups erstellt werden sollen. + * Speichert, ob Backups erstellt werden sollen. + * <p>Default: {@code true}. + * @param enabled {@code true}, wenn Backups erstellt werden sollen. */ public void setUseBackup(boolean enabled) { @@ -810,7 +812,7 @@ public final class Config /** * Liefert das Verzeichnis, in dem Strings gespeichert werden sollen, * zu denen keine Uebersetzungen existieren. - * @return Der Ordner oder NULL, wenn nicht gespeichert werden soll. + * @return Der Ordner oder {@code null}, wenn nicht gespeichert werden soll. */ public String getStoreUntranslatedDir() { diff --git a/src/de/willuhn/jameica/system/Platform.java b/src/de/willuhn/jameica/system/Platform.java index a181a0a..77a2813 100644 --- a/src/de/willuhn/jameica/system/Platform.java +++ b/src/de/willuhn/jameica/system/Platform.java @@ -83,8 +83,8 @@ public class Platform /** * Prueft, ob sich der angegebene Ordner oder die Datei innerhalb des Programmordners befindet. * @param f der zu pruefende Ordner oder die Datei. - * @return true, wenn sich der Ordner oder die Datei im Programmordner befindet. - * @throws IOException + * @return {@code true}, wenn sich der Ordner oder die Datei im Programmordner befindet. + * @throws IOException falls kein Zugriff auf das Dateiverzeichnis moeglich */ public static boolean inProgramDir(File f) throws IOException { @@ -100,7 +100,7 @@ public class Platform * Liefert das Benutzerverzeichnis, in dem Jameica alle Daten speichert. * Falls es noch nicht existiert, wird es automatisch angelegt. * @return Benutzerverzeichnis. - * @throws Exception wenn das Benutzerverzeichnis nicht lesbar ist oder + * @throws ApplicationException wenn das Benutzerverzeichnis nicht lesbar ist oder * nicht erstellt werden konnte. */ public File getWorkdir() throws Exception @@ -176,7 +176,7 @@ public class Platform /** * Liefert das Betriebssystem. - * Siehe dazu die Konstanten <code>OS_*</code>. + * Siehe dazu die Konstanten {@code Platform.OS_*}. * @return Betriebssystem. */ public int getOS() @@ -309,11 +309,13 @@ public class Platform /** * Mappt OS-spezifisch einzelne Keys auf andere. - * In der Default-Implementierung wird hier 1:1 er Eingabewert zurueckgegeben. - * In PlatformMacOS aber wird zBsp SWT.ALT gegen SWT.COMMAND ersetzt. - * Siehe https://github.com/willuhn/jameica/pull/6 + * + * <p>In der Default-Implementierung wird hier 1:1 der Eingabewert zurueckgegeben. + * In {@link PlatformMacOS} aber wird z.B. <i>ALT</i> gegen <i>COMMAND</i> ersetzt. + * * @param key der Key. * @return der gemappte Key. + * @see <a href="https://github.com/willuhn/jameica/pull/6">willuhn/jameica#6</a> */ public int mapSWTKey(int key) { @@ -321,10 +323,11 @@ public class Platform } /** - * Wie oben. Jedoch fuer String-Repraesentationen von Shortcuts. - * Parameter ist z.Bsp. "ALT+S". Auf OS wird das auf "COMMAND+S" gemappt. + * Wie {@link #mapSWTKey(int)}, jedoch fuer String-Repraesentationen von Shortcuts. + * Parameter ist z.Bsp. "ALT+S". Auf macOS wird das auf "CMD+S" gemappt. * @param shortcut der Shortcut. * @return der gemappte Shortcut. + * @see #mapSWTKey(int) */ public String mapSWTShortcut(String shortcut) { diff --git a/src/de/willuhn/jameica/system/ServiceFactory.java b/src/de/willuhn/jameica/system/ServiceFactory.java index 09bbce6..d7af365 100644 --- a/src/de/willuhn/jameica/system/ServiceFactory.java +++ b/src/de/willuhn/jameica/system/ServiceFactory.java @@ -82,7 +82,7 @@ public final class ServiceFactory /** * Installiert einen Service in Jameica. Laeuft die Anwendung - * im Server-Mode und ist das Flag autostart des Services aktiv, + * im Server-Mode und ist das Flag {@code autostart} des Services aktiv, * wird der Service im Netz freigegeben. * @param manifest das Manifest des Plugins. * @param descriptor der Service-Deskriptor. @@ -205,13 +205,12 @@ public final class ServiceFactory /** * Liefert den genannten Service des uebergebenen Plugins. - * Die Funktion liefert niemals <code>null</code>. Entweder der - * Service wird gefunden und zurueckgeliefert oder es wird eine - * Exception geworfen. + * * @param pluginClass Klasse des Plugins, fuer welches der Service geladen werden soll. * @param serviceName Name des Service. * @return die Instanz des Services. - * @throws Exception + * @throws ApplicationException falls Service nicht gefunden werden konnte + * @throws RemoteException falls kein Zugriff auf Service via RMI moeglich */ public Service lookup(Class pluginClass, String serviceName) throws Exception { @@ -307,7 +306,8 @@ public final class ServiceFactory /** * Faehrt die Services runter. - * Beendet werden hierbei nur die lokal gestarteten Services, nicht remote verbundene. + * + * <p>Beendet werden hierbei <b>nur die lokal gestarteten</b> Services, nicht remote verbundene. */ public synchronized void shutDown() { @@ -369,7 +369,7 @@ public final class ServiceFactory * Liefert den Host, auf dem nach diesem Service gesucht werden soll. * @param pluginclass Klasse des Plugins. * @param serviceName Name des gesuchten Service. - * @return Hostname, auf dem sich der Service befindet oder <code>null</code> wenn nicht definiert. + * @return Hostname, auf dem sich der Service befindet oder {@code null} wenn nicht definiert. */ public String getLookupHost(Class pluginclass, String serviceName) { @@ -383,7 +383,7 @@ public final class ServiceFactory * Liefert den TCP-Port, auf dem nach diesem Service gesucht werden soll. * @param pluginclass Klasse des Plugins. * @param serviceName Name des gesuchten Service. - * @return TCP-Port, auf dem sich der Service befindet oder <code>-1</code> wenn nicht definiert. + * @return TCP-Port, auf dem sich der Service befindet oder {@code -1} wenn nicht definiert. */ public int getLookupPort(Class pluginclass, String serviceName) { diff --git a/src/de/willuhn/jameica/system/StartupParams.java b/src/de/willuhn/jameica/system/StartupParams.java index 0d568f2..08736ef 100644 --- a/src/de/willuhn/jameica/system/StartupParams.java +++ b/src/de/willuhn/jameica/system/StartupParams.java @@ -84,7 +84,9 @@ public class StartupParams options.addOption("w","passwordfile",true,"Optionale Angabe des Master-Passworts, welches sich in der angegebenen Datei befindet"); options.addOption("o","force-password",false,"Angabe des Master-Passworts via Kommandozeile ignorieren (für MacOS nötig)"); - options.addOption("n","noninteractive",false,"Koppelt Jameica im Server-Mode von der Konsole ab. " + "Es findet keine Benutzer-Interaktion mehr statt. Die Option wird nur ausgewertet, wenn Jameica " + "im Server-Mode läuft."); + options.addOption("n","noninteractive",false,"Koppelt Jameica im Server-Mode von der Konsole ab. " + + "Es findet keine Benutzer-Interaktion mehr statt. Die Option wird nur ausgewertet, wenn Jameica " + + "im Server-Mode läuft."); options.addOption("l","ignore-lock",false,"Ignoriert eine ggf. vorhandene Lock-Datei"); @@ -182,7 +184,7 @@ public class StartupParams /** * Liefert das ggf als Kommandozeilen-Parameter angegebene Master-Passwort. - * @return Master-Passwort oder <code>null</code>. + * @return Master-Passwort oder {@code null}. */ public String getPassword() { @@ -191,7 +193,7 @@ public class StartupParams /** * Liefert den ggf als Kommandozeilen-Parameter angegebenen Usernamen. - * @return der Username oder <code>null</code>. + * @return der Username oder {@code null}. */ public String getUsername() { @@ -200,8 +202,10 @@ public class StartupParams /** * Liefert den Start-Modus von Jameica. - * Zur Codierung sie Konstanten <code>MODE_*</code>. * @return Start-Modus. + * @see #MODE_STANDALONE + * @see #MODE_SERVER + * @see #MODE_CLIENT */ public int getMode() { @@ -218,10 +222,10 @@ public class StartupParams } /** - * Liefert true, wenn Jameica im nichtinteraktiven Server-Mode + * Prüfe, ob Jameica im nichtinteraktiven Server-Mode * laeuft und damit keine direkte Interaktion mit dem Benutzer ueber * die Konsole moeglich ist. - * @return liefert true, wenn sich die Anwendung im nicht-interaktiven Mode befindet. + * @return liefert {@code true}, wenn sich die Anwendung im nicht-interaktiven Mode befindet. */ public boolean isNonInteractiveMode() { @@ -229,8 +233,8 @@ public class StartupParams } /** - * Liefert true, wenn eine ggf vorhandene Lock-Datei ignoriert werden soll. - * @return true, wenn die Lock-Datei ignoriert werden soll. + * Prüfe, ob eine ggf vorhandene Lock-Datei ignoriert werden soll. + * @return {@code true}, wenn die Lock-Datei ignoriert werden soll. */ public boolean isIgnoreLockfile() { diff --git a/src/de/willuhn/jameica/util/XPathEmu.java b/src/de/willuhn/jameica/util/XPathEmu.java index 4f8b1c7..0826ca1 100644 --- a/src/de/willuhn/jameica/util/XPathEmu.java +++ b/src/de/willuhn/jameica/util/XPathEmu.java @@ -34,15 +34,16 @@ public class XPathEmu /** * Liefert den Content/Wert des Attributes des angegebenen XML-Elementes. * Hier kann ein Pseudo-XPath angegeben werden. + * * @param path der Pseudo-XPath. - * <pre> + * <pre>{@code * <Kunden> * <Kunde> * <Name>Foo</Name> * <Ort plz="0815"/> * </Kunde> * </Kunden> - * </pre> + * }</pre> * Beispiel 1: path="Kunden/Kunde/Name" ergibt "Foo". * Beispiel 2: path="Kunden/Kunde/Ort/@plz" ergibt "0815". * @return Content des XML-Elementes oder null, niemals jedoch einen Leerstring. -- GitLab