2015-11-21 37 views
6

Używając "Spring Stater Project" w Eclipse/STS, udało mi się zrealizować projekt Vaadin i działa szybko. Chcę dodać wykres do projektu za pomocą Vaadin-Addon. Mam Googled, próbując znaleźć sposób, aby poprawnie dodać i wykorzystać dodatek Vaadin Chart do projektu. Ale jestem zdezorientowany, ponieważ istnieje tak wiele "Przewodników/Tutorial", ale wiele nie jest dla wiosennego rozruchu lub są one nieaktualne lub częściowe.Jak naprawić "com.vaadin.DefaultWidgetSet" nie zawiera implementacji dla com.vaadin.addon.charts.Chart

Poszukuję pełnego poradnika/samouczka dla Vaadin-SpringBoot-VaadinChart-AddOn.

To, co mam tak daleko:

---- Pom plik ----

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.aci</groupId> 
    <artifactId>oversight2</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>oversight2</name> 
    <description>Oversite</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.2.5.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
<!--  <dependency> --> 
<!--   <groupId>com.vaadin</groupId> --> 
<!--   <artifactId>vaadin-spring-boot</artifactId> --> 
<!--   <version>1.0.0</version> --> 
<!--  </dependency> --> 

     <dependency> 
      <groupId>com.vaadin</groupId> 
      <artifactId>vaadin-spring-boot-starter</artifactId> 
      <version>1.0.0.beta3</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.vaadin.addon</groupId> 
      <version>2.0.0</version> 
      <artifactId>vaadin-charts</artifactId> 
     </dependency> 
    </dependencies> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>com.vaadin</groupId> 
       <artifactId>vaadin-bom</artifactId> 
       <version>7.4.5</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
    <repositories> 
     <repository> 
      <id>vaadin-addons</id> 
      <url>http://maven.vaadin.com/vaadin-addons</url> 
     </repository> 
    </repositories> 

</project> 

---- kodu Java ----

public class BasicBarChart extends AbstractVaadinChartExample { 

    @Override 
    public String getDescription() { 
     return "Basic bar"; 
    } 

    @Override 
    protected Component getChart() { 
     Chart chart = new Chart(ChartType.BAR); 

     Configuration conf = chart.getConfiguration(); 

     conf.setTitle("Historic World Population by Region"); 
     conf.setSubTitle("Source: Wikipedia.org"); 

     XAxis x = new XAxis(); 
     x.setCategories("Africa", "America", "Asia", "Europe", "Oceania"); 
     x.setTitle((String) null); 
     conf.addxAxis(x); 

     YAxis y = new YAxis(); 
     y.setMin(0); 
     Title title = new Title("Population (millions)"); 
     title.setVerticalAlign(VerticalAlign.HIGH); 
     y.setTitle(title); 
     conf.addyAxis(y); 

     Tooltip tooltip = new Tooltip(); 
     tooltip.setFormatter("this.series.name +': '+ this.y +' millions'"); 
     conf.setTooltip(tooltip); 

     PlotOptionsBar plot = new PlotOptionsBar(); 
     plot.setDataLabels(new Labels(true)); 
     conf.setPlotOptions(plot); 

     Legend legend = new Legend(); 
     legend.setLayout(LayoutDirection.VERTICAL); 
     legend.setHorizontalAlign(HorizontalAlign.RIGHT); 
     legend.setVerticalAlign(VerticalAlign.TOP); 
     legend.setX(-100); 
     legend.setY(100); 
     legend.setFloating(true); 
     legend.setBorderWidth(1); 
     legend.setBackgroundColor("#FFFFFF"); 
     legend.setShadow(true); 
     conf.setLegend(legend); 

     conf.disableCredits(); 

     List series = new ArrayList(); 
     series.add(new ListSeries("Year 1800", 107, 31, 635, 203, 2)); 
     series.add(new ListSeries("Year 1900", 133, 156, 947, 408, 6)); 
     series.add(new ListSeries("Year 2008", 973, 914, 4054, 732, 34)); 
     conf.setSeries(series); 

     chart.drawChart(conf); 

     return chart; 
    } 
} 

@SpringUI 
@VaadinServletConfiguration(productionMode = false, ui = MyVaadinUI.class) 
public class MyVaadinUI extends UI { 
    @Override 
    protected void init(VaadinRequest vaadinRequest) { 
     setContent(new BasicBarChart()); 
    } 
} 

Mam utworzony 30-dniowy klucz licencji AGPL

Istnieje kilka witryn, które mówią, że potrzebuję pliku gwt.xml, lub można to zrobić za pomocą adnotacji

Niektóre witryny mówią, że muszę "ponownie skompilować twój zestaw widżetów", co oznacza, że ​​muszę mieć dodatek do mojego plik pom.

Inne strony mówią, że potrzebuję pliku web.xml, ale z uruchomioną aplikacją Vaadin z wiosennym boot-vaadinem.

Kiedy uruchomić kod, otrzymuję:

Widgetset 'com.vaadin.DefaultWidgetSet' nie zawiera implementację dla com.vaadin.addon.charts.Chart. Sprawdź mapowanie łącznika komponentu @Connect, plik opisu modułu GWT zestawu widgetów i ponownie skompiluj swój zestaw widgetów. W przypadku, gdy pobrałeś pakiet dodatku vaadin, możesz odnieść się do instrukcji dodatkowych.

+0

ok ... Dodam kolejny wpis z tym, co zrobiłem do tej pory i to nie zadziałało ... Ciekawe, jak komentarz taki jak twój może udaremnić osobę. – KRico

Odpowiedz

5

Proces przebiega tak samo, jak w przypadku wszystkich dodatków. W przypadku prostych aplikacji potrzebujesz tylko podstawowych widgetów i możesz użyć "DefaultWidgetSet". Musisz mieć "ApplicationWidgetset" z projektem, który łączy podstawowe implementacje komponentów po stronie klienta z rdzeniem ze wszystkimi dodatkami używanymi w projekcie.

Są to instrukcje z przykładu używając TouchKit dodatek, ale proces ten jest w zasadzie taka sama:

+1

Dziękujemy! Po prostu potrzebujesz miejsca na start. cdn.virit.in jest tym, czego również szukałem ... Mniej konfiguracji i mniej kodu cookie. Dziękuję bardzo! – KRico