From: <lor...@us...> - 2010-11-27 12:51:54
|
Revision: 2484 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2484&view=rev Author: lorenz_b Date: 2010-11-27 12:51:47 +0000 (Sat, 27 Nov 2010) Log Message: ----------- Updated pom files. Made some changes in AutoSPARLQ to navigate between home-view and query-creation-view. Modified Paths: -------------- trunk/autosparql/pom.xml trunk/autosparql/src/main/java/org/dllearner/autosparql/client/Application.java trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/ApplicationController.java trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/ApplicationView.java trunk/autosparql/src/main/java/org/dllearner/autosparql/client/widget/ExamplesPanel.java trunk/pom.xml Added Paths: ----------- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/HomeController.java trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/QueryController.java trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/HomeView.java trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/QueryView.java Modified: trunk/autosparql/pom.xml =================================================================== --- trunk/autosparql/pom.xml 2010-11-25 17:22:53 UTC (rev 2483) +++ trunk/autosparql/pom.xml 2010-11-27 12:51:47 UTC (rev 2484) @@ -78,9 +78,6 @@ <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> - <version>5.1.13</version> - <type>jar</type> - <scope>compile</scope> </dependency> </dependencies> Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/Application.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/Application.java 2010-11-25 17:22:53 UTC (rev 2483) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/Application.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -1,6 +1,8 @@ package org.dllearner.autosparql.client; import org.dllearner.autosparql.client.controller.ApplicationController; +import org.dllearner.autosparql.client.controller.HomeController; +import org.dllearner.autosparql.client.controller.QueryController; import org.dllearner.autosparql.client.controller.SearchController; import com.extjs.gxt.ui.client.GXT; @@ -20,6 +22,8 @@ public class Application implements EntryPoint, ValueChangeHandler<String> { + + public static final String SERVICE = "sparqlservice"; /** * This is the entry point method. @@ -30,18 +34,20 @@ Dispatcher dispatcher = Dispatcher.get(); dispatcher.addController(new ApplicationController()); -// dispatcher.addController(new SearchController()); + dispatcher.addController(new HomeController()); + dispatcher.addController(new QueryController()); - String initToken = History.getToken(); - if(initToken.isEmpty()){ - History.newItem(HistoryTokens.HOME); - } +// String initToken = History.getToken(); +// if(initToken.isEmpty()){ +// History.newItem(HistoryTokens.HOME); +// } + History.addValueChangeHandler(this); - History.fireCurrentHistoryState(); +// History.fireCurrentHistoryState(); -// Dispatcher.forwardEvent(AppEvents.Init); + Dispatcher.forwardEvent(AppEvents.Init); GXT.hideLoadingPanel("loading"); @@ -55,7 +61,7 @@ if(historyToken.equals(HistoryTokens.HOME)){ Dispatcher.forwardEvent(AppEvents.NavHome); } else if(historyToken.equals(HistoryTokens.QUERY)){ - Dispatcher.forwardEvent(AppEvents.Init); + Dispatcher.forwardEvent(AppEvents.NavQuery); } } Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/ApplicationController.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/ApplicationController.java 2010-11-25 17:22:53 UTC (rev 2483) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/ApplicationController.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -1,60 +1,43 @@ package org.dllearner.autosparql.client.controller; import org.dllearner.autosparql.client.AppEvents; +import org.dllearner.autosparql.client.HistoryTokens; import org.dllearner.autosparql.client.view.ApplicationView; import com.extjs.gxt.ui.client.event.EventType; import com.extjs.gxt.ui.client.mvc.AppEvent; import com.extjs.gxt.ui.client.mvc.Controller; +import com.extjs.gxt.ui.client.mvc.Dispatcher; public class ApplicationController extends Controller { - + private ApplicationView appView; - - public ApplicationController(){ + + public ApplicationController() { registerEventTypes(AppEvents.Init); registerEventTypes(AppEvents.Error); - registerEventTypes(AppEvents.AddPosExample); - registerEventTypes(AppEvents.AddNegExample); - registerEventTypes(AppEvents.AddExample); - registerEventTypes(AppEvents.ShowInteractiveMode); - registerEventTypes(AppEvents.UpdateResultTable); } - @Override public void handleEvent(AppEvent event) { EventType type = event.getType(); - if (type == AppEvents.Init) { onInit(event); } else if (type == AppEvents.Error) { onError(event); - } else if(type == AppEvents.AddPosExample){ - forwardToView(appView, event); - } else if(type == AppEvents.AddPosExample){ - forwardToView(appView, event); - }else if(type == AppEvents.AddExample){ - forwardToView(appView, event); - } else if(type == AppEvents.RemoveExample){ - forwardToView(appView, event); - } else if(type == AppEvents.ShowInteractiveMode){ - forwardToView(appView, event); - } else if(type == AppEvents.UpdateResultTable){ - forwardToView(appView, event); } } - - @Override - protected void initialize() { + + public void initialize() { appView = new ApplicationView(this); } - + protected void onError(AppEvent ae) { System.out.println("error: " + ae.<Object> getData()); } private void onInit(AppEvent event) { forwardToView(appView, event); + Dispatcher.forwardEvent(new AppEvent(AppEvents.NavHome, null, HistoryTokens.HOME)); } } Added: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/HomeController.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/HomeController.java (rev 0) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/HomeController.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -0,0 +1,36 @@ +package org.dllearner.autosparql.client.controller; + +import org.dllearner.autosparql.client.AppEvents; +import org.dllearner.autosparql.client.view.HomeView; + +import com.extjs.gxt.ui.client.event.EventType; +import com.extjs.gxt.ui.client.mvc.AppEvent; +import com.extjs.gxt.ui.client.mvc.Controller; + +public class HomeController extends Controller { + + private HomeView homeView; + + public HomeController(){ + registerEventTypes(AppEvents.NavHome); + } + + @Override + public void handleEvent(AppEvent event) { + EventType type = event.getType(); + + if (type == AppEvents.NavHome) { + forwardToView(homeView, event); + } + } + + @Override + protected void initialize() { + homeView = new HomeView(this); + } + + protected void onError(AppEvent ae) { + System.out.println("error: " + ae.<Object> getData()); + } + +} Added: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/QueryController.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/QueryController.java (rev 0) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/controller/QueryController.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -0,0 +1,50 @@ +package org.dllearner.autosparql.client.controller; + +import org.dllearner.autosparql.client.AppEvents; +import org.dllearner.autosparql.client.view.ApplicationView; +import org.dllearner.autosparql.client.view.QueryView; + +import com.extjs.gxt.ui.client.event.EventType; +import com.extjs.gxt.ui.client.mvc.AppEvent; +import com.extjs.gxt.ui.client.mvc.Controller; + +public class QueryController extends Controller { + + private QueryView queryView; + + public QueryController(){ + registerEventTypes(AppEvents.NavQuery); + registerEventTypes(AppEvents.AddPosExample); + registerEventTypes(AppEvents.AddNegExample); + registerEventTypes(AppEvents.AddExample); + registerEventTypes(AppEvents.ShowInteractiveMode); + registerEventTypes(AppEvents.UpdateResultTable); + } + + @Override + public void handleEvent(AppEvent event) { + EventType type = event.getType(); + + if (type == AppEvents.NavQuery) { + forwardToView(queryView, event); + } else if(type == AppEvents.AddPosExample){ + forwardToView(queryView, event); + } else if(type == AppEvents.AddPosExample){ + forwardToView(queryView, event); + }else if(type == AppEvents.AddExample){ + forwardToView(queryView, event); + } else if(type == AppEvents.RemoveExample){ + forwardToView(queryView, event); + } else if(type == AppEvents.ShowInteractiveMode){ + forwardToView(queryView, event); + } else if(type == AppEvents.UpdateResultTable){ + forwardToView(queryView, event); + } + } + + @Override + protected void initialize() { + queryView = new QueryView(this); + } + +} Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/ApplicationView.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/ApplicationView.java 2010-11-25 17:22:53 UTC (rev 2483) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/ApplicationView.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -1,329 +1,101 @@ package org.dllearner.autosparql.client.view; -import java.util.List; - import org.dllearner.autosparql.client.AppEvents; -import org.dllearner.autosparql.client.SPARQLService; -import org.dllearner.autosparql.client.exception.SPARQLQueryException; -import org.dllearner.autosparql.client.model.Endpoint; -import org.dllearner.autosparql.client.model.Example; -import org.dllearner.autosparql.client.widget.ExamplesPanel; -import org.dllearner.autosparql.client.widget.InfoPanel; -import org.dllearner.autosparql.client.widget.InteractivePanel; -import org.dllearner.autosparql.client.widget.ResultPanel; -import org.dllearner.autosparql.client.widget.SearchPanel; import com.extjs.gxt.ui.client.Registry; import com.extjs.gxt.ui.client.Style.LayoutRegion; import com.extjs.gxt.ui.client.Style.Orientation; -import com.extjs.gxt.ui.client.event.Listener; -import com.extjs.gxt.ui.client.event.MessageBoxEvent; -import com.extjs.gxt.ui.client.event.SelectionChangedEvent; -import com.extjs.gxt.ui.client.event.SelectionChangedListener; import com.extjs.gxt.ui.client.mvc.AppEvent; import com.extjs.gxt.ui.client.mvc.Controller; import com.extjs.gxt.ui.client.mvc.View; -import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.util.Margins; import com.extjs.gxt.ui.client.widget.HtmlContainer; import com.extjs.gxt.ui.client.widget.LayoutContainer; -import com.extjs.gxt.ui.client.widget.MessageBox; import com.extjs.gxt.ui.client.widget.Viewport; -import com.extjs.gxt.ui.client.widget.button.Button; -import com.extjs.gxt.ui.client.widget.form.ComboBox; import com.extjs.gxt.ui.client.widget.layout.BorderLayout; import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; import com.extjs.gxt.ui.client.widget.layout.FitLayout; -import com.extjs.gxt.ui.client.widget.layout.RowData; import com.extjs.gxt.ui.client.widget.layout.RowLayout; -import com.extjs.gxt.ui.client.widget.tips.QuickTip; -import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.RootPanel; public class ApplicationView extends View { - public static final String SEARCH_PANEL = "searchpanel"; - public static final String HEADER_PANEL = "headerpanel"; - public static final String VIEWPORT = "viewport"; - private Viewport viewport; - - private SearchPanel searchPanel; - private ExamplesPanel examplesPanel; - private InteractivePanel interactivePanel; - private ResultPanel resultPanel; - private InfoPanel infoPanel; - - private LayoutContainer dummyPanel; - - public ApplicationView(Controller controller) { - super(controller); - } - - @Override - protected void initialize() { - // TODO Auto-generated method stub - super.initialize(); - } - - private void initUI() { + public static final String WEST_PANEL = "west"; + public static final String VIEWPORT = "viewport"; + public static final String CENTER_PANEL = "center"; + + private Viewport viewport; + private LayoutContainer center; + + public ApplicationView(Controller controller) { + super(controller); + } + + protected void initialize() { +// LoginDialog dialog = new LoginDialog(); +// dialog.setClosable(false); +// dialog.addListener(Events.Hide, new Listener<WindowEvent>() { +// public void handleEvent(WindowEvent be) { +// Dispatcher.forwardEvent(AppEvents.Init); +// } +// }); +// dialog.show(); + super.initialize(); + } + + private void initUI() {System.out.println("init ApplicationView"); viewport = new Viewport(); viewport.setLayout(new BorderLayout()); - - createHeaderPanel(); - -// Portal mainPanel = new Portal(2); -// mainPanel.setColumnWidth(0, 0.33); -// mainPanel.setColumnWidth(1, 0.67); -// BorderLayoutData data = new BorderLayoutData(LayoutRegion.CENTER); -// data.setMargins(new Margins(5, 5, 5, 0)); -// viewport.add(mainPanel, data); -// -// dummyPanel = new Portlet(new FitLayout()); -// dummyPanel.setHeaderVisible(false); -// dummyPanel.setBorders(false); -// dummyPanel.setHeight(150); -// mainPanel.add(dummyPanel, 0); -// -// infoPanel = new InfoPanel(); -// dummyPanel.add(infoPanel); -// -// interactivePanel = new InteractivePanel(); -// -// searchPanel = new SearchPanel(); -// searchPanel.setHeight(550); -// mainPanel.add(searchPanel, 0); -// -// examplesPanel = new ExamplesPanel(); -// examplesPanel.setHeight(350); -// mainPanel.add(examplesPanel, 1); -// -// resultPanel = new ResultPanel(); -// resultPanel.setHeight(350); -// mainPanel.add(resultPanel, 1); - - LayoutContainer mainPanel = new LayoutContainer(new RowLayout(Orientation.HORIZONTAL)); - BorderLayoutData data = new BorderLayoutData(LayoutRegion.CENTER); - data.setMargins(new Margins(5, 5, 5, 0)); - viewport.add(mainPanel, data); - - LayoutContainer vPanel = new LayoutContainer(new RowLayout(Orientation.VERTICAL)); - mainPanel.add(vPanel, new RowData(0.3, 1, new Margins(0, 5, 0, 0))); - - vPanel.add(createEndpointSelector(), new RowData(-1, -1, new Margins(0, 0, 10, 0))); - - dummyPanel = new LayoutContainer(new FitLayout()); - vPanel.add(dummyPanel, new RowData(1, 0.2, new Margins(0, 0, 10, 0))); - - infoPanel = new InfoPanel(); - dummyPanel.add(infoPanel); - - interactivePanel = new InteractivePanel(); - - searchPanel = new SearchPanel(); - vPanel.add(searchPanel, new RowData(1, 0.8, new Margins(5, 0, 0, 0))); - - vPanel = new LayoutContainer(new RowLayout(Orientation.VERTICAL)); - mainPanel.add(vPanel, new RowData(0.7, 1, new Margins(0, 0, 0, 5))); - - resultPanel = new ResultPanel(); - vPanel.add(resultPanel, new RowData(1, 0.5, new Margins(10, 0, 0, 0))); - - examplesPanel = new ExamplesPanel(); - vPanel.add(examplesPanel, new RowData(1, 0.5, new Margins(0, 0, 5, 0))); -// + + createNorth(); + createCenter(); + // registry serves as a global context Registry.register(VIEWPORT, viewport); - Registry.register(SEARCH_PANEL, searchPanel); + Registry.register(CENTER_PANEL, center); RootPanel.get().add(viewport); } - - private void createSearchPanel(){ - searchPanel = new SearchPanel(); - viewport.add(searchPanel); - } - - private void createExamplesPanel(){ - examplesPanel = new ExamplesPanel(); - viewport.add(examplesPanel); - } - - private void createInteractiveAndResultPanel(){ - LayoutContainer c = new LayoutContainer(new RowLayout(Orientation.VERTICAL)); - interactivePanel = new InteractivePanel(); - c.add(interactivePanel); - - resultPanel = new ResultPanel(); - c.add(resultPanel); - - viewport.add(c); - } - - private void createHeaderPanel(){ - LayoutContainer c = new LayoutContainer(new RowLayout(Orientation.VERTICAL)); + + private void createNorth() { + LayoutContainer c = new LayoutContainer(new RowLayout( + Orientation.VERTICAL)); StringBuffer sb = new StringBuffer(); - sb.append("<div id='demo-theme'></div><div id=demo-title>AutoSPARQL</div>"); + sb.append("<div id='demo-theme'></div><div id=demo-title>AutoSPARQL</div>"); - HtmlContainer headerPanel = new HtmlContainer(sb.toString()); - headerPanel.setStateful(false); - headerPanel.setId("demo-header"); - headerPanel.addStyleName("x-small-editor"); - - final Image logo = new Image("dl-learner_logo.gif"); - logo.setHeight("30px"); - headerPanel.add(logo, "#demo-theme"); - - c.add(headerPanel); - c.add(createEndpointSelector()); + HtmlContainer headerPanel = new HtmlContainer(sb.toString()); + headerPanel.setStateful(false); + headerPanel.setId("demo-header"); + headerPanel.addStyleName("x-small-editor"); - BorderLayoutData data = new BorderLayoutData(LayoutRegion.NORTH, 33); - data.setMargins(new Margins()); - viewport.add(c, data); - - Registry.register(HEADER_PANEL, headerPanel); - } - - private ComboBox<Endpoint> createEndpointSelector(){ - final ListStore<Endpoint> endpoints = new ListStore<Endpoint>(); - SPARQLService.Util.getInstance().getEndpoints(new AsyncCallback<List<Endpoint>>() { + final Image logo = new Image("dl-learner_logo.gif"); + logo.setHeight("30px"); + headerPanel.add(logo, "#demo-theme"); - @Override - public void onFailure(Throwable caught) { - - } + c.add(headerPanel); - @Override - public void onSuccess(List<Endpoint> result) { - endpoints.add(result); - - } - - }); - - ComboBox<Endpoint> combo = new ComboBox<Endpoint>(); - combo.setEditable(false); - combo.setEmptyText("Select an endpoint..."); - combo.setDisplayField("label"); - combo.setWidth(150); - combo.setStore(endpoints); - combo.setTypeAhead(true); - combo.addSelectionChangedListener(new SelectionChangedListener<Endpoint>() { - @Override - public void selectionChanged(SelectionChangedEvent<Endpoint> se) { - SPARQLService.Util.getInstance().setEndpoint(se.getSelectedItem(), new AsyncCallback<Void>() { - @Override - public void onFailure(Throwable caught) { - } - @Override - public void onSuccess(Void result) { - } - }); - } - }); - - return combo; + BorderLayoutData data = new BorderLayoutData(LayoutRegion.NORTH, 33); + data.setMargins(new Margins()); + viewport.add(c, data); + } - - private void createResultPanel(){ - resultPanel = new ResultPanel(); - viewport.add(resultPanel); - } - - @Override - protected void handleEvent(AppEvent event) { - if (event.getType() == AppEvents.Init) { - initUI(); - } else if(event.getType() == AppEvents.AddPosExample){ - examplesPanel.addPositiveExample((Example) event.getData()); - if(examplesPanel.getPositiveExamples().size() == 1 && examplesPanel.getNegativeExamples().isEmpty()){ - askForSwitchingToInteractiveMode(); - SPARQLService.Util.getInstance().getSimilarExample( - examplesPanel.getPositiveExamplesURIs(), - examplesPanel.getNegativeExamplesUris(), new AsyncCallback<Example>() { - - @Override - public void onSuccess(Example result) { - interactivePanel.setExample(result); - } - - @Override - public void onFailure(Throwable caught) { - // TODO Auto-generated method stub - - } - }); - } - } else if(event.getType() == AppEvents.AddExample){ - Example example = event.getData("example"); - if(event.getData("type") == Example.Type.POSITIVE){ - examplesPanel.addPositiveExample(example); - } else { - examplesPanel.addNegativeExample(example); - } - if (!examplesPanel.getPositiveExamplesURIs().isEmpty()) { - interactivePanel.mask("Searching..."); - SPARQLService.Util.getInstance().getSimilarExample( - examplesPanel.getPositiveExamplesURIs(), - examplesPanel.getNegativeExamplesUris(), - new AsyncCallback<Example>() { - @Override - public void onSuccess(Example result) { - interactivePanel.unmask(); - interactivePanel.setExample(result); - resultPanel.refresh(examplesPanel.getPositiveExamplesURIs(), - examplesPanel.getNegativeExamplesUris()); - } + private void createCenter() { + center = new LayoutContainer(); + center.setLayout(new FitLayout()); - @Override - public void onFailure(Throwable caught) { - String details = caught.getMessage(); - if (caught instanceof SPARQLQueryException) { - details = "An error occured while sending the following query:\n" - + ((SPARQLQueryException) caught) - .getQuery(); - } - MessageBox.alert("Error", details, null); + BorderLayoutData data = new BorderLayoutData(LayoutRegion.CENTER); + data.setMargins(new Margins(5, 5, 5, 5)); - } - }); - } - - } else if(event.getType() == AppEvents.AddNegExample){ - examplesPanel.addNegativeExample((Example) event.getData()); - } else if(event.getType() == AppEvents.RemoveExample){ - - } else if(event.getType() == AppEvents.ShowInteractiveMode){ - showInteractivePanel(); - } else if(event.getType() == AppEvents.UpdateResultTable){ - resultPanel.refresh(examplesPanel.getPositiveExamplesURIs(), examplesPanel.getNegativeExamplesUris()); - } - } - - private void askForSwitchingToInteractiveMode(){ - MessageBox.confirm("Switch to interactive mode?", - "You have added one example which should belong to the query result. Do you want to switch to the interactive" + - "learning mode now?", new Listener<MessageBoxEvent>() { - - @Override - public void handleEvent(MessageBoxEvent be) { - Button b = be.getButtonClicked(); - if(b.getText().equals("Yes")){ - interactivePanel.expand(); - interactivePanel.focus(); - } else { - searchPanel.setFocus(); - } - } - }); - } - - private void showInteractivePanel(){ - dummyPanel.remove(infoPanel); - dummyPanel.add(interactivePanel); - dummyPanel.layout(); - } + viewport.add(center, data); + } + protected void handleEvent(AppEvent event) { + if (event.getType() == AppEvents.Init) { + initUI(); + } + } + } Added: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/HomeView.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/HomeView.java (rev 0) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/HomeView.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -0,0 +1,110 @@ +package org.dllearner.autosparql.client.view; + +import java.util.List; + +import org.dllearner.autosparql.client.AppEvents; +import org.dllearner.autosparql.client.HistoryTokens; +import org.dllearner.autosparql.client.SPARQLService; +import org.dllearner.autosparql.client.model.Endpoint; + +import com.extjs.gxt.ui.client.Registry; +import com.extjs.gxt.ui.client.Style.LayoutRegion; +import com.extjs.gxt.ui.client.Style.Orientation; +import com.extjs.gxt.ui.client.event.SelectionChangedEvent; +import com.extjs.gxt.ui.client.event.SelectionChangedListener; +import com.extjs.gxt.ui.client.mvc.AppEvent; +import com.extjs.gxt.ui.client.mvc.Controller; +import com.extjs.gxt.ui.client.mvc.View; +import com.extjs.gxt.ui.client.store.ListStore; +import com.extjs.gxt.ui.client.widget.LayoutContainer; +import com.extjs.gxt.ui.client.widget.form.ComboBox; +import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; +import com.extjs.gxt.ui.client.widget.layout.BorderLayout; +import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; +import com.extjs.gxt.ui.client.widget.layout.RowLayout; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.Hyperlink; + +public class HomeView extends View { + + public static final String SEARCH_PANEL = "searchpanel"; + public static final String HEADER_PANEL = "headerpanel"; + public static final String VIEWPORT = "viewport"; + + private LayoutContainer container; + + public HomeView(Controller controller) { + super(controller); + } + + @Override + protected void initialize() { + container = new LayoutContainer(new RowLayout(Orientation.VERTICAL)); + +// BorderLayout layout = new BorderLayout(); +// layout.setEnableState(false); +// container.setLayout(layout); +// container.add(createEndpointSelector(), new BorderLayoutData(LayoutRegion.NORTH)); + container.add(createEndpointSelector()); + Hyperlink learnQueryLink = new Hyperlink("Learn Query", HistoryTokens.QUERY); + container.add(learnQueryLink); + + } + + private ComboBox<Endpoint> createEndpointSelector(){ + final ListStore<Endpoint> endpoints = new ListStore<Endpoint>(); + SPARQLService.Util.getInstance().getEndpoints(new AsyncCallback<List<Endpoint>>() { + + @Override + public void onFailure(Throwable caught) { + + } + + @Override + public void onSuccess(List<Endpoint> result) { + endpoints.add(result); + + } + + }); + + final ComboBox<Endpoint> combo = new ComboBox<Endpoint>(); + combo.setEditable(false); + combo.setEmptyText("Select an endpoint..."); + combo.setDisplayField("label"); + combo.setWidth(150); + combo.setStore(endpoints); + combo.setTypeAhead(true); + combo.setTriggerAction(TriggerAction.ALL); + combo.addSelectionChangedListener(new SelectionChangedListener<Endpoint>() { + + @Override + public void selectionChanged(SelectionChangedEvent<Endpoint> se) { + SPARQLService.Util.getInstance().setEndpoint(se.getSelectedItem(), new AsyncCallback<Void>() { + @Override + public void onFailure(Throwable caught) { + } + @Override + public void onSuccess(Void result) { + } + }); + } + }); + + return combo; + } + + @Override + protected void handleEvent(AppEvent event) { + if (event.getType() == AppEvents.NavHome) {System.out.println("Go to HomeView"); + LayoutContainer wrapper = (LayoutContainer) Registry.get(ApplicationView.CENTER_PANEL); + wrapper.removeAll(); + wrapper.add(container); + wrapper.layout(); + return; + } + + } + + +} Added: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/QueryView.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/QueryView.java (rev 0) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/view/QueryView.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -0,0 +1,216 @@ +package org.dllearner.autosparql.client.view; + +import org.dllearner.autosparql.client.AppEvents; +import org.dllearner.autosparql.client.SPARQLService; +import org.dllearner.autosparql.client.exception.SPARQLQueryException; +import org.dllearner.autosparql.client.model.Example; +import org.dllearner.autosparql.client.widget.ExamplesPanel; +import org.dllearner.autosparql.client.widget.InfoPanel; +import org.dllearner.autosparql.client.widget.InteractivePanel; +import org.dllearner.autosparql.client.widget.ResultPanel; +import org.dllearner.autosparql.client.widget.SearchPanel; + +import com.extjs.gxt.ui.client.Registry; +import com.extjs.gxt.ui.client.Style.LayoutRegion; +import com.extjs.gxt.ui.client.Style.Orientation; +import com.extjs.gxt.ui.client.event.Listener; +import com.extjs.gxt.ui.client.event.MessageBoxEvent; +import com.extjs.gxt.ui.client.mvc.AppEvent; +import com.extjs.gxt.ui.client.mvc.Controller; +import com.extjs.gxt.ui.client.mvc.View; +import com.extjs.gxt.ui.client.util.Margins; +import com.extjs.gxt.ui.client.widget.LayoutContainer; +import com.extjs.gxt.ui.client.widget.MessageBox; +import com.extjs.gxt.ui.client.widget.button.Button; +import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; +import com.extjs.gxt.ui.client.widget.layout.FitLayout; +import com.extjs.gxt.ui.client.widget.layout.RowData; +import com.extjs.gxt.ui.client.widget.layout.RowLayout; +import com.google.gwt.user.client.rpc.AsyncCallback; + +public class QueryView extends View { + + private SearchPanel searchPanel; + private ExamplesPanel examplesPanel; + private InteractivePanel interactivePanel; + private ResultPanel resultPanel; + private InfoPanel infoPanel; + + private LayoutContainer dummyPanel; + + private LayoutContainer mainPanel; + + public QueryView(Controller controller) { + super(controller); + } + + @Override + protected void initialize() { + mainPanel = new LayoutContainer(new RowLayout(Orientation.HORIZONTAL)); + BorderLayoutData data = new BorderLayoutData(LayoutRegion.CENTER); + data.setMargins(new Margins(5, 5, 5, 0)); + + LayoutContainer vPanel = new LayoutContainer(new RowLayout(Orientation.VERTICAL)); + mainPanel.add(vPanel, new RowData(0.3, 1, new Margins(0, 5, 0, 0))); + + dummyPanel = new LayoutContainer(new FitLayout()); + vPanel.add(dummyPanel, new RowData(1, 0.2, new Margins(0, 0, 10, 0))); + + infoPanel = new InfoPanel(); + dummyPanel.add(infoPanel); + + interactivePanel = new InteractivePanel(); + + searchPanel = new SearchPanel(); + vPanel.add(searchPanel, new RowData(1, 0.8, new Margins(5, 0, 0, 0))); + + vPanel = new LayoutContainer(new RowLayout(Orientation.VERTICAL)); + mainPanel.add(vPanel, new RowData(0.7, 1, new Margins(0, 0, 0, 5))); + + resultPanel = new ResultPanel(); + vPanel.add(resultPanel, new RowData(1, 0.5, new Margins(10, 0, 0, 0))); + + examplesPanel = new ExamplesPanel(); + vPanel.add(examplesPanel, new RowData(1, 0.5, new Margins(0, 0, 5, 0))); + } + + @Override + protected void handleEvent(AppEvent event) { + if (event.getType() == AppEvents.NavQuery) {System.out.println("Go to QueryView"); + LayoutContainer wrapper = (LayoutContainer) Registry.get(ApplicationView.CENTER_PANEL); + wrapper.removeAll(); + wrapper.add(mainPanel); + wrapper.layout(); + return; + } else if(event.getType() == AppEvents.AddPosExample){ + examplesPanel.addPositiveExample((Example) event.getData()); + if(examplesPanel.getPositiveExamples().size() == 1 && examplesPanel.getNegativeExamples().isEmpty()){ + askForSwitchingToInteractiveMode(); + SPARQLService.Util.getInstance().getSimilarExample( + examplesPanel.getPositiveExamplesURIs(), + examplesPanel.getNegativeExamplesUris(), new AsyncCallback<Example>() { + + @Override + public void onSuccess(Example result) { + interactivePanel.setExample(result); + } + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + }); + } + } else if(event.getType() == AppEvents.AddExample){ + Example example = event.getData("example"); + Example.Type type = event.getData("type"); + onAddExample(example, type); + } else if(event.getType() == AppEvents.AddNegExample){ + examplesPanel.addNegativeExample((Example) event.getData()); + } else if(event.getType() == AppEvents.RemoveExample){ + + } else if(event.getType() == AppEvents.ShowInteractiveMode){ + showInteractivePanel(); + } else if(event.getType() == AppEvents.UpdateResultTable){ + resultPanel.refresh(examplesPanel.getPositiveExamplesURIs(), examplesPanel.getNegativeExamplesUris()); + } + } + + private void askForSwitchingToInteractiveMode(){ + MessageBox.confirm("Switch to interactive mode?", + "You have added one example which should belong to the query result. Do you want to switch to the interactive" + + "learning mode now?", new Listener<MessageBoxEvent>() { + + @Override + public void handleEvent(MessageBoxEvent be) { + Button b = be.getButtonClicked(); + if(b.getText().equals("Yes")){ + interactivePanel.expand(); + interactivePanel.focus(); + } else { + searchPanel.setFocus(); + } + } + }); + } + + private void showInteractivePanel(){ + dummyPanel.remove(infoPanel); + dummyPanel.add(interactivePanel); + dummyPanel.layout(); + } + + private void onAddExample(Example example, Example.Type type){ + if(type == Example.Type.POSITIVE){ + examplesPanel.addPositiveExample(example); + } else { + examplesPanel.addNegativeExample(example); + } + if (!examplesPanel.getPositiveExamplesURIs().isEmpty()) { + interactivePanel.mask("Searching..."); + SPARQLService.Util.getInstance().getSimilarExample( + examplesPanel.getPositiveExamplesURIs(), + examplesPanel.getNegativeExamplesUris(), + new AsyncCallback<Example>() { + + @Override + public void onSuccess(Example result) { + interactivePanel.unmask(); + interactivePanel.setExample(result); + resultPanel.refresh(examplesPanel.getPositiveExamplesURIs(), + examplesPanel.getNegativeExamplesUris()); + } + + @Override + public void onFailure(Throwable caught) { + String details = caught.getMessage(); + if (caught instanceof SPARQLQueryException) { + details = "An error occured while sending the following query:\n" + + ((SPARQLQueryException) caught) + .getQuery(); + } + MessageBox.alert("Error", details, null); + + } + }); + } + } + + private void onRemoveExample(Example example, Example.Type type){ + if(type == Example.Type.POSITIVE){ + examplesPanel.removePositiveExample(example); + } else { + examplesPanel.addNegativeExample(example); + } + if (!examplesPanel.getPositiveExamplesURIs().isEmpty()) { + interactivePanel.mask("Searching..."); + SPARQLService.Util.getInstance().getSimilarExample( + examplesPanel.getPositiveExamplesURIs(), + examplesPanel.getNegativeExamplesUris(), + new AsyncCallback<Example>() { + + @Override + public void onSuccess(Example result) { + interactivePanel.unmask(); + interactivePanel.setExample(result); + resultPanel.refresh(examplesPanel.getPositiveExamplesURIs(), + examplesPanel.getNegativeExamplesUris()); + } + + @Override + public void onFailure(Throwable caught) { + String details = caught.getMessage(); + if (caught instanceof SPARQLQueryException) { + details = "An error occured while sending the following query:\n" + + ((SPARQLQueryException) caught) + .getQuery(); + } + MessageBox.alert("Error", details, null); + + } + }); + } + } + +} Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/client/widget/ExamplesPanel.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/client/widget/ExamplesPanel.java 2010-11-25 17:22:53 UTC (rev 2483) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/client/widget/ExamplesPanel.java 2010-11-27 12:51:47 UTC (rev 2484) @@ -100,25 +100,25 @@ ListStore<Example> store, Grid<Example> grid) { VerticalPanel p = new VerticalPanel(); p.setSize(25, 50); - Button addPosButton = new Button("-"); - addPosButton.setSize(20, 20); - addPosButton.addSelectionListener(new SelectionListener<ButtonEvent>() { + Button move2NegButton = new Button("-"); + move2NegButton.setSize(20, 20); + move2NegButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { posExamplesStore.remove(model); negExamplesStore.add(model); } }); - Button addNegButton = new Button("x"); - addNegButton.setSize(20, 20); - addNegButton.addSelectionListener(new SelectionListener<ButtonEvent>() { + Button removeButton = new Button("x"); + removeButton.setSize(20, 20); + removeButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { posExamplesStore.remove(model); } }); - p.add(addPosButton); - p.add(addNegButton); + p.add(move2NegButton); + p.add(removeButton); return p; } @@ -207,25 +207,25 @@ ListStore<Example> store, Grid<Example> grid) { VerticalPanel p = new VerticalPanel(); p.setSize(25, 50); - Button addPosButton = new Button("+"); - addPosButton.setSize(20, 20); - addPosButton.addSelectionListener(new SelectionListener<ButtonEvent>() { + Button move2PosButton = new Button("+"); + move2PosButton.setSize(20, 20); + move2PosButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { negExamplesStore.remove(model); posExamplesStore.add(model); } }); - Button addNegButton = new Button("x"); - addNegButton.setSize(20, 20); - addNegButton.addSelectionListener(new SelectionListener<ButtonEvent>() { + Button removeButton = new Button("x"); + removeButton.setSize(20, 20); + removeButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { negExamplesStore.remove(model); } }); - p.add(addPosButton); - p.add(addNegButton); + p.add(move2PosButton); + p.add(removeButton); return p; } @@ -266,10 +266,18 @@ posExamplesStore.add(example); } + public void removePositiveExample(Example example){ + posExamplesStore.remove(example); + } + public void addNegativeExample(Example example){ negExamplesStore.add(example); } + public void removeNegativeExample(Example example){ + negExamplesStore.remove(example); + } + public List<Example> getPositiveExamples(){ return posExamplesStore.getModels(); } Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-11-25 17:22:53 UTC (rev 2483) +++ trunk/pom.xml 2010-11-27 12:51:47 UTC (rev 2484) @@ -134,7 +134,7 @@ <dependency> <groupId>com.extjs</groupId> <artifactId>gxt</artifactId> - <version>2.2.0</version> + <version>2.2.1</version> </dependency> <!--Available via central, we use the latest with minor mods to DL Learner source (IE Dig related code)--> @@ -306,6 +306,12 @@ <version>1.2.143</version> </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.13</version> + </dependency> + <!--GWT Dependencies--> <dependency> <groupId>com.google.gwt</groupId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |