develop:faq
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
develop:faq [d.m.Y H:i] – willuhn | develop:faq [d.m.Y H:i] – rk | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Diese FAQ hat Reinhold (Autor von [[http:// | Diese FAQ hat Reinhold (Autor von [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== CVS / Eclipse ===== | ||
==== Kann ich jameica via CVS aktuell halten ? ==== | ==== Kann ich jameica via CVS aktuell halten ? ==== | ||
Zeile 13: | Zeile 18: | ||
| Connection type | pserver | | | Connection type | pserver | | ||
- | Einrichtung wie gewohnt in Eclipse | + | Einrichtung wie gewohnt in Eclipse |
+ | |||
+ | ==== Wie richte ich mir das Beispiel-Plugin in Eclipse ein? ==== | ||
+ | * Lade dir den Source des Nightly-Build von Jameica sowie den Source Beispiel-Plugins von [[http:// | ||
+ | * Die ZIP-Dateien enthalten " | ||
+ | * Nun sollten sich in Eclipse beide Projekte befinden. Der Classpath sollte jeweils schon richtig konfiguriert sein. " | ||
+ | * Leg eine Launch-Konfiguration mit folgenden Eigenschaften an: | ||
+ | | ||
+ | ^ Name ^ Wert ^ | ||
+ | |Project |jameica | | ||
+ | |Main-Class | de.willuhn.jameica.Main | | ||
+ | | Program-Arguments | "-f / | ||
+ | | VM-Arguments | " | ||
+ | | Classpath | Default-Classpath des Projekts " | ||
+ | |||
+ | * Starte nun Jameica. Hierbei wird die Anwendung ohne Plugins geladen, das Benutzerverzeichnis wurde jedoch samt Config-Dateien angelegt. | ||
+ | * Beende Jameica wieder. | ||
+ | * Öffne die Datei .jameica.test/ | ||
+ | |||
+ | < | ||
+ | [...] | ||
+ | jameica.plugin.dir.0=plugins | ||
+ | jameica.plugin.dir.1=../ | ||
+ | [...] | ||
+ | </ | ||
+ | |||
+ | * Starte Jameica in Eclipse erneut. Der PluginLoader sucht nun im Verzeichnis " | ||
+ | * Die Auto-Install-Routine des Plugins sollte anspringen und die Datenbank in " | ||
+ | * Sollten Exceptions des Typs " | ||
+ | |||
+ | |||
+ | ==== Eclipse-Fehlermeldung: | ||
+ | Dieser Fehlercode tritt auf, wenn zwei Plugin' | ||
+ | Folgende Einstellungen in den Project/ | ||
+ | * In der Navigation //java Compiler/ | ||
+ | * Im Abschnitt "Build path problems" | ||
+ | |||
+ | Eclipse compiliert nun alle Projekte neu - fertig . | ||
+ | |||
+ | |||
+ | ===== SWT ===== | ||
==== Wenn ich aus einem separaten Thread auf die GUI zugreifen will, erhalte ich eine SWTException ==== | ==== Wenn ich aus einem separaten Thread auf die GUI zugreifen will, erhalte ich eine SWTException ==== | ||
- | SWT ist single-threaded. Greift man nicht aus dem GUI-Thread heraus auf SWT-Komponenten zu, erscheint eine " | + | SWT ist single-threaded. Greift man nicht aus dem GUI-Thread heraus auf SWT-Komponenten zu, erscheint eine " |
<code java> | <code java> | ||
Zeile 31: | Zeile 76: | ||
</ | </ | ||
- | ==== Kann ich einzelne Elemente der Navigation oder des Menues zur Laufzeit aktivieren/ | ||
- | Ja, wie folgt: | ||
- | |||
- | <code java> | ||
- | PluginContainer pc = Application.getPluginLoader().getPluginContainer(< | ||
- | | ||
- | // Entweder: Ermitteln des Navigationsbaumes (links in Jameica) | ||
- | Item item = pc.getManifest().getNavigation(); | ||
- | | ||
- | // Oder: Menu (oben in Jameica) | ||
- | Item item = pc.getManifest().getMenu(); | ||
- | | ||
- | // Der erste Parameter legt fest, ob das Element aktiv oder inaktiv sein soll. | ||
- | // Mit dem zweiten Parameter kann die Einstellung rekursiv für alle ggf. vorhandenen Kind-Elemente übernommen werden | ||
- | item.setEnabled(false, | ||
- | </ | ||
==== Kann ich ausser den GUI-Elementen von jameica auch normale SWT-Widgets verwenden? ==== | ==== Kann ich ausser den GUI-Elementen von jameica auch normale SWT-Widgets verwenden? ==== | ||
Zeile 95: | Zeile 124: | ||
** Hinweis**: Das Composite, welches man von AbstractView via getParent() erhaelt, besitzt bereits ein 1-spaltiges GridLayout. | ** Hinweis**: Das Composite, welches man von AbstractView via getParent() erhaelt, besitzt bereits ein 1-spaltiges GridLayout. | ||
+ | |||
+ | |||
+ | ==== Wann muss ich SWT-Komponenten disposen ==== | ||
+ | Wenn sie als Bestandteil einer View angelegt wurden, müssen sie nicht manuell disposed werden. Das übernimmt Jameica automatisch rekursiv, sobald eine View verlassen wird. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Jameica-API ===== | ||
+ | |||
+ | ==== Kann ich einzelne Elemente der Navigation oder des Menues zur Laufzeit aktivieren/ | ||
+ | Ja, wie folgt: | ||
+ | |||
+ | <code java> | ||
+ | PluginContainer pc = Application.getPluginLoader().getPluginContainer(< | ||
+ | | ||
+ | // Entweder: Ermitteln des Navigationsbaumes (links in Jameica) | ||
+ | Item item = pc.getManifest().getNavigation(); | ||
+ | | ||
+ | // Oder: Menu (oben in Jameica) | ||
+ | Item item = pc.getManifest().getMenu(); | ||
+ | | ||
+ | // Der erste Parameter legt fest, ob das Element aktiv oder inaktiv sein soll. | ||
+ | // Mit dem zweiten Parameter kann die Einstellung rekursiv für alle ggf. vorhandenen Kind-Elemente übernommen werden | ||
+ | item.setEnabled(false, | ||
+ | </ | ||
Zeile 134: | Zeile 190: | ||
} | } | ||
</ | </ | ||
+ | |||
==== Kann ich die relevanten Verzeichnisse (Programm-, Config-, Datenverzeichnis) irgendwie ermitteln? ==== | ==== Kann ich die relevanten Verzeichnisse (Programm-, Config-, Datenverzeichnis) irgendwie ermitteln? ==== | ||
Zeile 156: | Zeile 213: | ||
String dir = Application.getPluginLoader().getPlugin(< | String dir = Application.getPluginLoader().getPlugin(< | ||
</ | </ | ||
+ | |||
==== Ich möchte in meinem Plugin Einstellungen speichern. Welche Jameica-Bordmittel sind hierfür vorhanden? ==== | ==== Ich möchte in meinem Plugin Einstellungen speichern. Welche Jameica-Bordmittel sind hierfür vorhanden? ==== | ||
Zeile 244: | Zeile 302: | ||
// Das Senden und Zustellen der Nachrichten erfolgt plugin-übergreifend | // Das Senden und Zustellen der Nachrichten erfolgt plugin-übergreifend | ||
</ | </ | ||
+ | |||
==== Kann man an eine Tabelle einen Listener anhaengen, der aufgerufen wird, wenn eine Zeile der Tabelle mit einfachem Klick markiert wird? ==== | ==== Kann man an eine Tabelle einen Listener anhaengen, der aufgerufen wird, wenn eine Zeile der Tabelle mit einfachem Klick markiert wird? ==== | ||
Zeile 258: | Zeile 317: | ||
</ | </ | ||
- | ==== Ich moechte | + | |
+ | ==== Ich möchte | ||
<code java> | <code java> | ||
Zeile 273: | Zeile 333: | ||
}); | }); | ||
</ | </ | ||
+ | |||
==== Kann ich Formulareingaben gliedern, zum Beispiel mit Tab-Reitern? | ==== Kann ich Formulareingaben gliedern, zum Beispiel mit Tab-Reitern? | ||
Zeile 309: | Zeile 370: | ||
</ | </ | ||
- | ==== Wie definiere ich in dem SQL-Create-Script für die embedded McKoi-Datenbank einen Primär-Schlüssel mit Autoincrement-Funktion? | ||
- | <code sql> | ||
- | CREATE TABLE foo ( | ||
- | id NUMERIC default UNIQUEKEY(' | ||
- | name varchar(20) NOT NULL, | ||
- | [...] | ||
- | PRIMARY KEY (id) | ||
- | ); | ||
- | </ | ||
==== Wie definiere ich einzelne Menü- oder Navigationselemente in der plugin.xml? ==== | ==== Wie definiere ich einzelne Menü- oder Navigationselemente in der plugin.xml? ==== | ||
Zeile 341: | Zeile 393: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Wie definiere ich in dem SQL-Create-Script für die embedded McKoi-Datenbank einen Primär-Schlüssel mit Autoincrement-Funktion? | ||
+ | <code sql> | ||
+ | CREATE TABLE foo ( | ||
+ | id NUMERIC default UNIQUEKEY(' | ||
+ | name varchar(20) NOT NULL, | ||
+ | [...] | ||
+ | PRIMARY KEY (id) | ||
+ | ); | ||
+ | </ | ||
+ | |||
==== Wie kann ich die SQL-Datenbank beim ersten Start des Plugins automatisch anlegen? ==== | ==== Wie kann ich die SQL-Datenbank beim ersten Start des Plugins automatisch anlegen? ==== | ||
Zeile 393: | Zeile 457: | ||
); | ); | ||
</ | </ | ||
+ | |||
==== Wie sieht die Package-Gliederung des Codes im Beispiel-Plugin aus? ==== | ==== Wie sieht die Package-Gliederung des Codes im Beispiel-Plugin aus? ==== | ||
Zeile 406: | Zeile 471: | ||
| .gui.menus | Context-Menus | | | .gui.menus | Context-Menus | | ||
|.gui.action | Klassen, die das Interface de.willuhn.jameica.gui.Action implementieren und die Aufgaben kapseln, die bei Benutzer-Interaktivität ausgelöst werden können | | |.gui.action | Klassen, die das Interface de.willuhn.jameica.gui.Action implementieren und die Aufgaben kapseln, die bei Benutzer-Interaktivität ausgelöst werden können | | ||
- | |||
- | ==== Wann muss ich SWT-Komponenten disposen ==== | ||
- | Wenn sie als Bestandteil einer View angelegt wurden, müssen sie nicht manuell disposed werden. Das übernimmt Jameica automatisch rekursiv, sobald eine View verlassen wird. | ||
- | |||
- | ==== Wie richte ich mir das Beispiel-Plugin in Eclipse ein? ==== | ||
- | * Lade dir den Source des Nightly-Build von Jameica sowie den Source Beispiel-Plugins von [[http:// | ||
- | * Die ZIP-Dateien enthalten " | ||
- | * Nun sollten sich in Eclipse beide Projekte befinden. Der Classpath sollte jeweils schon richtig konfiguriert sein. " | ||
- | * Leg eine Launch-Konfiguration mit folgenden Eigenschaften an: | ||
- | | ||
- | ^ Name ^ Wert ^ | ||
- | |Project |jameica | | ||
- | |Main-Class | de.willuhn.jameica.Main | | ||
- | | Program-Arguments | "-f / | ||
- | | VM-Arguments | " | ||
- | | Classpath | Default-Classpath des Projekts " | ||
- | |||
- | * Starte nun Jameica. Hierbei wird die Anwendung ohne Plugins geladen, das Benutzerverzeichnis wurde jedoch samt Config-Dateien angelegt. | ||
- | * Beende Jameica wieder. | ||
- | * Öffne die Datei .jameica.test/ | ||
- | |||
- | < | ||
- | [...] | ||
- | jameica.plugin.dir.0=plugins | ||
- | jameica.plugin.dir.1=../ | ||
- | [...] | ||
- | </ | ||
- | |||
- | * Starte Jameica in Eclipse erneut. Der PluginLoader sucht nun im Verzeichnis " | ||
- | * Die Auto-Install-Routine des Plugins sollte anspringen und die Datenbank in " | ||
- | * Sollten Exceptions des Typs " | ||
- |
Impressum | Datenschutz
develop/faq.txt · Zuletzt geändert: d.m.Y H:i von eickler