package gdxstudio.panel;
import gdxstudio.Content;
import gdxstudio.Export;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import scene2d.Scene;
import com.badlogic.gdx.utils.JsonReader;
import com.badlogic.gdx.utils.JsonValue;
public class ProjectSettingsPanel extends BaseTable {
private static final long serialVersionUID = 1L;
String[] screenSizes = {
"320x240", "480x320", "800x480", "852x480", "960x540", "1280x720", "1980x1080"
};
String[] targetSizes = {
"800x480"
};
JComboBox<String> screenCombo = createComboBox(screenSizes);
JComboBox<String> targetCombo = createComboBox(targetSizes);
public ProjectSettingsPanel(){
super("Settings");
editors.add(createTextFieldEditor());
editors.add(new DefaultCellEditor(targetCombo));
editors.add(new DefaultCellEditor(screenCombo));
editors.add(createNumberField());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
editors.add(createCheckBoxEditor());
if(Content.projectExists())
update();
screenCombo.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e) {
//String val[] = screenCombo.getSelectedItem().toString().split("x");
//Content.studioPanel.setGdxScreenSize(Integer.parseInt(val[0]), Integer.parseInt(val[1]));
}
});
}
@Override
public void clear(String... items){
super.clear("", "" ,"" ,"" ,"", "", "", "", "", "", "", "", "");
}
private static JsonValue jsonValue;
JsonReader jsonReader = new JsonReader();
@Override
public void update(String... items){
super.update();
String text = Export.readFile("config");
if(text.isEmpty())
return;
jsonValue = jsonReader.parse(text);
addRow("Title", jsonValue.getString("title"));
addRow("TargetSize", jsonValue.getString("targetSize"));
addRow("ScreenSize", jsonValue.getString("screenSize"));
addRow("AudioBufferCount", jsonValue.getString("audioBufferCount"));
addRow("Resize", jsonValue.getBoolean("resize"));
addRow("ForceExit", jsonValue.getBoolean("forceExit"));
addRow("FullScreen", jsonValue.getBoolean("fullScreen"));
addRow("UseGL20", jsonValue.getBoolean("useGL20"));
addRow("VSync", jsonValue.getBoolean("vSync"));
addRow("DisableAudio", jsonValue.getBoolean("disableAudio"));
addRow("KeepAspectRatio", jsonValue.getBoolean("keepAspectRatio"));
addRow("ShowFPS", jsonValue.getBoolean("showFPS"));
addRow("LoggingEnabled", jsonValue.getBoolean("loggingEnabled"));
ProjectPanel.updateProperty("Version", jsonValue.getString("version"));
ProjectPanel.updateProperty("Target", jsonValue.getString("target"));
/*createRow(content3, "Use Accelerometer", new WebSwitch());
createRow(content3, "Use Compass", new WebSwitch());
createRow(content3, "Use WakeLock", new WebSwitch());
createRow(content3, "Hide Status Bar", new WebSwitch());*/
}
@Override
public void setProperty(String key, String value) {
if(key.isEmpty() && value.isEmpty()){
return;
}
jsonValue.get("hasIcon").set(new File(Content.getProject()+"icon.png").exists());
jsonValue.get(Scene.uncapitalize(key)).set(value);
Export.writeFile("config", jsonValue.toString());
}
public void updateVersion(String version){
jsonValue.get("version").set(version);
Export.writeFile("config", jsonValue.toString());
}
public void updateTarget(String target){
jsonValue.get("target").set(target);
Export.writeFile("config", jsonValue.toString());
}
static String jsonizeArray(Object[] array){
StringBuilder sb = new StringBuilder();
for(Object s: array){
sb.append(s.toString().trim());
sb.append(",");
}
sb.deleteCharAt(sb.lastIndexOf(","));
return sb.toString();
}
}