package project.client.gadgets; import project.client.ServletRpc; import project.client.gadgets.events.Events; import com.google.gwt.http.client.Request; import com.google.gwt.http.client.RequestBuilder; import com.google.gwt.http.client.RequestCallback; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; 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.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; public class GadgetAddCrawlerSettings extends Composite { private static final String STYLE_MAIN = "addCrawlerSettings"; private static final String STYLE_PANEL = "hPanel"; private static final String STYLE_LABEL = "label"; private static final String STYLE_TEXTBOX = "textbox"; private static final String STYLE_BUTTON_OK = "btnOk"; private Panel mainPanel; private TextBox m_tbForumType; private TextBox m_tbCrawlerClass; private TextBox m_tbCrawlerThreadClass; private TextBox m_tbBaseUrl; public GadgetAddCrawlerSettings () { mainPanel = new VerticalPanel (); mainPanel.setStylePrimaryName(STYLE_MAIN); this.initWidget(mainPanel); Panel hPanel = new HorizontalPanel (); hPanel.addStyleName(STYLE_PANEL); Label lbl = new Label ("Forum type"); lbl.addStyleName(STYLE_LABEL); hPanel.add(lbl); m_tbForumType = new TextBox (); m_tbForumType.addStyleName(STYLE_TEXTBOX); hPanel.add(m_tbForumType); mainPanel.add(hPanel); hPanel = new HorizontalPanel (); hPanel.addStyleName(STYLE_PANEL); lbl = new Label ("Crawler class"); lbl.addStyleName(STYLE_LABEL); hPanel.add(lbl); m_tbCrawlerClass = new TextBox (); m_tbCrawlerClass.addStyleName(STYLE_TEXTBOX); hPanel.add(m_tbCrawlerClass); mainPanel.add(hPanel); hPanel = new HorizontalPanel (); hPanel.addStyleName(STYLE_PANEL); lbl = new Label ("Thread class"); lbl.addStyleName(STYLE_LABEL); hPanel.add(lbl); m_tbCrawlerThreadClass = new TextBox (); m_tbCrawlerThreadClass.addStyleName(STYLE_TEXTBOX); hPanel.add(m_tbCrawlerThreadClass); mainPanel.add(hPanel); hPanel = new HorizontalPanel (); hPanel.addStyleName(STYLE_PANEL); lbl = new Label ("Base url"); lbl.addStyleName(STYLE_LABEL); hPanel.add(lbl); m_tbBaseUrl = new TextBox (); m_tbBaseUrl.addStyleName(STYLE_TEXTBOX); hPanel.add(m_tbBaseUrl); mainPanel.add(hPanel); final Button btnOk = new Button ("OK"); btnOk.addStyleName(STYLE_BUTTON_OK); btnOk.addClickListener(new ClickListener () { public void onClick (Widget w) { RequestBuilder b = new RequestBuilder (RequestBuilder.GET, m_tbBaseUrl.getText()); b.setCallback(new RequestCallback () { public void onResponseReceived(Request arg0, com.google.gwt.http.client.Response arg1) { ServletRpc.getRpcInterface(). insertCrawlerSettings(m_tbForumType.getText(), m_tbCrawlerClass.getText(), m_tbCrawlerThreadClass.getText(), m_tbBaseUrl.getText(), new AsyncCallback<String> () { public void onSuccess (String result) { Window.alert(result); Events.throwEvent("show", null); } public void onFailure (Throwable t) { Window.alert(t.getMessage()); Events.throwEvent("show", null); } }); } public void onError(Request arg0, Throwable arg1) { Window.alert("Invalid Url : " + m_tbBaseUrl.getText()); } }); try { b.send(); } catch (Exception e) { Window.alert("Exception : " + e.getMessage()); } } }); mainPanel.add(btnOk); } }