diff --git a/java/com.sap.sailing.gwt.ui/.classpath b/java/com.sap.sailing.gwt.ui/.classpath index d61b2a24382..dd566e6861a 100755 --- a/java/com.sap.sailing.gwt.ui/.classpath +++ b/java/com.sap.sailing.gwt.ui/.classpath @@ -2,14 +2,10 @@ - - - - - + - + diff --git a/java/com.sap.sailing.gwt.ui/.project b/java/com.sap.sailing.gwt.ui/.project index 0e39cc17829..02737d5c66e 100755 --- a/java/com.sap.sailing.gwt.ui/.project +++ b/java/com.sap.sailing.gwt.ui/.project @@ -30,6 +30,11 @@ + full,incremental, + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.m2e.core.maven2Builder.launch + org.eclipse.pde.PluginNature diff --git a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs index b4ad05b12bb..ea7accb991a 100755 --- a/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs +++ b/java/com.sap.sailing.gwt.ui/.settings/com.google.gwt.eclipse.core.prefs @@ -1,4 +1,5 @@ -#Thu Sep 29 09:30:43 CEST 2011 +#Wed Nov 09 12:43:38 CET 2011 eclipse.preferences.version=1 +entryPointModules= filesCopiedToWebInfLib=gwt-servlet.jar gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBW11dPjwvZXh0cmEtYXJncz48dm0tYXJncz48IVtDREFUQVstWG14NTEybV1dPjwvdm0tYXJncz48ZW50cnktcG9pbnQtbW9kdWxlPmNvbS5zYXAuc2FpbGluZy5nd3QudWkuQWRtaW5Db25zb2xlPC9lbnRyeS1wb2ludC1tb2R1bGU+PC9nd3QtY29tcGlsZS1zZXR0aW5ncz4\= diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index 661dfa84bfe..3a34b75a325 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -21,7 +21,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/build.properties b/java/com.sap.sailing.gwt.ui/build.properties index 967a7882162..534ad514cdd 100755 --- a/java/com.sap.sailing.gwt.ui/build.properties +++ b/java/com.sap.sailing.gwt.ui/build.properties @@ -3,7 +3,5 @@ source.. = src/main/resources,\ output.. = bin bin.includes = META-INF/,\ .,\ - lib/gwt-visualization.jar,\ - lib/gwt-maps.jar,\ - lib/gwt-servlet.jar,\ war/ +jars.compile.order = . diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java index f1e2b64c361..479e111b839 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/AdminConsole.java @@ -38,10 +38,10 @@ public class AdminConsole extends AbstractEntryPoint implements EventRefresher { eventDisplayers.add(windPanel); windPanel.setSize("90%", "90%"); tabPanel.add(windPanel, stringConstants.wind(), /* asHTML */ false); - final RaceMapPanel raceMapPanel = new RaceMapPanel(sailingService, this, this, stringConstants); - eventDisplayers.add(raceMapPanel); - raceMapPanel.setSize("90%", "90%"); - tabPanel.add(raceMapPanel, stringConstants.map(), /* asHTML */ false); + //final RaceMapPanel raceMapPanel = new RaceMapPanel(sailingService, this, this, stringConstants); + //eventDisplayers.add(raceMapPanel); + //raceMapPanel.setSize("90%", "90%"); + //tabPanel.add(raceMapPanel, stringConstants.map(), /* asHTML */ false); LeaderboardPanel defaultLeaderboardPanel = new LeaderboardPanel(sailingService, stringConstants.defaultLeaderboard(), this, stringConstants); defaultLeaderboardPanel.setSize("90%", "90%"); tabPanel.add(defaultLeaderboardPanel, stringConstants.defaultLeaderboard(), /* asHTML */ false); @@ -51,14 +51,14 @@ public class AdminConsole extends AbstractEntryPoint implements EventRefresher { eventDisplayers.add(leaderboardConfigPanel); tabPanel.selectTab(0); - tabPanel.addSelectionHandler(new SelectionHandler() { + /*tabPanel.addSelectionHandler(new SelectionHandler() { @Override public void onSelection(SelectionEvent event) { if(raceMapPanel.isVisible()) { raceMapPanel.onResize(); } } - }); + });*/ fillEvents(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java index 5b0d1ab6b1f..46ea3eb345f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/ExpandableSortableColumn.java @@ -182,7 +182,7 @@ public abstract class ExpandableSortableColumn extends SortableColumn column) { + // TODO Auto-generated method stub + super.addColumn(column); + } + + @Override + public RaceColumn createRaceColumn(String raceName, + boolean isMedalRace, boolean isTracked) { + // TODO Auto-generated method stub + return super.createRaceColumn(raceName, isMedalRace, isTracked); + } + + @Override + public void removeColumn(int columnIndex) { + // TODO Auto-generated method stub + super.removeColumn(columnIndex); + } + + @Override + public void updateLeaderboard(LeaderboardDAO leaderboard) { + // TODO Auto-generated method stub + super.updateLeaderboard(leaderboard); + } + + @Override + public CellTable getLeaderboardTable() { + // TODO Auto-generated method stub + return super.getLeaderboardTable(); + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestColumnToggling.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestColumnToggling.java new file mode 100644 index 00000000000..23b4a93f22e --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestColumnToggling.java @@ -0,0 +1,218 @@ +package com.sap.sailing.gwt.ui.test; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.junit.client.GWTTestCase; +import com.google.gwt.user.cellview.client.Column; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.sap.sailing.gwt.ui.client.ExpandableSortableColumn; +import com.sap.sailing.gwt.ui.client.StringConstants; +import com.sap.sailing.gwt.ui.shared.LeaderboardDAO; +import com.sap.sailing.gwt.ui.shared.LeaderboardRowDAO; +import com.sap.sailing.gwt.ui.shared.Pair; +import com.sap.sailing.gwt.ui.shared.RaceRecordDAO; + +public class TestColumnToggling extends GWTTestCase { + + //These objects should be created by calling GWT.create(Class c); + private LeaderboardPanelMock leaderboardPanel; + private TestSailingServiceAsync service; + private StringConstants sc; + + //Test data. + private final String LEADERBOARD_NAME = "test"; + private final String COLUMN1_NAME = "r1"; + private final String EVENT_NAME = "Sailing Team Germany (STG)"; + private final String JSON_URL= "http://germanmaster.traclive.dk/events/event_20110505_SailingTea/jsonservice.php"; + private final String TRACKED_RACE = "schwerttest"; + + + private LeaderboardDAO leaderboard; + private RaceRecordDAO rrDao; + private ExpandableSortableColumn rc; + + + + @Override + protected void gwtSetUp() throws Exception { + super.gwtSetUp(); + service = GWT.create(TestSailingService.class); + sc = GWT.create(StringConstants.class); + } + + public void testColumnDeleting() { + delayTestFinish(1000000); + + listRacesInEvent(); + + } + + private void listRacesInEvent(){ + service.listTracTracRacesInEvent(JSON_URL, new AsyncCallback>>() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to list races." + caught.getLocalizedMessage()); + } + + @Override + public void onSuccess(Pair> result) { + System.out.println("Listed races."); + for (RaceRecordDAO rr : result.getB()){ + if (rr.name.equals(TRACKED_RACE)){ + rrDao = rr; + } + } + assertNotNull("rrDao != null",rrDao); + trackRace(); + } + }); + } + + private void trackRace(){ + service.track(rrDao, "", "", false, false, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to track race: " + caught.getLocalizedMessage()); + } + + @Override + public void onSuccess(Void result) { + System.out.println("Tracked race."); + createLeaderboard(); + } + }); + } + + private void createLeaderboard(){ + service.createLeaderboard(LEADERBOARD_NAME, new int[] { 1, 2 }, + new AsyncCallback() { + + @Override + public void onSuccess(Void result) { + System.out.println("Created Leaderboard."); + addColumnToLeaderboard(); + } + + @Override + public void onFailure(Throwable caught) { + fail("Failed to create Leaderboard." + caught.getLocalizedMessage()); + finishTest(); + } + }); + } + + private void addColumnToLeaderboard() { + leaderboardPanel = new LeaderboardPanelMock(service, LEADERBOARD_NAME, + null, sc); + + service.addColumnToLeaderboard(COLUMN1_NAME, LEADERBOARD_NAME, false, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to add column to leaderboard."); + finishTest(); + } + + @Override + public void onSuccess(Void result) { + System.out.println("Added column to leaderboard."); + leaderboardPanel.addColumn(leaderboardPanel.createRaceColumn(COLUMN1_NAME, false, false)); + linkTrackedRace(); + } + }); + } + + private void linkTrackedRace(){ + service.connectTrackedRaceToLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, EVENT_NAME, TRACKED_RACE, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to link race."); + } + + @Override + public void onSuccess(Void result) { + System.out.println("Linked race to column."); + getLeaderboard(); + } + }); + } + + private void getLeaderboard(){ + ArrayList al = new ArrayList(); + al.add(COLUMN1_NAME); + service.getLeaderboardByName(LEADERBOARD_NAME, new Date(), al, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to get leaderboard."); + finishTest(); + } + + @Override + public void onSuccess(LeaderboardDAO result) { + System.out.println("Got leaderboard."); + + leaderboard = result; + leaderboardPanel.updateLeaderboard(leaderboard); + for (int i = 0; i < leaderboardPanel.getLeaderboardTable() + .getColumnCount(); i++) { + Column c = leaderboardPanel.getLeaderboardTable().getColumn(i); + if (c instanceof ExpandableSortableColumn) { + + rc = (ExpandableSortableColumn) c; + rc.setEnableLegDrillDown(true); + } + } + removeColumnAndAssert(); + } + }); + } + + private void removeColumnAndAssert(){ + service.removeLeaderboardColumn(LEADERBOARD_NAME, COLUMN1_NAME, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + fail("Failed to remoce column."); + finishTest(); + } + + @Override + public void onSuccess(Void result) { + leaderboardPanel.updateLeaderboard(leaderboard); + assertNotNull(rc); + try { + rc.toggleExpansion(); + leaderboardPanel.updateLeaderboard(leaderboard); + } catch (Exception e) { + fail("Toggle column failed." + e.getLocalizedMessage()); + } + finishTest(); + } + }); + } + + + + @Override + protected void gwtTearDown() throws Exception { + // TODO Auto-generated method stub + super.gwtTearDown(); + } + + @Override + public String getModuleName() { + // TODO Auto-generated method stub + return "com.sap.sailing.gwt.ui.AdminConsole"; + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingService.java new file mode 100644 index 00000000000..4b6f6375dd0 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingService.java @@ -0,0 +1,10 @@ +package com.sap.sailing.gwt.ui.test; + +import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; +import com.sap.sailing.gwt.ui.client.SailingService; +import com.sap.sailing.server.RacingEventService; + +@RemoteServiceRelativePath("testsailing") +public interface TestSailingService extends SailingService { + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceAsync.java new file mode 100644 index 00000000000..09d92fadd4c --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceAsync.java @@ -0,0 +1,26 @@ +package com.sap.sailing.gwt.ui.test; + +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.sap.sailing.gwt.ui.client.SailingServiceAsync; +import com.sap.sailing.gwt.ui.shared.CompetitorDAO; +import com.sap.sailing.gwt.ui.shared.EventDAO; +import com.sap.sailing.gwt.ui.shared.GPSFixDAO; +import com.sap.sailing.gwt.ui.shared.LeaderboardDAO; +import com.sap.sailing.gwt.ui.shared.LeaderboardEntryDAO; +import com.sap.sailing.gwt.ui.shared.MarkDAO; +import com.sap.sailing.gwt.ui.shared.Pair; +import com.sap.sailing.gwt.ui.shared.QuickRankDAO; +import com.sap.sailing.gwt.ui.shared.RaceRecordDAO; +import com.sap.sailing.gwt.ui.shared.TracTracConfigurationDAO; +import com.sap.sailing.gwt.ui.shared.WindDAO; +import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDAO; +import com.sap.sailing.server.RacingEventService; + +public interface TestSailingServiceAsync extends SailingServiceAsync { + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceImpl.java new file mode 100644 index 00000000000..cfbccfa9aab --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/test/TestSailingServiceImpl.java @@ -0,0 +1,32 @@ +package com.sap.sailing.gwt.ui.test; + +import org.osgi.framework.BundleContext; +import org.osgi.util.tracker.ServiceTracker; + +import com.sap.sailing.gwt.ui.server.SailingServiceImpl; +import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.RacingEventServiceImpl; + +public class TestSailingServiceImpl extends SailingServiceImpl implements TestSailingService { + private static final long serialVersionUID = 3647254510616623048L; + + private RacingEventService service; + + public TestSailingServiceImpl(){ + super(); + service = new RacingEventServiceImpl(); + } + + public RacingEventService getService(){ + return service; + } + + @Override + protected ServiceTracker createAndOpenRacingEventServiceTracker( + BundleContext context) { + // TODO Auto-generated method stub + return null; + } + + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml index 925d4e3ff69..faf3549accc 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/AdminConsole.gwt.xml @@ -1,6 +1,6 @@ - + @@ -29,4 +29,8 @@ + + + + \ No newline at end of file