Je travaille sur l'apprentissage de GWT (total newb) et j'ai une question concernant l'API Visualiztion fournie par Google. Cette page: http://code.google.com/p/gwt-google-apis/wiki/VisualizationGettingStartedUtilisation de Google Visualization dans GWT 2.0
Décrit comment démarrer avec un camembert (ce dont j'ai besoin). Cependant, j'essaie de le faire dans une interface utilisateur composite en utilisant UiBinder. À cette fin, je ne sais pas comment gérer le rappel correctement qui est montré:
public class SimpleViz implements EntryPoint {
public void onModuleLoad() {
// Create a callback to be called when the visualization API
// has been loaded.
Runnable onLoadCallback = new Runnable() {
public void run() {
Panel panel = RootPanel.get();
// Create a pie chart visualization.
PieChart pie = new PieChart(createTable(), createOptions());
pie.addSelectHandler(createSelectHandler(pie));
panel.add(pie);
}
};
// Load the visualization api, passing the onLoadCallback to be called
// when loading is done.
VisualizationUtils.loadVisualizationApi(onLoadCallback, PieChart.PACKAGE);
}
Ma première hypothèse est cela va dans le constructeur UiBinder, correct? Pourtant, cela suppose que je veux placer l'élément dans le RootLayoutPanel, et je ne le fais pas. Je ne peux pas voir une manière élégante et évidente de le placer dans le classeur. Je soumets que même cette supposition peut être fausse. Des idées des experts?
EDIT: Je tiens à préciser ma tentative:
public GraphPanel() {
initWidget(uiBinder.createAndBindUi(this));
Runnable onLoadCallback = new Runnable() {
public void run() {
//LayoutPanel panel = RootPanel.
// Create a pie chart visualization.
PieChart pie = new PieChart(createPieTable(), createPieOptions());
pie.addSelectHandler(createSelectHandler(pie));
mySelf.getElement().appendChild(pie.getElement()); // .add(pie);
}
};
// Load the visualization api, passing the onLoadCallback to be called
// when loading is done.
VisualizationUtils.loadVisualizationApi(onLoadCallback, PieChart.PACKAGE);
}
Quand cours, je reçois le texte suivant dans le Composites DIV:
<div class="gwt-viz-container"></div>
Mais je ne vois pas le graphique en utilisant le code de ce qui précède page.
EDIT 2: Ce lien peut fournir des informations supplémentaires. Cependant, la solution proposée n'est pas optimale car l'application doit alors en savoir plus sur le widget (et si le widget est encore là). http://vaadin.com/forum/-/message_boards/message/97850
EDIT 3: Cela ne devrait pas importer, mais juste au cas où, je cours FF sous Linux. Certains articles que j'ai lus impliquent que c'est un problème.
EDIT 4: Ajout:
pie.draw(createPieTable(), createPieOptions());
après que l'enfant append obtient le graphique pour afficher. Cela implique que l'ordre de l'exemple est faux. Si oui, quel est l'optimum?
Vous votant tous les deux mais donnant le chèque ici car je pense que c'était la clé de mon problème. Merci pour votre aide à tous les deux. – nick