Plugin-oppsett

Alle plugins kan ha oppsettsskjermer som er tilgjengelig fra plugin-listen. Oppsettet er tilgjengelig kun for brukere som har tilgang til alt (superbrukere). For å lage en oppsettsskjerm for plugin-en, implementer de to metodene

Metoden getSetupHTML(HashMap resources). 

Får HTML-koden for oppsettsskjermen for plugin-en. Koden må inkludere all HTML som trengs mellom formular-taggene. For eksempel kan koden være:

        public String getSetupHTML(HashMap resources) {
                StringBuffer html = new StringBuffer();
                html.append("<table>");
                html.append("  <tr>");
                html.append("    <td class='form label'>Name:</td>");
                html.append("    <td class='form value'><input type=text name=plugin_name class='width200'></td>");
                html.append("  </tr>");
                html.append("  <tr>");
                html.append("    <td class='form label'>Address:</td>");
                html.append("    <td class='form value'><input type=password name=plugin_address class='width200'></td>");
                html.append("  </tr>");
                html.append("  <tr>");
                html.append("    <td class='form'></td>");
                html.append("    <td class='form value'><input type=submit value='Save' name=plugin_savebutton class='button'></td>");
                html.append("  </tr>");
                html.append("</table>");
                return html.toString();
        }
                                        

Viktig

Alle innverdifelt må starte med "plugin". Dette for å unngå konflikter med eksisterende felt som produseres av Opinio.

Eksempelet inkluderer to felt: "plugin_name" og "plugin_address". Når brukeren angir verdiene og klikker på send-knappen (må også gjøres i koden), mottar Opinio formularet returnerer det gjennom et kall til metoden processSetupHTML(HashMap resources). Det er så opp til plugin-en å prosessere HTML-koden for oppsettet. Denne metoden er ikke påkrevet av plugin-en. Hvis den ikke er implementert, vil en standardtekst returneres.

Det er anbefalt at utseende og stil i Opinio brukes.

Metoden processSetupHTML(HashMap resources). 

Metoden processSetup() kalles av Opinio, og kan se slik ut:

        public ProcessResult processSetupHTML(HashMap resources) {
                // retrieve request object from resources
                HttpServletRequest request = (HttpServletRequest) resources.get(PluginConstants.RESOURCE_HTTP_REQUEST);
                String nameValue = request.getParameter("plugin_name");
                String addressValue = request.getParameter("plugin_address");

                ... // do something with the values

                return new ProcessResult("The plugin configuration was saved successfully", false);
        }
                                        

Det er opp til den som implementerer metoden (utvikleren) å prosessere verdiene. Metoden returnerer resultatobjektet med en beskjed som vises til brukeren. La brukeren få vite hva som skjedde med prosesseringen av verdiene fra formularet. Hvis null er returnert, vil pluginlisten vises. Hvis et resultat av type "confirmation" er returnert, vil en bekreftelsesbeskjed vises, basert på brukerpreferansene. Hvis et resultat av type "error" er returnert, vil feilmeldingen bli vist på oppsettsskjermen. Legg merke til at hvis ProcessResult av type error returneres, vil getSetupHTML(HashMap) bli kalt igjen. Implementer logikken som tar imot verdiene fra forespørselen og legg verdiene i feltene i formularet slik at brukeren kan korrigere dem.

Husk at det er opp til utvikleren av plugin-en å lagre oppsettsverdiene. Funksjonalitet for å gjøre dette lettere vil bli lagt til i senere versjoner. Se i plugin-eksempelet som i inkludert i distribusjonen for hvordan konfigurasjonen kan lagres.