GUI Refactoring and consolidation

This commit is contained in:
Sebastian Hartte
2020-06-14 18:00:02 +02:00
parent 9b19f5b0e2
commit fd7ed5bbf0
53 changed files with 1000 additions and 974 deletions
+70
View File
@@ -0,0 +1,70 @@
package appeng.util;
import java.util.EnumSet;
public final class EnumCycler {
private EnumCycler() {
}
public static <T extends Enum<T>> T rotateEnum( T ce, final boolean backwards, final EnumSet<T> validOptions )
{
do
{
if( backwards )
{
ce = prevEnum( ce );
}
else
{
ce = next( ce );
}
}
while( !validOptions.contains( ce ) );
return ce;
}
/*
* Simple way to cycle an enum...
*/
public static <T extends Enum<T>> T prevEnum( final T ce )
{
T[] values = ce.getDeclaringClass().getEnumConstants();
int pLoc = ce.ordinal() - 1;
if( pLoc < 0 )
{
pLoc = values.length - 1;
}
if( pLoc < 0 || pLoc >= values.length )
{
pLoc = 0;
}
return values[pLoc];
}
/*
* Simple way to cycle an enum...
*/
public static <T extends Enum<T>> T next(final T ce )
{
T[] values = ce.getDeclaringClass().getEnumConstants();
int pLoc = ce.ordinal() + 1;
if( pLoc >= values.length )
{
pLoc = 0;
}
if( pLoc < 0 || pLoc >= values.length )
{
pLoc = 0;
}
return values[pLoc];
}
}