mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 05:11:04 +00:00
isolated "Components" stuff to prepare package to move to SSE
This commit is contained in:
1 parent
80a6b05af9
commit
c191899f3b
31 files changed
+65
-85
No files matched your search
+1
-1
@@ -14,7 +14,7 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.QRCodeURLCreationException;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.QRCodeComposite;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.QRCodeComposite;
|
||||
|
||||
public abstract class BaseQRIdentifierWidget implements IsWidget {
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class CompetitorConfigImagesBarCell extends ImagesBarCell {
|
||||
static final String ACTION_EDIT = "ACTION_EDIT";
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class CourseManagementWidgetWaypointsImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import com.google.gwt.http.client.URL;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.QRCodeURLCreationException;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.QRCodeComposite;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.QRCodeComposite;
|
||||
|
||||
public class DeviceMappingQRCodeWidget extends BaseQRIdentifierWidget {
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class EventConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sailing.domain.common.impl.NaturalComparator;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import com.google.gwt.user.cellview.client.Column;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class ImagesBarColumn<T, S extends ImagesBarCell> extends Column<T, String> {
|
||||
public ImagesBarColumn(S imagesBarCell) {
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class LeaderboardConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class LeaderboardGroupConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import java.util.List;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.domain.common.LeaderboardType;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class MediaActionBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.util.ArrayList;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class RaceLogTrackingCourseDefinitionDialogMarksImagesBarCell extends ImagesBarCell {
|
||||
public static final String ACTION_PING = "ACTION_PING";
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.util.ArrayList;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.ArrayList;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class RaceLogTrackingEventManagementImagesBarCell extends ImagesBarCell {
|
||||
public static final String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING";
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import java.util.List;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.AbstractLeaderboardConfigPanel.RaceColumnDTOAndFleetDTOWithNameBasedEquality;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCell {
|
||||
public final static String ACTION_DENOTE_FOR_RACELOG_TRACKING = "ACTION_DENOTE_FOR_RACELOG_TRACKING";
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class RegattaConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.Arrays;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.text.shared.SafeHtmlRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
import com.sap.sse.gwt.client.IconResources;
|
||||
|
||||
public class SeriesConfigImagesBarCell extends ImagesBarCell {
|
||||
|
||||
+20
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.settings.Settings;
|
||||
|
||||
public interface Component<SettingsType extends Settings> extends ComponentSettings<SettingsType> {
|
||||
public interface Component<SettingsType extends Settings> {
|
||||
/**
|
||||
* @return the name to display to a user for quick navigation to this component
|
||||
*/
|
||||
@@ -20,6 +20,25 @@ public interface Component<SettingsType extends Settings> extends ComponentSetti
|
||||
|
||||
void setVisible(boolean visibility);
|
||||
|
||||
/**
|
||||
* @return whether this component has settings that a user may change; if so,
|
||||
*/
|
||||
boolean hasSettings();
|
||||
|
||||
/**
|
||||
* If this component {@link #hasSettings has settings}, this method may return a component for the settings dialog.
|
||||
* It will be used to obtain a widget shown in the settings dialog, a validator for the component-specific settings,
|
||||
* as well as to produce a result from the widget's state when the settings dialog wants to validate or return the
|
||||
* settings.
|
||||
*/
|
||||
SettingsDialogComponent<SettingsType> getSettingsDialogComponent();
|
||||
|
||||
/**
|
||||
* Updates the settings of this component. Expected to be called when a settings dialog using this component's
|
||||
* {@link #getSettingsDialogComponent()} has been confirmed.
|
||||
*/
|
||||
void updateSettings(SettingsType newSettings);
|
||||
|
||||
/**
|
||||
* If the component wants to add its specific styling rules, e.g., for the expand/collapse toggle buttons or
|
||||
* the dragger handle, it should return a non-<code>null</code> value from this method which is then used as
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.ImageResource;
|
||||
|
||||
interface ComponentResources extends ClientBundle {
|
||||
public interface ComponentResources extends ClientBundle {
|
||||
|
||||
@Source("com/sap/sailing/gwt/ui/client/images/open.png")
|
||||
ImageResource openIcon();
|
||||
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
import com.sap.sailing.domain.common.settings.Settings;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
* @param <SettingsType>
|
||||
* the type that describes this component's settings (if any). Use {@link Object} in case your components
|
||||
* doesn't support any settings.
|
||||
*/
|
||||
public interface ComponentSettings<SettingsType extends Settings> {
|
||||
/**
|
||||
* @return whether this component has settings that a user may change; if so,
|
||||
*/
|
||||
boolean hasSettings();
|
||||
|
||||
/**
|
||||
* If this component {@link #hasSettings has settings}, this method may return a component for the settings dialog.
|
||||
* It will be used to obtain a widget shown in the settings dialog, a validator for the component-specific settings,
|
||||
* as well as to produce a result from the widget's state when the settings dialog wants to validate or return the
|
||||
* settings.
|
||||
*/
|
||||
SettingsDialogComponent<SettingsType> getSettingsDialogComponent();
|
||||
|
||||
/**
|
||||
* Updates the settings of this component. Expected to be called when a settings dialog using this component's
|
||||
* {@link #getSettingsDialogComponent()} has been confirmed.
|
||||
*/
|
||||
void updateSettings(SettingsType newSettings);
|
||||
}
|
||||
+14
-11
@@ -10,23 +10,30 @@ import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.sap.sailing.domain.common.settings.Settings;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
|
||||
public class ComponentToolbar<SettingsType extends Settings> extends HorizontalPanel {
|
||||
|
||||
/**
|
||||
* One entry in a component toolbar. Represents one {@link Component} that can be selected and whose
|
||||
* settings editing dialog can be reached from here.
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
* @param <SettingsType>
|
||||
*/
|
||||
public class ComponentToolbarEntry<SettingsType extends Settings> extends HorizontalPanel {
|
||||
private static ComponentResources resources = GWT.create(ComponentResources.class);
|
||||
|
||||
private final Component<SettingsType> component;
|
||||
final StringMessages stringMessages;
|
||||
|
||||
public ComponentToolbar(final Component<SettingsType> component, final StringMessages stringMessages) {
|
||||
private final StringMessages stringMessages;
|
||||
|
||||
public ComponentToolbarEntry(final Component<SettingsType> component, final StringMessages stringMessages) {
|
||||
super();
|
||||
|
||||
this.setSpacing(10);
|
||||
this.component = component;
|
||||
this.stringMessages = stringMessages;
|
||||
}
|
||||
|
||||
public void addSettingsButton() {
|
||||
if(component.hasSettings()) {
|
||||
if (component.hasSettings()) {
|
||||
ImageResource settingsImage = resources.darkSettingsIcon();
|
||||
Anchor showConfigAnchor = new Anchor(AbstractImagePrototype.create(settingsImage).getSafeHtml());
|
||||
showConfigAnchor.setTitle(stringMessages.configuration());
|
||||
@@ -36,11 +43,7 @@ public class ComponentToolbar<SettingsType extends Settings> extends HorizontalP
|
||||
new SettingsDialog<SettingsType>(component, stringMessages).show();
|
||||
}
|
||||
});
|
||||
|
||||
this.add(showConfigAnchor);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
|
||||
/**
|
||||
* Used to describe different view modes for a component viewer
|
||||
* The view modes are driven by media types.
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public enum ComponentViewerViewModes {
|
||||
WEB_VIEW, TV_VIEW
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
package com.sap.sailing.gwt.ui.client.shared.controls;
|
||||
|
||||
import com.google.gwt.text.shared.AbstractRenderer;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
package com.sap.sailing.gwt.ui.client.shared.controls;
|
||||
|
||||
import com.google.gwt.cell.client.AbstractSafeHtmlCell;
|
||||
import com.google.gwt.cell.client.FieldUpdater;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
package com.sap.sailing.gwt.ui.client.shared.controls;
|
||||
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
+2
-1
@@ -1,4 +1,5 @@
|
||||
package com.sap.sailing.gwt.ui.client.shared.components;
|
||||
package com.sap.sailing.gwt.ui.client.shared.controls;
|
||||
|
||||
|
||||
/**
|
||||
* Simple renderer, that uses the objects toString method to render.
|
||||
+1
-1
@@ -17,7 +17,7 @@ import com.google.gwt.user.client.ui.ToggleButton;
|
||||
import com.google.gwt.user.client.ui.ValueListBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.AbstractObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.AbstractObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync;
|
||||
import com.sap.sse.datamining.shared.DataMiningSession;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
|
||||
+1
-1
@@ -17,8 +17,8 @@ import com.google.gwt.user.client.ui.ValueListBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.settings.Settings;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.AbstractObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.AbstractObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.datamining.GroupingChangedListener;
|
||||
import com.sap.sailing.gwt.ui.datamining.GroupingProvider;
|
||||
|
||||
+2
-2
@@ -18,9 +18,9 @@ import com.google.gwt.user.client.ui.ValueListBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.settings.Settings;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.AbstractObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.SimpleObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.AbstractObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.SimpleObjectRenderer;
|
||||
import com.sap.sailing.gwt.ui.datamining.DataMiningServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.datamining.StatisticChangedListener;
|
||||
import com.sap.sailing.gwt.ui.datamining.StatisticProvider;
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.CollapsablePanel;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ComponentGroup;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ComponentToolbar;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ComponentToolbarEntry;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ComponentViewer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.IsEmbeddableComponent;
|
||||
|
||||
@@ -87,12 +87,12 @@ public class CollapsableComponentViewer<SettingsType extends Settings> implement
|
||||
if (embeddableComponent.hasToolbar()) {
|
||||
collapsablePanel.setHeaderToolbar(embeddableComponent.getToolbarWidget());
|
||||
} else {
|
||||
ComponentToolbar<SettingsType> toolbar = new ComponentToolbar<SettingsType>(component, stringMessages);
|
||||
ComponentToolbarEntry<SettingsType> toolbar = new ComponentToolbarEntry<SettingsType>(component, stringMessages);
|
||||
toolbar.addSettingsButton();
|
||||
collapsablePanel.setHeaderToolbar(toolbar);
|
||||
}
|
||||
} else {
|
||||
ComponentToolbar<SettingsType> toolbar = new ComponentToolbar<SettingsType>(component, stringMessages);
|
||||
ComponentToolbarEntry<SettingsType> toolbar = new ComponentToolbarEntry<SettingsType>(component, stringMessages);
|
||||
toolbar.addSettingsButton();
|
||||
collapsablePanel.setHeaderToolbar(toolbar);
|
||||
}
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
|
||||
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ImagesBarCell;
|
||||
import com.sap.sailing.gwt.ui.client.shared.controls.ImagesBarCell;
|
||||
|
||||
public class SailingFlagsBuilder {
|
||||
|
||||
|
||||
Reference in new issue
Block a user