worldhopper: revert back to pre-upstream
This commit is contained in:
@@ -24,49 +24,35 @@
|
|||||||
*/
|
*/
|
||||||
package net.runelite.client.plugins.worldhopper;
|
package net.runelite.client.plugins.worldhopper;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import net.runelite.http.api.worlds.WorldRegion;
|
import net.runelite.http.api.worlds.WorldRegion;
|
||||||
|
|
||||||
@RequiredArgsConstructor
|
@NoArgsConstructor
|
||||||
enum RegionFilterMode
|
@AllArgsConstructor
|
||||||
|
public enum RegionFilterMode
|
||||||
{
|
{
|
||||||
|
NONE,
|
||||||
AUSTRALIA(WorldRegion.AUSTRALIA),
|
AUSTRALIA(WorldRegion.AUSTRALIA),
|
||||||
GERMANY(WorldRegion.GERMANY),
|
GERMANY(WorldRegion.GERMANY),
|
||||||
UNITED_KINGDOM(WorldRegion.UNITED_KINGDOM)
|
UNITED_KINGDOM(WorldRegion.UNITED_KINGDOM)
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public String toString()
|
|
||||||
{
|
{
|
||||||
return "U.K.";
|
@Override
|
||||||
}
|
public String toString()
|
||||||
},
|
{
|
||||||
|
return "U.K.";
|
||||||
|
}
|
||||||
|
},
|
||||||
UNITED_STATES(WorldRegion.UNITED_STATES_OF_AMERICA)
|
UNITED_STATES(WorldRegion.UNITED_STATES_OF_AMERICA)
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public String toString()
|
|
||||||
{
|
{
|
||||||
return "USA";
|
@Override
|
||||||
}
|
public String toString()
|
||||||
};
|
{
|
||||||
|
return "USA";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final WorldRegion region;
|
private WorldRegion region;
|
||||||
|
|
||||||
static RegionFilterMode of(WorldRegion region)
|
|
||||||
{
|
|
||||||
switch (region)
|
|
||||||
{
|
|
||||||
case UNITED_STATES_OF_AMERICA:
|
|
||||||
return UNITED_STATES;
|
|
||||||
case UNITED_KINGDOM:
|
|
||||||
return UNITED_KINGDOM;
|
|
||||||
case AUSTRALIA:
|
|
||||||
return AUSTRALIA;
|
|
||||||
case GERMANY:
|
|
||||||
return GERMANY;
|
|
||||||
default:
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,8 +27,6 @@ package net.runelite.client.plugins.worldhopper;
|
|||||||
|
|
||||||
import java.awt.event.InputEvent;
|
import java.awt.event.InputEvent;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Set;
|
|
||||||
import net.runelite.client.config.Config;
|
import net.runelite.client.config.Config;
|
||||||
import net.runelite.client.config.ConfigGroup;
|
import net.runelite.client.config.ConfigGroup;
|
||||||
import net.runelite.client.config.ConfigItem;
|
import net.runelite.client.config.ConfigItem;
|
||||||
@@ -40,10 +38,10 @@ public interface WorldHopperConfig extends Config
|
|||||||
String GROUP = "worldhopper";
|
String GROUP = "worldhopper";
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "previousKey",
|
keyName = "previousKey",
|
||||||
name = "Quick-hop previous",
|
name = "Quick-hop previous",
|
||||||
description = "When you press this key you'll hop to the previous world",
|
description = "When you press this key you'll hop to the previous world",
|
||||||
position = 0
|
position = 0
|
||||||
)
|
)
|
||||||
default Keybind previousKey()
|
default Keybind previousKey()
|
||||||
{
|
{
|
||||||
@@ -51,10 +49,10 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "nextKey",
|
keyName = "nextKey",
|
||||||
name = "Quick-hop next",
|
name = "Quick-hop next",
|
||||||
description = "When you press this key you'll hop to the next world",
|
description = "When you press this key you'll hop to the next world",
|
||||||
position = 1
|
position = 1
|
||||||
)
|
)
|
||||||
default Keybind nextKey()
|
default Keybind nextKey()
|
||||||
{
|
{
|
||||||
@@ -62,10 +60,10 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "quickhopOutOfDanger",
|
keyName = "quickhopOutOfDanger",
|
||||||
name = "Quick-hop out of dangerous worlds",
|
name = "Quick-hop out of dangerous worlds",
|
||||||
description = "Don't hop to a PVP/high risk world when quick-hopping",
|
description = "Don't hop to a PVP/high risk world when quick-hopping",
|
||||||
position = 2
|
position = 2
|
||||||
)
|
)
|
||||||
default boolean quickhopOutOfDanger()
|
default boolean quickhopOutOfDanger()
|
||||||
{
|
{
|
||||||
@@ -73,21 +71,21 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "quickHopRegionFilter",
|
keyName = "quickHopRegionFilter",
|
||||||
name = "Quick-hop region",
|
name = "Quick-hop region",
|
||||||
description = "Limit quick-hopping to worlds of a specific region",
|
description = "Limit quick-hopping to worlds of a specific region",
|
||||||
position = 3
|
position = 3
|
||||||
)
|
)
|
||||||
default Set<RegionFilterMode> quickHopRegionFilter()
|
default RegionFilterMode quickHopRegionFilter()
|
||||||
{
|
{
|
||||||
return Collections.emptySet();
|
return RegionFilterMode.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "showSidebar",
|
keyName = "showSidebar",
|
||||||
name = "Show world switcher sidebar",
|
name = "Show world switcher sidebar",
|
||||||
description = "Show sidebar containing all worlds that mimics in-game interface",
|
description = "Show sidebar containing all worlds that mimics in-game interface",
|
||||||
position = 4
|
position = 4
|
||||||
)
|
)
|
||||||
default boolean showSidebar()
|
default boolean showSidebar()
|
||||||
{
|
{
|
||||||
@@ -95,10 +93,10 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "ping",
|
keyName = "ping",
|
||||||
name = "Show world ping",
|
name = "Show world ping",
|
||||||
description = "Shows ping to each game world",
|
description = "Shows ping to each game world",
|
||||||
position = 5
|
position = 5
|
||||||
)
|
)
|
||||||
default boolean ping()
|
default boolean ping()
|
||||||
{
|
{
|
||||||
@@ -106,10 +104,10 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "showMessage",
|
keyName = "showMessage",
|
||||||
name = "Show world hop message in chat",
|
name = "Show world hop message in chat",
|
||||||
description = "Shows what world is being hopped to in the chat",
|
description = "Shows what world is being hopped to in the chat",
|
||||||
position = 6
|
position = 6
|
||||||
)
|
)
|
||||||
default boolean showWorldHopMessage()
|
default boolean showWorldHopMessage()
|
||||||
{
|
{
|
||||||
@@ -117,10 +115,10 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "menuOption",
|
keyName = "menuOption",
|
||||||
name = "Show Hop-to menu option",
|
name = "Show Hop-to menu option",
|
||||||
description = "Adds Hop-to menu option to the friends list and friends chat members list",
|
description = "Adds Hop-to menu option to the friends list and friends chat members list",
|
||||||
position = 7
|
position = 7
|
||||||
)
|
)
|
||||||
default boolean menuOption()
|
default boolean menuOption()
|
||||||
{
|
{
|
||||||
@@ -128,10 +126,10 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "subscriptionFilter",
|
keyName = "subscriptionFilter",
|
||||||
name = "Show subscription types",
|
name = "Show subscription types",
|
||||||
description = "Only show free worlds, member worlds, or both types of worlds in sidebar",
|
description = "Only show free worlds, member worlds, or both types of worlds in sidebar",
|
||||||
position = 8
|
position = 8
|
||||||
)
|
)
|
||||||
default SubscriptionFilterMode subscriptionFilter()
|
default SubscriptionFilterMode subscriptionFilter()
|
||||||
{
|
{
|
||||||
@@ -139,21 +137,21 @@ public interface WorldHopperConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "regionFilter",
|
keyName = "regionFilter",
|
||||||
name = "Filter worlds by region",
|
name = "Filter worlds by region",
|
||||||
description = "Restrict sidebar worlds to one region",
|
description = "Restrict sidebar worlds to one region",
|
||||||
position = 8
|
position = 8
|
||||||
)
|
)
|
||||||
default Set<RegionFilterMode> regionFilter()
|
default RegionFilterMode regionFilter()
|
||||||
{
|
{
|
||||||
return Collections.emptySet();
|
return RegionFilterMode.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "displayPing",
|
keyName = "displayPing",
|
||||||
name = "Display current ping",
|
name = "Display current ping",
|
||||||
description = "Displays ping to current game world",
|
description = "Displays ping to current game world",
|
||||||
position = 9
|
position = 9
|
||||||
)
|
)
|
||||||
default boolean displayPing()
|
default boolean displayPing()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import java.util.EnumSet;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.ScheduledFuture;
|
import java.util.concurrent.ScheduledFuture;
|
||||||
@@ -95,9 +94,9 @@ import net.runelite.http.api.worlds.WorldType;
|
|||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
@PluginDescriptor(
|
@PluginDescriptor(
|
||||||
name = "World Hopper",
|
name = "World Hopper",
|
||||||
description = "Allows you to quickly hop worlds",
|
description = "Allows you to quickly hop worlds",
|
||||||
tags = {"ping", "switcher"}
|
tags = {"ping", "switcher"}
|
||||||
)
|
)
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class WorldHopperPlugin extends Plugin
|
public class WorldHopperPlugin extends Plugin
|
||||||
@@ -199,11 +198,11 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
|
|
||||||
BufferedImage icon = ImageUtil.loadImageResource(WorldHopperPlugin.class, "icon.png");
|
BufferedImage icon = ImageUtil.loadImageResource(WorldHopperPlugin.class, "icon.png");
|
||||||
navButton = NavigationButton.builder()
|
navButton = NavigationButton.builder()
|
||||||
.tooltip("World Switcher")
|
.tooltip("World Switcher")
|
||||||
.icon(icon)
|
.icon(icon)
|
||||||
.priority(3)
|
.priority(3)
|
||||||
.panel(panel)
|
.panel(panel)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
if (config.showSidebar())
|
if (config.showSidebar())
|
||||||
{
|
{
|
||||||
@@ -361,7 +360,7 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
String option = event.getOption();
|
String option = event.getOption();
|
||||||
|
|
||||||
if (groupId == WidgetInfo.FRIENDS_LIST.getGroupId() || groupId == WidgetInfo.FRIENDS_CHAT.getGroupId()
|
if (groupId == WidgetInfo.FRIENDS_LIST.getGroupId() || groupId == WidgetInfo.FRIENDS_CHAT.getGroupId()
|
||||||
|| componentId == WidgetInfo.CLAN_MEMBER_LIST.getId() || componentId == WidgetInfo.CLAN_GUEST_MEMBER_LIST.getId())
|
|| componentId == WidgetInfo.CLAN_MEMBER_LIST.getId() || componentId == WidgetInfo.CLAN_GUEST_MEMBER_LIST.getId())
|
||||||
{
|
{
|
||||||
boolean after;
|
boolean after;
|
||||||
|
|
||||||
@@ -383,7 +382,7 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
WorldResult worldResult = worldService.getWorlds();
|
WorldResult worldResult = worldService.getWorlds();
|
||||||
|
|
||||||
if (player == null || player.getWorld() == 0 || player.getWorld() == client.getWorld()
|
if (player == null || player.getWorld() == 0 || player.getWorld() == client.getWorld()
|
||||||
|| worldResult == null)
|
|| worldResult == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -391,7 +390,7 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
World currentWorld = worldResult.findWorld(client.getWorld());
|
World currentWorld = worldResult.findWorld(client.getWorld());
|
||||||
World targetWorld = worldResult.findWorld(player.getWorld());
|
World targetWorld = worldResult.findWorld(player.getWorld());
|
||||||
if (targetWorld == null || currentWorld == null
|
if (targetWorld == null || currentWorld == null
|
||||||
|| (!currentWorld.getTypes().contains(WorldType.PVP) && targetWorld.getTypes().contains(WorldType.PVP)))
|
|| (!currentWorld.getTypes().contains(WorldType.PVP) && targetWorld.getTypes().contains(WorldType.PVP)))
|
||||||
{
|
{
|
||||||
// Disable Hop-to a PVP world from a regular world
|
// Disable Hop-to a PVP world from a regular world
|
||||||
return;
|
return;
|
||||||
@@ -534,8 +533,6 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
int worldIdx = worlds.indexOf(currentWorld);
|
int worldIdx = worlds.indexOf(currentWorld);
|
||||||
int totalLevel = client.getTotalLevel();
|
int totalLevel = client.getTotalLevel();
|
||||||
|
|
||||||
final Set<RegionFilterMode> regionFilter = config.quickHopRegionFilter();
|
|
||||||
|
|
||||||
World world;
|
World world;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@@ -567,7 +564,7 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
world = worlds.get(worldIdx);
|
world = worlds.get(worldIdx);
|
||||||
|
|
||||||
// Check world region if filter is enabled
|
// Check world region if filter is enabled
|
||||||
if (!regionFilter.isEmpty() && !regionFilter.contains(RegionFilterMode.of(world.getRegion())))
|
if (config.quickHopRegionFilter() != RegionFilterMode.NONE && world.getRegion() != config.quickHopRegionFilter().getRegion())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -612,14 +609,14 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
if (world == currentWorld)
|
if (world == currentWorld)
|
||||||
{
|
{
|
||||||
String chatMessage = new ChatMessageBuilder()
|
String chatMessage = new ChatMessageBuilder()
|
||||||
.append(ChatColorType.NORMAL)
|
.append(ChatColorType.NORMAL)
|
||||||
.append("Couldn't find a world to quick-hop to.")
|
.append("Couldn't find a world to quick-hop to.")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
chatMessageManager.queue(QueuedMessage.builder()
|
chatMessageManager.queue(QueuedMessage.builder()
|
||||||
.type(ChatMessageType.CONSOLE)
|
.type(ChatMessageType.CONSOLE)
|
||||||
.runeLiteFormattedMessage(chatMessage)
|
.runeLiteFormattedMessage(chatMessage)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -657,19 +654,19 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
if (config.showWorldHopMessage())
|
if (config.showWorldHopMessage())
|
||||||
{
|
{
|
||||||
String chatMessage = new ChatMessageBuilder()
|
String chatMessage = new ChatMessageBuilder()
|
||||||
.append(ChatColorType.NORMAL)
|
.append(ChatColorType.NORMAL)
|
||||||
.append("Quick-hopping to World ")
|
.append("Quick-hopping to World ")
|
||||||
.append(ChatColorType.HIGHLIGHT)
|
.append(ChatColorType.HIGHLIGHT)
|
||||||
.append(Integer.toString(world.getId()))
|
.append(Integer.toString(world.getId()))
|
||||||
.append(ChatColorType.NORMAL)
|
.append(ChatColorType.NORMAL)
|
||||||
.append("..")
|
.append("..")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
chatMessageManager
|
chatMessageManager
|
||||||
.queue(QueuedMessage.builder()
|
.queue(QueuedMessage.builder()
|
||||||
.type(ChatMessageType.CONSOLE)
|
.type(ChatMessageType.CONSOLE)
|
||||||
.runeLiteFormattedMessage(chatMessage)
|
.runeLiteFormattedMessage(chatMessage)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
quickHopTargetWorld = rsWorld;
|
quickHopTargetWorld = rsWorld;
|
||||||
@@ -691,19 +688,19 @@ public class WorldHopperPlugin extends Plugin
|
|||||||
if (++displaySwitcherAttempts >= DISPLAY_SWITCHER_MAX_ATTEMPTS)
|
if (++displaySwitcherAttempts >= DISPLAY_SWITCHER_MAX_ATTEMPTS)
|
||||||
{
|
{
|
||||||
String chatMessage = new ChatMessageBuilder()
|
String chatMessage = new ChatMessageBuilder()
|
||||||
.append(ChatColorType.NORMAL)
|
.append(ChatColorType.NORMAL)
|
||||||
.append("Failed to quick-hop after ")
|
.append("Failed to quick-hop after ")
|
||||||
.append(ChatColorType.HIGHLIGHT)
|
.append(ChatColorType.HIGHLIGHT)
|
||||||
.append(Integer.toString(displaySwitcherAttempts))
|
.append(Integer.toString(displaySwitcherAttempts))
|
||||||
.append(ChatColorType.NORMAL)
|
.append(ChatColorType.NORMAL)
|
||||||
.append(" attempts.")
|
.append(" attempts.")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
chatMessageManager
|
chatMessageManager
|
||||||
.queue(QueuedMessage.builder()
|
.queue(QueuedMessage.builder()
|
||||||
.type(ChatMessageType.CONSOLE)
|
.type(ChatMessageType.CONSOLE)
|
||||||
.runeLiteFormattedMessage(chatMessage)
|
.runeLiteFormattedMessage(chatMessage)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
resetQuickHopper();
|
resetQuickHopper();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import java.awt.event.MouseEvent;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
@@ -69,7 +68,7 @@ class WorldSwitcherPanel extends PluginPanel
|
|||||||
@Setter(AccessLevel.PACKAGE)
|
@Setter(AccessLevel.PACKAGE)
|
||||||
private SubscriptionFilterMode subscriptionFilterMode;
|
private SubscriptionFilterMode subscriptionFilterMode;
|
||||||
@Setter(AccessLevel.PACKAGE)
|
@Setter(AccessLevel.PACKAGE)
|
||||||
private Set<RegionFilterMode> regionFilterMode;
|
private RegionFilterMode regionFilterMode;
|
||||||
|
|
||||||
WorldSwitcherPanel(WorldHopperPlugin plugin)
|
WorldSwitcherPanel(WorldHopperPlugin plugin)
|
||||||
{
|
{
|
||||||
@@ -250,7 +249,7 @@ class WorldSwitcherPanel extends PluginPanel
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!regionFilterMode.isEmpty() && !regionFilterMode.contains(RegionFilterMode.of(world.getRegion())))
|
if (regionFilterMode.getRegion() != null && !regionFilterMode.getRegion().equals(world.getRegion()))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -378,20 +377,20 @@ class WorldSwitcherPanel extends PluginPanel
|
|||||||
private WorldTableRow buildRow(World world, boolean stripe, boolean current, boolean favorite)
|
private WorldTableRow buildRow(World world, boolean stripe, boolean current, boolean favorite)
|
||||||
{
|
{
|
||||||
WorldTableRow row = new WorldTableRow(world, current, favorite, plugin.getStoredPing(world),
|
WorldTableRow row = new WorldTableRow(world, current, favorite, plugin.getStoredPing(world),
|
||||||
plugin::hopTo,
|
plugin::hopTo,
|
||||||
(world12, add) ->
|
(world12, add) ->
|
||||||
{
|
|
||||||
if (add)
|
|
||||||
{
|
{
|
||||||
plugin.addToFavorites(world12);
|
if (add)
|
||||||
}
|
{
|
||||||
else
|
plugin.addToFavorites(world12);
|
||||||
{
|
}
|
||||||
plugin.removeFromFavorites(world12);
|
else
|
||||||
}
|
{
|
||||||
|
plugin.removeFromFavorites(world12);
|
||||||
|
}
|
||||||
|
|
||||||
updateList();
|
updateList();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
row.setBackground(stripe ? ODD_ROW : ColorScheme.DARK_GRAY_COLOR);
|
row.setBackground(stripe ? ODD_ROW : ColorScheme.DARK_GRAY_COLOR);
|
||||||
return row;
|
return row;
|
||||||
|
|||||||
Reference in New Issue
Block a user