Til hat geschrieben:@pck: Die Sache mit den "gebundenen" und "ungebundenen" Methoden kapier jetzt nicht so ganz. Erklär's doch bitte nochmal für Dumme...
Ich hatte gehofft mein Wunsch nach eigenen "Defaultaktionen" wäre verständlich wenn man mein Plugin mal angeschaut hat, selbst wenn man die Begriffe aus dem
Lambda-Kalkül nicht kennt. Sorry. Meine Formulierung "gebundene Methoden" ist zudem schwammig. Korrekt wäre "Funktionen ohne freie Variablen". Ich erklär's mal an einem Beispiel:
Code: Alles auswählen
Plugin plugin = new ListViewPlugin();
Action action = manager.getActivatedPlugins()[0].getContextMenuActions(program).getAction();
PluginManager manager = getPluginManager();
plugin.execute(program); // A
action.actionPerformed(); // B
manager.handleProgramDoubleClick(program); // C
Die Zeilen A, B und C machen in etwa dasselbe. Alle führen die Funktion "Plugin.execute(Program)" aus. (Stimmt nicht ganz, aber tun wir mal so als ob.) Die Funktion hat zwei Variablen, ein Plugin namens "this" und eine Sendung namens "program".
In Zeile "A" kann man "this" (=plugin) und "program" angeben. Man spricht von "freien Variablen".
In Zeile "B" hat man keinen Einfluss darauf, welches Plugin welches Programm bearbeitet. Die Variablen "this" und "program" sind "gebundene Variablen".
In Zeile "C" ist "this" eine "gebundene Variable" und "program" eine "freie Variable".
Mit TVB1.0.1 kann ich alle Plugins wie in Zeile "A" aufrufen. Das wird in TVB1.1 nicht gehen und das ist sicher auch gut so.
In TVB1.1 kann man alle Plugins wie in Zeile "B" aufrufen. Das ist meist ok, aber der Benutzer muss bei jedem Aufruf erneut auswählen was er tun will.
Ich würde in TVB1.1 gerne die wichtigsten Pluginaktionen wie in Zeile "C" aufrufen können. Wenn der Benutzer eine Funktion häufig aufrufen will, dann braucht er nicht jedesmal ein Kontextmenü zu nutzen.
[quote="Til"]@pck: Die Sache mit den "gebundenen" und "ungebundenen" Methoden kapier jetzt nicht so ganz. Erklär's doch bitte nochmal für Dumme... :wink:[/quote]Ich hatte gehofft mein Wunsch nach eigenen "Defaultaktionen" wäre verständlich wenn man mein Plugin mal angeschaut hat, selbst wenn man die Begriffe aus dem [url=http://de.wikipedia.org/wiki/Lambda-Kalkül]Lambda-Kalkül[/url] nicht kennt. Sorry. Meine Formulierung "gebundene Methoden" ist zudem schwammig. Korrekt wäre "Funktionen ohne freie Variablen". Ich erklär's mal an einem Beispiel:
[code]Plugin plugin = new ListViewPlugin();
Action action = manager.getActivatedPlugins()[0].getContextMenuActions(program).getAction();
PluginManager manager = getPluginManager();
plugin.execute(program); // A
action.actionPerformed(); // B
manager.handleProgramDoubleClick(program); // C[/code]Die Zeilen A, B und C machen in etwa dasselbe. Alle führen die Funktion "Plugin.execute(Program)" aus. (Stimmt nicht ganz, aber tun wir mal so als ob.) Die Funktion hat zwei Variablen, ein Plugin namens "this" und eine Sendung namens "program".
In Zeile "A" kann man "this" (=plugin) und "program" angeben. Man spricht von "freien Variablen".
In Zeile "B" hat man keinen Einfluss darauf, welches Plugin welches Programm bearbeitet. Die Variablen "this" und "program" sind "gebundene Variablen".
In Zeile "C" ist "this" eine "gebundene Variable" und "program" eine "freie Variable".
Mit TVB1.0.1 kann ich alle Plugins wie in Zeile "A" aufrufen. Das wird in TVB1.1 nicht gehen und das ist sicher auch gut so.
In TVB1.1 kann man alle Plugins wie in Zeile "B" aufrufen. Das ist meist ok, aber der Benutzer muss bei jedem Aufruf erneut auswählen was er tun will.
Ich würde in TVB1.1 gerne die wichtigsten Pluginaktionen wie in Zeile "C" aufrufen können. Wenn der Benutzer eine Funktion häufig aufrufen will, dann braucht er nicht jedesmal ein Kontextmenü zu nutzen.