Моя Vaadin Grid вообще не заполняется в моем WebApp - PullRequest
0 голосов
/ 28 апреля 2019

Я настраиваю веб-приложение, используя VSCOde и Vaadin с Java. VsCode обновлен, и код, который я использовал исторически, сейчас не работает, но я не могу понять, почему. Мой ярлык - это единственное, что показывает, что сетки вообще не заполнено.

Я попытался сгенерировать столбцы, setColumns, getColumns и ничего не заполняет. Пожалуйста, смотрите мой код.

MainView:

enter code here

package horseRecord;

import java.util.List;

import javax.swing.text.AbstractDocument.Content;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;

import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.Grid.SelectionMode;
import com.vaadin.flow.component.html.H1;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.server.PWA;
import com.vaadin.flow.router.Route;

@Route
@PWA(name = "EquiRecord", shortName = "EquiRecord")
public class MainView extends VerticalLayout {

    private static final long serialVersionUID = 1L;
    Connection connection = null;


    public MainView() {

        final VerticalLayout layout = new VerticalLayout();
        layout.setSizeFull();
        setContent(layout);
        Grid<Horses> grid = new Grid<>(Horses.class);

        // Database connection string
        String connectionString = "jdbc:sqlserver://equirecord.database.windows.net:1433;database=EquiRecord;user=xxxxx@equirecord;password=xxxxxxxxx;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";

        //new label
        add(new H1("EquiRecord, Recording your horses health!"), layout);

        try 
        {          
            // Connect and query the data
            connection = DriverManager.getConnection(connectionString);
            ResultSet rs = connection.createStatement().executeQuery("select * from horses;");
            // Create a list of type Student (which we defined in Student.java)
            List<Horses> horsesList = new ArrayList<Horses>();
            while(rs.next())    {
                    horsesList.add(new Horses(
                        rs.getLong("microchip"),
                        rs.getString("horseName"),
                        rs.getDate("dateOfBirth")));
                    //rs.getString("FName"),
                    //rs.getString("SName")
                }
                // Create my grid
                grid.setItems(horsesList);
                grid.addColumn(Horses::getMicrochip).setHeader("Microchip");
                grid.addColumn(Horses::getHorseName).setHeader("Horse Name");
                grid.addColumn(Horses::getDateOfBirth).setHeader("Date of Birth");
                //grid.addColumn(Horses::getFName);
                //grid.addColumn(Horses::getSName);
                //grid.setColumns("microchip", "horseName", "dateOfBirth");
                grid.setSizeFull(); 
                // This makes the grid the width of the page
                // This makes the grid 'multi-select', adds the checkboxes for selecting to the side
                grid.setSelectionMode(SelectionMode.MULTI);
            }
catch(Exception e) {
    layout.addComponentAsFirst(new Label(e.getMessage()));
}

setContent(layout);
}

    private void setContent(Object layout) {
    }


        } 

Лошади Класс:

package horseRecord;

import java.sql.Date;

class Horses
{
    private Long microchip;
    private String horseName;
    private Date dateOfBirth;
    //private String FName;
    //private String SName;



    Horses(Long microchip, String horseName, Date dateOfBirth)
    {
        this.microchip = microchip;
        this.horseName = horseName;
        this.dateOfBirth = dateOfBirth;
        //this.FName = FName;
        //this.SName = SName;

    }

    public String getHorseName() {
        return horseName;
    }

    public void setHorseName(String horseName) {
        this.horseName = horseName;
    }

    public Date getDateOfBirth() {
        return dateOfBirth;
    }

    public void setDateofBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }

    public Long getMicrochip() {
        return microchip;
    }

    public void setMicrochip(Long microchip) {
        this.microchip = microchip;
    }
}

Я ожидаю сетку из трех столбцов, но сетка не отображается, кто-нибудь может увидеть, что я делаю неправильно?

Спасибо за любую помощь, которую вы можете оказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...