package com.clearlyspam23.GLE.util;
import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import com.clearlyspam23.GLE.Nameable;
public class Utility {
public static final String NEWLINE = System.getProperty("line.separator");
public static ArrayList<String> tokenizeBySpaceAndQuote(String s)
{
//i dont know how to regex
ArrayList<String> ans = new ArrayList<String>();
StringBuffer buf = new StringBuffer();
for(int i = 0; i < s.length(); i++)
{
if(Character.isWhitespace(s.charAt(i)))
{
if(buf.length()>0)
{
ans.add(buf.toString());
buf = new StringBuffer();
}
}
else if(s.charAt(i)=='"')
{
for(i++; i < s.length(); i++)
{
if(s.charAt(i)=='"')
{
ans.add(buf.toString());
buf = new StringBuffer();
break;
}
else
buf.append(s.charAt(i));
}
}
else
buf.append(s.charAt(i));
}
ans.add(buf.toString());
return ans;
}
public static void setModelTo(JComboBox<String> box, List<? extends Nameable> namedList){
String[] model = new String[namedList.size()];
for(int i = 0; i < namedList.size(); i++)
model[i] = namedList.get(i).getName();
box.setModel(new DefaultComboBoxModel<String>(model));
box.setSelectedIndex(model.length>0 ? 0 : -1);
}
public static boolean isValidIndex(JComboBox<?> box, List<?> list){
return isValidIndex(box.getSelectedIndex(), list);
}
public static boolean isValidIndex(int index, List<?> list){
return index>=0&&index<list.size();
}
public static <T> T getValue(JComboBox<?> box, List<T> list){
return list.get(box.getSelectedIndex());
}
public static <T> T tryGetValue(JComboBox<?> box, List<T> list){
if(Utility.isValidIndex(box, list))
return getValue(box, list);
return null;
}
public static <T> void trySetIndex(T t, List<T> list, JComboBox<?> box){
int index = list.indexOf(t);
if(index>=0)
box.setSelectedIndex(index);
}
public static <T> void trySetIndex(T t, List<T> list, JComboBox<?> box, int indexOnFailure){
int index = list.indexOf(t);
if(index<0)
index = indexOnFailure;
box.setSelectedIndex(index);
}
}