+1 vote
asked in RapidClipse Framework by
retagged

Ich versuche mich an der microstream db mit RapidClipseX

Bei Verwendung einer klassischen realtionalen Datenbank wird mir vom RC Codegenerator automatisch eine Entity-Klasse und eine DAO dazu erzeugt. Diese kann ich bspw. einem Grid zuweisen.
Bei Verwendung einer Filterkomponente verbinde ich diese mit dem Grid und voila alles funktioniert.

Mit der Microstream db benötige ich kein hibernate und habe auch keine DAO Klasse/ Dataprovider um einem Grid diesen zu zuweisen. Ich fülle die Tabelle mit einer manuellen Zuweisung wie bspw. folgender Code:


    private void grid_onAttach(final AttachEvent event)
    {

        final EmbeddedStorageManager storage = dbHandler.getStoragemanager();

        if(storage.root() == null)
        {
            System.out.println("No existing Database found ");
        }
        else
        {
            System.out.println("Existing Database found: ");
            final dataRoot root = (dataRoot)storage.root();
            this.grid.setDataProvider(DataProvider.ofCollection(root.getAllCabinets()));

        }

    }
 


Wenn ich nun das Grid einer Filterkomponente zuweise funktioniert diese nicht.
Wie kann ich die Filterkomponente für diesen Fall nun nutzen?
 

1 Answer

+1 vote
answered by

Ich habe die Lösung selbst gefunden wink

Ich bin nicht sicher, ob das Vorgehen 100% richtig ist, aber es hat funktioniert.
Ich habe im code die Zuweisung der Filterkomponente ergänzt. (Einfach aus der "initUI" copy&paste)
Siehe fett markierter code:


    private void grid_onAttach(final AttachEvent event)
    {
        final EmbeddedStorageManager storage = dbHandler.getStoragemanager();
       
        if(storage.root() == null)
        {
            System.out.println("No existing Database found ");
        }
        else
        {
            System.out.println("Existing Database found: ");
            final dataRoot root = (dataRoot)storage.root();
            this.grid.setDataProvider(DataProvider.ofCollection(root.getAllUmsClassifications()));
            this.filterComponent.connectWith(this.grid.getDataProvider());
            this.filterComponent
                .setFilterSubject(GridFilterSubjectFactory.CreateFilterSubject(this.grid, Arrays.asList("rule"),
                    Arrays.asList("id", "UId", "l1Id", "l2Id", "l3Id", "dbetrag", "datum", "rule", "fixedCosts")));

           
        }
 

    }


commented by
Das Vorgehen ist so richtig. Die FilterComponente muss mit dem Grid per FilterComponent.connectWith() reconnected werden, da vom Grid der DataProvider ausgetauscht wurde.
Welcome to Rapidclipse Q&A, where you can ask questions and receive answers from other members of the community.
Powered by Question2Answer
...