From c3cdcb5cbf801f9cd756fe4cadf5a3643b38c061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20M=C3=BCller?= Date: Mon, 15 Sep 2014 13:04:02 +0200 Subject: [PATCH] filter added to MediaPanel --- java/com.sap.sailing.gwt.ui/RaceBoard.css | 6 ++- .../gwt/ui/adminconsole/MediaPanel.java | 39 +++++++++++++++++-- .../sailing/gwt/ui/client/StringMessages.java | 1 + .../gwt/ui/client/StringMessages.properties | 1 + .../ui/client/StringMessages_de.properties | 1 + .../media/MediaMultiSelectionControl.java | 1 - .../gwt/ui/client/media/TimeFormatUtil.java | 1 - .../media/popup/YoutubePopupWindow.java | 2 +- 8 files changed, 44 insertions(+), 8 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/RaceBoard.css b/java/com.sap.sailing.gwt.ui/RaceBoard.css index 86583207d0f..d8ab83656c5 100644 --- a/java/com.sap.sailing.gwt.ui/RaceBoard.css +++ b/java/com.sap.sailing.gwt.ui/RaceBoard.css @@ -628,7 +628,7 @@ img.openColumn { border: none; } -.gwt-Button, .gwt-Button:visited { +.gwt-Button, .gwt-Button:visited, .test, .test:visited { background-color: #fcbb22; background-image: none !important; -moz-box-shadow: none; @@ -641,4 +641,8 @@ img.openColumn { .gwt-Button:hover { background-color: #fcbb22 !important; +} + +.test:hover { + } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java index 0a178f79e33..299ec8e1b56 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/MediaPanel.java @@ -3,6 +3,7 @@ package com.sap.sailing.gwt.ui.adminconsole; import static com.google.gwt.dom.client.BrowserEvents.CLICK; import static com.google.gwt.dom.client.BrowserEvents.KEYUP; +import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.Date; @@ -30,6 +31,9 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.HasVerticalAlignment; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Label; import com.google.gwt.view.client.DefaultSelectionEventManager; import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.SelectionModel; @@ -50,6 +54,7 @@ import com.sap.sailing.gwt.ui.client.media.TimeFormatUtil; import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; +import com.sap.sse.gwt.client.panels.LabeledAbstractFilterablePanel; /** * Table inspired by http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable @@ -60,6 +65,8 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; public class MediaPanel extends FlowPanel { private final SailingServiceAsync sailingService; + private final LabeledAbstractFilterablePanel filterableMediaTracks; + private List allMediaTracks; private final RegattaRefresher regattaRefresher; private final MediaServiceAsync mediaService; private final ErrorReporter errorReporter; @@ -76,12 +83,14 @@ public class MediaPanel extends FlowPanel { this.regattasDisplayers = regattasDisplayers; this.sailingService = sailingService; this.regattaRefresher = regattaRefresher; - this.mediaService = mediaService; + this.mediaService = mediaService; this.stringMessages = stringMessages; this.errorReporter = errorReporter; mediaTracks = new Grid(); mediaTracks.resizeColumns(3); add(mediaTracks); + HorizontalPanel buttonAndFilterPanel = new HorizontalPanel(); + allMediaTracks = new ArrayList(); Button refreshButton = new Button(stringMessages.refresh()); refreshButton.addClickHandler(new ClickHandler() { @Override @@ -90,7 +99,7 @@ public class MediaPanel extends FlowPanel { } }); - add(refreshButton); + buttonAndFilterPanel.add(refreshButton); Button addUrlButton = new Button(stringMessages.addMediaTrack()); addUrlButton.addClickHandler(new ClickHandler() { @Override @@ -98,9 +107,25 @@ public class MediaPanel extends FlowPanel { addUrlMediaTrack(); } }); - add(addUrlButton); - + buttonAndFilterPanel.add(addUrlButton); + add(buttonAndFilterPanel); createMediaTracksTable(); + Label lblFilterRaces = new Label(stringMessages.filterMediaByName() + ":"); + lblFilterRaces.setWordWrap(false); + buttonAndFilterPanel.setSpacing(5); + buttonAndFilterPanel.add(lblFilterRaces); + buttonAndFilterPanel.setCellVerticalAlignment(lblFilterRaces, HasVerticalAlignment.ALIGN_MIDDLE); + this.filterableMediaTracks = new LabeledAbstractFilterablePanel(lblFilterRaces, allMediaTracks, mediaTracksTable, mediaTrackListDataProvider) { + @Override + public List getSearchableStrings(MediaTrack t) { + List strings = new ArrayList(); + strings.add(t.title); + strings.add(t.startTime.toString()); + return strings; + } + }; + filterableMediaTracks.getTextBox().ensureDebugId("MediaTracksFilterTextBox"); + buttonAndFilterPanel.add(filterableMediaTracks); } protected void loadMediaTracks() { @@ -114,9 +139,13 @@ public class MediaPanel extends FlowPanel { @Override public void onSuccess(Collection allMediaTracks) { mediaTrackListDataProvider.getList().addAll(allMediaTracks); + allMediaTracks.clear(); + allMediaTracks.addAll(mediaTrackListDataProvider.getList()); + filterableMediaTracks.updateAll(allMediaTracks); mediaTrackListDataProvider.refresh(); } }); + } @@ -144,6 +173,8 @@ public class MediaPanel extends FlowPanel { mediaTrackListDataProvider.addDataDisplay(mediaTracksTable); add(mediaTracksTable); + allMediaTracks.clear(); + allMediaTracks.addAll(mediaTrackListDataProvider.getList()); } /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 531496ed74a..1e82f3f447d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -183,6 +183,7 @@ public interface StringMessages extends Messages { String otherManeuver(); String douglasPeuckerPoints(); String filterRacesByName(); + String filterMediaByName(); String actionEdit(); String actionEditScores(); String actionEditCompetitors(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 3ea3feaeddd..14db4c7e7ac 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -198,6 +198,7 @@ mark=Mark otherManeuver=Unknown maneuver douglasPeuckerPoints=Douglas peucker points filterRacesByName=Filter races by name +filterMediaByName=Filter media by name trackSettings=Track settings actionEdit=Edit actionEditCompetitors=Edit competitors diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 0dbdcacf7be..09b1c9fa525 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -200,6 +200,7 @@ mark=Tonne otherManeuver=Manövertyp unbekannt douglasPeuckerPoints=Douglas-Peucker-Punkte filterRacesByName=Rennen nach Name filtern +filterMediaByName=Medien nach Name filtern actionEdit=Ändern actionEditCompetitors=Teilnehmer ändern actionEditScores=Punkte ändern diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaMultiSelectionControl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaMultiSelectionControl.java index 243e6917e4f..fbe51d4f4d0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaMultiSelectionControl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/MediaMultiSelectionControl.java @@ -234,7 +234,6 @@ public class MediaMultiSelectionControl extends AbstractMediaSelectionControl im private Button createDeleteButton(final MediaTrack videoTrack) { Button deleteButton = new Button("X", new ClickHandler() { - @Override public void onClick(ClickEvent event) { if (mediaPlayerManager.deleteMediaTrack(videoTrack)) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/TimeFormatUtil.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/TimeFormatUtil.java index a34ec78887c..11be88021f5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/TimeFormatUtil.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/TimeFormatUtil.java @@ -1,7 +1,6 @@ package com.sap.sailing.gwt.ui.client.media; import com.google.gwt.i18n.client.DateTimeFormat; -import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; import com.google.gwt.i18n.client.NumberFormat; import com.sap.sailing.domain.common.Duration; import com.sap.sailing.domain.common.impl.MillisecondsDurationImpl; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/popup/YoutubePopupWindow.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/popup/YoutubePopupWindow.java index 02520469a9f..70fe54b380a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/popup/YoutubePopupWindow.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/media/popup/YoutubePopupWindow.java @@ -99,7 +99,7 @@ public class YoutubePopupWindow extends AbstractPopupWindow { public native boolean isPaused() /*-{ var player = this.@com.sap.sailing.gwt.ui.client.media.popup.YoutubePopupWindow::youtubePlayer; - return player.getPlayerState() == $wnd.YT.PlayerState.PAUSED; + return player.getPlayerState() != $wnd.YT.PlayerState.PLAYING; }-*/; public native double getDuration() /*-{