... | ... | @@ -2,4 +2,59 @@ |
|
|
Dieser Leitfaden soll eine erklären wie Sie ihr eigenes Modul erstellen. Weithin werden eine best-practice-Tips gegeben.
|
|
|
|
|
|
## Modul-Klasse und Modul-Fragement
|
|
|
Legen Sie im ersten Schritt die Modul-Klasse an, welche als Schnittstelle zwischen dem OpenASiST-Kern und dem Modul fungiert. Legen Sie dazu ein weiteres Paket unter dem de.bps.asist.module-Paket an und geben Sie dem neuen Paket einen sinnvollen Namen. Danach erstellen Sie eine Klasse, welche dem hinzugefügten Paket zugehörig ist. Der Klassenname sollte auf 'Modul' enden, wodurch diese Klasse als Modul-Klasse erkennbar wird. Die Modul-Klassen muss von der AbstractAsistModule-Klasse erben und dessen abstrakte Methoden implementieren. Die Methode getInitialFragment() erstellt und gibt ein Fragment zurück, das die Benutzeroberfläche des Moduls steuert. Zu den Aufgaben des Fragmentes gehören die Erstellung der Benutzeroberfläche(View) und die Handhabung der Benutzereingaben. |
|
|
\ No newline at end of file |
|
|
Legen Sie im ersten Schritt die Modul-Klasse an, welche als Schnittstelle zwischen dem OpenASiST-Kern und dem Modul fungiert. Legen Sie dazu ein weiteres Paket unter dem de.bps.asist.module-Paket an und geben Sie dem neuen Paket einen sinnvollen Namen. Danach erstellen Sie eine Klasse, welche dem hinzugefügten Paket zugehörig ist. Der Klassenname sollte auf 'Modul' enden, wodurch diese Klasse als Modul-Klasse erkennbar wird. Die Modul-Klassen muss von der AbstractAsistModule-Klasse erben und dessen abstrakte Methoden implementieren.
|
|
|
|
|
|
Die Methode getInitialFragment() erstellt und gibt ein Fragment zurück, das die Benutzeroberfläche des Moduls steuert. Zu den Aufgaben des Fragmentes gehören die Erstellung der Benutzeroberfläche(View) und die Handhabung der Benutzereingaben. Es empfiehlt sich die Fragement-Klasse nicht als innere Klasse zu gestalten, sondern stattdessen eine eigene Klassen-Datei anzulegen, damit die Klassenstruktur übersichtlich bleibt.
|
|
|
|
|
|
Folgendermaßen könnte die Klassen und Paketstruktur aussehen:
|
|
|
|
|
|
```mermaid
|
|
|
graph LR
|
|
|
subgraph de.bps.asist.module.library
|
|
|
LibraryModul
|
|
|
LibraryFragment
|
|
|
end
|
|
|
```
|
|
|
|
|
|
LibraryModul:
|
|
|
```java
|
|
|
package de.bps.asist.module.library;
|
|
|
|
|
|
import java.util.List;
|
|
|
import de.bps.asist.R;
|
|
|
import de.bps.asist.core.database.AbstractDatabaseObject;
|
|
|
import de.bps.asist.module.AbstractAsistModule;
|
|
|
|
|
|
public class LibraryModule extends AbstractAsistModule {
|
|
|
|
|
|
/**
|
|
|
* @return Returns the resource id to the name of this module
|
|
|
*/
|
|
|
@Override
|
|
|
public int getName() {
|
|
|
|
|
|
return R.string.module_library_name;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @return Returns the resource id to the icon of this module
|
|
|
*/
|
|
|
@Override
|
|
|
public int getIcon() {
|
|
|
return R.drawable.ic_module_mystuff;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public android.support.v4.app.Fragment getInitialFragment() {
|
|
|
return new myStuffFragment();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @return Create and returns the intitial Fragment for this module
|
|
|
*/
|
|
|
@Override
|
|
|
public List<Class<? extends AbstractDatabaseObject>> getDatabaseClasses() {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
``` |