package project.client.gadgets;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import project.client.ServletRpc;
import project.client.gadgets.events.EventListener;
import project.client.gadgets.events.Events;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
public class GadgetCrawlerPage extends Composite implements EventListener {
private static final String STYLE_MAIN = "CrawlerPage";
private static final String STYLE_PANEL = "panel";
private static final String STYLE_SETTINGS = "settings";
private Panel mainPanel = null;
private Panel mainCrawlerPanel = null;
public GadgetCrawlerPage () {
mainPanel = new VerticalPanel ();
mainPanel.setStyleName(STYLE_MAIN);
initWidget(mainPanel);
//
//
Events.addListener("show", this);
Panel hPanel = null;
hPanel = new HorizontalPanel ();
hPanel.addStyleName(STYLE_PANEL);
final Label lblAddSettings = new Label ("Add new settings");
lblAddSettings.addStyleName(STYLE_SETTINGS);
lblAddSettings.addClickListener(new ClickListener () {
public void onClick (Widget w) {
mainPanel.clear();
mainPanel.add(new GadgetAddCrawlerSettings ());
}
});
hPanel.add(lblAddSettings);
mainPanel.add(hPanel);
hPanel = new HorizontalPanel ();
hPanel.addStyleName(STYLE_PANEL);
final Label lblAddCrawler = new Label ("Add a new crawler");
lblAddCrawler.addStyleName(STYLE_SETTINGS);
lblAddCrawler.addClickListener(new ClickListener () {
public void onClick (Widget w) {
mainPanel.clear();
mainPanel.add(new GadgetAddCrawler ());
}
});
hPanel.add(lblAddCrawler);
mainPanel.add(hPanel);
mainCrawlerPanel = new VerticalPanel ();
mainPanel.add(mainCrawlerPanel);
displayCrawlers();
}
public void displayCrawlers () {
mainCrawlerPanel.clear();
ServletRpc.getRpcInterface().getCrawlers(null, new AsyncCallback<Map<String,Map<String,String>>> () {
public void onFailure (Throwable t) {
Window.alert("Exception : " + t.getMessage());
}
public void onSuccess (Map<String,Map<String,String>> result) {
Iterator<String> i = result.keySet().iterator();
while (i.hasNext()) {
String name = i.next();
mainCrawlerPanel.add(new GadgetCrawler (name));
}
}
});
}
public void handleEvent(String name, List<String> params) {
if (name.equals("show")) {
this.displayCrawlers();
}
}
}