tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
301
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    Hallo Tutorianer,

    ich möchte gerne die Wizard API von java.net siehe https://wizard.dev.java.net/ benutzen und habe mich auch schon darüber informiert unter anderem auf Open source Java projects: The Wizard API und Using the Wizard API Das gefällt mir alles sehr gut bis auf eine Sache: Es scheint keine angemessene Methode zu geben wie ich Daten von einer WizardPage zu einer anderen bekomme. Ich habe die suche bemüht und unter anderem den Beitrag JFace Wizard: Daten von einer Wiazardpage zu einer anderen Wizardpage übertragen gefunden. Jedoch kann ich dieses Vorgehen nicht auf meine API übertragen.
    Kennt sich vielleicht jemand mit der Wizard API von java.net aus und wüßte wie man da vorgehen kann ?
    Das Problem ist das die Daten (die vom Benutzer eingegeben werden) erst zur Laufzeit vorliegen und die WizardPages zu dieser Zeit schon konstruiert worden sind. Der Zugriff auf die Daten wird mittels einer Methode der WizardPage erlaubt, jedoch habe ich kein Zugriff auf die nächste oder sonst einer anderen WizardPage von der aktuellen WizardPage. Eine Lösung bestünde in einer alternativen Vorgehensweise, in der die WizardPages erst zur Laufzeit erstellt werden (siehe hier) doch diese Vorgehensweise ist für mein Vorhaben nicht sehr elegant, da man hier ziemlich viel manuell nachimplementieren muss.

    Irgendwelche Ideen ? Wäre doch schade wenn ich mich noch mal in den JFace Wizard einarbeiten müsste, denn ansonsten ist der Wizard von java.net echt top.

    Beispiel:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
     
    // WizardPage2
    public WizardPage2()
       {
          // code
          txtField1 = new JTextField (20);
          txtField1.setName ("third");
          // setze Textfeld mit Datum von WizardPage1
          txtField1.setText(getWizardData("first").toString()); // Datum existiert noch nicht !
          //code
    }

    Beste Grüße
    Online-Skater
     

  2. #2
    Avatar von Online-Skater
    Online-Skater Online-Skater ist offline Mitglied Brillant
    Registriert seit
    Sep 2004
    Ort
    Rostock
    Beiträge
    891
    Problem wurde selbst gelöst, beim durchstöbern des Quellcodes "WizardPage.java" fiel mir die Methode:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    /**
         * Called whenever the page is rendered.
         * This can be used by the page as a notification
         * to load page-specific information in its fields.
         * <p/>
         * By default, this method does nothing.
         */
        protected void renderingPage() {
            // Empty
        }
    auf.
    Also in der abgeleiteten Klasse überschreiben und es funktioniert:
    Code java:
    1
    2
    3
    4
    5
    6
    
    @Override
        protected void renderingPage() 
        {
            super.renderingPage();
            txtField1.setText(getWizardData("first").toString());
        }

    Wer lesen kann ist klar im Vorteil
    Es gibt einen Konstruktor im Wizard, welcher nur die Klassenobjekte entgegennimmt und sie zur Laufzeit erstellt.
    An array of Class objects. Each Class object in the array must describe a unique WizardPage subclass. At runtime, Wizard lazily creates instances of these classes on an as-needed basis (to reduce object creation). If you want all of these instances to be created up front, invoke a createWizard() method that provides a WizardPage[] parameter.
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    //All we do here is assemble the list of WizardPage subclasses we
    //want to show:
    Class[] pages = new Class[] {
        WizardPage1.class,
        WizardPage2.class,
    };
            
    //Use the utility method to compose a Wizard
    Wizard wizard = WizardPage.createWizard(pages, WizardResultProducer.NO_OP);
    Geändert von Online-Skater (20.06.11 um 10:21 Uhr)
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 17.06.11, 12:11
  2. Antworten: 1
    Letzter Beitrag: 24.06.10, 19:01
  3. [richfaces]/[jsf]: Bei action in einer Form auch Daten aus anderer Form übertragen
    Von paula123 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 5
    Letzter Beitrag: 10.03.10, 15:14
  4. SQL daten übertragen, wie?
    Von DoubleZerO im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 06.06.05, 19:35
  5. Antworten: 8
    Letzter Beitrag: 03.11.04, 00:53