mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-10 22:30:56 +00:00
Merge branch 'bug3638'
This commit is contained in:
commit
242a93a3ca
11 files changed
+314
-22
No files matched your search
+13
-1
@@ -3,6 +3,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
@@ -91,7 +92,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements
|
||||
leaderboardsDisplayers = new HashSet<>();
|
||||
leaderboardGroupsDisplayers = new HashSet<>();
|
||||
|
||||
final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, this, getStringMessages());
|
||||
final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, this, getStringMessages(), panel);
|
||||
eventManagementPanel.ensureDebugId("EventManagement");
|
||||
panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel<EventManagementPanel>(eventManagementPanel) {
|
||||
@Override
|
||||
@@ -137,6 +138,12 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements
|
||||
fillLeaderboards();
|
||||
fillLeaderboardGroups();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupWidgetByParams(Map<String, String> params) {
|
||||
refreshAfterBecomingVisible(); //Refresh to sure that actual data is provided
|
||||
setupLeaderboardGroups(leaderboardGroupConfigPanel, params);
|
||||
}
|
||||
}, getStringMessages().leaderboardGroups(), Permission.MANAGE_LEADERBOARD_GROUPS);
|
||||
regattasDisplayers.add(leaderboardGroupConfigPanel);
|
||||
leaderboardGroupsDisplayers.add(leaderboardGroupConfigPanel);
|
||||
@@ -349,4 +356,9 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupLeaderboardGroups(LeaderboardGroupsDisplayer displayer, Map<String, String> params) {
|
||||
displayer.setupLeaderboardGroups(params);
|
||||
}
|
||||
}
|
||||
+31
-16
@@ -7,11 +7,13 @@ import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.google.gwt.cell.client.AbstractCell;
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
import com.google.gwt.cell.client.SafeHtmlCell;
|
||||
import com.google.gwt.cell.client.ValueUpdater;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
@@ -40,6 +42,7 @@ import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.FlushableCellTable;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.MultipleLinkCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn;
|
||||
import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.CourseAreaDTO;
|
||||
@@ -50,6 +53,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
import com.sap.sse.common.util.NaturalComparator;
|
||||
import com.sap.sse.gwt.adminconsole.HandleTabSelectable;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.celltable.EntityIdentityComparator;
|
||||
@@ -98,15 +102,17 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
|
||||
private final AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||
private final RegattaRefresher regattaRefresher;
|
||||
private final EventsRefresher eventsRefresher;
|
||||
|
||||
private final HandleTabSelectable handleTabSelectable;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public EventListComposite(final SailingServiceAsync sailingService, final ErrorReporter errorReporter,
|
||||
RegattaRefresher regattaRefresher, EventsRefresher eventsRefresher, final StringMessages stringMessages) {
|
||||
RegattaRefresher regattaRefresher, EventsRefresher eventsRefresher, final HandleTabSelectable handleTabSelectable, final StringMessages stringMessages) {
|
||||
this.sailingService = sailingService;
|
||||
this.stringMessages = stringMessages;
|
||||
this.errorReporter = errorReporter;
|
||||
this.regattaRefresher = regattaRefresher;
|
||||
this.eventsRefresher = eventsRefresher;
|
||||
this.handleTabSelectable = handleTabSelectable;
|
||||
availableLeaderboardGroups = Collections.emptyList();
|
||||
allEvents = new ArrayList<EventDTO>();
|
||||
|
||||
@@ -268,25 +274,30 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
|
||||
return builder.toSafeHtml();
|
||||
}
|
||||
};
|
||||
|
||||
SafeHtmlCell leaderboardGroupsCell = new SafeHtmlCell();
|
||||
Column<EventDTO, SafeHtml> leaderboardGroupsColumn = new Column<EventDTO, SafeHtml>(leaderboardGroupsCell) {
|
||||
|
||||
MultipleLinkCell leaderboardGroupsCell = new MultipleLinkCell(true);
|
||||
Column<EventDTO, List<MultipleLinkCell.CellLink>> leaderboardGroupsColumn = new Column<EventDTO, List<MultipleLinkCell.CellLink>>(
|
||||
leaderboardGroupsCell) {
|
||||
@Override
|
||||
public SafeHtml getValue(EventDTO event) {
|
||||
SafeHtmlBuilder builder = new SafeHtmlBuilder();
|
||||
boolean first = true;
|
||||
public List<MultipleLinkCell.CellLink> getValue(EventDTO event) {
|
||||
List<MultipleLinkCell.CellLink> links = new ArrayList<>();
|
||||
for (LeaderboardGroupDTO lg : event.getLeaderboardGroups()) {
|
||||
if (first) {
|
||||
first = false;
|
||||
} else {
|
||||
builder.appendHtmlConstant("<br>");
|
||||
}
|
||||
builder.appendEscaped(lg.getName());
|
||||
links.add(new MultipleLinkCell.CellLink(lg.getName()));
|
||||
}
|
||||
return builder.toSafeHtml();
|
||||
return links;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
leaderboardGroupsCell.setOnLinkClickHandler(new ValueUpdater<String>() {
|
||||
@Override
|
||||
public void update(String value) {
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("LeaderBoardGroupName", value);
|
||||
handleTabSelectable.selectTabByNames(stringMessages.leaderboards(), stringMessages.leaderboardGroups(),
|
||||
params);
|
||||
}
|
||||
});
|
||||
|
||||
TextColumn<EventDTO> imagesColumn = new TextColumn<EventDTO>() {
|
||||
@Override
|
||||
public String getValue(EventDTO event) {
|
||||
@@ -738,4 +749,8 @@ public class EventListComposite extends Composite implements EventsRefresher, Le
|
||||
public RefreshableMultiSelectionModel<EventDTO> getRefreshableMultiSelectionModel() {
|
||||
return refreshableEventSelectionModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupLeaderboardGroups(Map<String, String> params) {
|
||||
}
|
||||
}
|
||||
+10
-3
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.user.client.ui.CaptionPanel;
|
||||
@@ -14,6 +15,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sse.gwt.adminconsole.HandleTabSelectable;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.celltable.RefreshableMultiSelectionModel;
|
||||
|
||||
@@ -30,7 +32,7 @@ public class EventManagementPanel extends SimplePanel implements EventsRefresher
|
||||
private final RefreshableMultiSelectionModel<EventDTO> refreshableEventSelectionModel;
|
||||
|
||||
public EventManagementPanel(final SailingServiceAsync sailingService, final ErrorReporter errorReporter,
|
||||
RegattaRefresher regattaRefresher, final StringMessages stringMessages) {
|
||||
RegattaRefresher regattaRefresher, final StringMessages stringMessages, final HandleTabSelectable handleTabSelectable) {
|
||||
VerticalPanel mainPanel = new VerticalPanel();
|
||||
setWidget(mainPanel);
|
||||
mainPanel.setWidth("100%");
|
||||
@@ -39,8 +41,8 @@ public class EventManagementPanel extends SimplePanel implements EventsRefresher
|
||||
mainPanel.add(eventsPanel);
|
||||
VerticalPanel eventsContentPanel = new VerticalPanel();
|
||||
eventsPanel.setContentWidget(eventsContentPanel);
|
||||
|
||||
eventListComposite = new EventListComposite(sailingService, errorReporter, regattaRefresher, this, stringMessages);
|
||||
|
||||
eventListComposite = new EventListComposite(sailingService, errorReporter, regattaRefresher, this, handleTabSelectable, stringMessages);
|
||||
eventListComposite.ensureDebugId("EventListComposite");
|
||||
eventsContentPanel.add(eventListComposite);
|
||||
|
||||
@@ -80,4 +82,9 @@ public class EventManagementPanel extends SimplePanel implements EventsRefresher
|
||||
public void fillLeaderboardGroups(Iterable<LeaderboardGroupDTO> leaderboardGroups) {
|
||||
eventListComposite.fillLeaderboardGroups(leaderboardGroups);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupLeaderboardGroups(Map<String, String> params) {
|
||||
eventListComposite.setupLeaderboardGroups(params);
|
||||
}
|
||||
}
|
||||
+20
@@ -6,6 +6,7 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
@@ -958,4 +959,23 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel implements
|
||||
private LeaderboardGroupDTO getSelectedGroup() {
|
||||
return refreshableGroupsSelectionModel.getSelectedSet().isEmpty() ? null : refreshableGroupsSelectionModel.getSelectedSet().iterator().next();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupLeaderboardGroups(Map<String, String> params) {
|
||||
String nameLeaderBoardGroup = params.get("LeaderBoardGroupName");
|
||||
if (nameLeaderBoardGroup == null) {
|
||||
return;
|
||||
}
|
||||
//setup filter value to name from params
|
||||
groupsFilterablePanel.getTextBox().setValue(nameLeaderBoardGroup);
|
||||
|
||||
//deselect all leaderboard groups except one which name is from params
|
||||
for (LeaderboardGroupDTO leaderboardGroupDTO : availableLeaderboardGroups) {
|
||||
if (nameLeaderBoardGroup.equals(leaderboardGroupDTO.getName())) {
|
||||
groupsTable.getSelectionModel().setSelected(leaderboardGroupDTO, true);
|
||||
} else if(groupsTable.getSelectionModel().isSelected(leaderboardGroupDTO)){
|
||||
groupsTable.getSelectionModel().setSelected(leaderboardGroupDTO, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+4
@@ -1,7 +1,11 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
|
||||
public interface LeaderboardGroupsDisplayer {
|
||||
void fillLeaderboardGroups(Iterable<LeaderboardGroupDTO> leaderboardGroups);
|
||||
|
||||
void setupLeaderboardGroups(Map<String, String> params);
|
||||
}
|
||||
+11
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
|
||||
public interface LeaderboardGroupsRefresher {
|
||||
@@ -21,4 +23,13 @@ public interface LeaderboardGroupsRefresher {
|
||||
* the update originated in <code>origin</code> and hence no notification is required.
|
||||
*/
|
||||
void updateLeaderboardGroups(Iterable<LeaderboardGroupDTO> updatedLeaderboardGroups, LeaderboardGroupsDisplayer origin);
|
||||
|
||||
/**
|
||||
* Setup the state {@link LeaderboardGroupsDisplayer} using parameters
|
||||
*
|
||||
* @param params
|
||||
* {@link Map} {@link String} parameters to setup the displayer
|
||||
*/
|
||||
public void setupLeaderboardGroups(LeaderboardGroupsDisplayer displayer, Map<String, String> params);
|
||||
|
||||
}
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.controls;
|
||||
|
||||
import static com.google.gwt.dom.client.BrowserEvents.CLICK;
|
||||
import static com.google.gwt.dom.client.BrowserEvents.MOUSEDOWN;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.NativeEvent;
|
||||
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
|
||||
import com.google.gwt.safehtml.shared.SafeHtml;
|
||||
import com.google.gwt.cell.client.AbstractCell;
|
||||
import com.google.gwt.cell.client.ValueUpdater;
|
||||
import com.google.gwt.dom.client.Element;
|
||||
import com.google.gwt.dom.client.EventTarget;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
|
||||
/**
|
||||
* Represent cell with multiple links. Link is represented as static nested class {@link CellLink}.
|
||||
* <p>
|
||||
* There are two behaviors depending on field isBlockLinkEvent:
|
||||
* <ul>
|
||||
* <li>If isBlockLinkEvent is true then click on link would work depending on onLinkClickHandler.</li>
|
||||
* <li>If isBlockLinkEvent is false then link was work as real link.</li>
|
||||
* </ul>
|
||||
*
|
||||
* @author Alexander Tatarinovich (C5237435)
|
||||
*/
|
||||
public class MultipleLinkCell extends AbstractCell<List<MultipleLinkCell.CellLink>> {
|
||||
|
||||
private ValueUpdater<String> onLinkClickHandler;
|
||||
|
||||
private boolean isBlockLinkEvent = false;
|
||||
|
||||
/**
|
||||
* Represent Link for cell.
|
||||
* <p>
|
||||
* There are three fields which use in template {@link LinkTemplates} for link.
|
||||
*/
|
||||
public static class CellLink {
|
||||
private final String target;
|
||||
private final String href;
|
||||
private final String text;
|
||||
|
||||
public String getTarget() {
|
||||
return target;
|
||||
}
|
||||
|
||||
public String getHref() {
|
||||
return href;
|
||||
}
|
||||
|
||||
public String getText() {
|
||||
return text;
|
||||
}
|
||||
|
||||
public CellLink(String text) {
|
||||
super();
|
||||
this.text = text;
|
||||
this.href = "";
|
||||
this.target = "";
|
||||
}
|
||||
|
||||
public CellLink(String target, String href, String text) {
|
||||
super();
|
||||
this.target = target;
|
||||
this.href = href;
|
||||
this.text = text;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Template for link.
|
||||
* <p>
|
||||
* <a target=\"{Target}\" href=\"{Href}\">{Text}</a>.
|
||||
*/
|
||||
interface LinkTemplates extends SafeHtmlTemplates {
|
||||
@SafeHtmlTemplates.Template("<a target=\"{0}\" href=\"{1}\">{2}</a>")
|
||||
SafeHtml cell(String target, String href, String text);
|
||||
}
|
||||
|
||||
private static LinkTemplates linkTemplates = GWT.create(LinkTemplates.class);
|
||||
|
||||
public MultipleLinkCell() {
|
||||
super(CLICK, MOUSEDOWN);
|
||||
}
|
||||
|
||||
public MultipleLinkCell(boolean isBlockLinkEvent) {
|
||||
super(CLICK, MOUSEDOWN);
|
||||
this.isBlockLinkEvent = isBlockLinkEvent;
|
||||
}
|
||||
|
||||
public ValueUpdater<String> getOnLinkClickHandler() {
|
||||
return onLinkClickHandler;
|
||||
}
|
||||
|
||||
public void setOnLinkClickHandler(ValueUpdater<String> handler) {
|
||||
this.onLinkClickHandler = handler;
|
||||
}
|
||||
|
||||
public boolean isBlockLinkEvent() {
|
||||
return isBlockLinkEvent;
|
||||
}
|
||||
|
||||
public void setBlockLinkEvent(boolean isBlockLinkEvent) {
|
||||
this.isBlockLinkEvent = isBlockLinkEvent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBrowserEvent(Context context, Element parent, List<MultipleLinkCell.CellLink> value,
|
||||
NativeEvent event, ValueUpdater<List<MultipleLinkCell.CellLink>> valueUpdater) {
|
||||
super.onBrowserEvent(context, parent, value, event, valueUpdater);
|
||||
|
||||
if (isBlockLinkEvent) {
|
||||
event.preventDefault();
|
||||
EventTarget eventTarget = event.getEventTarget();
|
||||
if (parent.isOrHasChild(Element.as(eventTarget))) {
|
||||
Element el = Element.as(eventTarget);
|
||||
if (el.getNodeName().equalsIgnoreCase("a")) {
|
||||
onLinkClickHandler.update(el.getInnerText());
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void render(com.google.gwt.cell.client.Cell.Context context, List<MultipleLinkCell.CellLink> links,
|
||||
SafeHtmlBuilder sb) {
|
||||
if (links.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
SafeHtml rendered;
|
||||
boolean isFirst = true;
|
||||
for (CellLink link : links) {
|
||||
if (isFirst) {
|
||||
isFirst = false;
|
||||
} else {
|
||||
sb.appendHtmlConstant("<br>");
|
||||
}
|
||||
rendered = linkTemplates.cell(link.getTarget(), link.getHref(), link.getText());
|
||||
sb.append(rendered);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+54
-2
@@ -66,7 +66,7 @@ import com.sap.sse.security.ui.shared.UserDTO;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public class AdminConsolePanel extends DockLayoutPanel {
|
||||
public class AdminConsolePanel extends DockLayoutPanel implements HandleTabSelectable{
|
||||
private final UserService userService;
|
||||
|
||||
/**
|
||||
@@ -137,7 +137,7 @@ public class AdminConsolePanel extends DockLayoutPanel {
|
||||
* If the <code>widgetMaybeWrappedByScrollPanel</code> is a scroll panel, returns the content widget,
|
||||
* otherwise <code>widgetMaybeWrappedByScrollPanel</code> is returned.
|
||||
*/
|
||||
private Widget unwrapScrollPanel(Widget widgetMaybeWrappedByScrollPanel) {
|
||||
public Widget unwrapScrollPanel(Widget widgetMaybeWrappedByScrollPanel) {
|
||||
final Widget target;
|
||||
if (widgetMaybeWrappedByScrollPanel instanceof ScrollPanel) {
|
||||
target = ((ScrollPanel) widgetMaybeWrappedByScrollPanel).getWidget();
|
||||
@@ -189,6 +189,17 @@ public class AdminConsolePanel extends DockLayoutPanel {
|
||||
public Widget getPanel() {
|
||||
return topLevelTabPanel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectTab(int index) {
|
||||
topLevelTabPanel.selectTab(index);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getWidgetIndex(Widget child) {
|
||||
return topLevelTabPanel.getWidgetIndex(child);
|
||||
}
|
||||
};
|
||||
final DockPanel informationPanel = new DockPanel();
|
||||
informationPanel.setSize("100%", "95%");
|
||||
@@ -232,6 +243,10 @@ public class AdminConsolePanel extends DockLayoutPanel {
|
||||
void remove(Widget child);
|
||||
|
||||
Widget getPanel();
|
||||
|
||||
void selectTab(int index);
|
||||
|
||||
int getWidgetIndex(Widget child);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -282,6 +297,17 @@ public class AdminConsolePanel extends DockLayoutPanel {
|
||||
public Widget getPanel() {
|
||||
return tabPanel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectTab(int index) {
|
||||
tabPanel.selectTab(index);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getWidgetIndex(Widget child) {
|
||||
return tabPanel.getWidgetIndex(child);
|
||||
}
|
||||
};
|
||||
addToTabPanel(wrapper, panelToAdd, tabTitle, requiresAnyOfThesePermissions);
|
||||
}
|
||||
@@ -336,6 +362,32 @@ public class AdminConsolePanel extends DockLayoutPanel {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectTabByNames(String verticalTabName, String horizontalTabName, Map<String, String> params) {
|
||||
if (verticalTabName == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Widget widgetForSetup = null; //Remember widget for set up
|
||||
for (Triple<VerticalOrHorizontalTabLayoutPanel, Widget, String> e : roleSpecificTabs) {
|
||||
VerticalOrHorizontalTabLayoutPanel panel = e.getA();
|
||||
Widget currentWidget = e.getB();
|
||||
if (panel == topLevelTabPanelWrapper && verticalTabName.equals(e.getC())) { // for vertical panel
|
||||
int index = panel.getWidgetIndex(currentWidget);
|
||||
panel.selectTab(index);
|
||||
if (horizontalTabName == null) {//If we don't have horizontal tab will setup vertical tab.
|
||||
widgetForSetup = currentWidget;
|
||||
}
|
||||
} else if (horizontalTabName != null && horizontalTabName.equals(e.getC())) { // for horizontal panel
|
||||
int index = panel.getWidgetIndex(currentWidget);
|
||||
panel.selectTab(index);
|
||||
widgetForSetup = currentWidget;
|
||||
}
|
||||
}
|
||||
|
||||
panelsByWidget.get((new TabSelectionHandler()).unwrapScrollPanel(widgetForSetup)).setupWidgetByParams(params);;
|
||||
}
|
||||
|
||||
/**
|
||||
* A user is defined to have permission to see a widget if the widget's required permissions imply any of the permissions the
|
||||
* user has. This may at first seem the wrong way around. However, the problem is that a widget cannot express a general permission
|
||||
|
||||
+6
@@ -1,5 +1,7 @@
|
||||
package com.sap.sse.gwt.adminconsole;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class DefaultRefreshableAdminConsolePanel<W extends Widget> implements RefreshableAdminConsolePanel {
|
||||
@@ -13,6 +15,10 @@ public class DefaultRefreshableAdminConsolePanel<W extends Widget> implements Re
|
||||
this.widget = widget;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupWidgetByParams(Map<String, String> params){
|
||||
}
|
||||
|
||||
@Override
|
||||
public W getWidget() {
|
||||
return widget;
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.sap.sse.gwt.adminconsole;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public interface HandleTabSelectable {
|
||||
/**
|
||||
* Select tab by names
|
||||
* @param verticalTabName - vertical name tab menu
|
||||
* @param horizontalTabName - subtab name of vertical tab menu
|
||||
* @param params - map of strings parameters
|
||||
*/
|
||||
void selectTabByNames(String verticalTabName, String horizontalTabName, Map<String, String> params);
|
||||
}
|
||||
+7
@@ -1,5 +1,7 @@
|
||||
package com.sap.sse.gwt.adminconsole;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public interface RefreshableAdminConsolePanel {
|
||||
@@ -13,4 +15,9 @@ public interface RefreshableAdminConsolePanel {
|
||||
* The widget representing the panel to place in the administration console
|
||||
*/
|
||||
Widget getWidget();
|
||||
|
||||
/**
|
||||
* Invoked when the we handle selected tab by name {@link HandleTabSelectable} to set up a tab with parameters.
|
||||
*/
|
||||
void setupWidgetByParams(Map<String, String> params);
|
||||
}
|
||||
Reference in new issue
Block a user